| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769 | "use strict";Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });const vue = require("vue");const shared = require("@vue/shared");const uniShared = require("@dcloudio/uni-shared");const vueRouter = require("vue-router");const uniI18n = require("@dcloudio/uni-i18n");function arrayPop(array) {  if (array.length === 0) {    return null;  }  return array.pop();}function arrayShift(array) {  if (array.length === 0) {    return null;  }  return array.shift();}function arrayFind(array, predicate) {  const index2 = array.findIndex(predicate);  if (index2 < 0) {    return null;  }  return array[index2];}function arrayFindLast(array, predicate) {  const index2 = array.findLastIndex(predicate);  if (index2 < 0) {    return null;  }  return array[index2];}function arrayAt(array, index2) {  if (index2 < -array.length || index2 >= array.length) {    return null;  }  return array.at(index2);}var IDENTIFIER;(function(IDENTIFIER2) {  IDENTIFIER2["UTSJSONObject"] = "UTSJSONObject";  IDENTIFIER2["JSON"] = "JSON";  IDENTIFIER2["UTS"] = "UTS";  IDENTIFIER2["DEFINE_COMPONENT"] = "defineComponent";  IDENTIFIER2["VUE"] = "vue";  IDENTIFIER2["GLOBAL_THIS"] = "globalThis";  IDENTIFIER2["UTS_TYPE"] = "UTSType";  IDENTIFIER2["UTS_METADATA"] = "$UTSMetadata$";  IDENTIFIER2["TEMP_UTS_METADATA"] = "$TempUTSMetadata$";  IDENTIFIER2["JSON_FIELD"] = "JSON_FIELD";})(IDENTIFIER || (IDENTIFIER = {}));var UTS_CLASS_METADATA_KIND;(function(UTS_CLASS_METADATA_KIND2) {  UTS_CLASS_METADATA_KIND2[UTS_CLASS_METADATA_KIND2["CLASS"] = 0] = "CLASS";  UTS_CLASS_METADATA_KIND2[UTS_CLASS_METADATA_KIND2["INTERFACE"] = 1] = "INTERFACE";  UTS_CLASS_METADATA_KIND2[UTS_CLASS_METADATA_KIND2["TYPE"] = 2] = "TYPE";})(UTS_CLASS_METADATA_KIND || (UTS_CLASS_METADATA_KIND = {}));function getType$1(val) {  return Object.prototype.toString.call(val).slice(8, -1).toLowerCase();}function isPlainObject(val) {  if (val == null || typeof val !== "object") {    return false;  }  const proto = Object.getPrototypeOf(val);  return proto === Object.prototype || proto === null;}class UTSError extends Error {  constructor(message) {    super(message);  }}function isUTSMetadata(metadata) {  return !!(metadata && metadata.kind in UTS_CLASS_METADATA_KIND && metadata.interfaces);}function isNativeType(proto) {  return !proto || proto === Object.prototype;}const utsMetadataKey = IDENTIFIER.UTS_METADATA;function getParentTypeList(type) {  const metadata = utsMetadataKey in type ? type[utsMetadataKey] : {};  let interfaces = [];  if (!isUTSMetadata(metadata)) {    interfaces = [];  } else {    interfaces = metadata.interfaces || [];  }  const proto = Object.getPrototypeOf(type);  if (!isNativeType(proto)) {    interfaces.push(proto.constructor);  }  return interfaces;}function isImplementationOf(leftType, rightType, visited = []) {  if (isNativeType(leftType)) {    return false;  }  if (leftType === rightType) {    return true;  }  visited.push(leftType);  const parentTypeList = getParentTypeList(leftType);  return parentTypeList.some((parentType) => {    if (visited.includes(parentType)) {      return false;    }    return isImplementationOf(parentType, rightType, visited);  });}function isInstanceOf(value, type) {  const isNativeInstanceofType = value instanceof type;  if (isNativeInstanceofType || typeof value !== "object") {    return isNativeInstanceofType;  }  const proto = Object.getPrototypeOf(value).constructor;  return isImplementationOf(proto, type);}function isBaseType(type) {  return type === Number || type === String || type === Boolean;}function isUnknownType(type) {  return type === "Unknown";}function isAnyType(type) {  return type === "Any";}function isUTSType(type) {  return type && type.prototype && type.prototype instanceof UTSType;}function normalizeGenericValue(value, genericType, isJSONParse = false) {  return value == null ? null : isBaseType(genericType) || isUnknownType(genericType) || isAnyType(genericType) ? value : genericType === Array ? new Array(...value) : new genericType(value, void 0, isJSONParse);}class UTSType {  static get$UTSMetadata$(...args) {    return {      kind: UTS_CLASS_METADATA_KIND.TYPE,      interfaces: [],      fields: {}    };  }  get $UTSMetadata$() {    return UTSType.get$UTSMetadata$();  }  // TODO 缓存withGenerics结果  static withGenerics(parent, generics, isJSONParse = false) {    if (isJSONParse) {      const illegalGeneric = generics.find((item) => !(item === Array || isBaseType(item) || isUnknownType(item) || isAnyType(item) || item === UTSJSONObject || item.prototype && item.prototype instanceof UTSType));      if (illegalGeneric) {        throw new Error("Generic is not UTSType or Array or UTSJSONObject or base type, generic: " + illegalGeneric);      }    }    if (parent === Array) {      return class UTSArray extends UTSType {        constructor(options, isJSONParse2 = false) {          if (!Array.isArray(options)) {            throw new UTSError(`Failed to contruct type, ${options} is not an array`);          }          super();          return options.map((item) => {            return normalizeGenericValue(item, generics[0], isJSONParse2);          });        }      };    } else if (parent === Map || parent === WeakMap) {      return class UTSMap extends UTSType {        constructor(options, isJSONParse2 = false) {          if (options == null || typeof options !== "object") {            throw new UTSError(`Failed to contruct type, ${options} is not an object`);          }          super();          const obj = new parent();          for (const key in options) {            obj.set(normalizeGenericValue(key, generics[0], isJSONParse2), normalizeGenericValue(options[key], generics[1], isJSONParse2));          }          return obj;        }      };    } else if (isUTSType(parent)) {      return class VirtualClassWithGenerics extends parent {        static get$UTSMetadata$() {          return parent.get$UTSMetadata$(...generics);        }        constructor(options, metadata = VirtualClassWithGenerics.get$UTSMetadata$(), isJSONParse2 = false) {          super(options, metadata, isJSONParse2);        }      };    } else {      return parent;    }  }  constructor() {  }  static initProps(options, metadata, isJSONParse = false) {    const obj = {};    if (!metadata.fields) {      return obj;    }    for (const key in metadata.fields) {      const { type, optional, jsonField } = metadata.fields[key];      const realKey = isJSONParse ? jsonField || key : key;      if (options[realKey] == null) {        if (optional) {          obj[key] = null;          continue;        } else {          throw new UTSError(`Failed to contruct type, missing required property: ${key}`);        }      }      if (isUTSType(type)) {        obj[key] = new type(options[realKey], void 0, isJSONParse);      } else if (type === Array) {        if (!Array.isArray(options[realKey])) {          throw new UTSError(`Failed to contruct type, property ${key} is not an array`);        }        obj[key] = options[realKey].map((item) => {          return item == null ? null : item;        });      } else {        obj[key] = options[realKey];      }    }    return obj;  }}const OriginalJSON = JSON;function parseObjectOrArray(object, utsType) {  const objectType = getType$1(object);  if (object === null || objectType !== "object" && objectType !== "array") {    return object;  }  if (utsType || utsType === UTSJSONObject) {    try {      return new utsType(object, void 0, true);    } catch (error) {      console.error(error);      return null;    }  }  if (objectType === "array") {    return object.map((value) => {      return parseObjectOrArray(value);    });  } else if (objectType === "object") {    return new UTSJSONObject(object);  }  return object;}const UTSJSON = {  parse: (text, reviver, utsType) => {    if (reviver && (isUTSType(reviver) || reviver === UTSJSONObject)) {      utsType = reviver;      reviver = void 0;    }    try {      const parseResult = OriginalJSON.parse(text, reviver);      return parseObjectOrArray(parseResult, utsType);    } catch (error) {      console.error(error);      return null;    }  },  parseArray(text, utsType) {    try {      const parseResult = OriginalJSON.parse(text);      if (Array.isArray(parseResult)) {        return parseObjectOrArray(parseResult, utsType ? UTSType.withGenerics(Array, [utsType], true) : void 0);      }      return null;    } catch (error) {      console.error(error);      return null;    }  },  parseObject(text, utsType) {    try {      const parseResult = OriginalJSON.parse(text);      if (Array.isArray(parseResult)) {        return null;      }      return parseObjectOrArray(parseResult, utsType);    } catch (error) {      console.error(error);      return null;    }  },  stringify: (value) => {    return OriginalJSON.stringify(value);  }};function mapGet(map, key) {  if (!map.has(key)) {    return null;  }  return map.get(key);}function stringCodePointAt(str, pos) {  if (pos < 0 || pos >= str.length) {    return null;  }  return str.codePointAt(pos);}function stringAt(str, pos) {  if (pos < -str.length || pos >= str.length) {    return null;  }  return str.at(pos);}function weakMapGet(map, key) {  if (!map.has(key)) {    return null;  }  return map.get(key);}const UTS$1 = {  arrayAt,  arrayFind,  arrayFindLast,  arrayPop,  arrayShift,  isInstanceOf,  UTSType,  mapGet,  stringAt,  stringCodePointAt,  weakMapGet,  JSON: UTSJSON};let UniError$1 = class UniError2 extends Error {  constructor(errSubject, errCode, errMsg) {    let options = {};    const argsLength = Array.from(arguments).length;    switch (argsLength) {      case 0:        errSubject = "";        errMsg = "";        errCode = 0;        break;      case 1:        errMsg = errSubject;        errSubject = "";        errCode = 0;        break;      case 2:        errMsg = errSubject;        options = errCode;        errCode = options.errCode || 0;        errSubject = options.errSubject || "";        break;    }    super(errMsg);    this.name = "UniError";    this.errSubject = errSubject;    this.errCode = errCode;    this.errMsg = errMsg;    if (options.data) {      this.data = options.data;    }    if (options.cause) {      this.cause = options.cause;    }  }  set errMsg(msg) {    this.message = msg;  }  get errMsg() {    return this.message;  }  toString() {    return this.errMsg;  }  toJSON() {    return {      errSubject: this.errSubject,      errCode: this.errCode,      errMsg: this.errMsg,      data: this.data,      cause: this.cause && typeof this.cause.toJSON === "function" ? this.cause.toJSON() : this.cause    };  }};function initUTSJSONObjectProperties(obj) {  const propertyList = [    "_resolveKeyPath",    "_getValue",    "toJSON",    "get",    "set",    "getAny",    "getString",    "getNumber",    "getBoolean",    "getJSON",    "getArray",    "toMap",    "forEach"  ];  const propertyDescriptorMap = {};  for (let i = 0; i < propertyList.length; i++) {    const property = propertyList[i];    propertyDescriptorMap[property] = {      enumerable: false,      value: obj[property]    };  }  Object.defineProperties(obj, propertyDescriptorMap);}function setUTSJSONObjectValue(obj, key, value) {  if (isPlainObject(value)) {    obj[key] = new UTSJSONObject$1(value);  } else if (getType$1(value) === "array") {    obj[key] = value.map((item) => {      if (isPlainObject(item)) {        return new UTSJSONObject$1(item);      } else {        return item;      }    });  } else {    obj[key] = value;  }}let UTSJSONObject$1 = class UTSJSONObject2 {  static keys(obj) {    return Object.keys(obj);  }  static assign(target, ...sources) {    for (let i = 0; i < sources.length; i++) {      const source = sources[i];      for (let key in source) {        target[key] = source[key];      }    }    return target;  }  constructor(content = {}) {    if (content instanceof Map) {      content.forEach((value, key) => {        setUTSJSONObjectValue(this, key, value);      });    } else {      for (const key in content) {        if (Object.prototype.hasOwnProperty.call(content, key)) {          const value = content[key];          setUTSJSONObjectValue(this, key, value);        }      }    }    initUTSJSONObjectProperties(this);  }  _resolveKeyPath(keyPath) {    let token = "";    const keyPathArr = [];    let inOpenParentheses = false;    for (let i = 0; i < keyPath.length; i++) {      const word = keyPath[i];      switch (word) {        case ".":          if (token.length > 0) {            keyPathArr.push(token);            token = "";          }          break;        case "[": {          inOpenParentheses = true;          if (token.length > 0) {            keyPathArr.push(token);            token = "";          }          break;        }        case "]":          if (inOpenParentheses) {            if (token.length > 0) {              const tokenFirstChar = token[0];              const tokenLastChar = token[token.length - 1];              if (tokenFirstChar === '"' && tokenLastChar === '"' || tokenFirstChar === "'" && tokenLastChar === "'" || tokenFirstChar === "`" && tokenLastChar === "`") {                if (token.length > 2) {                  token = token.slice(1, -1);                } else {                  return [];                }              } else if (!/^\d+$/.test(token)) {                return [];              }              keyPathArr.push(token);              token = "";            } else {              return [];            }            inOpenParentheses = false;          } else {            return [];          }          break;        default:          token += word;          break;      }      if (i === keyPath.length - 1) {        if (token.length > 0) {          keyPathArr.push(token);          token = "";        }      }    }    return keyPathArr;  }  _getValue(keyPath) {    const keyPathArr = this._resolveKeyPath(keyPath);    if (keyPathArr.length === 0) {      return null;    }    let value = this;    for (let i = 0; i < keyPathArr.length; i++) {      const key = keyPathArr[i];      if (value instanceof Object) {        value = value[key];      } else {        return null;      }    }    return value;  }  get(key) {    return this._getValue(key);  }  set(key, value) {    this[key] = value;  }  getAny(key) {    return this._getValue(key);  }  getString(key) {    const value = this._getValue(key);    if (typeof value === "string") {      return value;    } else {      return null;    }  }  getNumber(key) {    const value = this._getValue(key);    if (typeof value === "number") {      return value;    } else {      return null;    }  }  getBoolean(key) {    const boolean = this._getValue(key);    if (typeof boolean === "boolean") {      return boolean;    } else {      return null;    }  }  getJSON(key) {    let value = this._getValue(key);    if (value instanceof Object) {      return new UTSJSONObject2(value);    } else {      return null;    }  }  getArray(key) {    let value = this._getValue(key);    if (value instanceof Array) {      return value;    } else {      return null;    }  }  toMap() {    let map = /* @__PURE__ */ new Map();    for (let key in this) {      map.set(key, this[key]);    }    return map;  }  forEach(callback) {    for (let key in this) {      callback(this[key], key);    }  }};function getGlobal() {  if (typeof globalThis !== "undefined") {    return globalThis;  }  if (typeof self !== "undefined") {    return self;  }  if (typeof window !== "undefined") {    return window;  }  if (typeof global !== "undefined") {    return global;  }  function g2() {    return this;  }  if (typeof g2() !== "undefined") {    return g2();  }  return function() {    return new Function("return this")();  }();}const realGlobal = getGlobal();realGlobal.UTSJSONObject = UTSJSONObject$1;realGlobal.UniError = UniError$1;realGlobal.UTS = UTS$1;const isEnableLocale = /* @__PURE__ */ uniShared.once(  () => typeof __uniConfig !== "undefined" && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length);let i18n;function getLocaleMessage() {  const locale = uni.getLocale();  const locales = __uniConfig.locales;  return locales[locale] || locales[__uniConfig.fallbackLocale] || locales.en || {};}function formatI18n(message) {  if (uniI18n.isI18nStr(message, uniShared.I18N_JSON_DELIMITERS)) {    return useI18n().f(message, getLocaleMessage(), uniShared.I18N_JSON_DELIMITERS);  }  return message;}function resolveJsonObj(jsonObj, names) {  if (names.length === 1) {    if (jsonObj) {      const _isI18nStr = (value2) => shared.isString(value2) && uniI18n.isI18nStr(value2, uniShared.I18N_JSON_DELIMITERS);      const _name = names[0];      let filterJsonObj = [];      if (shared.isArray(jsonObj) && (filterJsonObj = jsonObj.filter((item) => _isI18nStr(item[_name]))).length) {        return filterJsonObj;      }      const value = jsonObj[names[0]];      if (_isI18nStr(value)) {        return jsonObj;      }    }    return;  }  const name = names.shift();  return resolveJsonObj(jsonObj && jsonObj[name], names);}function defineI18nProperties(obj, names) {  return names.map((name) => defineI18nProperty(obj, name));}function defineI18nProperty(obj, names) {  const jsonObj = resolveJsonObj(obj, names);  if (!jsonObj) {    return false;  }  const prop = names[names.length - 1];  if (shared.isArray(jsonObj)) {    jsonObj.forEach((item) => defineI18nProperty(item, [prop]));  } else {    let value = jsonObj[prop];    Object.defineProperty(jsonObj, prop, {      get() {        return formatI18n(value);      },      set(v2) {        value = v2;      }    });  }  return true;}function useI18n() {  if (!i18n) {    let locale;    {      {        locale = uniShared.getEnvLocale();      }    }    i18n = uniI18n.initVueI18n(locale);    if (isEnableLocale()) {      const localeKeys = Object.keys(__uniConfig.locales || {});      if (localeKeys.length) {        localeKeys.forEach(          (locale2) => i18n.add(locale2, __uniConfig.locales[locale2])        );      }      i18n.setLocale(locale);    }  }  return i18n;}function normalizeMessages(module2, keys, values) {  return keys.reduce((res, name, index2) => {    res[module2 + name] = values[index2];    return res;  }, {});}const initI18nAsyncMsgsOnce = /* @__PURE__ */ uniShared.once(() => {  const name = "uni.async.";  const keys = ["error"];  if (__UNI_FEATURE_I18N_EN__) {    useI18n().add(      uniI18n.LOCALE_EN,      normalizeMessages(name, keys, [        "The connection timed out, click the screen to try again."      ]),      false    );  }  if (__UNI_FEATURE_I18N_ES__) {    useI18n().add(      uniI18n.LOCALE_ES,      normalizeMessages(name, keys, [        "Se agotó el tiempo de conexión, haga clic en la pantalla para volver a intentarlo."      ]),      false    );  }  if (__UNI_FEATURE_I18N_FR__) {    useI18n().add(      uniI18n.LOCALE_FR,      normalizeMessages(name, keys, [        "La connexion a expiré, cliquez sur l'écran pour réessayer."      ]),      false    );  }  if (__UNI_FEATURE_I18N_ZH_HANS__) {    useI18n().add(      uniI18n.LOCALE_ZH_HANS,      normalizeMessages(name, keys, ["连接服务器超时,点击屏幕重试"]),      false    );  }  if (__UNI_FEATURE_I18N_ZH_HANT__) {    useI18n().add(      uniI18n.LOCALE_ZH_HANT,      normalizeMessages(name, keys, ["連接服務器超時,點擊屏幕重試"]),      false    );  }});const initI18nPickerMsgsOnce = /* @__PURE__ */ uniShared.once(() => {  const name = "uni.picker.";  const keys = ["done", "cancel"];  if (__UNI_FEATURE_I18N_EN__) {    useI18n().add(      uniI18n.LOCALE_EN,      normalizeMessages(name, keys, ["Done", "Cancel"]),      false    );  }  if (__UNI_FEATURE_I18N_ES__) {    useI18n().add(      uniI18n.LOCALE_ES,      normalizeMessages(name, keys, ["OK", "Cancelar"]),      false    );  }  if (__UNI_FEATURE_I18N_FR__) {    useI18n().add(      uniI18n.LOCALE_FR,      normalizeMessages(name, keys, ["OK", "Annuler"]),      false    );  }  if (__UNI_FEATURE_I18N_ZH_HANS__) {    useI18n().add(      uniI18n.LOCALE_ZH_HANS,      normalizeMessages(name, keys, ["完成", "取消"]),      false    );  }  if (__UNI_FEATURE_I18N_ZH_HANT__) {    useI18n().add(      uniI18n.LOCALE_ZH_HANT,      normalizeMessages(name, keys, ["完成", "取消"]),      false    );  }});const initI18nVideoMsgsOnce = /* @__PURE__ */ uniShared.once(() => {  const name = "uni.video.";  const keys = ["danmu", "volume"];  if (__UNI_FEATURE_I18N_EN__) {    useI18n().add(      uniI18n.LOCALE_EN,      normalizeMessages(name, keys, ["Danmu", "Volume"]),      false    );  }  if (__UNI_FEATURE_I18N_ES__) {    useI18n().add(      uniI18n.LOCALE_ES,      normalizeMessages(name, keys, ["Danmu", "Volumen"]),      false    );  }  if (__UNI_FEATURE_I18N_FR__) {    useI18n().add(      uniI18n.LOCALE_FR,      normalizeMessages(name, keys, ["Danmu", "Le Volume"]),      false    );  }  if (__UNI_FEATURE_I18N_ZH_HANS__) {    useI18n().add(      uniI18n.LOCALE_ZH_HANS,      normalizeMessages(name, keys, ["弹幕", "音量"]),      false    );  }  if (__UNI_FEATURE_I18N_ZH_HANT__) {    useI18n().add(      uniI18n.LOCALE_ZH_HANT,      normalizeMessages(name, keys, ["彈幕", "音量"]),      false    );  }});function initNavigationBarI18n(navigationBar) {  if (isEnableLocale()) {    return defineI18nProperties(navigationBar, [      ["titleText"],      ["searchInput", "placeholder"],      ["buttons", "text"]    ]);  }}function initTabBarI18n(tabBar2) {  if (isEnableLocale() && tabBar2.list) {    tabBar2.list.forEach((item) => {      defineI18nProperty(item, ["text"]);    });  }  return tabBar2;}function initBridge(subscribeNamespace) {  const emitter = new uniShared.Emitter();  return {    on(event, callback) {      return emitter.on(event, callback);    },    once(event, callback) {      return emitter.once(event, callback);    },    off(event, callback) {      return emitter.off(event, callback);    },    emit(event, ...args) {      return emitter.emit(event, ...args);    },    subscribe(event, callback, once = false) {      emitter[once ? "once" : "on"](`${subscribeNamespace}.${event}`, callback);    },    unsubscribe(event, callback) {      emitter.off(`${subscribeNamespace}.${event}`, callback);    },    subscribeHandler(event, args, pageId) {      emitter.emit(`${subscribeNamespace}.${event}`, args, pageId);    }  };}const INVOKE_VIEW_API = "invokeViewApi";const INVOKE_SERVICE_API = "invokeServiceApi";let invokeServiceMethodId = 1;const invokeServiceMethod = (name, args, callback) => {  const { subscribe, publishHandler } = UniViewJSBridge;  const id2 = callback ? invokeServiceMethodId++ : 0;  callback && subscribe(INVOKE_SERVICE_API + "." + id2, callback, true);  publishHandler(INVOKE_SERVICE_API, { id: id2, name, args });};const viewMethods = /* @__PURE__ */ Object.create(null);function normalizeViewMethodName(pageId, name) {  return pageId + "." + name;}function registerViewMethod(pageId, name, fn) {  name = normalizeViewMethodName(pageId, name);  if (!viewMethods[name]) {    viewMethods[name] = fn;  }}const ViewJSBridge = /* @__PURE__ */ shared.extend(  /* @__PURE__ */ initBridge("service"),  {    invokeServiceMethod  });const onEventPrevent = /* @__PURE__ */ vue.withModifiers(() => {}, ["prevent"]);const onEventStop = /* @__PURE__ */ vue.withModifiers(  (_event) => {  },  ["stop"]);function updateCssVar(cssVars) {  const style = document.documentElement.style;  Object.keys(cssVars).forEach((name) => {    style.setProperty(name, cssVars[name]);  });}function updatePageCssVar(cssVars) {  return updateCssVar(cssVars);}function PolySymbol(name) {  return Symbol(process.env.NODE_ENV !== "production" ? "[uni-app]: " + name : name);}function rpx2px(str, replace = false) {  if (replace) {    return rpx2pxWithReplace(str);  }  {    return parseInt(str + "");  }}function rpx2pxWithReplace(str) {  {    return str;  }}const ICON_PATH_CANCEL = "M20.928 10.176l-4.928 4.928-4.928-4.928-0.896 0.896 4.928 4.928-4.928 4.928 0.896 0.896 4.928-4.928 4.928 4.928 0.896-0.896-4.928-4.928 4.928-4.928-0.896-0.896zM16 2.080q-3.776 0-7.040 1.888-3.136 1.856-4.992 4.992-1.888 3.264-1.888 7.040t1.888 7.040q1.856 3.136 4.992 4.992 3.264 1.888 7.040 1.888t7.040-1.888q3.136-1.856 4.992-4.992 1.888-3.264 1.888-7.040t-1.888-7.040q-1.856-3.136-4.992-4.992-3.264-1.888-7.040-1.888zM16 28.64q-3.424 0-6.4-1.728-2.848-1.664-4.512-4.512-1.728-2.976-1.728-6.4t1.728-6.4q1.664-2.848 4.512-4.512 2.976-1.728 6.4-1.728t6.4 1.728q2.848 1.664 4.512 4.512 1.728 2.976 1.728 6.4t-1.728 6.4q-1.664 2.848-4.512 4.512-2.976 1.728-6.4 1.728z";const ICON_PATH_CLEAR = "M16 0q-4.352 0-8.064 2.176-3.616 2.144-5.76 5.76-2.176 3.712-2.176 8.064t2.176 8.064q2.144 3.616 5.76 5.76 3.712 2.176 8.064 2.176t8.064-2.176q3.616-2.144 5.76-5.76 2.176-3.712 2.176-8.064t-2.176-8.064q-2.144-3.616-5.76-5.76-3.712-2.176-8.064-2.176zM22.688 21.408q0.32 0.32 0.304 0.752t-0.336 0.736-0.752 0.304-0.752-0.32l-5.184-5.376-5.376 5.184q-0.32 0.32-0.752 0.304t-0.736-0.336-0.304-0.752 0.32-0.752l5.376-5.184-5.184-5.376q-0.32-0.32-0.304-0.752t0.336-0.752 0.752-0.304 0.752 0.336l5.184 5.376 5.376-5.184q0.32-0.32 0.752-0.304t0.752 0.336 0.304 0.752-0.336 0.752l-5.376 5.184 5.184 5.376z";const ICON_PATH_DOWNLOAD = "M15.808 1.696q-3.776 0-7.072 1.984-3.2 1.888-5.088 5.152-1.952 3.392-1.952 7.36 0 3.776 1.952 7.072 1.888 3.2 5.088 5.088 3.296 1.952 7.072 1.952 3.968 0 7.36-1.952 3.264-1.888 5.152-5.088 1.984-3.296 1.984-7.072 0-4-1.984-7.36-1.888-3.264-5.152-5.152-3.36-1.984-7.36-1.984zM20.864 18.592l-3.776 4.928q-0.448 0.576-1.088 0.576t-1.088-0.576l-3.776-4.928q-0.448-0.576-0.24-0.992t0.944-0.416h2.976v-8.928q0-0.256 0.176-0.432t0.4-0.176h1.216q0.224 0 0.4 0.176t0.176 0.432v8.928h2.976q0.736 0 0.944 0.416t-0.24 0.992z";const ICON_PATH_INFO = "M15.808 0.128q-4.224 0-7.872 2.176-3.552 2.112-5.632 5.728-2.176 3.776-2.176 8.16 0 4.224 2.176 7.872 2.080 3.552 5.632 5.632 3.648 2.176 7.872 2.176 4.384 0 8.16-2.176 3.616-2.080 5.728-5.632 2.176-3.648 2.176-7.872 0-4.416-2.176-8.16-2.112-3.616-5.728-5.728-3.744-2.176-8.16-2.176zM16.864 23.776q0 0.064-0.064 0.064h-1.568q-0.096 0-0.096-0.064l-0.256-11.328q0-0.064 0.064-0.064h2.112q0.096 0 0.064 0.064l-0.256 11.328zM16 10.88q-0.576 0-0.976-0.4t-0.4-0.96 0.4-0.96 0.976-0.4 0.976 0.4 0.4 0.96-0.4 0.96-0.976 0.4z";const ICON_PATH_SEARCH = "M20.928 22.688q-1.696 1.376-3.744 2.112-2.112 0.768-4.384 0.768-3.488 0-6.464-1.728-2.88-1.696-4.576-4.608-1.76-2.976-1.76-6.464t1.76-6.464q1.696-2.88 4.576-4.576 2.976-1.76 6.464-1.76t6.464 1.76q2.912 1.696 4.608 4.576 1.728 2.976 1.728 6.464 0 2.272-0.768 4.384-0.736 2.048-2.112 3.744l9.312 9.28-1.824 1.824-9.28-9.312zM12.8 23.008q2.784 0 5.184-1.376 2.304-1.376 3.68-3.68 1.376-2.4 1.376-5.184t-1.376-5.152q-1.376-2.336-3.68-3.68-2.4-1.408-5.184-1.408t-5.152 1.408q-2.336 1.344-3.68 3.68-1.408 2.368-1.408 5.152t1.408 5.184q1.344 2.304 3.68 3.68 2.368 1.376 5.152 1.376zM12.8 23.008v0z";const ICON_PATH_SUCCESS_NO_CIRCLE = "M1.952 18.080q-0.32-0.352-0.416-0.88t0.128-0.976l0.16-0.352q0.224-0.416 0.64-0.528t0.8 0.176l6.496 4.704q0.384 0.288 0.912 0.272t0.88-0.336l17.312-14.272q0.352-0.288 0.848-0.256t0.848 0.352l-0.416-0.416q0.32 0.352 0.32 0.816t-0.32 0.816l-18.656 18.912q-0.32 0.352-0.8 0.352t-0.8-0.32l-7.936-8.064z";const ICON_PATH_SUCCESS = "M15.808 0.16q-4.224 0-7.872 2.176-3.552 2.112-5.632 5.728-2.144 3.744-2.144 8.128 0 4.192 2.144 7.872 2.112 3.52 5.632 5.632 3.68 2.144 7.872 2.144 4.384 0 8.128-2.144 3.616-2.080 5.728-5.632 2.176-3.648 2.176-7.872 0-4.384-2.176-8.128-2.112-3.616-5.728-5.728-3.744-2.176-8.128-2.176zM24.832 11.328l-11.264 11.104q-0.032 0.032-0.112 0.032t-0.112-0.032l-5.216-5.376q-0.096-0.128 0-0.288l0.704-0.96q0.032-0.064 0.112-0.064t0.112 0.032l4.256 3.264q0.064 0.032 0.144 0.032t0.112-0.032l10.336-8.608q0.064-0.064 0.144-0.064t0.112 0.064l0.672 0.672q0.128 0.128 0 0.224z";const ICON_PATH_WAITING = "M15.84 0.096q-4.224 0-7.872 2.176-3.552 2.112-5.632 5.728-2.144 3.744-2.144 8.128 0 4.192 2.144 7.872 2.112 3.52 5.632 5.632 3.68 2.144 7.872 2.144 4.384 0 8.128-2.144 3.616-2.080 5.728-5.632 2.176-3.648 2.176-7.872 0-4.384-2.176-8.128-2.112-3.616-5.728-5.728-3.744-2.176-8.128-2.176zM23.008 21.92l-0.512 0.896q-0.096 0.128-0.224 0.064l-8-3.808q-0.096-0.064-0.16-0.128-0.128-0.096-0.128-0.288l0.512-12.096q0-0.064 0.048-0.112t0.112-0.048h1.376q0.064 0 0.112 0.048t0.048 0.112l0.448 10.848 6.304 4.256q0.064 0.064 0.080 0.128t-0.016 0.128z";const ICON_PATH_WARN = "M15.808 0.16q-4.224 0-7.872 2.176-3.552 2.112-5.632 5.728-2.144 3.744-2.144 8.128 0 4.192 2.144 7.872 2.112 3.52 5.632 5.632 3.68 2.144 7.872 2.144 4.384 0 8.128-2.144 3.616-2.080 5.728-5.632 2.176-3.648 2.176-7.872 0-4.384-2.176-8.128-2.112-3.616-5.728-5.728-3.744-2.176-8.128-2.176zM15.136 8.672h1.728q0.128 0 0.224 0.096t0.096 0.256l-0.384 10.24q0 0.064-0.048 0.112t-0.112 0.048h-1.248q-0.096 0-0.144-0.048t-0.048-0.112l-0.384-10.24q0-0.16 0.096-0.256t0.224-0.096zM16 23.328q-0.48 0-0.832-0.352t-0.352-0.848 0.352-0.848 0.832-0.352 0.832 0.352 0.352 0.848-0.352 0.848-0.832 0.352z";const ICON_PATH_BACK = "M21.781 7.844l-9.063 8.594 9.063 8.594q0.25 0.25 0.25 0.609t-0.25 0.578q-0.25 0.25-0.578 0.25t-0.578-0.25l-9.625-9.125q-0.156-0.125-0.203-0.297t-0.047-0.359q0-0.156 0.047-0.328t0.203-0.297l9.625-9.125q0.25-0.25 0.578-0.25t0.578 0.25q0.25 0.219 0.25 0.578t-0.25 0.578z";const ICON_PATH_CLOSE = "M17.25 16.156l7.375-7.313q0.281-0.281 0.281-0.641t-0.281-0.641q-0.25-0.25-0.625-0.25t-0.625 0.25l-7.375 7.344-7.313-7.344q-0.25-0.25-0.625-0.25t-0.625 0.25q-0.281 0.25-0.281 0.625t0.281 0.625l7.313 7.344-7.375 7.344q-0.281 0.25-0.281 0.625t0.281 0.625q0.125 0.125 0.281 0.188t0.344 0.063q0.156 0 0.328-0.063t0.297-0.188l7.375-7.344 7.375 7.406q0.125 0.156 0.297 0.219t0.328 0.063q0.188 0 0.344-0.078t0.281-0.203q0.281-0.25 0.281-0.609t-0.281-0.641l-7.375-7.406z";function createSvgIconVNode(path, color = "#000", size = 27) {  return vue.createVNode(    "svg",    {      width: size,      height: size,      viewBox: "0 0 32 32"    },    [      vue.createVNode(        "path",        {          d: path,          fill: color        },        null,        8,        ["d", "fill"]      )    ],    8,    ["width", "height"]  );}function useCurrentPageId() {  {    const { $pageInstance } = vue.getCurrentInstance();    return $pageInstance && $pageInstance.proxy.$page.id;  }}function getCurrentPage() {  const pages = getCurrentPages();  const len = pages.length;  if (len) {    return pages[len - 1];  }}function getCurrentPageMeta() {  const page = getCurrentPage();  if (page) {    return page.$page.meta;  }}function getCurrentPageId() {  const meta = getCurrentPageMeta();  if (meta) {    return meta.id;  }  return -1;}function getCurrentPageVm() {  const page = getCurrentPage();  if (page) {    return page.$vm;  }}const PAGE_META_KEYS = ["navigationBar", "pullToRefresh"];function initGlobalStyle() {  return JSON.parse(JSON.stringify(__uniConfig.globalStyle || {}));}function initRouteMeta(pageMeta, id2) {  const globalStyle = initGlobalStyle();  const res = shared.extend({ id: id2 }, globalStyle, pageMeta);  PAGE_META_KEYS.forEach((name) => {    res[name] = shared.extend({}, globalStyle[name], pageMeta[name]);  });  const { navigationBar } = res;  navigationBar.titleText && navigationBar.titleImage && (navigationBar.titleText = "");  return res;}function normalizePullToRefreshRpx(pullToRefresh) {  if (pullToRefresh.offset) {    pullToRefresh.offset = rpx2px(pullToRefresh.offset);  }  if (pullToRefresh.height) {    pullToRefresh.height = rpx2px(pullToRefresh.height);  }  if (pullToRefresh.range) {    pullToRefresh.range = rpx2px(pullToRefresh.range);  }  return pullToRefresh;}function initPageInternalInstance(openType, url, pageQuery, meta, eventChannel, themeMode) {  const { id: id2, route } = meta;  const titleColor = uniShared.normalizeStyles(    meta.navigationBar,    __uniConfig.themeConfig,    themeMode  ).titleColor;  return {    id: id2,    path: uniShared.addLeadingSlash(route),    route,    fullPath: url,    options: pageQuery,    meta,    openType,    eventChannel,    statusBarStyle: titleColor === "#ffffff" ? "light" : "dark"  };}function invokeHook(vm, name, args) {  if (shared.isString(vm)) {    args = name;    name = vm;    vm = getCurrentPageVm();  } else if (typeof vm === "number") {    const page = getCurrentPages().find((page2) => page2.$page.id === vm);    if (page) {      vm = page.$vm;    } else {      vm = getCurrentPageVm();    }  }  if (!vm) {    return;  }  const hooks = vm.$[name];  return hooks && uniShared.invokeArrayFns(hooks, args);}function getRealRoute(fromRoute, toRoute) {  if (toRoute.indexOf("/") === 0) {    return toRoute;  }  if (toRoute.indexOf("./") === 0) {    return getRealRoute(fromRoute, toRoute.slice(2));  }  const toRouteArray = toRoute.split("/");  const toRouteLength = toRouteArray.length;  let i = 0;  for (; i < toRouteLength && toRouteArray[i] === ".."; i++) {  }  toRouteArray.splice(0, i);  toRoute = toRouteArray.join("/");  const fromRouteArray = fromRoute.length > 0 ? fromRoute.split("/") : [];  fromRouteArray.splice(fromRouteArray.length - i - 1, i + 1);  return uniShared.addLeadingSlash(fromRouteArray.concat(toRouteArray).join("/"));}function getRouteOptions(path, alias = false) {  if (alias) {    return __uniRoutes.find(      (route) => route.path === path || route.alias === path    );  }  return __uniRoutes.find((route) => route.path === path);}const invokeOnCallback = (name, res) => UniServiceJSBridge.emit("api." + name, res);let invokeViewMethodId = 1;function publishViewMethodName(pageId) {  return (pageId || getCurrentPageId()) + "." + INVOKE_VIEW_API;}const invokeViewMethod = (name, args, pageId, callback) => {  const { subscribe, publishHandler } = UniServiceJSBridge;  const id2 = callback ? invokeViewMethodId++ : 0;  callback && subscribe(INVOKE_VIEW_API + "." + id2, callback, true);  publishHandler(publishViewMethodName(pageId), { id: id2, name, args }, pageId);};const invokeViewMethodKeepAlive = (name, args, callback, pageId) => {  const { subscribe, unsubscribe, publishHandler } = UniServiceJSBridge;  const id2 = invokeViewMethodId++;  const subscribeName = INVOKE_VIEW_API + "." + id2;  subscribe(subscribeName, callback);  publishHandler(publishViewMethodName(pageId), { id: id2, name, args }, pageId);  return () => {    unsubscribe(subscribeName);  };};const ServiceJSBridge = /* @__PURE__ */ shared.extend(  /* @__PURE__ */ initBridge(    "view"    /* view 指的是 service 层订阅的是 view 层事件 */  ),  {    invokeOnCallback,    invokeViewMethod,    invokeViewMethodKeepAlive  });function initAppVm(appVm2) {  appVm2.$vm = appVm2;  appVm2.$mpType = "app";  const locale = vue.ref(useI18n().getLocale());  Object.defineProperty(appVm2, "$locale", {    get() {      return locale.value;    },    set(v2) {      locale.value = v2;    }  });}function initPageVm(pageVm, page) {  pageVm.route = page.route;  pageVm.$vm = pageVm;  pageVm.$page = page;  pageVm.$mpType = "page";  pageVm.$fontFamilySet = /* @__PURE__ */ new Set();  if (page.meta.isTabBar) {    pageVm.$.__isTabBar = true;    pageVm.$.__isActive = true;  }}function defineGlobalData(app, defaultGlobalData) {  const options = app.$options || {};  options.globalData = shared.extend(options.globalData || {}, defaultGlobalData);  Object.defineProperty(app, "globalData", {    get() {      return options.globalData;    },    set(newGlobalData) {      options.globalData = newGlobalData;    }  });}function converPx(value) {  if (/^-?\d+[ur]px$/i.test(value)) {    return value.replace(/(^-?\d+)[ur]px$/i, (text, num) => {      return `${uni.upx2px(parseFloat(num))}px`;    });  } else if (/^-?[\d\.]+$/.test(value)) {    return `${value}px`;  }  return value || "";}function converType(type) {  return type.replace(/[A-Z]/g, (text) => {    return `-${text.toLowerCase()}`;  }).replace("webkit", "-webkit");}function getStyle(action) {  const animateTypes1 = [    "matrix",    "matrix3d",    "scale",    "scale3d",    "rotate3d",    "skew",    "translate",    "translate3d"  ];  const animateTypes2 = [    "scaleX",    "scaleY",    "scaleZ",    "rotate",    "rotateX",    "rotateY",    "rotateZ",    "skewX",    "skewY",    "translateX",    "translateY",    "translateZ"  ];  const animateTypes3 = ["opacity", "background-color"];  const animateTypes4 = ["width", "height", "left", "right", "top", "bottom"];  const animates = action.animates;  const option = action.option;  const transition = option.transition;  const style = {};  const transform = [];  animates.forEach((animate) => {    let type = animate.type;    let args = [...animate.args];    if (animateTypes1.concat(animateTypes2).includes(type)) {      if (type.startsWith("rotate") || type.startsWith("skew")) {        args = args.map((value) => parseFloat(value) + "deg");      } else if (type.startsWith("translate")) {        args = args.map(converPx);      }      if (animateTypes2.indexOf(type) >= 0) {        args.length = 1;      }      transform.push(`${type}(${args.join(",")})`);    } else if (animateTypes3.concat(animateTypes4).includes(args[0])) {      type = args[0];      const value = args[1];      style[type] = animateTypes4.includes(type) ? converPx(value) : value;    }  });  style.transform = style.webkitTransform = transform.join(" ");  style.transition = style.webkitTransition = Object.keys(style).map(    (type) => `${converType(type)} ${transition.duration}ms ${transition.timingFunction} ${transition.delay}ms`  ).join(",");  style.transformOrigin = style.webkitTransformOrigin = option.transformOrigin;  return style;}function startAnimation(context) {  const animation2 = context.animation;  if (!animation2 || !animation2.actions || !animation2.actions.length) {    return;  }  let index2 = 0;  const actions = animation2.actions;  const length = animation2.actions.length;  function animate() {    const action = actions[index2];    const transition = action.option.transition;    const style = getStyle(action);    Object.keys(style).forEach((key) => {      context.$el.style[key] = style[key];    });    index2 += 1;    if (index2 < length) {      setTimeout(animate, transition.duration + transition.delay);    }  }  setTimeout(() => {    animate();  }, 0);}const animation = {  props: ["animation"],  watch: {    animation: {      deep: true,      handler() {        startAnimation(this);      }    }  },  mounted() {    startAnimation(this);  }};const defineBuiltInComponent = (options) => {  options.__reserved = true;  const { props: props2, mixins } = options;  if (!props2 || !props2.animation) {    (mixins || (options.mixins = [])).push(animation);  }  return defineSystemComponent(options);};const defineSystemComponent = (options) => {  options.__reserved = true;  options.compatConfig = {    MODE: 3    // 标记为vue3  };  return vue.defineComponent(options);};const defineUnsupportedComponent = (name) => {  return defineBuiltInComponent({    name: shared.capitalize(shared.camelize(name)),    setup() {      return () => (vue.openBlock(), vue.createElementBlock("uni-" + name, null, name + " is unsupported"));    }  });};function withWebEvent(fn) {  return fn.__wwe = true, fn;}function useCustomEvent(ref, emit2) {  return (name, evt, detail) => {    if (ref.value) {      emit2(name, normalizeCustomEvent(name, evt, ref.value, detail || {}));    }  };}function normalizeCustomEvent(name, domEvt, el, detail) {  let target;  target = uniShared.normalizeTarget(el);  return {    type: detail.type || name,    timeStamp: domEvt.timeStamp || 0,    target,    currentTarget: target,    detail  };}const hoverProps = {  hoverClass: {    type: String,    default: "none"  },  hoverStopPropagation: {    type: Boolean,    default: false  },  hoverStartTime: {    type: [Number, String],    default: 50  },  hoverStayTime: {    type: [Number, String],    default: 400  }};function useHover(props2) {  const hovering = vue.ref(false);  let hoverTouch = false;  let hoverStartTimer;  let hoverStayTimer;  function hoverReset() {    requestAnimationFrame(() => {      clearTimeout(hoverStayTimer);      hoverStayTimer = setTimeout(() => {        hovering.value = false;      }, parseInt(props2.hoverStayTime));    });  }  function onTouchstartPassive(evt) {    if (evt.touches.length > 1) {      return;    }    handleHoverStart(evt);  }  function onMousedown(evt) {    if (hoverTouch) {      return;    }    handleHoverStart(evt);    window.addEventListener("mouseup", handlePCHoverEnd);  }  function handleHoverStart(evt) {    if (evt._hoverPropagationStopped) {      return;    }    if (!props2.hoverClass || props2.hoverClass === "none" || props2.disabled) {      return;    }    if (props2.hoverStopPropagation) {      evt._hoverPropagationStopped = true;    }    hoverTouch = true;    hoverStartTimer = setTimeout(() => {      hovering.value = true;      if (!hoverTouch) {        hoverReset();      }    }, parseInt(props2.hoverStartTime));  }  function onTouchend() {    handleHoverEnd();  }  function onMouseup() {    if (!hoverTouch) {      return;    }    handlePCHoverEnd();  }  function handleHoverEnd() {    hoverTouch = false;    if (hovering.value) {      hoverReset();    }  }  function handlePCHoverEnd() {    handleHoverEnd();    window.removeEventListener("mouseup", handlePCHoverEnd);  }  function onTouchcancel() {    hoverTouch = false;    hovering.value = false;    clearTimeout(hoverStartTimer);  }  return {    hovering,    binding: {      onTouchstartPassive: withWebEvent(onTouchstartPassive),      onMousedown: withWebEvent(onMousedown),      onTouchend: withWebEvent(onTouchend),      onMouseup: withWebEvent(onMouseup),      onTouchcancel: withWebEvent(onTouchcancel)    }  };}function useBooleanAttr(props2, keys) {  if (shared.isString(keys)) {    keys = [keys];  }  return keys.reduce((res, key) => {    if (props2[key]) {      res[key] = true;    }    return res;  }, /* @__PURE__ */ Object.create(null));}function transformRpx(value) {  if (/(-?(?:\d+\.)?\d+)[ur]px/gi.test(value)) {    return value.replace(/(-?(?:\d+\.)?\d+)[ur]px/gi, (text, num) => {      return `${uni.upx2px(parseFloat(num))}px`;    });  }  return value;}class UniElement extends HTMLElement {  constructor() {    super();    this._props = {};    this.__isUniElement = true;  }  attachVmProps(props2) {    this._props = props2;  }  getAttribute(qualifiedName) {    const name = shared.camelize(qualifiedName);    return name in this._props ? this._props[name] + "" : super.getAttribute(qualifiedName) || null;  }  get style() {    const originalStyle = super.style;    if (originalStyle.__patchRpx__) {      return originalStyle;    }    originalStyle.__patchRpx__ = true;    const originalSetProperty = originalStyle.setProperty.bind(originalStyle);    super.style.setProperty = function(property, value, priority) {      return originalSetProperty(        property,        value ? transformRpx(value + "") : value,        priority || void 0      );    };    return super.style;  }  get tagName() {    return super.tagName.replace(/^UNI-/, "");  }  get nodeName() {    return super.nodeName.replace(/^UNI-/, "");  }}const uniFormKey = PolySymbol(process.env.NODE_ENV !== "production" ? "uniForm" : "uf");const index$B = /* @__PURE__ */ defineBuiltInComponent({  name: "Form",  emits: ["submit", "reset"],  setup(_props, {    slots,    emit: emit2  }) {    const rootRef = vue.ref(null);    provideForm(useCustomEvent(rootRef, emit2));    return () => vue.createVNode("uni-form", {      "ref": rootRef    }, [vue.createVNode("span", null, [slots.default && slots.default()])], 512);  }});function provideForm(trigger) {  const fields2 = [];  vue.provide(uniFormKey, {    addField(field) {      fields2.push(field);    },    removeField(field) {      fields2.splice(fields2.indexOf(field), 1);    },    submit(evt) {      trigger("submit", evt, {        value: fields2.reduce((res, field) => {          if (field.submit) {            const [name, value] = field.submit();            name && (res[name] = value);          }          return res;        }, /* @__PURE__ */ Object.create(null))      });    },    reset(evt) {      fields2.forEach((field) => field.reset && field.reset());      trigger("reset", evt);    }  });  return fields2;}const labelProps = {  for: {    type: String,    default: ""  }};const uniLabelKey = PolySymbol(process.env.NODE_ENV !== "production" ? "uniLabel" : "ul");function useProvideLabel() {  const handlers = [];  vue.provide(uniLabelKey, {    addHandler(handler) {      handlers.push(handler);    },    removeHandler(handler) {      handlers.splice(handlers.indexOf(handler), 1);    }  });  return handlers;}const index$A = /* @__PURE__ */ defineBuiltInComponent({  name: "Label",  props: labelProps,  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    const pageId = useCurrentPageId();    const handlers = useProvideLabel();    const pointer = vue.computed(() => props2.for || slots.default && slots.default.length);    const _onClick = withWebEvent(($event) => {      const EventTarget = $event.target;      let stopPropagation = /^uni-(checkbox|radio|switch)-/.test(EventTarget.className);      if (!stopPropagation) {        stopPropagation = /^uni-(checkbox|radio|switch|button)$|^(svg|path)$/i.test(EventTarget.tagName);      }      if (stopPropagation) {        return;      }      if (props2.for) {        UniViewJSBridge.emit("uni-label-click-" + pageId + "-" + props2.for, $event, true);      } else {        handlers.length && handlers[0]($event, true);      }    });    return () => vue.createVNode("uni-label", {      "ref": rootRef,      "class": {        "uni-label-pointer": pointer      },      "onClick": _onClick    }, [slots.default && slots.default()], 10, ["onClick"]);  }});const buttonProps = {  id: {    type: String,    default: ""  },  hoverClass: {    type: String,    default: "button-hover"  },  hoverStartTime: {    type: [Number, String],    default: 20  },  hoverStayTime: {    type: [Number, String],    default: 70  },  hoverStopPropagation: {    type: Boolean,    default: false  },  disabled: {    type: [Boolean, String],    default: false  },  formType: {    type: String,    default: ""  },  openType: {    type: String,    default: ""  },  loading: {    type: [Boolean, String],    default: false  },  plain: {    type: [Boolean, String],    default: false  }};const index$z = /* @__PURE__ */ defineBuiltInComponent({  name: "Button",  props: buttonProps,  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    const uniForm = vue.inject(uniFormKey, false);    const {      hovering,      binding    } = useHover(props2);    const onClick = withWebEvent((e2, isLabelClick) => {      if (props2.disabled) {        return e2.stopImmediatePropagation();      }      if (isLabelClick) {        rootRef.value.click();      }      const formType = props2.formType;      if (formType) {        if (!uniForm) {          return;        }        if (formType === "submit") {          uniForm.submit(e2);        } else if (formType === "reset") {          uniForm.reset(e2);        }        return;      }    });    const uniLabel = vue.inject(uniLabelKey, false);    if (uniLabel) {      uniLabel.addHandler(onClick);    }    return () => {      const hoverClass = props2.hoverClass;      const booleanAttrs = useBooleanAttr(props2, "disabled");      const loadingAttrs = useBooleanAttr(props2, "loading");      const plainAttrs = useBooleanAttr(props2, "plain");      const hasHoverClass = hoverClass && hoverClass !== "none";      return vue.createVNode("uni-button", vue.mergeProps({        "ref": rootRef,        "onClick": onClick,        "id": props2.id,        "class": hasHoverClass && hovering.value ? hoverClass : ""      }, hasHoverClass && binding, booleanAttrs, loadingAttrs, plainAttrs), [slots.default && slots.default()], 16, ["onClick", "id"]);    };  }});const props$r = {  disableScroll: {    type: [Boolean, String],    default: false  }};class UniCanvasElement extends UniElement {  get width() {    return this.querySelector("canvas").width;  }  set width(value) {    this.querySelector("canvas").width = value;  }  get height() {    return this.querySelector("canvas").height;  }  set height(value) {    this.querySelector("canvas").height = value;  }  getContext(contextId, options) {    return this.querySelector("canvas").getContext(contextId, options);  }  toBlob(...args) {    const c = this.querySelector("canvas");    return c.toBlob.apply(c, args);  }  toDataURL(type, encoderOptions) {    return this.querySelector("canvas").toDataURL(type, encoderOptions);  }}const indexX$4 = /* @__PURE__ */ defineBuiltInComponent({  inheritAttrs: true,  name: "Canvas",  compatConfig: {    MODE: 3  },  props: props$r,  rootElement: {    name: "uni-canvas",    class: UniCanvasElement  },  setup(props2, {}) {    const rootRef = vue.ref(null);    const canvas = vue.ref(null);    return () => {      return vue.createVNode("uni-canvas", {        "ref": rootRef      }, [vue.createVNode("canvas", {        "ref": canvas,        "class": "uni-canvas-canvas"      }, null, 512)], 512);    };  }});const uniCheckGroupKey = PolySymbol(process.env.NODE_ENV !== "production" ? "uniCheckGroup" : "ucg");const props$q = {  name: {    type: String,    default: ""  }};const index$y = /* @__PURE__ */ defineBuiltInComponent({  name: "CheckboxGroup",  props: props$q,  emits: ["change"],  setup(props2, {    emit: emit2,    slots  }) {    const rootRef = vue.ref(null);    const trigger = useCustomEvent(rootRef, emit2);    useProvideCheckGroup(props2, trigger);    return () => {      return vue.createVNode("uni-checkbox-group", {        "ref": rootRef      }, [slots.default && slots.default()], 512);    };  }});function useProvideCheckGroup(props2, trigger) {  const fields2 = [];  const getFieldsValue = () => fields2.reduce((res, field) => {    if (field.value.checkboxChecked) {      res.push(field.value.value);    }    return res;  }, new Array());  vue.provide(uniCheckGroupKey, {    addField(field) {      fields2.push(field);    },    removeField(field) {      fields2.splice(fields2.indexOf(field), 1);    },    checkboxChange($event) {      trigger("change", $event, {        value: getFieldsValue()      });    }  });  const uniForm = vue.inject(uniFormKey, false);  if (uniForm) {    uniForm.addField({      submit: () => {        let data = ["", null];        if (props2.name !== "") {          data[0] = props2.name;          data[1] = getFieldsValue();        }        return data;      }    });  }  return getFieldsValue;}const props$p = {  checked: {    type: [Boolean, String],    default: false  },  id: {    type: String,    default: ""  },  disabled: {    type: [Boolean, String],    default: false  },  value: {    type: String,    default: ""  },  color: {    type: String,    default: "#007aff"  },  backgroundColor: {    type: String,    default: ""  },  borderColor: {    type: String,    default: ""  },  activeBackgroundColor: {    type: String,    default: ""  },  activeBorderColor: {    type: String,    default: ""  },  iconColor: {    type: String,    default: ""  },  // 图标颜色,同color,优先级大于iconColor  foreColor: {    type: String,    default: ""  }};const index$x = /* @__PURE__ */ defineBuiltInComponent({  name: "Checkbox",  props: props$p,  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    const checkboxChecked = vue.ref(props2.checked);    const checkboxCheckedBool = vue.computed(() => {      return checkboxChecked.value === "true" || checkboxChecked.value === true;    });    const checkboxValue = vue.ref(props2.value);    function getCheckBoxStyle(checked) {      if (props2.disabled) {        return {          backgroundColor: "#E1E1E1",          borderColor: "#D1D1D1"        };      }      const style = {};      if (checked) {        if (props2.activeBorderColor)          style.borderColor = props2.activeBorderColor;        if (props2.activeBackgroundColor)          style.backgroundColor = props2.activeBackgroundColor;      } else {        if (props2.borderColor)          style.borderColor = props2.borderColor;        if (props2.backgroundColor)          style.backgroundColor = props2.backgroundColor;      }      return style;    }    const checkboxStyle = vue.computed(() => {      return getCheckBoxStyle(checkboxCheckedBool.value);    });    vue.watch([() => props2.checked, () => props2.value], ([newChecked, newModelValue]) => {      checkboxChecked.value = newChecked;      checkboxValue.value = newModelValue;    });    const reset = () => {      checkboxChecked.value = false;    };    const {      uniCheckGroup,      uniLabel    } = useCheckboxInject(checkboxChecked, checkboxValue, reset);    const _onClick = ($event) => {      if (props2.disabled) {        return;      }      checkboxChecked.value = !checkboxChecked.value;      uniCheckGroup && uniCheckGroup.checkboxChange($event);      $event.stopPropagation();    };    if (!!uniLabel) {      uniLabel.addHandler(_onClick);    }    return () => {      const booleanAttrs = useBooleanAttr(props2, "disabled");      let realCheckValue;      realCheckValue = checkboxChecked.value;      return vue.createVNode("uni-checkbox", vue.mergeProps(booleanAttrs, {        "id": props2.id,        "onClick": _onClick,        "ref": rootRef      }), [vue.createVNode("div", {        "class": "uni-checkbox-wrapper",        "style": {          "--HOVER-BD-COLOR": props2.activeBorderColor        }      }, [vue.createVNode("div", {        "class": ["uni-checkbox-input", {          "uni-checkbox-input-disabled": props2.disabled        }],        "style": checkboxStyle.value      }, [realCheckValue ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, props2.disabled ? "#ADADAD" : props2.foreColor || props2.iconColor || props2.color, 22) : ""], 6), slots.default && slots.default()], 4)], 16, ["id", "onClick"]);    };  }});function useCheckboxInject(checkboxChecked, checkboxValue, reset) {  const field = vue.computed(() => ({    checkboxChecked: Boolean(checkboxChecked.value),    value: checkboxValue.value  }));  const formField = {    reset  };  const uniCheckGroup = vue.inject(uniCheckGroupKey, false);  if (!!uniCheckGroup) {    uniCheckGroup.addField(field);  }  const uniForm = vue.inject(uniFormKey, false);  if (!!uniForm) {    uniForm.addField(formField);  }  const uniLabel = vue.inject(uniLabelKey, false);  return {    uniCheckGroup,    uniForm,    uniLabel  };}let resetTimer;function iosHideKeyboard() {}const props$o = {  cursorSpacing: {    type: [Number, String],    default: 0  },  showConfirmBar: {    type: [Boolean, String],    default: "auto"  },  adjustPosition: {    type: [Boolean, String],    default: true  },  autoBlur: {    type: [Boolean, String],    default: false  }};const emit$1 = ["keyboardheightchange"];function useKeyboard$1(props2, elRef, trigger) {  function initKeyboard(el) {    const isApple = vue.computed(      () => String(navigator.vendor).indexOf("Apple") === 0    );    el.addEventListener("focus", () => {      clearTimeout(resetTimer);      document.addEventListener("click", iosHideKeyboard, false);    });    const onKeyboardHide = () => {      document.removeEventListener("click", iosHideKeyboard, false);      if (isApple.value) {        document.documentElement.scrollTo(          document.documentElement.scrollLeft,          document.documentElement.scrollTop        );      }    };    el.addEventListener("blur", () => {      if (isApple.value) {        el.blur();      }      onKeyboardHide();    });  }  vue.watch(    () => elRef.value,    (el) => el && initKeyboard(el)  );}function addBase(filePath) {  const { base: baseUrl } = __uniConfig.router;  if (uniShared.addLeadingSlash(filePath).indexOf(baseUrl) === 0) {    return uniShared.addLeadingSlash(filePath);  }  return baseUrl + filePath;}function getRealPath(filePath) {  const { base, assets } = __uniConfig.router;  if (base === "./") {    if (filePath.indexOf("./") === 0 && (filePath.includes("/static/") || filePath.indexOf("./" + (assets || "assets") + "/") === 0)) {      filePath = filePath.slice(1);    }  }  if (filePath.indexOf("/") === 0) {    if (filePath.indexOf("//") === 0) {      filePath = "https:" + filePath;    } else {      return addBase(filePath.slice(1));    }  }  if (uniShared.SCHEME_RE.test(filePath) || uniShared.DATA_RE.test(filePath) || filePath.indexOf("blob:") === 0) {    return filePath;  }  {    if (process.env.NODE_ENV !== "production") {      if (!filePath.includes("/static/")) {        return filePath;      }    }  }  const pages = getCurrentPages();  if (pages.length) {    return addBase(      getRealRoute(pages[pages.length - 1].$page.route, filePath).slice(1)    );  }  return filePath;}const HTTP_METHODS = [  "GET",  "OPTIONS",  "HEAD",  "POST",  "PUT",  "DELETE",  "TRACE",  "CONNECT",  "PATCH"];function elemInArray(str, arr) {  if (!str || arr.indexOf(str) === -1) {    return arr[0];  }  return str;}function validateProtocolFail(name, msg) {  console.warn(`${name}: ${msg}`);}function validateProtocol(name, data, protocol, onFail) {  if (!onFail) {    onFail = validateProtocolFail;  }  for (const key in protocol) {    const errMsg = validateProp(      key,      data[key],      protocol[key],      !shared.hasOwn(data, key)    );    if (shared.isString(errMsg)) {      onFail(name, errMsg);    }  }}function validateProtocols(name, args, protocol, onFail) {  if (!protocol) {    return;  }  if (!shared.isArray(protocol)) {    return validateProtocol(      name,      args[0] || /* @__PURE__ */ Object.create(null),      protocol,      onFail    );  }  const len = protocol.length;  const argsLen = args.length;  for (let i = 0; i < len; i++) {    const opts = protocol[i];    const data = /* @__PURE__ */ Object.create(null);    if (argsLen > i) {      data[opts.name] = args[i];    }    validateProtocol(name, data, { [opts.name]: opts }, onFail);  }}function validateProp(name, value, prop, isAbsent) {  if (!shared.isPlainObject(prop)) {    prop = { type: prop };  }  const { type, required, validator } = prop;  if (required && isAbsent) {    return 'Missing required args: "' + name + '"';  }  if (value == null && !required) {    return;  }  if (type != null) {    let isValid = false;    const types = shared.isArray(type) ? type : [type];    const expectedTypes = [];    for (let i = 0; i < types.length && !isValid; i++) {      const { valid, expectedType } = assertType(value, types[i]);      expectedTypes.push(expectedType || "");      isValid = valid;    }    if (!isValid) {      return getInvalidTypeMessage(name, value, expectedTypes);    }  }  if (validator) {    return validator(value);  }}const isSimpleType = /* @__PURE__ */ shared.makeMap(  "String,Number,Boolean,Function,Symbol");function assertType(value, type) {  let valid;  const expectedType = getType(type);  if (isSimpleType(expectedType)) {    const t2 = typeof value;    valid = t2 === expectedType.toLowerCase();    if (!valid && t2 === "object") {      valid = value instanceof type;    }  } else if (expectedType === "Object") {    valid = shared.isObject(value);  } else if (expectedType === "Array") {    valid = shared.isArray(value);  } else {    {      valid = value instanceof type;    }  }  return {    valid,    expectedType  };}function getInvalidTypeMessage(name, value, expectedTypes) {  let message = `Invalid args: type check failed for args "${name}". Expected ${expectedTypes.map(shared.capitalize).join(", ")}`;  const expectedType = expectedTypes[0];  const receivedType = shared.toRawType(value);  const expectedValue = styleValue(value, expectedType);  const receivedValue = styleValue(value, receivedType);  if (expectedTypes.length === 1 && isExplicable(expectedType) && !isBoolean(expectedType, receivedType)) {    message += ` with value ${expectedValue}`;  }  message += `, got ${receivedType} `;  if (isExplicable(receivedType)) {    message += `with value ${receivedValue}.`;  }  return message;}function getType(ctor) {  const match = ctor && ctor.toString().match(/^\s*function (\w+)/);  return match ? match[1] : "";}function styleValue(value, type) {  if (type === "String") {    return `"${value}"`;  } else if (type === "Number") {    return `${Number(value)}`;  } else {    return `${value}`;  }}function isExplicable(type) {  const explicitTypes = ["string", "number", "boolean"];  return explicitTypes.some((elem) => type.toLowerCase() === elem);}function isBoolean(...args) {  return args.some((elem) => elem.toLowerCase() === "boolean");}function tryCatch(fn) {  return function() {    try {      return fn.apply(fn, arguments);    } catch (e2) {      console.error(e2);    }  };}let invokeCallbackId = 1;const invokeCallbacks = {};function addInvokeCallback(id2, name, callback, keepAlive = false) {  invokeCallbacks[id2] = {    name,    keepAlive,    callback  };  return id2;}function invokeCallback(id2, res, extras) {  if (typeof id2 === "number") {    const opts = invokeCallbacks[id2];    if (opts) {      if (!opts.keepAlive) {        delete invokeCallbacks[id2];      }      return opts.callback(res, extras);    }  }  return res;}const API_SUCCESS = "success";const API_FAIL = "fail";const API_COMPLETE = "complete";function getApiCallbacks(args) {  const apiCallbacks = {};  for (const name in args) {    const fn = args[name];    if (shared.isFunction(fn)) {      apiCallbacks[name] = tryCatch(fn);      delete args[name];    }  }  return apiCallbacks;}function normalizeErrMsg(errMsg, name) {  if (!errMsg || errMsg.indexOf(":fail") === -1) {    return name + ":ok";  }  return name + errMsg.substring(errMsg.indexOf(":fail"));}function createAsyncApiCallback(name, args = {}, { beforeAll, beforeSuccess } = {}) {  if (!shared.isPlainObject(args)) {    args = {};  }  const { success, fail, complete } = getApiCallbacks(args);  const hasSuccess = shared.isFunction(success);  const hasFail = shared.isFunction(fail);  const hasComplete = shared.isFunction(complete);  const callbackId = invokeCallbackId++;  addInvokeCallback(callbackId, name, (res) => {    res = res || {};    res.errMsg = normalizeErrMsg(res.errMsg, name);    shared.isFunction(beforeAll) && beforeAll(res);    if (res.errMsg === name + ":ok") {      shared.isFunction(beforeSuccess) && beforeSuccess(res, args);      hasSuccess && success(res);    } else {      hasFail && fail(res);    }    hasComplete && complete(res);  });  return callbackId;}const HOOK_SUCCESS = "success";const HOOK_FAIL = "fail";const HOOK_COMPLETE = "complete";const globalInterceptors = {};const scopedInterceptors = {};function wrapperHook(hook, params) {  return function(data) {    return hook(data, params) || data;  };}function queue(hooks, data, params) {  let promise = false;  for (let i = 0; i < hooks.length; i++) {    const hook = hooks[i];    if (promise) {      promise = Promise.resolve(wrapperHook(hook, params));    } else {      const res = hook(data, params);      if (shared.isPromise(res)) {        promise = Promise.resolve(res);      }      if (res === false) {        return {          then() {          },          catch() {          }        };      }    }  }  return promise || {    then(callback) {      return callback(data);    },    catch() {    }  };}function wrapperOptions(interceptors, options = {}) {  [HOOK_SUCCESS, HOOK_FAIL, HOOK_COMPLETE].forEach((name) => {    const hooks = interceptors[name];    if (!shared.isArray(hooks)) {      return;    }    const oldCallback = options[name];    options[name] = function callbackInterceptor(res) {      queue(hooks, res, options).then((res2) => {        return shared.isFunction(oldCallback) && oldCallback(res2) || res2;      });    };  });  return options;}function wrapperReturnValue(method, returnValue) {  const returnValueHooks = [];  if (shared.isArray(globalInterceptors.returnValue)) {    returnValueHooks.push(...globalInterceptors.returnValue);  }  const interceptor = scopedInterceptors[method];  if (interceptor && shared.isArray(interceptor.returnValue)) {    returnValueHooks.push(...interceptor.returnValue);  }  returnValueHooks.forEach((hook) => {    returnValue = hook(returnValue) || returnValue;  });  return returnValue;}function getApiInterceptorHooks(method) {  const interceptor = /* @__PURE__ */ Object.create(null);  Object.keys(globalInterceptors).forEach((hook) => {    if (hook !== "returnValue") {      interceptor[hook] = globalInterceptors[hook].slice();    }  });  const scopedInterceptor = scopedInterceptors[method];  if (scopedInterceptor) {    Object.keys(scopedInterceptor).forEach((hook) => {      if (hook !== "returnValue") {        interceptor[hook] = (interceptor[hook] || []).concat(          scopedInterceptor[hook]        );      }    });  }  return interceptor;}function invokeApi(method, api2, options, params) {  const interceptor = getApiInterceptorHooks(method);  if (interceptor && Object.keys(interceptor).length) {    if (shared.isArray(interceptor.invoke)) {      const res = queue(interceptor.invoke, options);      return res.then((options2) => {        return api2(          wrapperOptions(getApiInterceptorHooks(method), options2),          ...params        );      });    } else {      return api2(wrapperOptions(interceptor, options), ...params);    }  }  return api2(options, ...params);}function hasCallback(args) {  if (shared.isPlainObject(args) && [API_SUCCESS, API_FAIL, API_COMPLETE].find(    (cb) => shared.isFunction(args[cb])  )) {    return true;  }  return false;}function handlePromise(promise) {  return promise;}function promisify(name, fn) {  return (args = {}, ...rest) => {    if (hasCallback(args)) {      return wrapperReturnValue(name, invokeApi(name, fn, args, rest));    }    return wrapperReturnValue(      name,      handlePromise(        new Promise((resolve, reject) => {          invokeApi(            name,            fn,            shared.extend(args, { success: resolve, fail: reject }),            rest          );        })      )    );  };}function formatApiArgs(args, options) {  const params = args[0];  if (!options || !options.formatArgs || !shared.isPlainObject(options.formatArgs) && shared.isPlainObject(params)) {    return;  }  const formatArgs = options.formatArgs;  const keys = Object.keys(formatArgs);  for (let i = 0; i < keys.length; i++) {    const name = keys[i];    const formatterOrDefaultValue = formatArgs[name];    if (shared.isFunction(formatterOrDefaultValue)) {      const errMsg = formatterOrDefaultValue(args[0][name], params);      if (shared.isString(errMsg)) {        return errMsg;      }    } else {      if (!shared.hasOwn(params, name)) {        params[name] = formatterOrDefaultValue;      }    }  }}function invokeSuccess(id2, name, res) {  const result = {    errMsg: name + ":ok"  };  result.errSubject = name;  return invokeCallback(id2, shared.extend(res || {}, result));}function invokeFail(id2, name, errMsg, errRes = {}) {  const apiErrMsg = name + ":fail" + (errMsg ? " " + errMsg : "");  let res = shared.extend({ errMsg: apiErrMsg }, errRes);  if (typeof UniError !== "undefined") {    res = typeof errRes.errCode !== "undefined" ? new UniError(name, errRes.errCode, apiErrMsg) : new UniError(apiErrMsg, errRes);  }  return invokeCallback(id2, res);}function beforeInvokeApi(name, args, protocol, options) {  if (process.env.NODE_ENV !== "production") {    validateProtocols(name, args, protocol);  }  if (options && options.beforeInvoke) {    const errMsg2 = options.beforeInvoke(args);    if (shared.isString(errMsg2)) {      return errMsg2;    }  }  const errMsg = formatApiArgs(args, options);  if (errMsg) {    return errMsg;  }}function parseErrMsg(errMsg) {  if (!errMsg || shared.isString(errMsg)) {    return errMsg;  }  if (errMsg.stack) {    console.error(errMsg.message + "\n" + errMsg.stack);    return errMsg.message;  }  return errMsg;}function wrapperTaskApi(name, fn, protocol, options) {  return (args) => {    const id2 = createAsyncApiCallback(name, args, options);    const errMsg = beforeInvokeApi(name, [args], protocol, options);    if (errMsg) {      return invokeFail(id2, name, errMsg);    }    return fn(args, {      resolve: (res) => invokeSuccess(id2, name, res),      reject: (errMsg2, errRes) => invokeFail(id2, name, parseErrMsg(errMsg2), errRes)    });  };}function wrapperSyncApi(name, fn, protocol, options) {  return (...args) => {    const errMsg = beforeInvokeApi(name, args, protocol, options);    if (errMsg) {      throw new Error(errMsg);    }    return fn.apply(null, args);  };}function wrapperAsyncApi(name, fn, protocol, options) {  return wrapperTaskApi(name, fn, protocol, options);}function defineTaskApi(name, fn, protocol, options) {  return promisify(    name,    wrapperTaskApi(name, fn, process.env.NODE_ENV !== "production" ? protocol : void 0, options)  );}function defineSyncApi(name, fn, protocol, options) {  return wrapperSyncApi(    name,    fn,    process.env.NODE_ENV !== "production" ? protocol : void 0,    options  );}function defineAsyncApi(name, fn, protocol, options) {  return promisify(    name,    wrapperAsyncApi(name, fn, process.env.NODE_ENV !== "production" ? protocol : void 0, options)  );}const API_ON_TAB_BAR_MID_BUTTON_TAP = "onTabBarMidButtonTap";const API_GET_LOCALE = "getLocale";const getLocale = /* @__PURE__ */ defineSyncApi(  API_GET_LOCALE,  () => {    const app = getApp({ allowDefault: true });    if (app && app.$vm) {      return app.$vm.$locale;    }    return useI18n().getLocale();  });const API_GET_STORAGE = "getStorage";const GetStorageProtocol = {  key: {    type: String,    required: true  }};const API_GET_STORAGE_SYNC = "getStorageSync";const GetStorageSyncProtocol = [  {    name: "key",    type: String,    required: true  }];const API_SET_STORAGE = "setStorage";const SetStorageProtocol = {  key: {    type: String,    required: true  },  data: {    required: true  }};const API_SET_STORAGE_SYNC = "setStorageSync";const SetStorageSyncProtocol = [  {    name: "key",    type: String,    required: true  },  {    name: "data",    required: true  }];const API_REMOVE_STORAGE = "removeStorage";const RemoveStorageProtocol = GetStorageProtocol;const RemoveStorageSyncProtocol = GetStorageSyncProtocol;const API_REQUEST = "request";const dataType = {  JSON: "json"};const RESPONSE_TYPE = ["text", "arraybuffer"];const DEFAULT_RESPONSE_TYPE = "text";const encode = encodeURIComponent;function stringifyQuery(url, data) {  let str = url.split("#");  const hash = str[1] || "";  str = str[0].split("?");  let query = str[1] || "";  url = str[0];  const search = query.split("&").filter((item) => item);  const params = {};  search.forEach((item) => {    const part = item.split("=");    params[part[0]] = part[1];  });  for (const key in data) {    if (shared.hasOwn(data, key)) {      let v2 = data[key];      if (typeof v2 === "undefined" || v2 === null) {        v2 = "";      } else if (shared.isPlainObject(v2)) {        v2 = JSON.stringify(v2);      }      params[encode(key)] = encode(v2);    }  }  query = Object.keys(params).map((item) => `${item}=${params[item]}`).join("&");  return url + (query ? "?" + query : "") + (hash ? "#" + hash : "");}const RequestProtocol = {  method: String,  data: [Object, String, Array, ArrayBuffer],  url: {    type: String,    required: true  },  header: Object,  dataType: String,  responseType: String,  withCredentials: Boolean};const RequestOptions = {  formatArgs: {    method(value, params) {      params.method = elemInArray(        (value || "").toUpperCase(),        HTTP_METHODS      );    },    data(value, params) {      params.data = value || "";    },    url(value, params) {      if (params.method === HTTP_METHODS[0] && shared.isPlainObject(params.data) && Object.keys(params.data).length) {        params.url = stringifyQuery(value, params.data);      }    },    header(value, params) {      const header = params.header = value || {};      if (params.method !== HTTP_METHODS[0]) {        if (!Object.keys(header).find(          (key) => key.toLowerCase() === "content-type"        )) {          header["Content-Type"] = "application/json";        }      }    },    dataType(value, params) {      params.dataType = (value || dataType.JSON).toLowerCase();    },    responseType(value, params) {      params.responseType = (value || "").toLowerCase();      if (RESPONSE_TYPE.indexOf(params.responseType) === -1) {        params.responseType = DEFAULT_RESPONSE_TYPE;      }    }  }};const API_SET_NAVIGATION_BAR_COLOR = "setNavigationBarColor";const API_SET_NAVIGATION_BAR_TITLE = "setNavigationBarTitle";const SetNavigationBarTitleProtocol = {  title: {    type: String,    required: true  }};const API_SHOW_NAVIGATION_BAR_LOADING = "showNavigationBarLoading";const API_HIDE_NAVIGATION_BAR_LOADING = "hideNavigationBarLoading";var startTag = /^<([-A-Za-z0-9_]+)((?:\s+[a-zA-Z_:][-a-zA-Z0-9_:.]*(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/;var endTag = /^<\/([-A-Za-z0-9_]+)[^>]*>/;var attr = /([a-zA-Z_:][-a-zA-Z0-9_:.]*)(?:\s*=\s*(?:(?:"((?:\\.|[^"])*)")|(?:'((?:\\.|[^'])*)')|([^>\s]+)))?/g;var empty = /* @__PURE__ */ makeMap(  "area,base,basefont,br,col,frame,hr,img,input,link,meta,param,embed,command,keygen,source,track,wbr");var block = /* @__PURE__ */ makeMap(  "a,address,article,applet,aside,audio,blockquote,button,canvas,center,dd,del,dir,div,dl,dt,fieldset,figcaption,figure,footer,form,frameset,h1,h2,h3,h4,h5,h6,header,hgroup,hr,iframe,isindex,li,map,menu,noframes,noscript,object,ol,output,p,pre,section,script,table,tbody,td,tfoot,th,thead,tr,ul,video");var inline = /* @__PURE__ */ makeMap(  "abbr,acronym,applet,b,basefont,bdo,big,br,button,cite,code,del,dfn,em,font,i,iframe,img,input,ins,kbd,label,map,object,q,s,samp,script,select,small,span,strike,strong,sub,sup,textarea,tt,u,var");var closeSelf = /* @__PURE__ */ makeMap(  "colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");var fillAttrs = /* @__PURE__ */ makeMap(  "checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected");var special = /* @__PURE__ */ makeMap("script,style");function HTMLParser(html, handler) {  var index2;  var chars;  var match;  var stack = [];  var last = html;  stack.last = function() {    return this[this.length - 1];  };  while (html) {    chars = true;    if (!stack.last() || !special[stack.last()]) {      if (html.indexOf("<!--") == 0) {        index2 = html.indexOf("-->");        if (index2 >= 0) {          if (handler.comment) {            handler.comment(html.substring(4, index2));          }          html = html.substring(index2 + 3);          chars = false;        }      } else if (html.indexOf("</") == 0) {        match = html.match(endTag);        if (match) {          html = html.substring(match[0].length);          match[0].replace(endTag, parseEndTag);          chars = false;        }      } else if (html.indexOf("<") == 0) {        match = html.match(startTag);        if (match) {          html = html.substring(match[0].length);          match[0].replace(startTag, parseStartTag);          chars = false;        }      }      if (chars) {        index2 = html.indexOf("<");        var text = index2 < 0 ? html : html.substring(0, index2);        html = index2 < 0 ? "" : html.substring(index2);        if (handler.chars) {          handler.chars(text);        }      }    } else {      html = html.replace(        new RegExp("([\\s\\S]*?)</" + stack.last() + "[^>]*>"),        function(all, text2) {          text2 = text2.replace(            /<!--([\s\S]*?)-->|<!\[CDATA\[([\s\S]*?)]]>/g,            "$1$2"          );          if (handler.chars) {            handler.chars(text2);          }          return "";        }      );      parseEndTag("", stack.last());    }    if (html == last) {      throw "Parse Error: " + html;    }    last = html;  }  parseEndTag();  function parseStartTag(tag, tagName, rest, unary) {    tagName = tagName.toLowerCase();    if (block[tagName]) {      while (stack.last() && inline[stack.last()]) {        parseEndTag("", stack.last());      }    }    if (closeSelf[tagName] && stack.last() == tagName) {      parseEndTag("", tagName);    }    unary = empty[tagName] || !!unary;    if (!unary) {      stack.push(tagName);    }    if (handler.start) {      var attrs = [];      rest.replace(attr, function(match2, name) {        var value = arguments[2] ? arguments[2] : arguments[3] ? arguments[3] : arguments[4] ? arguments[4] : fillAttrs[name] ? name : "";        attrs.push({          name,          value,          escaped: value.replace(/(^|[^\\])"/g, '$1\\"')          // "        });      });      if (handler.start) {        handler.start(tagName, attrs, unary);      }    }  }  function parseEndTag(tag, tagName) {    if (!tagName) {      var pos = 0;    } else {      for (var pos = stack.length - 1; pos >= 0; pos--) {        if (stack[pos] == tagName) {          break;        }      }    }    if (pos >= 0) {      for (var i = stack.length - 1; i >= pos; i--) {        if (handler.end) {          handler.end(stack[i]);        }      }      stack.length = pos;    }  }}function makeMap(str) {  var obj = {};  var items = str.split(",");  for (var i = 0; i < items.length; i++) {    obj[items[i]] = true;  }  return obj;}function useQuill(props2, rootRef, trigger) {  vue.watch(    () => props2.readOnly,    (value) => {    }  );  vue.watch(    () => props2.placeholder,    (value) => {    }  );  useContextInfo();  useSubscribe();}const props$n = /* @__PURE__ */ shared.extend({}, props$o, {  id: {    type: String,    default: ""  },  readOnly: {    type: [Boolean, String],    default: false  },  placeholder: {    type: String,    default: ""  },  showImgSize: {    type: [Boolean, String],    default: false  },  showImgToolbar: {    type: [Boolean, String],    default: false  },  showImgResize: {    type: [Boolean, String],    default: false  }});const index$w = /* @__PURE__ */ defineBuiltInComponent({  name: "Editor",  props: props$n,  emit: ["ready", "focus", "blur", "input", "statuschange", ...emit$1],  setup(props2, {    emit: emit2  }) {    const rootRef = vue.ref(null);    useQuill(props2);    useKeyboard$1(props2, rootRef);    return () => {      return vue.createVNode("uni-editor", {        "ref": rootRef,        "id": props2.id,        "class": "ql-container"      }, null, 8, ["id"]);    };  }});const INFO_COLOR = "#10aeff";const WARN_COLOR = "#f76260";const GREY_COLOR = "#b2b2b2";const CANCEL_COLOR = "#f43530";const ICONS = {  success: {    d: ICON_PATH_SUCCESS,    c: uniShared.PRIMARY_COLOR  },  success_no_circle: {    d: ICON_PATH_SUCCESS_NO_CIRCLE,    c: uniShared.PRIMARY_COLOR  },  info: {    d: ICON_PATH_INFO,    c: INFO_COLOR  },  warn: {    d: ICON_PATH_WARN,    c: WARN_COLOR  },  waiting: {    d: ICON_PATH_WAITING,    c: INFO_COLOR  },  cancel: {    d: ICON_PATH_CANCEL,    c: CANCEL_COLOR  },  download: {    d: ICON_PATH_DOWNLOAD,    c: uniShared.PRIMARY_COLOR  },  search: {    d: ICON_PATH_SEARCH,    c: GREY_COLOR  },  clear: {    d: ICON_PATH_CLEAR,    c: GREY_COLOR  }};const index$v = /* @__PURE__ */ defineBuiltInComponent({  name: "Icon",  props: {    type: {      type: String,      required: true,      default: ""    },    size: {      type: [String, Number],      default: 23    },    color: {      type: String,      default: ""    }  },  setup(props2) {    const rootRef = vue.ref(null);    const path = vue.computed(() => ICONS[props2.type]);    return () => {      const {        value      } = path;      return vue.createVNode("uni-icon", {        "ref": rootRef      }, [value && value.d && createSvgIconVNode(value.d, props2.color || value.c, rpx2px(props2.size))], 512);    };  }});const ResizeSensor = /* @__PURE__ */ defineBuiltInComponent({  name: "ResizeSensor",  props: {    initial: {      type: Boolean,      default: false    }  },  emits: ["resize"],  setup(props2, {    emit: emit2  }) {    const rootRef = vue.ref(null);    const reset = useResizeSensorReset(rootRef);    const update = useResizeSensorUpdate(rootRef, emit2, reset);    return () => vue.createVNode("uni-resize-sensor", {      "ref": rootRef,      "onAnimationstartOnce": update    }, [vue.createVNode("div", {      "onScroll": update    }, [vue.createVNode("div", null, null)], 40, ["onScroll"]), vue.createVNode("div", {      "onScroll": update    }, [vue.createVNode("div", null, null)], 40, ["onScroll"])], 40, ["onAnimationstartOnce"]);  }});function useResizeSensorUpdate(rootRef, emit2, reset) {  const size = vue.reactive({    width: -1,    height: -1  });  vue.watch(() => shared.extend({}, size), (value) => emit2("resize", value));  return () => {    const rootEl = rootRef.value;    if (!rootEl)      return;    size.width = rootEl.offsetWidth;    size.height = rootEl.offsetHeight;    reset();  };}function useResizeSensorReset(rootRef) {  return () => {    const {      firstElementChild,      lastElementChild    } = rootRef.value;    firstElementChild.scrollLeft = 1e5;    firstElementChild.scrollTop = 1e5;    lastElementChild.scrollLeft = 1e5;    lastElementChild.scrollTop = 1e5;  };}const props$m = {  src: {    type: String,    default: ""  },  mode: {    type: String,    default: "scaleToFill"  },  lazyLoad: {    type: [Boolean, String],    default: false  },  draggable: {    type: Boolean,    default: false  }};const FIX_MODES = {  widthFix: ["offsetWidth", "height", (value, ratio) => value / ratio],  heightFix: ["offsetHeight", "width", (value, ratio) => value * ratio]};const IMAGE_MODES = {  aspectFit: ["center center", "contain"],  aspectFill: ["center center", "cover"],  widthFix: [, "100% 100%"],  heightFix: [, "100% 100%"],  top: ["center top"],  bottom: ["center bottom"],  center: ["center center"],  left: ["left center"],  right: ["right center"],  "top left": ["left top"],  "top right": ["right top"],  "bottom left": ["left bottom"],  "bottom right": ["right bottom"]};const index$u = /* @__PURE__ */ defineBuiltInComponent({  name: "Image",  props: props$m,  setup(props2, {    emit: emit2  }) {    const rootRef = vue.ref(null);    const state = useImageState(rootRef, props2);    const trigger = useCustomEvent(rootRef, emit2);    const {      fixSize    } = useImageSize(rootRef, props2, state);    useImageLoader(state, props2, rootRef, fixSize, trigger);    return () => {      return vue.createVNode("uni-image", {        "ref": rootRef      }, [vue.createVNode("div", {        "style": state.modeStyle      }, null, 4), FIX_MODES[props2.mode] ? vue.createVNode(ResizeSensor, {        "onResize": fixSize      }, null, 8, ["onResize"]) : vue.createVNode("span", null, null)], 512);    };  }});function useImageState(rootRef, props2) {  const imgSrc = vue.ref("");  const modeStyleRef = vue.computed(() => {    let size = "auto";    let position = "";    const opts = IMAGE_MODES[props2.mode];    if (!opts) {      position = "0% 0%";      size = "100% 100%";    } else {      opts[0] && (position = opts[0]);      opts[1] && (size = opts[1]);    }    return `background-image:${imgSrc.value ? 'url("' + imgSrc.value + '")' : "none"};background-position:${position};background-size:${size};`;  });  const state = vue.reactive({    rootEl: rootRef,    src: vue.computed(() => props2.src ? getRealPath(props2.src) : ""),    origWidth: 0,    origHeight: 0,    origStyle: {      width: "",      height: ""    },    modeStyle: modeStyleRef,    imgSrc  });  return state;}function useImageLoader(state, props2, rootRef, fixSize, trigger) {  let img;  let draggableImg;  const setState = (width = 0, height = 0, imgSrc = "") => {    state.origWidth = width;    state.origHeight = height;    state.imgSrc = imgSrc;  };  const loadImage = (src) => {    if (!src) {      resetImage();      setState();      return;    }    img = img || new Image();    img.onload = (evt) => {      const {        width,        height      } = img;      setState(width, height, src);      vue.nextTick(() => {        fixSize();      });      img.draggable = props2.draggable;      if (draggableImg) {        draggableImg.remove();      }      draggableImg = img;      rootRef.value.appendChild(img);      resetImage();      trigger("load", evt, {        width,        height      });    };    img.onerror = (evt) => {      setState();      resetImage();      trigger("error", evt, {        errMsg: `GET ${state.src} 404 (Not Found)`      });    };    img.src = src;  };  const resetImage = () => {    if (img) {      img.onload = null;      img.onerror = null;      img = null;    }  };  vue.watch(() => state.src, (value) => loadImage(value));  vue.watch(() => state.imgSrc, (value) => {    if (!value && draggableImg) {      draggableImg.remove();      draggableImg = null;    }  });}function fixNumber(num) {  return num;}function useImageSize(rootRef, props2, state) {  const fixSize = () => {    const {      mode: mode2    } = props2;    const names = FIX_MODES[mode2];    if (!names) {      return;    }    const {      origWidth,      origHeight    } = state;    const ratio = origWidth && origHeight ? origWidth / origHeight : 0;    if (!ratio) {      return;    }    const rootEl = rootRef.value;    const value = rootEl[names[0]];    if (value) {      rootEl.style[names[1]] = fixNumber(names[2](value, ratio)) + "px";    }  };  const resetSize = () => {    const {      style    } = rootRef.value;    const {      origStyle: {        width,        height      }    } = state;    style.width = width;    style.height = height;  };  vue.watch(() => props2.mode, (value, oldValue) => {    if (FIX_MODES[oldValue]) {      resetSize();    }    if (FIX_MODES[value]) {      fixSize();    }  });  return {    fixSize,    resetSize  };}function throttle(fn, wait) {  let last = 0;  let timeout;  let waitCallback;  const newFn = function(...arg) {    const now = Date.now();    clearTimeout(timeout);    waitCallback = () => {      waitCallback = null;      last = now;      fn.apply(this, arg);    };    if (now - last < wait) {      timeout = setTimeout(waitCallback, wait - (now - last));      return;    }    waitCallback();  };  newFn.cancel = function() {    clearTimeout(timeout);    waitCallback = null;  };  newFn.flush = function() {    clearTimeout(timeout);    waitCallback && waitCallback();  };  return newFn;}function useUserAction() {  const state = vue.reactive({    /**     * 是否用户激活     */    userAction: false  });  return {    state  };}function useScopedAttrs() {  const state = vue.reactive({    attrs: {}  });  return {    state  };}function useFormField(nameKey, value) {  const uniForm = vue.inject(    uniFormKey,    false    // remove warning  );  if (!uniForm) {    return;  }  const instance = vue.getCurrentInstance();  const ctx = {    submit() {      const proxy = instance.proxy;      return [        proxy[nameKey],        shared.isString(value) ? proxy[value] : value.value      ];    },    reset() {      if (shared.isString(value)) {        instance.proxy[value] = "";      } else {        value.value = "";      }    }  };  uniForm.addField(ctx);}function getSelectedTextRange(_, resolve) {  const activeElement = document.activeElement;  if (!activeElement) {    return resolve({});  }  const data = {};  if (["input", "textarea"].includes(activeElement.tagName.toLowerCase())) {    data.start = activeElement.selectionStart;    data.end = activeElement.selectionEnd;  }  resolve(data);}const UniViewJSBridgeSubscribe = function() {  registerViewMethod(    getCurrentPageId(),    "getSelectedTextRange",    getSelectedTextRange  );};function getValueString(value, type, maxlength) {  if (type === "number" && isNaN(Number(value))) {    value = "";  }  const valueStr = value === null || value === void 0 ? "" : String(value);  if (maxlength == void 0) {    return valueStr;  }  return valueStr.slice(0, maxlength);}const INPUT_MODES = [  "none",  "text",  "decimal",  "numeric",  "tel",  "search",  "email",  "url"];const props$l = /* @__PURE__ */ shared.extend(  {},  {    name: {      type: String,      default: ""    },    modelValue: {      type: [String, Number]    },    value: {      type: [String, Number]    },    disabled: {      type: [Boolean, String],      default: false    },    /**     * 已废弃属性,用于历史兼容     */    autoFocus: {      type: [Boolean, String],      default: false    },    focus: {      type: [Boolean, String],      default: false    },    cursor: {      type: [Number, String],      default: -1    },    selectionStart: {      type: [Number, String],      default: -1    },    selectionEnd: {      type: [Number, String],      default: -1    },    type: {      type: String,      default: "text"    },    password: {      type: [Boolean, String],      default: false    },    placeholder: {      type: String,      default: ""    },    placeholderStyle: {      type: String,      default: ""    },    placeholderClass: {      type: String,      default: ""    },    maxlength: {      type: [Number, String],      default: Infinity    },    confirmType: {      type: String,      default: "done"    },    confirmHold: {      type: Boolean,      default: false    },    ignoreCompositionEvent: {      type: Boolean,      default: true    },    step: {      type: String,      default: "0.000000000000000001"    },    inputmode: {      type: String,      default: void 0,      validator: (value) => !!~INPUT_MODES.indexOf(value)    },    cursorColor: {      type: String,      default: ""    }  },  props$o);const emit = [  "input",  "focus",  "blur",  "update:value",  "update:modelValue",  "update:focus",  "compositionstart",  "compositionupdate",  "compositionend",  ...emit$1];function useBase(props2, rootRef, emit2) {  const fieldRef = vue.ref(null);  const trigger = useCustomEvent(rootRef, emit2);  const selectionStart = vue.computed(() => {    const selectionStart2 = Number(props2.selectionStart);    return isNaN(selectionStart2) ? -1 : selectionStart2;  });  const selectionEnd = vue.computed(() => {    const selectionEnd2 = Number(props2.selectionEnd);    return isNaN(selectionEnd2) ? -1 : selectionEnd2;  });  const cursor = vue.computed(() => {    const cursor2 = Number(props2.cursor);    return isNaN(cursor2) ? -1 : cursor2;  });  const maxlength = vue.computed(() => {    var maxlength2 = Number(props2.maxlength);    {      return isNaN(maxlength2) || maxlength2 < 0 ? Infinity : Math.floor(maxlength2);    }  });  let value = "";  {    const modelValueString = getValueString(      props2.modelValue,      props2.type,      maxlength.value    );    const valueString = getValueString(props2.value, props2.type, maxlength.value);    value = props2.modelValue !== void 0 ? modelValueString !== null && modelValueString !== void 0 ? modelValueString : valueString : valueString;  }  const state = vue.reactive({    value,    valueOrigin: value,    maxlength,    focus: props2.focus,    composing: false,    selectionStart,    selectionEnd,    cursor  });  vue.watch(    () => state.focus,    (val) => emit2("update:focus", val)  );  vue.watch(    () => state.maxlength,    (val) => state.value = state.value.slice(0, val),    {      immediate: true    }  );  return {    fieldRef,    state,    trigger  };}function useValueSync(props2, state, emit2, trigger) {  let valueChangeFn = null;  {    valueChangeFn = throttle((val) => {      state.value = getValueString(val, props2.type, state.maxlength);    }, 100);  }  vue.watch(() => props2.modelValue, valueChangeFn);  vue.watch(() => props2.value, valueChangeFn);  const triggerInputFn = throttle((event, detail) => {    valueChangeFn.cancel();    emit2("update:modelValue", detail.value);    emit2("update:value", detail.value);    trigger("input", event, detail);  }, 100);  const triggerInput = (event, detail, force) => {    valueChangeFn.cancel();    triggerInputFn(event, detail);    if (force) {      triggerInputFn.flush();    }  };  return {    trigger,    triggerInput  };}function useAutoFocus(props2, fieldRef) {  useUserAction();  const needFocus = vue.computed(() => props2.autoFocus || props2.focus);  function focus() {    if (!needFocus.value) {      return;    }    const field = fieldRef.value;    if (!field || false) {      setTimeout(focus, 100);      return;    }    {      field.focus();    }  }  function blur() {    const field = fieldRef.value;    if (field) {      field.blur();    }  }  vue.watch(    () => props2.focus,    (value) => {      if (value) {        focus();      } else {        blur();      }    }  );}function useEvent(fieldRef, state, props2, trigger, triggerInput, beforeInput) {  function checkSelection() {    const field = fieldRef.value;    if (field && state.focus && state.selectionStart > -1 && state.selectionEnd > -1 && field.type !== "number") {      field.selectionStart = state.selectionStart;      field.selectionEnd = state.selectionEnd;    }  }  function checkCursor() {    const field = fieldRef.value;    if (field && state.focus && state.selectionStart < 0 && state.selectionEnd < 0 && state.cursor > -1 && field.type !== "number") {      field.selectionEnd = field.selectionStart = state.cursor;    }  }  function getFieldSelectionEnd(field) {    if (field.type === "number") {      return null;    } else {      return field.selectionEnd;    }  }  function initField() {    const field = fieldRef.value;    if (!field)      return;    const onFocus = function(event) {      state.focus = true;      trigger("focus", event, {        value: state.value      });      checkSelection();      checkCursor();    };    const onInput = function(event, force) {      event.stopPropagation();      if (shared.isFunction(beforeInput) && beforeInput(event, state) === false) {        return;      }      state.value = field.value;      if (!state.composing || !props2.ignoreCompositionEvent) {        triggerInput(          event,          {            value: field.value,            cursor: getFieldSelectionEnd(field)          },          force        );      }    };    const onBlur = function(event) {      if (state.composing) {        state.composing = false;        onInput(event, true);      }      state.focus = false;      trigger("blur", event, {        value: state.value,        cursor: getFieldSelectionEnd(event.target)      });    };    field.addEventListener("change", (event) => event.stopPropagation());    field.addEventListener("focus", onFocus);    field.addEventListener("blur", onBlur);    field.addEventListener("input", onInput);    field.addEventListener("compositionstart", (event) => {      event.stopPropagation();      state.composing = true;      _onComposition(event);    });    field.addEventListener("compositionend", (event) => {      event.stopPropagation();      if (state.composing) {        state.composing = false;        onInput(event);      }      _onComposition(event);    });    field.addEventListener("compositionupdate", _onComposition);    function _onComposition(event) {      if (!props2.ignoreCompositionEvent) {        trigger(event.type, event, {          value: event.data        });      }    }  }  vue.watch([() => state.selectionStart, () => state.selectionEnd], checkSelection);  vue.watch(() => state.cursor, checkCursor);  vue.watch(() => fieldRef.value, initField);}function useField(props2, rootRef, emit2, beforeInput) {  UniViewJSBridgeSubscribe();  const { fieldRef, state, trigger } = useBase(props2, rootRef, emit2);  const { triggerInput } = useValueSync(props2, state, emit2, trigger);  useAutoFocus(props2, fieldRef);  useKeyboard$1(props2, fieldRef);  const { state: scopedAttrsState } = useScopedAttrs();  useFormField("name", state);  useEvent(fieldRef, state, props2, trigger, triggerInput, beforeInput);  const fixDisabledColor = false;  return {    fieldRef,    state,    scopedAttrsState,    fixDisabledColor,    trigger  };}const props$k = /* @__PURE__ */ shared.extend({}, props$l, {  placeholderClass: {    type: String,    default: "input-placeholder"  },  textContentType: {    type: String,    default: ""  }});function resolveDigitDecimalPoint(event, cache, state, input, resetCache) {  if (cache.value) {    if (event.data === ".") {      if (cache.value.slice(-1) === ".") {        state.value = input.value = cache.value = cache.value.slice(0, -1);        return false;      }      if (cache.value && !cache.value.includes(".")) {        cache.value += ".";        if (resetCache) {          resetCache.fn = () => {            state.value = input.value = cache.value = cache.value.slice(0, -1);            input.removeEventListener("blur", resetCache.fn);          };          input.addEventListener("blur", resetCache.fn);        }        return false;      }    } else if (event.inputType === "deleteContentBackward") {      if (navigator.userAgent.includes("iPhone OS 16")) {        if (cache.value.slice(-2, -1) === ".") {          cache.value = state.value = input.value = cache.value.slice(0, -2);          return true;        }      }    }  }}function useCache(props2, type) {  if (type.value === "number") {    const value = typeof props2.modelValue === "undefined" ? props2.value : props2.modelValue;    const cache = vue.ref(typeof value !== "undefined" && value !== null ? value.toLocaleString() : "");    vue.watch(() => props2.modelValue, (value2) => {      cache.value = typeof value2 !== "undefined" && value2 !== null ? value2.toLocaleString() : "";    });    vue.watch(() => props2.value, (value2) => {      cache.value = typeof value2 !== "undefined" && value2 !== null ? value2.toLocaleString() : "";    });    return cache;  } else {    return vue.ref("");  }}const Input = /* @__PURE__ */ defineBuiltInComponent({  name: "Input",  props: props$k,  emits: ["confirm", ...emit],  setup(props2, {    emit: emit2,    expose  }) {    const INPUT_TYPES = ["text", "number", "idcard", "digit", "password", "tel"];    const AUTOCOMPLETES = ["off", "one-time-code"];    const type = vue.computed(() => {      let type2 = "";      switch (props2.type) {        case "text":          type2 = "text";          if (props2.confirmType === "search") {            type2 = "search";          }          break;        case "idcard":          type2 = "text";          break;        case "digit":          type2 = "number";          break;        default:          type2 = ~INPUT_TYPES.includes(props2.type) ? props2.type : "text";          break;      }      return props2.password ? "password" : type2;    });    const autocomplete = vue.computed(() => {      const camelizeIndex = AUTOCOMPLETES.indexOf(props2.textContentType);      const kebabCaseIndex = AUTOCOMPLETES.indexOf(shared.hyphenate(props2.textContentType));      const index2 = camelizeIndex !== -1 ? camelizeIndex : kebabCaseIndex !== -1 ? kebabCaseIndex : 0;      return AUTOCOMPLETES[index2];    });    let cache = useCache(props2, type);    let resetCache = {      fn: null    };    const rootRef = vue.ref(null);    const {      fieldRef,      state,      scopedAttrsState,      fixDisabledColor,      trigger    } = useField(props2, rootRef, emit2, (event, state2) => {      const input = event.target;      if (type.value === "number") {        if (resetCache.fn) {          input.removeEventListener("blur", resetCache.fn);          resetCache.fn = null;        }        if (input.validity && !input.validity.valid) {          if ((!cache.value || !input.value) && event.data === "-" || cache.value[0] === "-" && event.inputType === "deleteContentBackward") {            cache.value = "-";            state2.value = "";            resetCache.fn = () => {              cache.value = input.value = "";            };            input.addEventListener("blur", resetCache.fn);            return false;          }          const res = resolveDigitDecimalPoint(event, cache, state2, input, resetCache);          if (typeof res === "boolean")            return res;          cache.value = state2.value = input.value = cache.value === "-" ? "" : cache.value;          return false;        } else {          const res = resolveDigitDecimalPoint(event, cache, state2, input, resetCache);          if (typeof res === "boolean")            return res;          cache.value = input.value;        }        const maxlength = state2.maxlength;        if (maxlength > 0 && input.value.length > maxlength) {          input.value = input.value.slice(0, maxlength);          state2.value = input.value;          return false;        }      }    });    vue.watch(() => state.value, (value) => {      if (props2.type === "number" && !(cache.value === "-" && value === "")) {        cache.value = value.toString();      }    });    const NUMBER_TYPES = ["number", "digit"];    const step = vue.computed(() => NUMBER_TYPES.includes(props2.type) ? props2.step : "");    function onKeyUpEnter(event) {      if (event.key !== "Enter") {        return;      }      const input = event.target;      event.stopPropagation();      trigger("confirm", event, {        value: input.value      });      !props2.confirmHold && input.blur();    }    expose({      $triggerInput: (detail) => {        emit2("update:modelValue", detail.value);        emit2("update:value", detail.value);        state.value = detail.value;      }    });    return () => {      let inputNode = props2.disabled && fixDisabledColor ? vue.createVNode("input", {        "key": "disabled-input",        "ref": fieldRef,        "value": state.value,        "tabindex": "-1",        "readonly": !!props2.disabled,        "type": type.value,        "maxlength": state.maxlength,        "step": step.value,        "class": "uni-input-input",        "style": props2.cursorColor ? {          caretColor: props2.cursorColor        } : {},        "onFocus": (event) => event.target.blur()      }, null, 44, ["value", "readonly", "type", "maxlength", "step", "onFocus"]) : vue.createVNode("input", {        "key": "input",        "ref": fieldRef,        "value": state.value,        "onInput": (event) => {          state.value = event.target.value.toString();        },        "disabled": !!props2.disabled,        "type": type.value,        "maxlength": state.maxlength,        "step": step.value,        "enterkeyhint": props2.confirmType,        "pattern": props2.type === "number" ? "[0-9]*" : void 0,        "class": "uni-input-input",        "style": props2.cursorColor ? {          caretColor: props2.cursorColor        } : {},        "autocomplete": autocomplete.value,        "onKeyup": onKeyUpEnter,        "inputmode": props2.inputmode      }, null, 44, ["value", "onInput", "disabled", "type", "maxlength", "step", "enterkeyhint", "pattern", "autocomplete", "onKeyup", "inputmode"]);      return vue.createVNode("uni-input", {        "ref": rootRef      }, [vue.createVNode("div", {        "class": "uni-input-wrapper"      }, [vue.withDirectives(vue.createVNode("div", vue.mergeProps(scopedAttrsState.attrs, {        "style": props2.placeholderStyle,        "class": ["uni-input-placeholder", props2.placeholderClass]      }), [props2.placeholder], 16), [[vue.vShow, !(state.value.length || cache.value === "-" || cache.value.includes("."))]]), props2.confirmType === "search" ? vue.createVNode("form", {        "action": "",        "onSubmit": (event) => event.preventDefault(),        "class": "uni-input-form"      }, [inputNode], 40, ["onSubmit"]) : inputNode])], 512);    };  }});function entries(obj) {  return Object.keys(obj).map((key) => [key, obj[key]]);}const DEFAULT_EXCLUDE_KEYS = ["class", "style"];const LISTENER_PREFIX = /^on[A-Z]+/;const useAttrs = (params = {}) => {  const { excludeListeners = false, excludeKeys = [] } = params;  const instance = vue.getCurrentInstance();  const attrs = vue.shallowRef({});  const listeners = vue.shallowRef({});  const excludeAttrs = vue.shallowRef({});  const allExcludeKeys = excludeKeys.concat(DEFAULT_EXCLUDE_KEYS);  instance.attrs = vue.reactive(instance.attrs);  vue.watchEffect(() => {    const res = entries(instance.attrs).reduce(      (acc, [key, val]) => {        if (allExcludeKeys.includes(key)) {          acc.exclude[key] = val;        } else if (LISTENER_PREFIX.test(key)) {          if (!excludeListeners) {            acc.attrs[key] = val;          }          acc.listeners[key] = val;        } else {          acc.attrs[key] = val;        }        return acc;      },      {        exclude: {},        attrs: {},        listeners: {}      }    );    attrs.value = res.attrs;    listeners.value = res.listeners;    excludeAttrs.value = res.exclude;  });  return { $attrs: attrs, $listeners: listeners, $excludeAttrs: excludeAttrs };};function flatVNode(nodes) {  const array = [];  if (shared.isArray(nodes)) {    nodes.forEach((vnode) => {      if (vue.isVNode(vnode)) {        if (vnode.type === vue.Fragment) {          array.push(...flatVNode(vnode.children));        } else {          array.push(vnode);        }      } else if (shared.isArray(vnode)) {        array.push(...flatVNode(vnode));      }    });  }  return array;}const movableAreaProps = {  scaleArea: {    type: Boolean,    default: false  }};const index$t = /* @__PURE__ */ defineBuiltInComponent({  inheritAttrs: false,  name: "MovableArea",  props: movableAreaProps,  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    const _isMounted = vue.ref(false);    let {      setContexts,      events: movableAreaEvents    } = useMovableAreaState(props2, rootRef);    const {      $listeners,      $attrs,      $excludeAttrs    } = useAttrs();    const _listeners = $listeners.value;    let events = ["onTouchstart", "onTouchmove", "onTouchend"];    events.forEach((event) => {      let existing = _listeners[event];      let ours = movableAreaEvents[`_${event}`];      _listeners[event] = existing ? [].concat(existing, ours) : ours;    });    let movableViewItems = [];    const originMovableViewContexts = [];    function updateMovableViewContexts() {      const contexts = [];      for (let index2 = 0; index2 < movableViewItems.length; index2++) {        let movableViewItem = movableViewItems[index2];        {          movableViewItem = movableViewItem.el;        }        const movableViewContext = originMovableViewContexts.find((context) => movableViewItem === context.rootRef.value);        if (movableViewContext) {          contexts.push(vue.markRaw(movableViewContext));        }      }      setContexts(contexts);    }    const addMovableViewContext = (movableViewContext) => {      originMovableViewContexts.push(movableViewContext);      updateMovableViewContexts();    };    const removeMovableViewContext = (movableViewContext) => {      const index2 = originMovableViewContexts.indexOf(movableViewContext);      if (index2 >= 0) {        originMovableViewContexts.splice(index2, 1);        updateMovableViewContexts();      }    };    vue.provide("_isMounted", _isMounted);    vue.provide("movableAreaRootRef", rootRef);    vue.provide("addMovableViewContext", addMovableViewContext);    vue.provide("removeMovableViewContext", removeMovableViewContext);    return () => {      const defaultSlots = slots.default && slots.default();      {        movableViewItems = flatVNode(defaultSlots);      }      return vue.createVNode("uni-movable-area", vue.mergeProps({        "ref": rootRef      }, $attrs.value, $excludeAttrs.value, _listeners), [vue.createVNode(ResizeSensor, {        "onResize": movableAreaEvents._resize      }, null, 8, ["onResize"]), movableViewItems], 16);    };  }});function calc(e2) {  return Math.sqrt(e2.x * e2.x + e2.y * e2.y);}function useMovableAreaState(props2, rootRef) {  const width = vue.ref(0);  const height = vue.ref(0);  const gapV = vue.reactive({    x: null,    y: null  });  const pinchStartLen = vue.ref(null);  let _scaleMovableView = null;  let movableViewContexts = [];  function _updateScale(e2) {    if (e2 && e2 !== 1) {      if (props2.scaleArea) {        movableViewContexts.forEach(function(item) {          item._setScale(e2);        });      } else {        if (_scaleMovableView) {          _scaleMovableView._setScale(e2);        }      }    }  }  function _find(target, items = movableViewContexts) {    let root = rootRef.value;    function get(node) {      for (let i = 0; i < items.length; i++) {        const item = items[i];        if (node === item.rootRef.value) {          return item;        }      }      if (node === root || node === document.body || node === document) {        return null;      }      return get(node.parentNode);    }    return get(target);  }  const _onTouchstart = withWebEvent((t2) => {    let i = t2.touches;    if (i) {      if (i.length > 1) {        let r = {          x: i[1].pageX - i[0].pageX,          y: i[1].pageY - i[0].pageY        };        pinchStartLen.value = calc(r);        gapV.x = r.x;        gapV.y = r.y;        if (!props2.scaleArea) {          let touch0 = _find(i[0].target);          let touch1 = _find(i[1].target);          _scaleMovableView = touch0 && touch0 === touch1 ? touch0 : null;        }      }    }  });  const _onTouchmove = withWebEvent((t2) => {    let n = t2.touches;    if (n) {      if (n.length > 1) {        t2.preventDefault();        let i = {          x: n[1].pageX - n[0].pageX,          y: n[1].pageY - n[0].pageY        };        if (gapV.x !== null && pinchStartLen.value && pinchStartLen.value > 0) {          let r = calc(i) / pinchStartLen.value;          _updateScale(r);        }        gapV.x = i.x;        gapV.y = i.y;      }    }  });  const _onTouchend = withWebEvent((e2) => {    let t2 = e2.touches;    if (!(t2 && t2.length)) {      if (e2.changedTouches) {        gapV.x = 0;        gapV.y = 0;        pinchStartLen.value = null;        if (props2.scaleArea) {          movableViewContexts.forEach(function(item) {            item._endScale();          });        } else {          if (_scaleMovableView) {            _scaleMovableView._endScale();          }        }      }    }  });  function _resize() {    _getWH();    movableViewContexts.forEach(function(item, index2) {      item.setParent();    });  }  function _getWH() {    let style = window.getComputedStyle(rootRef.value);    let rect = rootRef.value.getBoundingClientRect();    width.value = rect.width - ["Left", "Right"].reduce(function(all, item) {      const LEFT = "border" + item + "Width";      const RIGHT = "padding" + item;      return all + parseFloat(style[LEFT]) + parseFloat(style[RIGHT]);    }, 0);    height.value = rect.height - ["Top", "Bottom"].reduce(function(all, item) {      const TOP = "border" + item + "Width";      const BOTTOM = "padding" + item;      return all + parseFloat(style[TOP]) + parseFloat(style[BOTTOM]);    }, 0);  }  vue.provide("movableAreaWidth", width);  vue.provide("movableAreaHeight", height);  return {    setContexts(contexts) {      movableViewContexts = contexts;    },    events: {      _onTouchstart,      _onTouchmove,      _onTouchend,      _resize    }  };}function e(e2, t2, n) {  return e2 > t2 - n && e2 < t2 + n;}function t(t2, n) {  return e(t2, 0, n);}function Friction(e2, t2) {  this._m = e2;  this._f = 1e3 * t2;  this._startTime = 0;  this._v = 0;}Friction.prototype.setV = function(x, y) {  const n = Math.pow(Math.pow(x, 2) + Math.pow(y, 2), 0.5);  this._x_v = x;  this._y_v = y;  this._x_a = -this._f * this._x_v / n;  this._y_a = -this._f * this._y_v / n;  this._t = Math.abs(x / this._x_a) || Math.abs(y / this._y_a);  this._lastDt = null;  this._startTime = (/* @__PURE__ */ new Date()).getTime();};Friction.prototype.setS = function(x, y) {  this._x_s = x;  this._y_s = y;};Friction.prototype.s = function(t2) {  if (void 0 === t2) {    t2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;  }  if (t2 > this._t) {    t2 = this._t;    this._lastDt = t2;  }  let x = this._x_v * t2 + 0.5 * this._x_a * Math.pow(t2, 2) + this._x_s;  let y = this._y_v * t2 + 0.5 * this._y_a * Math.pow(t2, 2) + this._y_s;  if (this._x_a > 0 && x < this._endPositionX || this._x_a < 0 && x > this._endPositionX) {    x = this._endPositionX;  }  if (this._y_a > 0 && y < this._endPositionY || this._y_a < 0 && y > this._endPositionY) {    y = this._endPositionY;  }  return {    x,    y  };};Friction.prototype.ds = function(t2) {  if (void 0 === t2) {    t2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;  }  if (t2 > this._t) {    t2 = this._t;  }  return {    dx: this._x_v + this._x_a * t2,    dy: this._y_v + this._y_a * t2  };};Friction.prototype.delta = function() {  return {    x: -1.5 * Math.pow(this._x_v, 2) / this._x_a || 0,    y: -1.5 * Math.pow(this._y_v, 2) / this._y_a || 0  };};Friction.prototype.dt = function() {  return -this._x_v / this._x_a;};Friction.prototype.done = function() {  const t2 = e(this.s().x, this._endPositionX) || e(this.s().y, this._endPositionY) || this._lastDt === this._t;  this._lastDt = null;  return t2;};Friction.prototype.setEnd = function(x, y) {  this._endPositionX = x;  this._endPositionY = y;};Friction.prototype.reconfigure = function(m, f2) {  this._m = m;  this._f = 1e3 * f2;};function Spring(m, k, c) {  this._m = m;  this._k = k;  this._c = c;  this._solution = null;  this._endPosition = 0;  this._startTime = 0;}Spring.prototype._solve = function(e2, t2) {  const n = this._c;  const i = this._m;  const r = this._k;  const o = n * n - 4 * i * r;  if (o === 0) {    const a = -n / (2 * i);    const s = e2;    const l = t2 / (a * e2);    return {      x: function(e3) {        return (s + l * e3) * Math.pow(Math.E, a * e3);      },      dx: function(e3) {        const t3 = Math.pow(Math.E, a * e3);        return a * (s + l * e3) * t3 + l * t3;      }    };  }  if (o > 0) {    const c = (-n - Math.sqrt(o)) / (2 * i);    const u = (-n + Math.sqrt(o)) / (2 * i);    const d = (t2 - c * e2) / (u - c);    const h = e2 - d;    return {      x: function(e3) {        let t3;        let n2;        if (e3 === this._t) {          t3 = this._powER1T;          n2 = this._powER2T;        }        this._t = e3;        if (!t3) {          t3 = this._powER1T = Math.pow(Math.E, c * e3);        }        if (!n2) {          n2 = this._powER2T = Math.pow(Math.E, u * e3);        }        return h * t3 + d * n2;      },      dx: function(e3) {        let t3;        let n2;        if (e3 === this._t) {          t3 = this._powER1T;          n2 = this._powER2T;        }        this._t = e3;        if (!t3) {          t3 = this._powER1T = Math.pow(Math.E, c * e3);        }        if (!n2) {          n2 = this._powER2T = Math.pow(Math.E, u * e3);        }        return h * c * t3 + d * u * n2;      }    };  }  const p2 = Math.sqrt(4 * i * r - n * n) / (2 * i);  const f2 = -n / 2 * i;  const v2 = e2;  const g2 = (t2 - f2 * e2) / p2;  return {    x: function(e3) {      return Math.pow(Math.E, f2 * e3) * (v2 * Math.cos(p2 * e3) + g2 * Math.sin(p2 * e3));    },    dx: function(e3) {      const t3 = Math.pow(Math.E, f2 * e3);      const n2 = Math.cos(p2 * e3);      const i2 = Math.sin(p2 * e3);      return t3 * (g2 * p2 * n2 - v2 * p2 * i2) + f2 * t3 * (g2 * i2 + v2 * n2);    }  };};Spring.prototype.x = function(e2) {  if (void 0 === e2) {    e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;  }  return this._solution ? this._endPosition + this._solution.x(e2) : 0;};Spring.prototype.dx = function(e2) {  if (void 0 === e2) {    e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;  }  return this._solution ? this._solution.dx(e2) : 0;};Spring.prototype.setEnd = function(e2, n, i) {  if (!i) {    i = (/* @__PURE__ */ new Date()).getTime();  }  if (e2 !== this._endPosition || !t(n, 0.1)) {    n = n || 0;    let r = this._endPosition;    if (this._solution) {      if (t(n, 0.1)) {        n = this._solution.dx((i - this._startTime) / 1e3);      }      r = this._solution.x((i - this._startTime) / 1e3);      if (t(n, 0.1)) {        n = 0;      }      if (t(r, 0.1)) {        r = 0;      }      r += this._endPosition;    }    if (!(this._solution && t(r - e2, 0.1) && t(n, 0.1))) {      this._endPosition = e2;      this._solution = this._solve(r - this._endPosition, n);      this._startTime = i;    }  }};Spring.prototype.snap = function(e2) {  this._startTime = (/* @__PURE__ */ new Date()).getTime();  this._endPosition = e2;  this._solution = {    x: function() {      return 0;    },    dx: function() {      return 0;    }  };};Spring.prototype.done = function(n) {  if (!n) {    n = (/* @__PURE__ */ new Date()).getTime();  }  return e(this.x(), this._endPosition, 0.1) && t(this.dx(), 0.1);};Spring.prototype.reconfigure = function(m, t2, c) {  this._m = m;  this._k = t2;  this._c = c;  if (!this.done()) {    this._solution = this._solve(this.x() - this._endPosition, this.dx());    this._startTime = (/* @__PURE__ */ new Date()).getTime();  }};Spring.prototype.springConstant = function() {  return this._k;};Spring.prototype.damping = function() {  return this._c;};Spring.prototype.configuration = function() {  function e2(e3, t3) {    e3.reconfigure(1, t3, e3.damping());  }  function t2(e3, t3) {    e3.reconfigure(1, e3.springConstant(), t3);  }  return [    {      label: "Spring Constant",      read: this.springConstant.bind(this),      write: e2.bind(this, this),      min: 100,      max: 1e3    },    {      label: "Damping",      read: this.damping.bind(this),      write: t2.bind(this, this),      min: 1,      max: 500    }  ];};function STD(e2, t2, n) {  this._springX = new Spring(e2, t2, n);  this._springY = new Spring(e2, t2, n);  this._springScale = new Spring(e2, t2, n);  this._startTime = 0;}STD.prototype.setEnd = function(e2, t2, n, i) {  const r = (/* @__PURE__ */ new Date()).getTime();  this._springX.setEnd(e2, i, r);  this._springY.setEnd(t2, i, r);  this._springScale.setEnd(n, i, r);  this._startTime = r;};STD.prototype.x = function() {  const e2 = ((/* @__PURE__ */ new Date()).getTime() - this._startTime) / 1e3;  return {    x: this._springX.x(e2),    y: this._springY.x(e2),    scale: this._springScale.x(e2)  };};STD.prototype.done = function() {  const e2 = (/* @__PURE__ */ new Date()).getTime();  return this._springX.done(e2) && this._springY.done(e2) && this._springScale.done(e2);};STD.prototype.reconfigure = function(e2, t2, n) {  this._springX.reconfigure(e2, t2, n);  this._springY.reconfigure(e2, t2, n);  this._springScale.reconfigure(e2, t2, n);};const movableViewProps = {  direction: {    type: String,    default: "none"  },  inertia: {    type: [Boolean, String],    default: false  },  outOfBounds: {    type: [Boolean, String],    default: false  },  x: {    type: [Number, String],    default: 0  },  y: {    type: [Number, String],    default: 0  },  damping: {    type: [Number, String],    default: 20  },  friction: {    type: [Number, String],    default: 2  },  disabled: {    type: [Boolean, String],    default: false  },  scale: {    type: [Boolean, String],    default: false  },  scaleMin: {    type: [Number, String],    default: 0.5  },  scaleMax: {    type: [Number, String],    default: 10  },  scaleValue: {    type: [Number, String],    default: 1  },  animation: {    type: [Boolean, String],    default: true  }};function v(a, b) {  return +((1e3 * a - 1e3 * b) / 1e3).toFixed(1);}const index$s = /* @__PURE__ */ defineBuiltInComponent({  name: "MovableView",  props: movableViewProps,  emits: ["change", "scale"],  setup(props2, {    slots,    emit: emit2  }) {    const rootRef = vue.ref(null);    const trigger = useCustomEvent(rootRef, emit2);    const {      setParent    } = useMovableViewState(props2, trigger, rootRef);    return () => {      return vue.createVNode("uni-movable-view", {        "ref": rootRef      }, [vue.createVNode(ResizeSensor, {        "onResize": setParent      }, null, 8, ["onResize"]), slots.default && slots.default()], 512);    };  }});let requesting = false;function _requestAnimationFrame(e2) {  if (!requesting) {    requesting = true;    requestAnimationFrame(function() {      e2();      requesting = false;    });  }}function p(t2, n) {  if (t2 === n) {    return 0;  }  let i = t2.offsetLeft;  return t2.offsetParent ? i += p(t2.offsetParent, n) : 0;}function f(t2, n) {  if (t2 === n) {    return 0;  }  let i = t2.offsetTop;  return t2.offsetParent ? i += f(t2.offsetParent, n) : 0;}function g(friction, execute, endCallback) {  let record = {    id: 0,    cancelled: false  };  let cancel = function(record2) {    if (record2 && record2.id) {      cancelAnimationFrame(record2.id);    }    if (record2) {      record2.cancelled = true;    }  };  function fn(record2, friction2, execute2, endCallback2) {    if (!record2 || !record2.cancelled) {      execute2(friction2);      let isDone = friction2.done();      if (!isDone) {        if (!record2.cancelled) {          record2.id = requestAnimationFrame(fn.bind(null, record2, friction2, execute2, endCallback2));        }      }      if (isDone && endCallback2) {        endCallback2(friction2);      }    }  }  fn(record, friction, execute, endCallback);  return {    cancel: cancel.bind(null, record),    model: friction  };}function _getPx(val) {  if (/\d+[ur]px$/i.test(val)) {    return uni.upx2px(parseFloat(val));  }  return Number(val) || 0;}function useMovableViewLayout(rootRef, _scale, _adjustScale) {  const movableAreaWidth = vue.inject("movableAreaWidth", vue.ref(0));  const movableAreaHeight = vue.inject("movableAreaHeight", vue.ref(0));  const movableAreaRootRef = vue.inject("movableAreaRootRef");  const _offset = {    x: 0,    y: 0  };  const _scaleOffset = {    x: 0,    y: 0  };  const width = vue.ref(0);  const height = vue.ref(0);  const minX = vue.ref(0);  const minY = vue.ref(0);  const maxX = vue.ref(0);  const maxY = vue.ref(0);  function _updateBoundary() {    let x = 0 - _offset.x + _scaleOffset.x;    let _width = movableAreaWidth.value - width.value - _offset.x - _scaleOffset.x;    minX.value = Math.min(x, _width);    maxX.value = Math.max(x, _width);    let y = 0 - _offset.y + _scaleOffset.y;    let _height = movableAreaHeight.value - height.value - _offset.y - _scaleOffset.y;    minY.value = Math.min(y, _height);    maxY.value = Math.max(y, _height);  }  function _updateOffset() {    _offset.x = p(rootRef.value, movableAreaRootRef.value);    _offset.y = f(rootRef.value, movableAreaRootRef.value);  }  function _updateWH(scale) {    scale = scale || _scale.value;    scale = _adjustScale(scale);    let rect = rootRef.value.getBoundingClientRect();    height.value = rect.height / _scale.value;    width.value = rect.width / _scale.value;    let _height = height.value * scale;    let _width = width.value * scale;    _scaleOffset.x = (_width - width.value) / 2;    _scaleOffset.y = (_height - height.value) / 2;  }  return {    _updateBoundary,    _updateOffset,    _updateWH,    _scaleOffset,    minX,    minY,    maxX,    maxY  };}function useMovableViewTransform(rootRef, props2, _scaleOffset, _scale, maxX, maxY, minX, minY, _translateX, _translateY, _SFA, _FA, _adjustScale, trigger) {  const dampingNumber = vue.computed(() => {    let val = Number(props2.damping);    return isNaN(val) ? 20 : val;  });  const xMove = vue.computed(() => props2.direction === "all" || props2.direction === "horizontal");  const yMove = vue.computed(() => props2.direction === "all" || props2.direction === "vertical");  const xSync = vue.ref(_getPx(props2.x));  const ySync = vue.ref(_getPx(props2.y));  vue.watch(() => props2.x, (val) => {    xSync.value = _getPx(val);  });  vue.watch(() => props2.y, (val) => {    ySync.value = _getPx(val);  });  vue.watch(xSync, (val) => {    _setX(val);  });  vue.watch(ySync, (val) => {    _setY(val);  });  const _STD = new STD(1, 9 * Math.pow(dampingNumber.value, 2) / 40, dampingNumber.value);  function _getLimitXY(x, y) {    let outOfBounds = false;    if (x > maxX.value) {      x = maxX.value;      outOfBounds = true;    } else {      if (x < minX.value) {        x = minX.value;        outOfBounds = true;      }    }    if (y > maxY.value) {      y = maxY.value;      outOfBounds = true;    } else {      if (y < minY.value) {        y = minY.value;        outOfBounds = true;      }    }    return {      x,      y,      outOfBounds    };  }  function FAandSFACancel() {    if (_FA) {      _FA.cancel();    }    if (_SFA) {      _SFA.cancel();    }  }  function _animationTo(x, y, scale, source, r, o) {    FAandSFACancel();    if (!xMove.value) {      x = _translateX.value;    }    if (!yMove.value) {      y = _translateY.value;    }    if (!props2.scale) {      scale = _scale.value;    }    let limitXY = _getLimitXY(x, y);    x = limitXY.x;    y = limitXY.y;    if (!props2.animation) {      _setTransform(x, y, scale, source, r, o);      return;    }    _STD._springX._solution = null;    _STD._springY._solution = null;    _STD._springScale._solution = null;    _STD._springX._endPosition = _translateX.value;    _STD._springY._endPosition = _translateY.value;    _STD._springScale._endPosition = _scale.value;    _STD.setEnd(x, y, scale, 1);    _SFA = g(_STD, function() {      let data = _STD.x();      let x2 = data.x;      let y2 = data.y;      let scale2 = data.scale;      _setTransform(x2, y2, scale2, source, r, o);    }, function() {      _SFA.cancel();    });  }  function _setTransform(x, y, scale, source = "", r, o) {    if (!(x !== null && x.toString() !== "NaN" && typeof x === "number")) {      x = _translateX.value || 0;    }    if (!(y !== null && y.toString() !== "NaN" && typeof y === "number")) {      y = _translateY.value || 0;    }    x = Number(x.toFixed(1));    y = Number(y.toFixed(1));    scale = Number(scale.toFixed(1));    if (!(_translateX.value === x && _translateY.value === y)) {      if (!r) {        trigger("change", {}, {          x: v(x, _scaleOffset.x),          y: v(y, _scaleOffset.y),          source        });      }    }    if (!props2.scale) {      scale = _scale.value;    }    scale = _adjustScale(scale);    scale = +scale.toFixed(3);    if (o && scale !== _scale.value) {      trigger("scale", {}, {        x,        y,        scale      });    }    let transform = "translateX(" + x + "px) translateY(" + y + "px) translateZ(0px) scale(" + scale + ")";    if (rootRef.value) {      rootRef.value.style.transform = transform;      rootRef.value.style.webkitTransform = transform;      _translateX.value = x;      _translateY.value = y;      _scale.value = scale;    }  }  function _revise(source) {    let limitXY = _getLimitXY(_translateX.value, _translateY.value);    let x = limitXY.x;    let y = limitXY.y;    let outOfBounds = limitXY.outOfBounds;    if (outOfBounds) {      _animationTo(x, y, _scale.value, source);    }    return outOfBounds;  }  function _setX(val) {    if (xMove.value) {      if (val + _scaleOffset.x === _translateX.value) {        return _translateX;      } else {        if (_SFA) {          _SFA.cancel();        }        _animationTo(val + _scaleOffset.x, ySync.value + _scaleOffset.y, _scale.value);      }    }    return val;  }  function _setY(val) {    if (yMove.value) {      if (val + _scaleOffset.y === _translateY.value) {        return _translateY;      } else {        if (_SFA) {          _SFA.cancel();        }        _animationTo(xSync.value + _scaleOffset.x, val + _scaleOffset.y, _scale.value);      }    }    return val;  }  return {    FAandSFACancel,    _getLimitXY,    _animationTo,    _setTransform,    _revise,    dampingNumber,    xMove,    yMove,    xSync,    ySync,    _STD  };}function useMovableViewInit(props2, rootRef, trigger, _scale, _oldScale, _isScaling, _translateX, _translateY, _SFA, _FA) {  const scaleMinNumber = vue.computed(() => {    let val = Number(props2.scaleMin);    return isNaN(val) ? 0.5 : val;  });  const scaleMaxNumber = vue.computed(() => {    let val = Number(props2.scaleMax);    return isNaN(val) ? 10 : val;  });  const scaleValueSync = vue.ref(Number(props2.scaleValue) || 1);  vue.watch(scaleValueSync, (val) => {    _setScaleValue(val);  });  vue.watch(scaleMinNumber, () => {    _setScaleMinOrMax();  });  vue.watch(scaleMaxNumber, () => {    _setScaleMinOrMax();  });  vue.watch(() => props2.scaleValue, (val) => {    scaleValueSync.value = Number(val) || 0;  });  const {    _updateBoundary,    _updateOffset,    _updateWH,    _scaleOffset,    minX,    minY,    maxX,    maxY  } = useMovableViewLayout(rootRef, _scale, _adjustScale);  const {    FAandSFACancel,    _getLimitXY,    _animationTo,    _setTransform,    _revise,    dampingNumber,    xMove,    yMove,    xSync,    ySync,    _STD  } = useMovableViewTransform(rootRef, props2, _scaleOffset, _scale, maxX, maxY, minX, minY, _translateX, _translateY, _SFA, _FA, _adjustScale, trigger);  function _updateScale(scale, animat) {    if (props2.scale) {      scale = _adjustScale(scale);      _updateWH(scale);      _updateBoundary();      const limitXY = _getLimitXY(_translateX.value, _translateY.value);      const x = limitXY.x;      const y = limitXY.y;      if (animat) {        _animationTo(x, y, scale, "", true, true);      } else {        _requestAnimationFrame(function() {          _setTransform(x, y, scale, "", true, true);        });      }    }  }  function _beginScale() {    _isScaling.value = true;  }  function _updateOldScale(scale) {    _oldScale.value = scale;  }  function _adjustScale(scale) {    scale = Math.max(0.5, scaleMinNumber.value, scale);    scale = Math.min(10, scaleMaxNumber.value, scale);    return scale;  }  function _setScaleMinOrMax() {    if (!props2.scale) {      return false;    }    _updateScale(_scale.value, true);    _updateOldScale(_scale.value);  }  function _setScaleValue(scale) {    if (!props2.scale) {      return false;    }    scale = _adjustScale(scale);    _updateScale(scale, true);    _updateOldScale(scale);    return scale;  }  function _endScale() {    _isScaling.value = false;    _updateOldScale(_scale.value);  }  function _setScale(scale) {    if (scale) {      scale = _oldScale.value * scale;      _beginScale();      _updateScale(scale);    }  }  return {    // scale    _updateOldScale,    _endScale,    _setScale,    scaleValueSync,    // layout    _updateBoundary,    _updateOffset,    _updateWH,    _scaleOffset,    minX,    minY,    maxX,    maxY,    // transform    FAandSFACancel,    _getLimitXY,    _animationTo,    _setTransform,    _revise,    dampingNumber,    xMove,    yMove,    xSync,    ySync,    _STD  };}function useMovableViewState(props2, trigger, rootRef) {  const _isMounted = vue.inject("_isMounted", vue.ref(false));  vue.inject("addMovableViewContext", () => {  });  vue.inject("removeMovableViewContext", () => {  });  let _scale = vue.ref(1);  let _oldScale = vue.ref(1);  let _isScaling = vue.ref(false);  let _translateX = vue.ref(0);  let _translateY = vue.ref(0);  let _SFA = null;  let _FA = null;  const frictionNumber = vue.computed(() => {    let val = Number(props2.friction);    return isNaN(val) || val <= 0 ? 2 : val;  });  new Friction(1, frictionNumber.value);  vue.watch(() => props2.disabled, () => {    __handleTouchStart();  });  const {    // scale    _updateOldScale,    _endScale,    _setScale,    scaleValueSync,    // layout    _updateBoundary,    _updateOffset,    _updateWH,    _scaleOffset,    minX,    minY,    maxX,    maxY,    // transform    FAandSFACancel,    _getLimitXY,    _setTransform,    _revise,    dampingNumber,    xMove,    yMove,    xSync,    ySync,    _STD  } = useMovableViewInit(props2, rootRef, trigger, _scale, _oldScale, _isScaling, _translateX, _translateY, _SFA, _FA);  function __handleTouchStart() {    if (!_isScaling.value) {      if (!props2.disabled) {        FAandSFACancel();        if (xMove.value) {          _translateX.value;        }        if (yMove.value) {          _translateY.value;        }        rootRef.value.style.willChange = "transform";      }    }  }  function setParent() {    if (!_isMounted.value) {      return;    }    FAandSFACancel();    let scale = props2.scale ? scaleValueSync.value : 1;    _updateOffset();    _updateWH(scale);    _updateBoundary();    let limitXY = _getLimitXY(xSync.value + _scaleOffset.x, ySync.value + _scaleOffset.y);    let x = limitXY.x;    let y = limitXY.y;    _setTransform(x, y, scale, "", true);    _updateOldScale(scale);  }  return {    setParent  };}const OPEN_TYPES = [  "navigate",  "redirect",  "switchTab",  "reLaunch",  "navigateBack"];const ANIMATION_IN = [  "slide-in-right",  "slide-in-left",  "slide-in-top",  "slide-in-bottom",  "fade-in",  "zoom-out",  "zoom-fade-out",  "pop-in",  "none"];const ANIMATION_OUT = [  "slide-out-right",  "slide-out-left",  "slide-out-top",  "slide-out-bottom",  "fade-out",  "zoom-in",  "zoom-fade-in",  "pop-out",  "none"];const navigatorProps = {  hoverClass: {    type: String,    default: "navigator-hover"  },  url: {    type: String,    default: ""  },  openType: {    type: String,    default: "navigate",    validator(value) {      return Boolean(~OPEN_TYPES.indexOf(value));    }  },  delta: {    type: Number,    default: 1  },  hoverStartTime: {    type: [Number, String],    default: 50  },  hoverStayTime: {    type: [Number, String],    default: 600  },  exists: {    type: String,    default: ""  },  hoverStopPropagation: {    type: Boolean,    default: false  },  animationType: {    type: String,    default: "",    validator(value) {      return !value || ANIMATION_IN.concat(ANIMATION_OUT).includes(value);    }  },  animationDuration: {    type: [String, Number],    default: 300  }};function createNavigatorOnClick(props2) {  return () => {    if (props2.openType !== "navigateBack" && !props2.url) {      console.error(        "<navigator/> should have url attribute when using navigateTo, redirectTo, reLaunch or switchTab"      );      return;    }    const animationDuration = parseInt(props2.animationDuration);    switch (props2.openType) {      case "navigate":        uni.navigateTo({          url: props2.url,          animationType: props2.animationType || "pop-in",          animationDuration        });        break;      case "redirect":        uni.redirectTo({          url: props2.url,          exists: props2.exists        });        break;      case "switchTab":        uni.switchTab({          url: props2.url        });        break;      case "reLaunch":        uni.reLaunch({          url: props2.url        });        break;      case "navigateBack":        uni.navigateBack({          delta: props2.delta,          animationType: props2.animationType || "pop-out",          animationDuration        });        break;    }  };}const index$r = /* @__PURE__ */ defineBuiltInComponent({  name: "Navigator",  inheritAttrs: false,  compatConfig: {    MODE: 3  },  props: /* @__PURE__ */ shared.extend({}, navigatorProps, {    renderLink: {      type: Boolean,      default: true    }  }),  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    const vm = vue.getCurrentInstance();    const __scopeId = vm && vm.vnode.scopeId || "";    const {      hovering,      binding    } = useHover(props2);    const onClick = createNavigatorOnClick(props2);    return () => {      const {        hoverClass,        url      } = props2;      const hasHoverClass = props2.hoverClass && props2.hoverClass !== "none";      const innerNode = props2.renderLink ? vue.createVNode("a", {        "class": "navigator-wrap",        "href": url,        "onClick": onEventPrevent,        "onMousedown": onEventPrevent      }, [slots.default && slots.default()], 40, ["href", "onClick", "onMousedown"]) : slots.default && slots.default();      return vue.createVNode("uni-navigator", vue.mergeProps({        "class": hasHoverClass && hovering.value ? hoverClass : "",        "ref": rootRef      }, hasHoverClass && binding, vm ? vm.attrs : {}, {        [__scopeId]: ""      }, {        "onClick": onClick      }), [innerNode], 16, ["onClick"]);    };  }});const pickerViewProps = {  value: {    type: Array,    default() {      return [];    },    validator: function(val) {      return shared.isArray(val) && val.filter((val2) => typeof val2 === "number").length === val.length;    }  },  indicatorStyle: {    type: String,    default: ""  },  indicatorClass: {    type: String,    default: ""  },  maskStyle: {    type: String,    default: ""  },  maskClass: {    type: String,    default: ""  }};function useState$2(props2) {  const value = vue.reactive([...props2.value]);  const state = vue.reactive({    value,    height: 34  });  vue.watch(() => props2.value, (val, oldVal) => {    {      state.value.length = val.length;      val.forEach((val2, index2) => {        if (val2 !== state.value[index2]) {          state.value.splice(index2, 1, val2);        }      });    }  });  return state;}const PickerView = /* @__PURE__ */ defineBuiltInComponent({  name: "PickerView",  props: pickerViewProps,  emits: ["change", "pickstart", "pickend", "update:value"],  setup(props2, {    slots,    emit: emit2  }) {    const rootRef = vue.ref(null);    const wrapperRef = vue.ref(null);    const trigger = useCustomEvent(rootRef, emit2);    const state = useState$2(props2);    const resizeSensorRef = vue.ref(null);    let ColumnsPreRef = vue.ref([]);    let columnsRef = vue.ref([]);    function getItemIndex(vnode) {      let columnVNodes = columnsRef.value;      {        columnVNodes = columnVNodes.filter((vnode2) => vnode2.type !== vue.Comment);      }      let index2 = columnVNodes.indexOf(vnode);      return index2 !== -1 ? index2 : ColumnsPreRef.value.indexOf(vnode);    }    const getPickerViewColumn = function(columnInstance) {      const ref2 = vue.computed({        get() {          const index2 = getItemIndex(columnInstance.vnode);          return state.value[index2] || 0;        },        set(current) {          const index2 = getItemIndex(columnInstance.vnode);          if (index2 < 0) {            return;          }          const oldCurrent = state.value[index2];          if (oldCurrent !== current) {            state.value[index2] = current;            const value = state.value.map((val) => val);            emit2("update:value", value);            trigger("change", {}, {              value            });          }        }      });      return ref2;    };    vue.provide("getPickerViewColumn", getPickerViewColumn);    vue.provide("pickerViewProps", props2);    vue.provide("pickerViewState", state);    return () => {      const defaultSlots = slots.default && slots.default();      {        const vnode = flatVNode(defaultSlots);        ColumnsPreRef.value = vnode;        vue.nextTick(() => {          columnsRef.value = vnode;        });      }      return vue.createVNode("uni-picker-view", {        "ref": rootRef      }, [vue.createVNode(ResizeSensor, {        "ref": resizeSensorRef,        "onResize": ({          height        }) => state.height = height      }, null, 8, ["onResize"]), vue.createVNode("div", {        "ref": wrapperRef,        "class": "uni-picker-view-wrapper"      }, [defaultSlots], 512)], 512);    };  }});const PickerViewColumn = /* @__PURE__ */ defineBuiltInComponent({  name: "PickerViewColumn",  setup(props2, {    slots,    emit: emit2  }) {    const rootRef = vue.ref(null);    const contentRef = vue.ref(null);    const getPickerViewColumn = vue.inject("getPickerViewColumn");    const instance = vue.getCurrentInstance();    const currentRef = getPickerViewColumn ? getPickerViewColumn(instance) : vue.ref(0);    const pickerViewProps2 = vue.inject("pickerViewProps");    const pickerViewState = vue.inject("pickerViewState");    const indicatorHeight = vue.ref(34);    const resizeSensorRef = vue.ref(null);    const maskSize = vue.computed(() => (pickerViewState.height - indicatorHeight.value) / 2);    const {      state: scopedAttrsState    } = useScopedAttrs();    let scroller;    const state = vue.reactive({      current: currentRef.value,      length: 0    });    function updatesScroller() {    }    vue.watch(() => currentRef.value, (current) => {      if (current !== state.current) {        state.current = current;      }    });    vue.watch(() => state.current, (current) => currentRef.value = current);    vue.watch([() => indicatorHeight.value, () => state.length, () => pickerViewState.height], updatesScroller);    let oldDeltaY = 0;    function handleWheel(event) {      const deltaY = oldDeltaY + event.deltaY;      if (Math.abs(deltaY) > 10) {        oldDeltaY = 0;        let current = Math.min(state.current + (deltaY < 0 ? -1 : 1), state.length - 1);        state.current = current = Math.max(current, 0);        scroller.scrollTo(current * indicatorHeight.value);      } else {        oldDeltaY = deltaY;      }      event.preventDefault();    }    function handleTap({      clientY    }) {      const el = rootRef.value;      if (!scroller.isScrolling()) {        const rect = el.getBoundingClientRect();        const r = clientY - rect.top - pickerViewState.height / 2;        const o = indicatorHeight.value / 2;        if (!(Math.abs(r) <= o)) {          const a = Math.ceil((Math.abs(r) - o) / indicatorHeight.value);          const s = r < 0 ? -a : a;          let current = Math.min(state.current + s, state.length - 1);          state.current = current = Math.max(current, 0);          scroller.scrollTo(current * indicatorHeight.value);        }      }    }    return () => {      const defaultSlots = slots.default && slots.default();      {        state.length = flatVNode(defaultSlots).length;      }      const padding = `${maskSize.value}px 0`;      return vue.createVNode("uni-picker-view-column", {        "ref": rootRef      }, [vue.createVNode("div", {        "onWheel": handleWheel,        "onClick": handleTap,        "class": "uni-picker-view-group"      }, [vue.createVNode("div", vue.mergeProps(scopedAttrsState.attrs, {        "class": ["uni-picker-view-mask", pickerViewProps2.maskClass],        "style": `background-size: 100% ${maskSize.value}px;${pickerViewProps2.maskStyle}`      }), null, 16), vue.createVNode("div", vue.mergeProps(scopedAttrsState.attrs, {        "class": ["uni-picker-view-indicator", pickerViewProps2.indicatorClass],        "style": pickerViewProps2.indicatorStyle      }), [vue.createVNode(ResizeSensor, {        "ref": resizeSensorRef,        "onResize": ({          height        }) => indicatorHeight.value = height      }, null, 8, ["onResize"])], 16), vue.createVNode("div", {        "ref": contentRef,        "class": ["uni-picker-view-content"],        "style": {          padding,          "--picker-view-column-indicator-height": `${indicatorHeight.value}px`        }      }, [defaultSlots], 4)], 40, ["onWheel", "onClick"])], 512);    };  }});const FONT_SIZE = 16;const PROGRESS_VALUES = {  activeColor: uniShared.PRIMARY_COLOR,  backgroundColor: "#EBEBEB",  activeMode: "backwards"};const progressProps = {  percent: {    type: [Number, String],    default: 0,    validator(value) {      return !isNaN(parseFloat(value));    }  },  fontSize: {    type: [String, Number],    default: FONT_SIZE  },  showInfo: {    type: [Boolean, String],    default: false  },  strokeWidth: {    type: [Number, String],    default: 6,    validator(value) {      return !isNaN(parseFloat(value));    }  },  color: {    type: String,    default: PROGRESS_VALUES.activeColor  },  activeColor: {    type: String,    default: PROGRESS_VALUES.activeColor  },  backgroundColor: {    type: String,    default: PROGRESS_VALUES.backgroundColor  },  active: {    type: [Boolean, String],    default: false  },  activeMode: {    type: String,    default: PROGRESS_VALUES.activeMode  },  duration: {    type: [Number, String],    default: 30,    validator(value) {      return !isNaN(parseFloat(value));    }  },  borderRadius: {    type: [Number, String],    default: 0  }};const index$q = /* @__PURE__ */ defineBuiltInComponent({  name: "Progress",  props: progressProps,  setup(props2) {    const rootRef = vue.ref(null);    const state = useProgressState(props2);    _activeAnimation(state, props2);    vue.watch(() => state.realPercent, (newValue, oldValue) => {      state.strokeTimer && clearInterval(state.strokeTimer);      state.lastPercent = oldValue || 0;      _activeAnimation(state, props2);    });    return () => {      const {        showInfo      } = props2;      const {        outerBarStyle,        innerBarStyle,        currentPercent      } = state;      return vue.createVNode("uni-progress", {        "class": "uni-progress",        "ref": rootRef      }, [vue.createVNode("div", {        "style": outerBarStyle,        "class": "uni-progress-bar"      }, [vue.createVNode("div", {        "style": innerBarStyle,        "class": "uni-progress-inner-bar"      }, null, 4)], 4), showInfo ? (        // {currentPercent}% 的写法会影响 SSR Hydration (tsx插件的问题)        vue.createVNode("p", {          "class": "uni-progress-info"        }, [currentPercent + "%"])      ) : ""], 512);    };  }});function useProgressState(props2) {  const currentPercent = vue.ref(0);  const outerBarStyle = vue.computed(() => `background-color: ${props2.backgroundColor}; height: ${props2.strokeWidth}px;`);  const innerBarStyle = vue.computed(() => {    const backgroundColor = props2.color !== PROGRESS_VALUES.activeColor && props2.activeColor === PROGRESS_VALUES.activeColor ? props2.color : props2.activeColor;    return `width: ${currentPercent.value}%;background-color: ${backgroundColor}`;  });  const realPercent = vue.computed(() => {    if (typeof props2.percent === "string" && !/^-?\d*\.?\d*$/.test(props2.percent)) {      return 0;    }    let realValue = parseFloat(props2.percent);    if (Number.isNaN(realValue) || realValue < 0) {      realValue = 0;    } else if (realValue > 100) {      realValue = 100;    }    return realValue;  });  const state = vue.reactive({    outerBarStyle,    innerBarStyle,    realPercent,    currentPercent,    strokeTimer: 0,    lastPercent: 0  });  return state;}function _activeAnimation(state, props2) {  if (props2.active) {    state.currentPercent = props2.activeMode === PROGRESS_VALUES.activeMode ? 0 : state.lastPercent;    state.strokeTimer = setInterval(() => {      if (state.currentPercent + 1 > state.realPercent) {        state.currentPercent = state.realPercent;        state.strokeTimer && clearInterval(state.strokeTimer);      } else {        state.currentPercent += 1;      }    }, parseFloat(props2.duration));  } else {    state.currentPercent = state.realPercent;  }}const uniRadioGroupKey = PolySymbol(process.env.NODE_ENV !== "production" ? "uniCheckGroup" : "ucg");const props$j = {  name: {    type: String,    default: ""  }};const index$p = /* @__PURE__ */ defineBuiltInComponent({  name: "RadioGroup",  props: props$j,  // emits: ['change'],  setup(props2, {    emit: emit2,    slots  }) {    const rootRef = vue.ref(null);    const trigger = useCustomEvent(rootRef, emit2);    useProvideRadioGroup(props2, trigger);    return () => {      return vue.createVNode("uni-radio-group", {        "ref": rootRef      }, [slots.default && slots.default()], 512);    };  }});function useProvideRadioGroup(props2, trigger) {  const fields2 = [];  const getFieldsValue = () => {    var _a;    return (_a = fields2.find((field) => field.value.radioChecked)) == null ? void 0 : _a.value.value;  };  vue.provide(uniRadioGroupKey, {    addField(field) {      fields2.push(field);    },    removeField(field) {      fields2.splice(fields2.indexOf(field), 1);    },    radioChange($event, field) {      const index2 = fields2.indexOf(field);      _resetRadioGroupValue(index2, true);      trigger("change", $event, {        value: getFieldsValue()      });    }  });  const uniForm = vue.inject(uniFormKey, false);  const formField = {    submit: () => {      let data = ["", null];      if (props2.name !== "") {        data[0] = props2.name;        data[1] = getFieldsValue();      }      return data;    }  };  if (uniForm) {    uniForm.addField(formField);  }  function setFieldChecked(field, radioChecked) {    field.value = {      radioChecked,      value: field.value.value    };  }  function _resetRadioGroupValue(key, change) {    fields2.forEach((value, index2) => {      if (index2 === key) {        return;      }      if (change) {        setFieldChecked(fields2[index2], false);      } else {        fields2.forEach((v2, i) => {          if (index2 >= i) {            return;          }          if (fields2[i].value.radioChecked) {            setFieldChecked(fields2[index2], false);          }        });      }    });  }  return fields2;}const props$i = {  checked: {    type: [Boolean, String],    default: false  },  id: {    type: String,    default: ""  },  disabled: {    type: [Boolean, String],    default: false  },  value: {    type: String,    default: ""  },  color: {    type: String,    default: "#007aff"  },  backgroundColor: {    type: String,    default: ""  },  borderColor: {    type: String,    default: ""  },  activeBackgroundColor: {    type: String,    default: ""  },  activeBorderColor: {    type: String,    default: ""  },  iconColor: {    type: String,    default: "#ffffff"  },  // 图标颜色,同color,优先级大于iconColor  foreColor: {    type: String,    default: ""  }};const indexX$3 = /* @__PURE__ */ defineBuiltInComponent({  name: "Radio",  props: props$i,  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    const radioChecked = vue.ref(props2.checked);    const radioValue = vue.ref(props2.value);    function getRadioStyle(checked) {      if (props2.disabled) {        return {          backgroundColor: "#E1E1E1",          borderColor: "#D1D1D1"        };      }      const style = {};      if (radioChecked.value) {        style.backgroundColor = props2.activeBackgroundColor || props2.color;        style.borderColor = props2.activeBorderColor || style.backgroundColor;      } else {        if (props2.borderColor)          style.borderColor = props2.borderColor;        if (props2.backgroundColor)          style.backgroundColor = props2.backgroundColor;      }      return style;    }    const radioStyle = vue.computed(() => {      return getRadioStyle(radioChecked.value);    });    vue.watch([() => props2.checked, () => props2.value], ([newChecked, newModelValue]) => {      radioChecked.value = newChecked;      radioValue.value = newModelValue;    });    const reset = () => {      radioChecked.value = false;    };    const {      uniCheckGroup,      uniLabel,      field    } = useRadioInject(radioChecked, radioValue, reset);    const _onClick = ($event) => {      if (props2.disabled || radioChecked.value) {        return;      }      radioChecked.value = true;      uniCheckGroup && uniCheckGroup.radioChange($event, field);      $event.stopPropagation();    };    if (!!uniLabel) {      uniLabel.addHandler(_onClick);    }    return () => {      const booleanAttrs = useBooleanAttr(props2, "disabled");      let realCheckValue;      realCheckValue = radioChecked.value;      return vue.createVNode("uni-radio", vue.mergeProps(booleanAttrs, {        "onClick": _onClick,        "ref": rootRef,        "id": props2.id,        "class": "uni-radio-wrapper",        "style": {          "--HOVER-BD-COLOR": !radioChecked.value ? props2.activeBorderColor : radioStyle.value.borderColor        }      }), [vue.createVNode("div", {        "class": ["uni-radio-input", {          "uni-radio-input-disabled": props2.disabled        }],        "style": radioStyle.value      }, [realCheckValue ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, props2.disabled ? "#ADADAD" : props2.foreColor || props2.iconColor, 18) : ""], 6), slots.default && slots.default()], 16, ["onClick", "id"]);    };  }});function useRadioInject(radioChecked, radioValue, reset) {  const field = vue.computed({    get: () => ({      radioChecked: Boolean(radioChecked.value),      value: radioValue.value    }),    set: ({      radioChecked: checked    }) => {      radioChecked.value = checked;    }  });  const formField = {    reset  };  const uniCheckGroup = vue.inject(uniRadioGroupKey, false);  if (!!uniCheckGroup) {    uniCheckGroup.addField(field);  }  const uniForm = vue.inject(uniFormKey, false);  if (!!uniForm) {    uniForm.addField(formField);  }  const uniLabel = vue.inject(uniLabelKey, false);  return {    uniCheckGroup,    uniForm,    uniLabel,    field  };}const TAGS = {  a: "",  abbr: "",  address: "",  article: "",  aside: "",  b: "",  bdi: "",  bdo: ["dir"],  big: "",  blockquote: "",  br: "",  caption: "",  center: "",  cite: "",  code: "",  col: ["span", "width"],  colgroup: ["span", "width"],  dd: "",  del: "",  div: "",  dl: "",  dt: "",  em: "",  fieldset: "",  font: "",  footer: "",  h1: "",  h2: "",  h3: "",  h4: "",  h5: "",  h6: "",  header: "",  hr: "",  i: "",  img: ["alt", "src", "height", "width"],  ins: "",  label: "",  legend: "",  li: "",  mark: "",  nav: "",  ol: ["start", "type"],  p: "",  pre: "",  q: "",  rt: "",  ruby: "",  s: "",  section: "",  small: "",  span: "",  strong: "",  sub: "",  sup: "",  table: ["width"],  tbody: "",  td: ["colspan", "height", "rowspan", "width"],  tfoot: "",  th: ["colspan", "height", "rowspan", "width"],  thead: "",  tr: ["colspan", "height", "rowspan", "width"],  tt: "",  u: "",  ul: ""};const CHARS = {  amp: "&",  gt: ">",  lt: "<",  nbsp: " ",  quot: '"',  apos: "'",  ldquo: "“",  rdquo: "”",  yen: "¥",  radic: "√",  lceil: "⌈",  rceil: "⌉",  lfloor: "⌊",  rfloor: "⌋",  hellip: "…"};function decodeEntities(htmlString) {  return htmlString.replace(    /&(([a-zA-Z]+)|(#x{0,1}[\da-zA-Z]+));/gi,    function(match, stage) {      if (shared.hasOwn(CHARS, stage) && CHARS[stage]) {        return CHARS[stage];      }      if (/^#[0-9]{1,4}$/.test(stage)) {        return String.fromCharCode(stage.slice(1));      }      if (/^#x[0-9a-f]{1,4}$/i.test(stage)) {        return String.fromCharCode(0 + stage.slice(1));      }      return match;    }  );}function processClickEvent(node, triggerItemClick) {  if (["a", "img"].includes(node.name) && triggerItemClick) {    return {      onClick: (e2) => {        triggerItemClick(e2, { node });        e2.stopPropagation();        e2.preventDefault();        e2.returnValue = false;      }    };  }}function normalizeAttrs(tagName, attrs) {  if (!shared.isPlainObject(attrs))    return;  for (const key in attrs) {    if (shared.hasOwn(attrs, key)) {      const value = attrs[key];      if (tagName === "img" && key === "src")        attrs[key] = getRealPath(value);    }  }}const nodeList2VNode = (scopeId, triggerItemClick, nodeList) => {  if (!nodeList || shared.isArray(nodeList) && !nodeList.length)    return [];  return nodeList.map((node) => {    var _a;    if (!shared.isPlainObject(node)) {      return;    }    if (!shared.hasOwn(node, "type") || node.type === "node") {      let nodeProps = { [scopeId]: "" };      const tagName = (_a = node.name) == null ? void 0 : _a.toLowerCase();      if (!shared.hasOwn(TAGS, tagName)) {        return;      }      normalizeAttrs(tagName, node.attrs);      nodeProps = shared.extend(        nodeProps,        processClickEvent(node, triggerItemClick),        node.attrs      );      return vue.h(        node.name,        nodeProps,        nodeList2VNode(scopeId, triggerItemClick, node.children)      );    }    if (node.type === "text" && shared.isString(node.text) && node.text !== "")      return vue.createTextVNode(decodeEntities(node.text || ""));  });};function removeDOCTYPE(html) {  return html.replace(/<\?xml.*\?>\n/, "").replace(/<!doctype.*>\n/, "").replace(/<!DOCTYPE.*>\n/, "");}function parseAttrs(attrs) {  return attrs.reduce(function(pre, attr2) {    let value = attr2.value;    const name = attr2.name;    if (value.match(/ /) && ["style", "src"].indexOf(name) === -1) {      value = value.split(" ");    }    if (pre[name]) {      if (Array.isArray(pre[name])) {        pre[name].push(value);      } else {        pre[name] = [pre[name], value];      }    } else {      pre[name] = value;    }    return pre;  }, {});}function parseHtml(html) {  html = removeDOCTYPE(html);  const stacks = [];  const results = {    node: "root",    children: []  };  HTMLParser(html, {    start: function(tag, attrs, unary) {      const node = {        name: tag      };      if (attrs.length !== 0) {        node.attrs = parseAttrs(attrs);      }      if (unary) {        const parent = stacks[0] || results;        if (!parent.children) {          parent.children = [];        }        parent.children.push(node);      } else {        stacks.unshift(node);      }    },    end: function(tag) {      const node = stacks.shift();      if (node.name !== tag)        console.error("invalid state: mismatch end tag");      if (stacks.length === 0) {        results.children.push(node);      } else {        const parent = stacks[0];        if (!parent.children) {          parent.children = [];        }        parent.children.push(node);      }    },    chars: function(text) {      const node = {        type: "text",        text      };      if (stacks.length === 0) {        results.children.push(node);      } else {        const parent = stacks[0];        if (!parent.children) {          parent.children = [];        }        parent.children.push(node);      }    },    comment: function(text) {      const node = {        node: "comment",        text      };      const parent = stacks[0];      if (parent) {        if (!parent.children) {          parent.children = [];        }        parent.children.push(node);      }    }  });  return results.children;}const props$h = {  nodes: {    type: [Array, String],    default: function() {      return [];    }  }};const index$o = /* @__PURE__ */ defineBuiltInComponent({  name: "RichText",  compatConfig: {    MODE: 3  },  props: props$h,  emits: ["click", "touchstart", "touchmove", "touchcancel", "touchend", "longpress", "itemclick"],  setup(props2, {    emit: emit2  }) {    const vm = vue.getCurrentInstance();    const scopeId = vm && vm.vnode.scopeId || "";    const rootRef = vue.ref(null);    const _vnode = vue.ref([]);    const trigger = useCustomEvent(rootRef, emit2);    function triggerItemClick(e2, detail = {}) {      trigger("itemclick", e2, detail);    }    function renderVNode() {      let nodeList = props2.nodes;      if (shared.isString(nodeList)) {        nodeList = parseHtml(props2.nodes);      }      _vnode.value = nodeList2VNode(scopeId, triggerItemClick, nodeList);    }    vue.watch(() => props2.nodes, renderVNode, {      immediate: true    });    return () => vue.h("uni-rich-text", {      ref: rootRef    }, vue.h("div", {}, _vnode.value));  }});const Refresher = /* @__PURE__ */ defineBuiltInComponent({  name: "Refresher",  props: {    refreshState: {      type: String,      default: ""    },    refresherHeight: {      type: Number,      default: 0    },    refresherThreshold: {      type: Number,      default: 45    },    refresherDefaultStyle: {      type: String,      default: "black"    },    refresherBackground: {      type: String,      default: "transparent"    }  },  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    const rootStyle = vue.computed(() => {      const style = {        backgroundColor: props2.refresherBackground      };      switch (props2.refreshState) {        case "pulling":          style.height = props2.refresherHeight + "px";          break;        case "refreshing":          style.height = props2.refresherThreshold + "px";          style.transition = "height 0.3s";          break;        case "":        case "refresherabort":        case "restore":          style.height = "0px";          style.transition = "height 0.3s";          break;      }      return style;    });    const refreshRotate = vue.computed(() => {      const route = props2.refresherHeight / props2.refresherThreshold;      return (route > 1 ? 1 : route) * 360;    });    return () => {      const {        refreshState,        refresherDefaultStyle,        refresherThreshold      } = props2;      return vue.createVNode("div", {        "ref": rootRef,        "style": rootStyle.value,        "class": "uni-scroll-view-refresher"      }, [refresherDefaultStyle !== "none" ? vue.createVNode("div", {        "class": "uni-scroll-view-refresh"      }, [vue.createVNode("div", {        "class": "uni-scroll-view-refresh-inner"      }, [refreshState == "pulling" ? vue.createVNode("svg", {        "key": "refresh__icon",        "style": {          transform: "rotate(" + refreshRotate.value + "deg)"        },        "fill": "#2BD009",        "class": "uni-scroll-view-refresh__icon",        "width": "24",        "height": "24",        "viewBox": "0 0 24 24"      }, [vue.createVNode("path", {        "d": "M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"      }, null), vue.createVNode("path", {        "d": "M0 0h24v24H0z",        "fill": "none"      }, null)], 4) : null, refreshState == "refreshing" ? vue.createVNode("svg", {        "key": "refresh__spinner",        "class": "uni-scroll-view-refresh__spinner",        "width": "24",        "height": "24",        "viewBox": "25 25 50 50"      }, [vue.createVNode("circle", {        "cx": "50",        "cy": "50",        "r": "20",        "fill": "none",        "style": "color: #2bd009",        "stroke-width": "3"      }, null)]) : null])]) : null, refresherDefaultStyle === "none" ? vue.createVNode("div", {        "class": "uni-scroll-view-refresher-container",        "style": {          height: `${refresherThreshold}px`        }      }, [slots.default && slots.default()]) : null], 4);    };  }});const props$g = {  direction: {    type: [String],    default: "vertical"  },  scrollX: {    type: [Boolean, String],    default: false  },  scrollY: {    type: [Boolean, String],    default: false  },  showScrollbar: {    type: [Boolean, String],    default: true  },  upperThreshold: {    type: [Number, String],    default: 50  },  lowerThreshold: {    type: [Number, String],    default: 50  },  scrollTop: {    type: [Number, String],    default: 0  },  scrollLeft: {    type: [Number, String],    default: 0  },  scrollIntoView: {    type: String,    default: ""  },  scrollWithAnimation: {    type: [Boolean, String],    default: false  },  enableBackToTop: {    type: [Boolean, String],    default: false  },  refresherEnabled: {    type: [Boolean, String],    default: false  },  refresherThreshold: {    type: Number,    default: 45  },  refresherDefaultStyle: {    type: String,    default: "black"  },  refresherBackground: {    type: String,    default: "transparent"  },  refresherTriggered: {    type: [Boolean, String],    default: false  }};const index$n = /* @__PURE__ */ defineBuiltInComponent({  name: "ScrollView",  compatConfig: {    MODE: 3  },  props: props$g,  emits: ["scroll", "scrolltoupper", "scrolltolower", "refresherrefresh", "refresherrestore", "refresherpulling", "refresherabort", "update:refresherTriggered"],  setup(props2, {    emit: emit2,    slots,    expose  }) {    const rootRef = vue.ref(null);    const main = vue.ref(null);    const wrap = vue.ref(null);    const content = vue.ref(null);    const trigger = useCustomEvent(rootRef, emit2);    const {      state,      scrollTopNumber,      scrollLeftNumber    } = useScrollViewState(props2);    const {      realScrollX,      realScrollY,      _scrollLeftChanged,      _scrollTopChanged    } = useScrollViewLoader(props2, state, scrollTopNumber, scrollLeftNumber, trigger, rootRef, main, content, emit2);    const mainStyle = vue.computed(() => {      let style = "";      realScrollX.value ? style += "overflow-x:auto;" : style += "overflow-x:hidden;";      realScrollY.value ? style += "overflow-y:auto;" : style += "overflow-y:hidden;";      return style;    });    const scrollBarClassName = vue.computed(() => {      let className = "uni-scroll-view";      if (props2.showScrollbar === false) {        className += " uni-scroll-view-scrollbar-hidden";      }      return className;    });    expose({      // 自动化测试需要暴露main从而获取scrollLeft      $getMain() {        return main.value;      }    });    return () => {      const {        refresherEnabled,        refresherBackground,        refresherDefaultStyle,        refresherThreshold      } = props2;      const {        refresherHeight,        refreshState      } = state;      return vue.createVNode("uni-scroll-view", {        "ref": rootRef      }, [vue.createVNode("div", {        "ref": wrap,        "class": "uni-scroll-view"      }, [vue.createVNode("div", {        "ref": main,        "style": mainStyle.value,        "class": scrollBarClassName.value      }, [refresherEnabled ? vue.createVNode(Refresher, {        "refreshState": refreshState,        "refresherHeight": refresherHeight,        "refresherThreshold": refresherThreshold,        "refresherDefaultStyle": refresherDefaultStyle,        "refresherBackground": refresherBackground      }, {        default: () => [refresherDefaultStyle == "none" ? slots.refresher && slots.refresher() : null]      }, 8, ["refreshState", "refresherHeight", "refresherThreshold", "refresherDefaultStyle", "refresherBackground"]) : null, vue.createVNode("div", {        "ref": content,        "class": "uni-scroll-view-content"      }, [slots.default && slots.default()], 512)], 6)], 512)], 512);    };  }});function useScrollViewState(props2) {  const scrollTopNumber = vue.computed(() => {    return Number(props2.scrollTop) || 0;  });  const scrollLeftNumber = vue.computed(() => {    return Number(props2.scrollLeft) || 0;  });  const state = vue.reactive({    lastScrollTop: scrollTopNumber.value,    lastScrollLeft: scrollLeftNumber.value,    lastScrollToUpperTime: 0,    lastScrollToLowerTime: 0,    refresherHeight: 0,    refreshState: ""  });  return {    state,    scrollTopNumber,    scrollLeftNumber  };}function useScrollViewLoader(props2, state, scrollTopNumber, scrollLeftNumber, trigger, rootRef, main, content, emit2) {  let beforeRefreshing = false;  let triggerAbort = false;  let __transitionEnd = () => {  };  const realScrollX = vue.computed(() => {    if (props2.direction === "horizontal" || props2.direction === "all") {      return true;    }    return false;  });  const realScrollY = vue.computed(() => {    if (props2.direction === "vertical" || props2.direction === "all") {      return true;    }    return false;  });  vue.computed(() => {    let val = Number(props2.upperThreshold);    return isNaN(val) ? 50 : val;  });  vue.computed(() => {    let val = Number(props2.lowerThreshold);    return isNaN(val) ? 50 : val;  });  function scrollTo(scrollToValue, direction) {    const container = main.value;    let transformValue = 0;    let transform = "";    scrollToValue < 0 ? scrollToValue = 0 : direction === "x" && scrollToValue > container.scrollWidth - container.offsetWidth ? scrollToValue = container.scrollWidth - container.offsetWidth : direction === "y" && scrollToValue > container.scrollHeight - container.offsetHeight && (scrollToValue = container.scrollHeight - container.offsetHeight);    direction === "x" ? transformValue = container.scrollLeft - scrollToValue : direction === "y" && (transformValue = container.scrollTop - scrollToValue);    if (transformValue === 0)      return;    let _content = content.value;    _content.style.transition = "transform .3s ease-out";    _content.style.webkitTransition = "-webkit-transform .3s ease-out";    if (direction === "x") {      transform = "translateX(" + transformValue + "px) translateZ(0)";    } else {      direction === "y" && (transform = "translateY(" + transformValue + "px) translateZ(0)");    }    _content.removeEventListener("transitionend", __transitionEnd);    _content.removeEventListener("webkitTransitionEnd", __transitionEnd);    __transitionEnd = () => _transitionEnd(scrollToValue, direction);    _content.addEventListener("transitionend", __transitionEnd);    _content.addEventListener("webkitTransitionEnd", __transitionEnd);    if (direction === "x") {      container.style.overflowX = "hidden";    } else if (direction === "y") {      container.style.overflowY = "hidden";    }    _content.style.transform = transform;    _content.style.webkitTransform = transform;  }  function _scrollTopChanged(val) {    if (realScrollY.value) {      {        if (props2.scrollWithAnimation) {          scrollTo(val, "y");        } else {          main.value.scrollTop = val;        }      }    }  }  function _scrollLeftChanged(val) {    if (realScrollX.value) {      {        if (props2.scrollWithAnimation) {          scrollTo(val, "x");        } else {          main.value.scrollLeft = val;        }      }    }  }  function _scrollIntoViewChanged(val) {    if (val) {      if (!/^[_a-zA-Z][-_a-zA-Z0-9:]*$/.test(val)) {        console.error(`id error: scroll-into-view=${val}`);        return;      }      let element = rootRef.value.querySelector("#" + val);      if (element) {        let mainRect = main.value.getBoundingClientRect();        let elRect = element.getBoundingClientRect();        if (realScrollX.value) {          let left = elRect.left - mainRect.left;          let scrollLeft = main.value.scrollLeft;          let x = scrollLeft + left;          if (props2.scrollWithAnimation) {            scrollTo(x, "x");          } else {            main.value.scrollLeft = x;          }        }        if (realScrollY.value) {          let top = elRect.top - mainRect.top;          let scrollTop = main.value.scrollTop;          let y = scrollTop + top;          if (props2.scrollWithAnimation) {            scrollTo(y, "y");          } else {            main.value.scrollTop = y;          }        }      }    }  }  function _transitionEnd(val, direction) {    content.value.style.transition = "";    content.value.style.webkitTransition = "";    content.value.style.transform = "";    content.value.style.webkitTransform = "";    let _main = main.value;    if (direction === "x") {      _main.style.overflowX = realScrollX.value ? "auto" : "hidden";      _main.scrollLeft = val;    } else if (direction === "y") {      _main.style.overflowY = realScrollY.value ? "auto" : "hidden";      _main.scrollTop = val;    }    content.value.removeEventListener("transitionend", __transitionEnd);    content.value.removeEventListener("webkitTransitionEnd", __transitionEnd);  }  function _setRefreshState(_state) {    if (!props2.refresherEnabled)      return;    switch (_state) {      case "refreshing":        state.refresherHeight = props2.refresherThreshold;        if (!beforeRefreshing) {          beforeRefreshing = true;          trigger("refresherpulling", {}, {            deltaY: state.refresherHeight,            dy: state.refresherHeight          });          trigger("refresherrefresh", {}, {            dy: touchEnd.y - touchStart.y          });          emit2("update:refresherTriggered", true);        }        break;      case "restore":      case "refresherabort":        beforeRefreshing = false;        state.refresherHeight = 0;        if (_state === "restore") {          triggerAbort = false;          trigger("refresherrestore", {}, {            dy: touchEnd.y - touchStart.y          });        }        if (_state === "refresherabort" && triggerAbort) {          triggerAbort = false;          trigger("refresherabort", {}, {            dy: touchEnd.y - touchStart.y          });        }        break;    }    state.refreshState = _state;  }  let touchStart = {    x: 0,    y: 0  };  let touchEnd = {    x: 0,    y: props2.refresherThreshold  };  vue.watch(scrollTopNumber, (val) => {    _scrollTopChanged(val);  });  vue.watch(scrollLeftNumber, (val) => {    _scrollLeftChanged(val);  });  vue.watch(() => props2.scrollIntoView, (val) => {    _scrollIntoViewChanged(val);  });  vue.watch(() => props2.refresherTriggered, (val) => {    if (val === true) {      _setRefreshState("refreshing");    } else if (val === false) {      _setRefreshState("restore");    }  });  return {    realScrollX,    realScrollY,    _scrollTopChanged,    _scrollLeftChanged  };}const SLIDER_BLOCK_SIZE_MIN_VALUE = 12;const SLIDER_BLOCK_SIZE_MAX_VALUE = 28;const props$f = {  name: {    type: String,    default: ""  },  min: {    type: [Number, String],    default: 0  },  max: {    type: [Number, String],    default: 100  },  value: {    type: [Number, String],    default: 0  },  step: {    type: [Number, String],    default: 1  },  disabled: {    type: [Boolean, String],    default: false  },  color: {    type: String,    default: "#e9e9e9"  },  backgroundColor: {    type: String,    default: "#e9e9e9"  },  // 优先级高于 activeColor  activeBackgroundColor: {    type: String,    default: ""  },  activeColor: {    type: String,    default: "#007aff"  },  selectedColor: {    type: String,    default: "#007aff"  },  blockColor: {    type: String,    default: "#ffffff"  },  // 优先级高于blockColor  foreColor: {    type: String,    default: ""  },  valueColor: {    type: String,    default: "#888888"  },  blockSize: {    type: [Number, String],    default: 28  },  showValue: {    type: [Boolean, String],    default: false  }};const indexX$2 = /* @__PURE__ */ defineBuiltInComponent({  name: "Slider",  props: props$f,  emits: ["changing", "change"],  setup(props2, {    emit: emit2  }) {    const sliderRef = vue.ref(null);    const sliderValueRef = vue.ref(null);    let uniSliderElement;    vue.watch(() => props2.value, (val) => {      uniSliderElement.value = Number(val);    });    const trigger = useCustomEvent(sliderRef, emit2);    const state = useSliderState(props2);    const {      _onInput,      _onChange    } = useSliderLoader(props2, sliderRef, trigger);    return () => {      const {        setTrackBgColor,        setActiveColor,        setThumbStyle,        thumbTrackStyle,        setValueStyle      } = state;      return vue.createVNode("uni-slider", {        "ref": sliderRef      }, [vue.createVNode("div", {        "class": "uni-slider-wrapper"      }, [vue.createVNode("div", {        "class": "uni-slider-input"      }, [vue.createVNode("div", {        "style": setTrackBgColor.value,        "class": "uni-slider-track"      }, [vue.createVNode("div", {        "style": setActiveColor.value,        "class": "uni-slider-track-value"      }, null, 4)], 4), vue.createVNode("div", {        "style": thumbTrackStyle.value,        "class": "uni-slider-thumb-track"      }, [vue.createVNode("div", {        "style": setThumbStyle.value,        "class": "uni-slider-thumb-value"      }, null, 4)], 4), vue.createVNode("input", {        "class": "uni-slider-browser-input-range",        "type": "range",        "min": props2.min,        "max": props2.max,        "step": props2.step,        "value": props2.value,        "onInput": withWebEvent(_onInput),        "onChange": withWebEvent(_onChange)      }, null, 40, ["min", "max", "step", "value", "onInput", "onChange"])]), vue.withDirectives(vue.createVNode("span", {        "ref": sliderValueRef,        "style": setValueStyle.value,        "class": "uni-slider-value"      }, null, 4), [[vue.vShow, props2.showValue]])]), vue.createVNode("slot", null, null)], 512);    };  }});function useSliderState(props2) {  const _getBgColor = () => {    return props2.backgroundColor !== "#e9e9e9" ? props2.backgroundColor : props2.color !== "#007aff" ? props2.color : "#007aff";  };  const _getActiveColor = () => {    const activeColor = props2.activeBackgroundColor || props2.activeColor;    return activeColor !== "#007aff" ? activeColor : props2.selectedColor !== "#e9e9e9" ? props2.selectedColor : "#e9e9e9";  };  const _getBlockSizeString = () => {    const blockSize = Math.min(Math.max(Number(props2.blockSize), SLIDER_BLOCK_SIZE_MIN_VALUE), SLIDER_BLOCK_SIZE_MAX_VALUE);    return blockSize + "px";  };  const state = {    setTrackBgColor: vue.computed(() => ({      backgroundColor: _getBgColor()    })),    setActiveColor: vue.computed(() => ({      backgroundColor: _getActiveColor()    })),    thumbTrackStyle: vue.computed(() => ({      marginRight: _getBlockSizeString()    })),    setThumbStyle: vue.computed(() => ({      width: _getBlockSizeString(),      height: _getBlockSizeString(),      backgroundColor: props2.foreColor || props2.blockColor    })),    setValueStyle: vue.computed(() => ({      color: props2.valueColor    }))  };  return state;}function useSliderLoader(props2, sliderRef, trigger) {  const _onInput = (event) => {    if (props2.disabled) {      return;    }    const valueNumber = Number(event.target.value);    sliderRef.value.updateValue(valueNumber);    trigger("changing", event, {      value: valueNumber    });  };  const _onChange = (event) => {    if (props2.disabled) {      return;    }    const valueNumber = Number(event.target.value);    sliderRef.value.updateValue(valueNumber);    trigger("change", event, {      value: valueNumber    });  };  const uniForm = vue.inject(uniFormKey, false);  if (!!uniForm) {    const field = {      reset: () => {        sliderRef.value.reset();      },      submit: () => {        const data = ["", null];        const value = sliderRef.value.value;        if (props2.name !== "") {          data[0] = props2.name;          data[1] = value;        }        return data;      }    };    uniForm.addField(field);  }  return {    _onInput,    _onChange  };}const props$e = {  indicatorDots: {    type: [Boolean, String],    default: false  },  vertical: {    type: [Boolean, String],    default: false  },  autoplay: {    type: [Boolean, String],    default: false  },  circular: {    type: [Boolean, String],    default: false  },  interval: {    type: [Number, String],    default: 5e3  },  duration: {    type: [Number, String],    default: 500  },  current: {    type: [Number, String],    default: 0  },  indicatorColor: {    type: String,    default: ""  },  indicatorActiveColor: {    type: String,    default: ""  },  previousMargin: {    type: String,    default: ""  },  nextMargin: {    type: String,    default: ""  },  currentItemId: {    type: String,    default: ""  },  skipHiddenItemLayout: {    type: [Boolean, String],    default: false  },  displayMultipleItems: {    type: [Number, String],    default: 1  },  disableTouch: {    type: [Boolean, String],    default: false  },  navigation: {    type: [Boolean, String],    default: false  },  navigationColor: {    type: String,    default: "#fff"  },  navigationActiveColor: {    type: String,    default: "rgba(53, 53, 53, 0.6)"  }};function useState$1(props2) {  const interval = vue.computed(() => {    const interval2 = Number(props2.interval);    return isNaN(interval2) ? 5e3 : interval2;  });  const duration = vue.computed(() => {    const duration2 = Number(props2.duration);    return isNaN(duration2) ? 500 : duration2;  });  const displayMultipleItems = vue.computed(() => {    const displayMultipleItems2 = Math.round(props2.displayMultipleItems);    return isNaN(displayMultipleItems2) ? 1 : displayMultipleItems2;  });  const state = vue.reactive({    interval,    duration,    displayMultipleItems,    current: Math.round(props2.current) || 0,    currentItemId: props2.currentItemId,    userTracking: false  });  return state;}function useLayout(props2, state, swiperContexts, slideFrameRef, emit2, trigger) {  function cancelSchedule() {    if (timer) {      clearTimeout(timer);      timer = null;    }  }  let timer = null;  let invalid = true;  let viewportPosition = 0;  let viewportMoveRatio = 1;  let animating = null;  let requestedAnimation = false;  let contentTrackViewport = 0;  let transitionStart;  let currentChangeSource = "";  const swiperEnabled = vue.computed(() => swiperContexts.value.length > state.displayMultipleItems);  const circularEnabled = vue.computed(() => props2.circular && swiperEnabled.value);  function checkCircularLayout(index2) {    if (!invalid) {      for (let items = swiperContexts.value, n = items.length, i = index2 + state.displayMultipleItems, r = 0; r < n; r++) {        const item = items[r];        const s = Math.floor(index2 / n) * n + r;        const l = s + n;        const c = s - n;        const u = Math.max(index2 - (s + 1), s - i, 0);        const d = Math.max(index2 - (l + 1), l - i, 0);        const h = Math.max(index2 - (c + 1), c - i, 0);        const p2 = Math.min(u, d, h);        const position = [s, l, c][[u, d, h].indexOf(p2)];        item.updatePosition(position, props2.vertical);      }    }  }  function updateViewport(index2) {    if (!(Math.floor(2 * viewportPosition) === Math.floor(2 * index2) && Math.ceil(2 * viewportPosition) === Math.ceil(2 * index2))) {      if (circularEnabled.value) {        checkCircularLayout(index2);      }    }    const x = props2.vertical ? "0" : 100 * -index2 * viewportMoveRatio + "%";    const y = props2.vertical ? 100 * -index2 * viewportMoveRatio + "%" : "0";    const transform = "translate(" + x + ", " + y + ") translateZ(0)";    const slideFrame = slideFrameRef.value;    if (slideFrame) {      slideFrame.style.webkitTransform = transform;      slideFrame.style.transform = transform;    }    viewportPosition = index2;    if (!transitionStart) {      if (index2 % 1 === 0) {        return;      }      transitionStart = index2;    }    index2 -= Math.floor(transitionStart);    const items = swiperContexts.value;    if (index2 <= -(items.length - 1)) {      index2 += items.length;    } else if (index2 >= items.length) {      index2 -= items.length;    }    index2 = transitionStart % 1 > 0.5 || transitionStart < 0 ? index2 - 1 : index2;    trigger("transition", {}, {      dx: props2.vertical ? 0 : index2 * slideFrame.offsetWidth,      dy: props2.vertical ? index2 * slideFrame.offsetHeight : 0    });  }  function endViewportAnimation() {    if (animating) {      updateViewport(animating.toPos);      animating = null;    }  }  function normalizeCurrentValue(current) {    const length = swiperContexts.value.length;    if (!length) {      return -1;    }    const index2 = (Math.round(current) % length + length) % length;    if (circularEnabled.value) {      if (length <= state.displayMultipleItems) {        return 0;      }    } else if (index2 > length - state.displayMultipleItems) {      return length - state.displayMultipleItems;    }    return index2;  }  function cancelViewportAnimation() {    animating = null;  }  function animateFrameFuncProto() {    if (!animating) {      requestedAnimation = false;      return;    }    const _animating = animating;    const toPos = _animating.toPos;    const acc = _animating.acc;    const endTime = _animating.endTime;    const source = _animating.source;    const time = endTime - Date.now();    if (time <= 0) {      updateViewport(toPos);      animating = null;      requestedAnimation = false;      transitionStart = null;      const item = swiperContexts.value[state.current];      if (item) {        const currentItemId = item.getItemId();        trigger("animationfinish", {}, {          current: state.current,          currentItemId,          source        });      }      return;    }    const s = acc * time * time / 2;    const l = toPos + s;    updateViewport(l);    requestAnimationFrame(animateFrameFuncProto);  }  function animateViewport(current, source, n) {    cancelViewportAnimation();    const duration = state.duration;    const length = swiperContexts.value.length;    let position = viewportPosition;    if (circularEnabled.value) {      if (n < 0) {        for (; position < current; ) {          position += length;        }        for (; position - length > current; ) {          position -= length;        }      } else if (n > 0) {        for (; position > current; ) {          position -= length;        }        for (; position + length < current; ) {          position += length;        }        if (position + length - current < current - position) {          position += length;        }      } else {        for (; position + length < current; ) {          position += length;        }        for (; position - length > current; ) {          position -= length;        }        if (position + length - current < current - position) {          position += length;        }      }    } else if (source === "click") {      current = current + state.displayMultipleItems - 1 < length ? current : 0;    }    animating = {      toPos: current,      acc: 2 * (position - current) / (duration * duration),      endTime: Date.now() + duration,      source    };    if (!requestedAnimation) {      requestedAnimation = true;      requestAnimationFrame(animateFrameFuncProto);    }  }  function scheduleAutoplay() {    cancelSchedule();    const items = swiperContexts.value;    const callback = function() {      timer = null;      currentChangeSource = "autoplay";      if (circularEnabled.value) {        state.current = normalizeCurrentValue(state.current + 1);      } else {        state.current = state.current + state.displayMultipleItems < items.length ? state.current + 1 : 0;      }      animateViewport(state.current, "autoplay", circularEnabled.value ? 1 : 0);      timer = setTimeout(callback, state.interval);    };    if (!(invalid || items.length <= state.displayMultipleItems)) {      timer = setTimeout(callback, state.interval);    }  }  function resetLayout() {    cancelSchedule();    endViewportAnimation();    const items = swiperContexts.value;    for (let i = 0; i < items.length; i++) {      items[i].updatePosition(i, props2.vertical);    }    viewportMoveRatio = 1;    const slideFrameEl = slideFrameRef.value;    if (state.displayMultipleItems === 1 && items.length) {      const itemRect = items[0].getBoundingClientRect();      const slideFrameRect = slideFrameEl.getBoundingClientRect();      viewportMoveRatio = itemRect.width / slideFrameRect.width;      if (!(viewportMoveRatio > 0 && viewportMoveRatio < 1)) {        viewportMoveRatio = 1;      }    }    const position = viewportPosition;    viewportPosition = -2;    const current = state.current;    if (current >= 0) {      invalid = false;      if (state.userTracking) {        updateViewport(position + current - contentTrackViewport);        contentTrackViewport = current;      } else {        updateViewport(current);        if (props2.autoplay) {          scheduleAutoplay();        }      }    } else {      invalid = true;      updateViewport(-state.displayMultipleItems - 1);    }  }  vue.watch([() => props2.current, () => props2.currentItemId, () => [...swiperContexts.value]], () => {    let current = -1;    if (props2.currentItemId) {      for (let i = 0, items = swiperContexts.value; i < items.length; i++) {        const itemId = items[i].getItemId();        if (itemId === props2.currentItemId) {          current = i;          break;        }      }    }    if (current < 0) {      current = Math.round(props2.current) || 0;    }    current = current < 0 ? 0 : current;    if (state.current !== current) {      currentChangeSource = "";      state.current = current;    }  });  vue.watch([() => props2.vertical, () => circularEnabled.value, () => state.displayMultipleItems, () => [...swiperContexts.value]], resetLayout);  vue.watch(() => state.interval, () => {    if (timer) {      cancelSchedule();      scheduleAutoplay();    }  });  function currentChanged(current, history) {    const source = currentChangeSource;    currentChangeSource = "";    const items = swiperContexts.value;    if (!source) {      const length = items.length;      animateViewport(current, "", circularEnabled.value && history + (length - current) % length > length / 2 ? 1 : 0);    }    const item = items[current];    if (item) {      const currentItemId = state.currentItemId = item.getItemId();      trigger("change", {}, {        current: state.current,        currentItemId,        source      });    }  }  vue.watch(() => state.current, (val, oldVal) => {    currentChanged(val, oldVal);    emit2("update:current", val);  });  vue.watch(() => state.currentItemId, (val) => {    emit2("update:currentItemId", val);  });  function inintAutoplay(enable) {    if (enable) {      scheduleAutoplay();    } else {      cancelSchedule();    }  }  vue.watch(() => props2.autoplay && !state.userTracking, inintAutoplay);  inintAutoplay(props2.autoplay && !state.userTracking);  function onSwiperDotClick(index2) {    animateViewport(state.current = index2, currentChangeSource = "click", circularEnabled.value ? 1 : 0);  }  return {    onSwiperDotClick,    circularEnabled,    swiperEnabled  };}const index$m = /* @__PURE__ */ defineBuiltInComponent({  name: "Swiper",  props: props$e,  emits: ["change", "transition", "animationfinish", "update:current", "update:currentItemId"],  setup(props2, {    slots,    emit: emit2  }) {    const rootRef = vue.ref(null);    const trigger = useCustomEvent(rootRef, emit2);    const slidesWrapperRef = vue.ref(null);    const slideFrameRef = vue.ref(null);    const state = useState$1(props2);    const slidesStyle = vue.computed(() => {      let style = {};      if (props2.nextMargin || props2.previousMargin) {        style = props2.vertical ? {          left: 0,          right: 0,          top: rpx2px(props2.previousMargin, true),          bottom: rpx2px(props2.nextMargin, true)        } : {          top: 0,          bottom: 0,          left: rpx2px(props2.previousMargin, true),          right: rpx2px(props2.nextMargin, true)        };      }      return style;    });    const slideFrameStyle = vue.computed(() => {      const value = Math.abs(100 / state.displayMultipleItems) + "%";      return {        width: props2.vertical ? "100%" : value,        height: !props2.vertical ? "100%" : value      };    });    let swiperItems = [];    const originSwiperContexts = [];    const swiperContexts = vue.ref([]);    function updateSwiperContexts() {      const contexts = [];      for (let index2 = 0; index2 < swiperItems.length; index2++) {        let swiperItem = swiperItems[index2];        if (!(swiperItem instanceof Element)) {          swiperItem = swiperItem.el;        }        const swiperContext = originSwiperContexts.find((context) => swiperItem === context.rootRef.value);        if (swiperContext) {          contexts.push(vue.markRaw(swiperContext));        }      }      swiperContexts.value = contexts;    }    const addSwiperContext = function(swiperContext) {      originSwiperContexts.push(swiperContext);      updateSwiperContexts();    };    vue.provide("addSwiperContext", addSwiperContext);    const removeSwiperContext = function(swiperContext) {      const index2 = originSwiperContexts.indexOf(swiperContext);      if (index2 >= 0) {        originSwiperContexts.splice(index2, 1);        updateSwiperContexts();      }    };    vue.provide("removeSwiperContext", removeSwiperContext);    const {      onSwiperDotClick,      circularEnabled,      swiperEnabled    } = useLayout(props2, state, swiperContexts, slideFrameRef, emit2, trigger);    let createNavigationTsx = () => null;    {      createNavigationTsx = useSwiperNavigation(rootRef, props2, state, onSwiperDotClick, swiperContexts, circularEnabled, swiperEnabled);    }    return () => {      const defaultSlots = slots.default && slots.default();      swiperItems = flatVNode(defaultSlots);      return vue.createVNode("uni-swiper", {        "ref": rootRef      }, [vue.createVNode("div", {        "ref": slidesWrapperRef,        "class": "uni-swiper-wrapper"      }, [vue.createVNode("div", {        "class": "uni-swiper-slides",        "style": slidesStyle.value      }, [vue.createVNode("div", {        "ref": slideFrameRef,        "class": "uni-swiper-slide-frame",        "style": slideFrameStyle.value      }, [defaultSlots], 4)], 4), props2.indicatorDots && vue.createVNode("div", {        "class": ["uni-swiper-dots", props2.vertical ? "uni-swiper-dots-vertical" : "uni-swiper-dots-horizontal"]      }, [swiperContexts.value.map((_, index2, array) => vue.createVNode("div", {        "onClick": () => onSwiperDotClick(index2),        "class": {          "uni-swiper-dot": true,          "uni-swiper-dot-active": index2 < state.current + state.displayMultipleItems && index2 >= state.current || index2 < state.current + state.displayMultipleItems - array.length        },        "style": {          background: index2 === state.current ? props2.indicatorActiveColor : props2.indicatorColor        }      }, null, 14, ["onClick"]))], 2), createNavigationTsx()], 512)], 512);    };  }});const useSwiperNavigation = (rootRef, props2, state, onSwiperDotClick, swiperContext, circularEnabled, swiperEnabled) => {  let isNavigationAuto = false;  let prevDisabled = false;  let nextDisabled = false;  let hideNavigation = vue.ref(false);  vue.watchEffect(() => {    isNavigationAuto = props2.navigation === "auto";    hideNavigation.value = props2.navigation !== true || isNavigationAuto;    swiperAddMouseEvent();  });  vue.watchEffect(() => {    const swiperItemLength = swiperContext.value.length;    const notCircular = !circularEnabled.value;    prevDisabled = state.current === 0 && notCircular;    nextDisabled = state.current === swiperItemLength - 1 && notCircular || notCircular && state.current + state.displayMultipleItems >= swiperItemLength;    if (!swiperEnabled.value) {      prevDisabled = true;      nextDisabled = true;      isNavigationAuto && (hideNavigation.value = true);    }  });  function navigationHover(event, type) {    const target = event.currentTarget;    if (!target)      return;    target.style.backgroundColor = type === "over" ? props2.navigationActiveColor : "";  }  const navigationAttr = {    onMouseover: (event) => navigationHover(event, "over"),    onMouseout: (event) => navigationHover(event, "out")  };  function navigationClick($event, type, disabled) {    $event.stopPropagation();    if (disabled)      return;    const swiperItemLength = swiperContext.value.length;    let _current = state.current;    switch (type) {      case "prev":        _current--;        if (_current < 0 && circularEnabled.value) {          _current = swiperItemLength - 1;        }        break;      case "next":        _current++;        if (_current >= swiperItemLength && circularEnabled.value) {          _current = 0;        }        break;    }    onSwiperDotClick(_current);  }  const createNavigationSVG = () => createSvgIconVNode(ICON_PATH_BACK, props2.navigationColor, 26);  let setHideNavigationTimer;  const _mousemove = (e2) => {    clearTimeout(setHideNavigationTimer);    const {      clientX,      clientY    } = e2;    const {      left,      right,      top,      bottom,      width,      height    } = rootRef.value.getBoundingClientRect();    let hide = false;    if (props2.vertical) {      hide = !(clientY - top < height / 3 || bottom - clientY < height / 3);    } else {      hide = !(clientX - left < width / 3 || right - clientX < width / 3);    }    if (hide) {      return setHideNavigationTimer = setTimeout(() => {        hideNavigation.value = hide;      }, 300);    }    hideNavigation.value = hide;  };  const _mouseleave = () => {    hideNavigation.value = true;  };  function swiperAddMouseEvent() {    if (rootRef.value) {      rootRef.value.removeEventListener("mousemove", _mousemove);      rootRef.value.removeEventListener("mouseleave", _mouseleave);      if (isNavigationAuto) {        rootRef.value.addEventListener("mousemove", _mousemove);        rootRef.value.addEventListener("mouseleave", _mouseleave);      }    }  }  function createNavigationTsx() {    const navigationClass = {      "uni-swiper-navigation-hide": hideNavigation.value,      "uni-swiper-navigation-vertical": props2.vertical    };    if (props2.navigation) {      return vue.createVNode(vue.Fragment, null, [vue.createVNode("div", vue.mergeProps({        "class": ["uni-swiper-navigation uni-swiper-navigation-prev", shared.extend({          "uni-swiper-navigation-disabled": prevDisabled        }, navigationClass)],        "onClick": (e2) => navigationClick(e2, "prev", prevDisabled)      }, navigationAttr), [createNavigationSVG()], 16, ["onClick"]), vue.createVNode("div", vue.mergeProps({        "class": ["uni-swiper-navigation uni-swiper-navigation-next", shared.extend({          "uni-swiper-navigation-disabled": nextDisabled        }, navigationClass)],        "onClick": (e2) => navigationClick(e2, "next", nextDisabled)      }, navigationAttr), [createNavigationSVG()], 16, ["onClick"])]);    }    return null;  }  return createNavigationTsx;};const props$d = {  itemId: {    type: String,    default: ""  }};const index$l = /* @__PURE__ */ defineBuiltInComponent({  name: "SwiperItem",  props: props$d,  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    return () => {      return vue.createVNode("uni-swiper-item", {        "ref": rootRef,        "style": {          position: "absolute",          width: "100%",          height: "100%"        }      }, [slots.default && slots.default()], 512);    };  }});const props$c = {  name: {    type: String,    default: ""  },  checked: {    type: [Boolean, String],    default: false  },  type: {    type: String,    default: "switch"  },  id: {    type: String,    default: ""  },  disabled: {    type: [Boolean, String],    default: false  },  color: {    type: String,    default: ""  },  backgroundColor: {    type: String,    default: "#e9e9ea"  },  activeBackgroundColor: {    type: String,    default: ""  },  foreColor: {    type: String,    default: ""  },  activeForeColor: {    type: String,    default: ""  }};const indexX$1 = /* @__PURE__ */ defineBuiltInComponent({  name: "Switch",  props: props$c,  emits: ["change"],  setup(props2, {    emit: emit2  }) {    const rootRef = vue.ref(null);    const switchChecked = vue.ref(props2.checked);    const uniLabel = useSwitchInject(rootRef, props2, switchChecked);    const trigger = useCustomEvent(rootRef, emit2);    vue.watch(() => props2.checked, (val) => {      switchChecked.value = val;    });    const _onClick = ($event) => {      if (props2.disabled) {        return;      }      switchChecked.value = !switchChecked.value;      trigger("change", $event, {        value: switchChecked.value      });    };    if (!!uniLabel) {      uniLabel.addHandler(_onClick);    }    let checkedCache = vue.ref(switchChecked.value);    vue.watch(() => switchChecked.value, (val) => {      checkedCache.value = val;    });    return () => {      const {        activeBackgroundColor,        activeForeColor,        backgroundColor,        color,        foreColor,        type      } = props2;      const booleanAttrs = useBooleanAttr(props2, "disabled");      const switchInputStyle = {};      const fixColor = activeBackgroundColor || color;      const bgColor = switchChecked.value ? fixColor : backgroundColor;      if (bgColor) {        switchInputStyle["backgroundColor"] = bgColor;        switchInputStyle["borderColor"] = bgColor;      }      const thumbStyle = {};      const fgColor = switchChecked.value ? activeForeColor : foreColor;      if (fgColor) {        thumbStyle["backgroundColor"] = fgColor;      }      let realCheckValue;      realCheckValue = checkedCache.value;      return vue.createVNode("uni-switch", vue.mergeProps({        "id": props2.id,        "ref": rootRef      }, booleanAttrs, {        "onClick": _onClick      }), [vue.createVNode("div", {        "class": "uni-switch-wrapper"      }, [vue.withDirectives(vue.createVNode("div", {        "class": ["uni-switch-input", [switchChecked.value ? "uni-switch-input-checked" : ""]],        "style": switchInputStyle      }, [vue.createVNode("div", {        "class": ["uni-switch-thumb", [switchChecked.value ? "uni-switch-thumb-checked" : ""]],        "style": thumbStyle      }, null, 6)], 6), [[vue.vShow, type === "switch"]]), vue.withDirectives(vue.createVNode("div", {        "class": "uni-checkbox-input"      }, [realCheckValue ? createSvgIconVNode(ICON_PATH_SUCCESS_NO_CIRCLE, props2.color, 22) : ""], 512), [[vue.vShow, type === "checkbox"]])])], 16, ["id", "onClick"]);    };  }});function useSwitchInject(rootRef, props2, switchChecked) {  const initialCheckedValue = props2.checked;  const uniForm = vue.inject(uniFormKey, false);  const uniLabel = vue.inject(uniLabelKey, false);  const formField = {    submit: () => {      const data = ["", null];      if (props2.name) {        data[0] = props2.name;        data[1] = rootRef.value.checked;      }      return data;    },    reset: () => {      switchChecked.value = initialCheckedValue;    }  };  if (!!uniForm) {    uniForm.addField(formField);  }  return uniLabel;}const SPACE_UNICODE = {  ensp: " ",  emsp: " ",  nbsp: " "};function normalizeText(text, { space, decode }) {  let result = "";  let isEscape = false;  for (let char of text) {    if (space && SPACE_UNICODE[space] && char === " ") {      char = SPACE_UNICODE[space];    }    if (isEscape) {      if (char === "n") {        result += uniShared.LINEFEED;      } else if (char === "\\") {        result += "\\";      } else {        result += "\\" + char;      }      isEscape = false;    } else {      if (char === "\\") {        isEscape = true;      } else {        result += char;      }    }  }  if (!decode) {    return result;  }  return result.replace(/ /g, SPACE_UNICODE.nbsp).replace(/ /g, SPACE_UNICODE.ensp).replace(/ /g, SPACE_UNICODE.emsp).replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&").replace(/"/g, '"').replace(/'/g, "'");}function parseText(text, options) {  return normalizeText(text, options).split(uniShared.LINEFEED);}const index$k = /* @__PURE__ */ defineBuiltInComponent({  name: "Text",  props: {    selectable: {      type: [Boolean, String],      default: false    },    space: {      type: String,      default: ""    },    decode: {      type: [Boolean, String],      default: false    }  },  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    return () => {      const children = [];      if (slots.default) {        slots.default().forEach((vnode) => {          if (vnode.shapeFlag & 8 && vnode.type !== vue.Comment) {            const lines = parseText(vnode.children, {              space: props2.space,              decode: props2.decode            });            const len = lines.length - 1;            lines.forEach((line, index2) => {              if (index2 === 0 && !line)                ;              else {                children.push(vue.createTextVNode(line));              }              if (index2 !== len) {                children.push(vue.createVNode("br"));              }            });          } else {            if (process.env.NODE_ENV !== "production" && vnode.shapeFlag & 6 && vnode.type.name !== "Text") {              console.warn("Do not nest other components in the text component, as there may be display differences on different platforms.");            }            children.push(vnode);          }        });      }      return vue.createVNode("uni-text", {        "ref": rootRef,        "selectable": props2.selectable ? true : null      }, [vue.createVNode("span", null, children)], 8, ["selectable"]);    };  }});const props$b = /* @__PURE__ */ shared.extend({}, props$l, {  placeholderClass: {    type: String,    default: "input-placeholder"  },  autoHeight: {    type: [Boolean, String],    default: false  },  confirmType: {    type: String,    default: "return",    validator(val) {      return ConfirmTypes.concat("return").includes(val);    }  }});let fixMargin = false;const ConfirmTypes = ["done", "go", "next", "search", "send"];const index$j = /* @__PURE__ */ defineBuiltInComponent({  name: "Textarea",  props: props$b,  emits: ["confirm", "linechange", ...emit],  setup(props2, {    emit: emit2,    expose  }) {    const rootRef = vue.ref(null);    const wrapperRef = vue.ref(null);    const {      fieldRef,      state,      scopedAttrsState,      fixDisabledColor,      trigger    } = useField(props2, rootRef, emit2);    const valueCompute = vue.computed(() => state.value.split(uniShared.LINEFEED));    const isDone = vue.computed(() => ConfirmTypes.includes(props2.confirmType));    const heightRef = vue.ref(0);    const lineRef = vue.ref(null);    vue.watch(() => heightRef.value, (height) => {      const el = rootRef.value;      const lineEl = lineRef.value;      const wrapper = wrapperRef.value;      let lineHeight = parseFloat(getComputedStyle(el).lineHeight);      if (isNaN(lineHeight)) {        lineHeight = lineEl.offsetHeight;      }      var lineCount = Math.round(height / lineHeight);      trigger("linechange", {}, {        height,        heightRpx: 750 / window.innerWidth * height,        lineCount      });      if (props2.autoHeight) {        el.style.height = "auto";        wrapper.style.height = height + "px";      }    });    vue.watch(() => props2.autoHeight, (autoHeight) => {      const el = rootRef.value;      const wrapper = wrapperRef.value;      if (autoHeight) {        el.style.height = "auto";        wrapper.style.height = heightRef.value + "px";      } else {        el.style.height = "";        wrapper.style.height = "";      }    });    function onResize({      height    }) {      heightRef.value = height;    }    function confirm(event) {      trigger("confirm", event, {        value: state.value      });    }    function onKeyDownEnter(event) {      if (event.key !== "Enter") {        return;      }      if (isDone.value) {        event.preventDefault();      }    }    function onKeyUpEnter(event) {      if (event.key !== "Enter") {        return;      }      if (isDone.value) {        confirm(event);        const textarea = event.target;        !props2.confirmHold && textarea.blur();      }    }    expose({      $triggerInput: (detail) => {        emit2("update:modelValue", detail.value);        emit2("update:value", detail.value);        state.value = detail.value;      }    });    return () => {      let textareaNode = props2.disabled && fixDisabledColor ? vue.createVNode("textarea", {        "key": "disabled-textarea",        "ref": fieldRef,        "value": state.value,        "tabindex": "-1",        "readonly": !!props2.disabled,        "maxlength": state.maxlength,        "class": {          "uni-textarea-textarea": true,          "uni-textarea-textarea-fix-margin": fixMargin        },        "style": {          overflowY: props2.autoHeight ? "hidden" : "auto",          /* eslint-disable no-restricted-syntax */          ...props2.cursorColor && {            caretColor: props2.cursorColor          }        },        "onFocus": (event) => event.target.blur()      }, null, 46, ["value", "readonly", "maxlength", "onFocus"]) : vue.createVNode("textarea", {        "key": "textarea",        "ref": fieldRef,        "value": state.value,        "disabled": !!props2.disabled,        "maxlength": state.maxlength,        "enterkeyhint": props2.confirmType,        "inputmode": props2.inputmode,        "class": {          "uni-textarea-textarea": true,          "uni-textarea-textarea-fix-margin": fixMargin        },        "style": {          overflowY: props2.autoHeight ? "hidden" : "auto",          /* eslint-disable no-restricted-syntax */          ...props2.cursorColor && {            caretColor: props2.cursorColor          }        },        "onKeydown": onKeyDownEnter,        "onKeyup": onKeyUpEnter      }, null, 46, ["value", "disabled", "maxlength", "enterkeyhint", "inputmode", "onKeydown", "onKeyup"]);      return vue.createVNode("uni-textarea", {        "ref": rootRef      }, [vue.createVNode("div", {        "ref": wrapperRef,        "class": "uni-textarea-wrapper"      }, [vue.withDirectives(vue.createVNode("div", vue.mergeProps(scopedAttrsState.attrs, {        "style": props2.placeholderStyle,        "class": ["uni-textarea-placeholder", props2.placeholderClass]      }), [props2.placeholder], 16), [[vue.vShow, !state.value.length]]), vue.createVNode("div", {        "ref": lineRef,        "class": "uni-textarea-line"      }, [" "], 512), vue.createVNode("div", {        "class": "uni-textarea-compute"      }, [valueCompute.value.map((item) => vue.createVNode("div", null, [item.trim() ? item : "."])), vue.createVNode(ResizeSensor, {        "initial": true,        "onResize": onResize      }, null, 8, ["initial", "onResize"])]), props2.confirmType === "search" ? vue.createVNode("form", {        "action": "",        "onSubmit": () => false,        "class": "uni-input-form"      }, [textareaNode], 40, ["onSubmit"]) : textareaNode], 512)], 512);    };  }});const index$i = /* @__PURE__ */ defineBuiltInComponent({  name: "View",  props: /* @__PURE__ */ shared.extend({}, hoverProps),  setup(props2, {    slots  }) {    const rootRef = vue.ref(null);    const {      hovering,      binding    } = useHover(props2);    return () => {      const hoverClass = props2.hoverClass;      if (hoverClass && hoverClass !== "none") {        return vue.createVNode("uni-view", vue.mergeProps({          "class": hovering.value ? hoverClass : "",          "ref": rootRef        }, binding), [slots.default && slots.default()], 16);      }      return vue.createVNode("uni-view", {        "ref": rootRef      }, [slots.default && slots.default()], 512);    };  }});function isHTMlElement(node) {  return !!(node && node.nodeType === 1);}function getChildren(root) {  const children = [];  if (root) {    walk(root, children);  }  return children;}const ChildType = ["ListItem", "StickySection", "StickyHeader"];function walk(vnode, children) {  if (vnode.component && vnode.component.type && vnode.component.type.name && ChildType.includes(vnode.component.type.name)) {    children.push(vnode);  } else if (vnode.component) {    walk(vnode.component.subTree, children);  } else if (vnode.shapeFlag & 16) {    const vnodes = vnode.children;    for (let i = 0; i < vnodes.length; i++) {      walk(vnodes[i], children);    }  }}function traverseListView(visibleVNode, callback) {  const children = getChildren(visibleVNode);  for (let i = 0; i < children.length; i++) {    const child = children[i];    callback(child);  }}function traverseStickySection(stickySectionVNode, callback) {  const children = getChildren(stickySectionVNode.component.subTree);  for (let i = 0; i < children.length; i++) {    const child = children[i];    callback(child);  }}const props$a = {  direction: {    type: String,    default: "vertical",    validator: (val) => {      return ["none", "vertical", "horizontal"].includes(val);    }  },  showScrollbar: {    type: [Boolean, String],    default: true  },  upperThreshold: {    type: [Number, String],    default: 50  },  lowerThreshold: {    type: [Number, String],    default: 50  },  scrollTop: {    type: [Number, String],    default: 0  },  scrollLeft: {    type: [Number, String],    default: 0  },  // 暂不支持  // scrollIntoView: {  //   type: String,  //   default: '',  // },  scrollWithAnimation: {    type: [Boolean, String],    default: false  },  refresherEnabled: {    type: [Boolean, String],    default: false  },  refresherThreshold: {    type: Number,    default: 45  },  refresherDefaultStyle: {    type: String,    default: "black"  },  refresherBackground: {    type: String,    default: "transparent"  },  refresherTriggered: {    type: [Boolean, String],    default: false  }};const index$h = /* @__PURE__ */ defineBuiltInComponent({  name: "ListView",  props: props$a,  emits: [    "scroll",    "scrolltoupper",    "scrolltolower",    // 有触发时机,但是由于没有原生事件暂不支持    // 'scrollend',    "refresherrefresh",    "refresherrestore",    "refresherpulling",    "refresherabort",    "update:refresherTriggered"  ],  setup(props2, {    slots,    emit: emit2  }) {    const rootRef = vue.ref(null);    const containerRef = vue.ref(null);    const visibleRef = vue.ref(null);    const {      isVertical,      state    } = useListViewState(props2);    vue.provide("__listViewIsVertical", isVertical);    vue.provide("__listViewDefaultItemSize", state.defaultItemSize);    const onItemChange = uniShared.debounce(() => {      vue.nextTick(() => {        _rearrange();      });    }, 10, {      clearTimeout,      setTimeout    });    vue.provide("__listViewRegisterItem", (status) => {      onItemChange();    });    vue.provide("__listViewUnregisterItem", (status) => {      onItemChange();    });    const trigger = useCustomEvent(rootRef, emit2);    handleTouchEvent(isVertical, containerRef, props2, state, trigger, emit2);    function resetContainerSize() {      const containerEl = containerRef.value;      state.containerSize = isVertical.value ? containerEl.clientHeight : containerEl.clientWidth;    }    vue.watch(isVertical, () => {      resetContainerSize();    });    vue.computed(() => {      const val = Number(props2.upperThreshold);      return isNaN(val) ? 50 : val;    });    vue.computed(() => {      const val = Number(props2.lowerThreshold);      return isNaN(val) ? 50 : val;    });    const scrollTopNumber = vue.computed(() => {      return Number(props2.scrollTop) || 0;    });    const scrollLeftNumber = vue.computed(() => {      return Number(props2.scrollLeft) || 0;    });    vue.watch(scrollTopNumber, (val) => {      if (containerRef.value) {        containerRef.value.scrollTop = val;      }    });    vue.watch(scrollLeftNumber, (val) => {      if (containerRef.value) {        containerRef.value.scrollLeft = val;      }    });    function forceRearrange() {      traverseAllItems(visibleVNode, (child) => {        const exposed = child.component.exposed;        if (exposed == null ? void 0 : exposed.__listViewChildStatus.seen.value) {          exposed.__listViewChildStatus.seen.value = false;        }      });      vue.nextTick(() => {        vue.nextTick(() => {          _rearrange();        });      });    }    function onResize() {      resetContainerSize();      forceRearrange();    }    function traverseAllItems(visibleVNode2, callback) {      traverseListView(visibleVNode2, (child) => {        var _a;        const childType = (_a = child.component) == null ? void 0 : _a.type.name;        if (childType === "StickySection") {          traverseStickySection(child, function() {            var _a2;            const childType2 = (_a2 = child.component) == null ? void 0 : _a2.type.name;            if (childType2 === "ListItem") {              callback(child);            }          });        } else if (childType === "ListItem") {          callback(child);        } else if (childType === "StickyHeader")          ;        else if (child.component && child.component.subTree) {          traverseAllItems(child.component.subTree, callback);        }      });    }    function _rearrange() {      rearrange(visibleVNode, containerRef, isVertical, state);    }    const containerStyle = vue.computed(() => {      return `${props2.direction === "none" ? "overflow: hidden;" : isVertical.value ? "overflow-y: auto;" : "overflow-x: auto;"}scroll-behavior: ${props2.scrollWithAnimation ? "smooth" : "auto"};`;    });    const contentStyle = vue.computed(() => {      return `position: relative; ${isVertical.value ? "height" : "width"}: ${state.totalSize}px;`;    });    const visibleStyle = vue.computed(() => {      return `position: absolute; ${isVertical.value ? "width" : "height"}: 100%; ${isVertical.value ? "top" : "left"}: ${state.placehoderSize}px;`;    });    let visibleVNode = null;    return () => {      const {        refresherEnabled,        refresherBackground,        refresherDefaultStyle,        refresherThreshold      } = props2;      const {        refresherHeight,        refreshState      } = state;      const defaultSlot = slots.default && slots.default();      visibleVNode = vue.createVNode("div", {        "ref": visibleRef,        "class": "uni-list-view-visible",        "style": visibleStyle.value      }, [defaultSlot], 4);      return vue.createVNode("uni-list-view", {        "ref": rootRef,        "class": "uni-list-view"      }, [vue.createVNode("div", {        "ref": containerRef,        "class": `uni-list-view-container ${props2.showScrollbar === false ? "uni-list-view-scrollbar-hidden" : ""}`,        "style": containerStyle.value      }, [refresherEnabled ? vue.createVNode(Refresher, {        "refreshState": refreshState,        "refresherHeight": refresherHeight,        "refresherThreshold": refresherThreshold,        "refresherDefaultStyle": refresherDefaultStyle,        "refresherBackground": refresherBackground      }, {        default: () => [refresherDefaultStyle == "none" ? slots.refresher && slots.refresher() : null]      }, 8, ["refreshState", "refresherHeight", "refresherThreshold", "refresherDefaultStyle", "refresherBackground"]) : null, vue.createVNode("div", {        "class": "uni-list-view-content",        "style": contentStyle.value      }, [visibleVNode], 4)], 4), vue.createVNode(ResizeSensor, {        "onResize": onResize      }, null, 8, ["onResize"])], 512);    };  }});function useListViewState(props2) {  const isVertical = vue.computed(() => {    return props2.direction !== "horizontal";  });  const state = vue.reactive({    defaultItemSize: 40,    totalSize: 0,    placehoderSize: 0,    visibleSize: 0,    containerSize: 0,    cacheScreenCount: 5,    loadScreenThreshold: 3,    refresherHeight: 0,    refreshState: ""  });  return {    state,    isVertical  };}function rearrange(visibleVNode, containerRef, isVertical, state) {  if (!visibleVNode) {    return;  }  const containerEl = containerRef.value;  if (!containerEl) {    return;  }  const offset = isVertical.value ? containerEl.scrollTop : containerEl.scrollLeft;  const offsetMin = Math.max(offset - state.containerSize * state.cacheScreenCount, 0);  const offsetMax = Math.max(offset + state.containerSize * (state.cacheScreenCount + 1), offsetMin + 1);  let tempTotalSize = 0;  let tempVisibleSize = 0;  let tempPlaceholderSize = 0;  let start = false, end = false;  function callback(child) {    var _a, _b, _c;    const childType = (_a = child.component) == null ? void 0 : _a.type.name;    const status = (_c = (_b = child.component) == null ? void 0 : _b.exposed) == null ? void 0 : _c.__listViewChildStatus;    if (childType === "StickySection") {      const {        headSize,        tailSize      } = status;      tempTotalSize += headSize.value;      traverseStickySection(child, callback);      tempTotalSize += tailSize.value;    } else if (childType === "ListItem") {      const {        cachedSize      } = status;      const itemSize = cachedSize;      tempTotalSize += itemSize;      if (!start && tempTotalSize > offsetMin) {        start = true;      }      if (!start) {        tempPlaceholderSize += itemSize;      }      if (start && !end) {        tempVisibleSize += itemSize;        status.visible.value = true;      } else {        status.visible.value = false;      }      if (!end && tempTotalSize >= offsetMax) {        end = true;      }    } else if (childType === "StickyHeader") {      const {        cachedSize      } = status;      tempTotalSize += cachedSize;      tempVisibleSize += cachedSize;    }  }  traverseListView(visibleVNode, callback);  state.totalSize = tempTotalSize;  state.visibleSize = tempVisibleSize;  state.placehoderSize = tempPlaceholderSize;}function handleTouchEvent(isVertical, containerRef, props2, state, trigger, emit2) {  let beforeRefreshing = false;  let triggerAbort = false;  let touchStart = {    x: 0,    y: 0  };  let touchEnd = {    x: 0,    y: props2.refresherThreshold  };  function _setRefreshState(_state) {    if (!props2.refresherEnabled)      return;    switch (_state) {      case "refreshing":        state.refresherHeight = props2.refresherThreshold;        if (!beforeRefreshing) {          beforeRefreshing = true;          trigger("refresherpulling", {}, {            deltaY: state.refresherHeight,            dy: state.refresherHeight          });          trigger("refresherrefresh", {}, {            dy: touchEnd.y - touchStart.y          });          emit2("update:refresherTriggered", true);        }        break;      case "restore":      case "refresherabort":        beforeRefreshing = false;        state.refresherHeight = 0;        if (_state === "restore") {          triggerAbort = false;          trigger("refresherrestore", {}, {            dy: touchEnd.y - touchStart.y          });        }        if (_state === "refresherabort" && triggerAbort) {          triggerAbort = false;          trigger("refresherabort", {}, {            dy: touchEnd.y - touchStart.y          });        }        break;    }    state.refreshState = _state;  }  vue.watch(() => props2.refresherTriggered, (val) => {    if (val === true) {      _setRefreshState("refreshing");    } else if (val === false) {      _setRefreshState("restore");    }  });}function getSize(isVertical, el) {  var style = window.getComputedStyle(el);  if (isVertical) {    return parseFloat(style.marginTop) + el.getBoundingClientRect().height + parseFloat(style.marginBottom);  } else {    return parseFloat(style.marginLeft) + el.getBoundingClientRect().width + parseFloat(style.marginRight);  }}const index$g = /* @__PURE__ */ defineBuiltInComponent({  name: "ListItem",  props: {},  setup(props2, {    slots,    expose  }) {    const rootRef = vue.ref(null);    const isVertical = vue.inject("__listViewIsVertical");    const visible = vue.ref(false);    const seen = vue.ref(false);    const status = {      type: "ListItem",      visible,      cachedSize: 0,      seen    };    expose({      __listViewChildStatus: status    });    vue.inject("__listViewRegisterItem");    vue.inject("__listViewUnregisterItem");    const realVisible = vue.computed(() => {      return visible.value || !status.seen.value;    });    return () => {      vue.nextTick(() => {        const rootNode = rootRef.value;        if (realVisible.value && isHTMlElement(rootNode)) {          status.cachedSize = getSize(isVertical.value, rootNode);          seen.value = true;        }      });      if (!realVisible.value) {        return null;      }      return vue.createVNode("uni-list-item", {        "ref": rootRef      }, [slots.default && slots.default()], 512);    };  }});const index$f = /* @__PURE__ */ defineBuiltInComponent({  name: "StickySection",  props: {    padding: {      type: Array,      default: [0, 0, 0, 0]    }  },  setup(props2, {    slots,    expose  }) {    const rootRef = vue.ref(null);    const isVertical = vue.inject("__listViewIsVertical");    const style = vue.computed(() => {      return {        paddingTop: props2.padding[0] + "px",        paddingRight: props2.padding[1] + "px",        paddingBottom: props2.padding[2] + "px",        paddingLeft: props2.padding[3] + "px"      };    });    const headSize = vue.computed(() => {      return isVertical ? props2.padding[0] : props2.padding[3];    });    const tailSize = vue.computed(() => {      return isVertical ? props2.padding[2] : props2.padding[1];    });    const status = {      type: "StickySection",      headSize,      tailSize    };    expose({      __listViewChildStatus: status    });    return () => {      var _a;      return vue.createVNode("uni-sticky-section", {        "ref": rootRef,        "style": style.value      }, [(_a = slots.default) == null ? void 0 : _a.call(slots)], 4);    };  }});const index$e = /* @__PURE__ */ defineBuiltInComponent({  name: "StickyHeader",  props: {    padding: {      type: Array,      default: [0, 0, 0, 0]    }  },  setup(props2, {    slots,    expose  }) {    const rootRef = vue.ref(null);    const isVertical = vue.inject("__listViewIsVertical");    const style = vue.computed(() => {      return {        paddingTop: props2.padding[0] + "px",        paddingRight: props2.padding[1] + "px",        paddingBottom: props2.padding[2] + "px",        paddingLeft: props2.padding[3] + "px",        top: 0 - props2.padding[0] + "px"      };    });    const status = {      type: "StickyHeader",      cachedSize: 0    };    expose({      __listViewChildStatus: status    });    return () => {      var _a;      vue.nextTick(() => {        const rootEl = rootRef.value;        const rect = rootEl.getBoundingClientRect();        status.cachedSize = isVertical ? rect.height : rect.width;      });      return vue.createVNode("uni-sticky-header", {        "ref": rootRef,        "style": style.value      }, [(_a = slots.default) == null ? void 0 : _a.call(slots)], 4);    };  }});function useSubscribe(callback, name, multiple, pageId) {  const instance = vue.getCurrentInstance();  instance.proxy;}let index$d = 0;function useContextInfo(_id) {  useCurrentPageId();  const instance = vue.getCurrentInstance();  const vm = instance.proxy;  const type = vm.$options.name.toLowerCase();  const id2 = _id || vm.id || `context${index$d++}`;  return `${type}.${id2}`;}function injectLifecycleHook(name, hook, publicThis, instance) {  if (shared.isFunction(hook)) {    vue.injectHook(name, hook.bind(publicThis), instance);  }}function initHooks(options, instance, publicThis) {  var _b;  const mpType = options.mpType || publicThis.$mpType;  if (!mpType || mpType === "component") {    return;  }  Object.keys(options).forEach((name) => {    if (uniShared.isUniLifecycleHook(name, options[name], false)) {      const hooks = options[name];      if (shared.isArray(hooks)) {        hooks.forEach(          (hook) => injectLifecycleHook(name, hook, publicThis, instance)        );      } else {        injectLifecycleHook(name, hooks, publicThis, instance);      }    }  });  if (mpType === "page") {    instance.__isVisible = true;    try {      let query = instance.attrs.__pageQuery;      if (true) {        query = uniShared.decodedQuery(query);      }      if (false)        ;      invokeHook(publicThis, uniShared.ON_LOAD, query);      delete instance.attrs.__pageQuery;      if (true) {        if (((_b = publicThis.$page) == null ? void 0 : _b.openType) !== "preloadPage") {          invokeHook(publicThis, uniShared.ON_SHOW);        }      }    } catch (e2) {      console.error(e2.message + uniShared.LINEFEED + e2.stack);    }  }}function applyOptions(options, instance, publicThis) {  initHooks(options, instance, publicThis);}function set(target, key, val) {  return target[key] = val;}function $callMethod(method, ...args) {  const fn = this[method];  if (fn) {    return fn(...args);  }  console.error(`method ${method} not found`);  return null;}function createErrorHandler(app) {  return function errorHandler(err, instance, _info) {    if (!instance) {      throw err;    }    const appInstance = app._instance;    if (!appInstance || !appInstance.proxy) {      throw err;    }    {      invokeHook(appInstance.proxy, uniShared.ON_ERROR, err);    }  };}function mergeAsArray(to, from) {  return to ? [...new Set([].concat(to, from))] : from;}function initOptionMergeStrategies(optionMergeStrategies) {  uniShared.UniLifecycleHooks.forEach((name) => {    optionMergeStrategies[name] = mergeAsArray;  });}let realAtob;const b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";const b64re = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/;if (typeof atob !== "function") {  realAtob = function(str) {    str = String(str).replace(/[\t\n\f\r ]+/g, "");    if (!b64re.test(str)) {      throw new Error(        "Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."      );    }    str += "==".slice(2 - (str.length & 3));    var bitmap;    var result = "";    var r1;    var r2;    var i = 0;    for (; i < str.length; ) {      bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 | (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));      result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255) : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255) : String.fromCharCode(        bitmap >> 16 & 255,        bitmap >> 8 & 255,        bitmap & 255      );    }    return result;  };} else {  realAtob = atob;}function b64DecodeUnicode(str) {  return decodeURIComponent(    realAtob(str).split("").map(function(c) {      return "%" + ("00" + c.charCodeAt(0).toString(16)).slice(-2);    }).join("")  );}function getCurrentUserInfo() {  const token = uni.getStorageSync("uni_id_token") || "";  const tokenArr = token.split(".");  if (!token || tokenArr.length !== 3) {    return {      uid: null,      role: [],      permission: [],      tokenExpired: 0    };  }  let userInfo;  try {    userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));  } catch (error) {    throw new Error("获取当前用户信息出错,详细错误信息为:" + error.message);  }  userInfo.tokenExpired = userInfo.exp * 1e3;  delete userInfo.exp;  delete userInfo.iat;  return userInfo;}function uniIdMixin(globalProperties) {  globalProperties.uniIDHasRole = function(roleId) {    const { role } = getCurrentUserInfo();    return role.indexOf(roleId) > -1;  };  globalProperties.uniIDHasPermission = function(permissionId) {    const { permission } = getCurrentUserInfo();    return this.uniIDHasRole("admin") || permission.indexOf(permissionId) > -1;  };  globalProperties.uniIDTokenValid = function() {    const { tokenExpired } = getCurrentUserInfo();    return tokenExpired > Date.now();  };}function initApp$1(app) {  const appConfig = app._context.config;  appConfig.errorHandler = uniShared.invokeCreateErrorHandler(app, createErrorHandler);  initOptionMergeStrategies(appConfig.optionMergeStrategies);  const globalProperties = appConfig.globalProperties;  {    if (__UNI_FEATURE_UNI_CLOUD__) {      uniIdMixin(globalProperties);    }  }  {    globalProperties.$set = set;    globalProperties.$applyOptions = applyOptions;    globalProperties.$callMethod = $callMethod;  }  {    uniShared.invokeCreateVueAppHook(app);  }}const pageMetaKey = PolySymbol(process.env.NODE_ENV !== "production" ? "UniPageMeta" : "upm");function usePageMeta() {  return vue.inject(pageMetaKey);}function providePageMeta(id2) {  const pageMeta = initPageMeta(id2);  vue.provide(pageMetaKey, pageMeta);  return pageMeta;}function usePageRoute() {  if (__UNI_FEATURE_PAGES__) {    return vueRouter.useRoute();  }  const url = location.href;  const searchPos = url.indexOf("?");  const hashPos = url.indexOf("#", searchPos > -1 ? searchPos : 0);  let query = {};  if (searchPos > -1) {    query = uniShared.parseQuery(      url.slice(searchPos + 1, hashPos > -1 ? hashPos : url.length)    );  }  const { meta } = __uniRoutes[0];  const path = uniShared.addLeadingSlash(meta.route);  return {    meta,    query,    path,    matched: [{ path }]  };}function initPageMeta(id2) {  if (__UNI_FEATURE_PAGES__) {    return vue.reactive(      normalizePageMeta(        JSON.parse(          JSON.stringify(            initRouteMeta(              vueRouter.useRoute().meta,              id2            )          )        )      )    );  }  return vue.reactive(    normalizePageMeta(      JSON.parse(JSON.stringify(initRouteMeta(__uniRoutes[0].meta, id2)))    )  );}function normalizePageMeta(pageMeta) {  if (__UNI_FEATURE_PULL_DOWN_REFRESH__) {    const { enablePullDownRefresh, navigationBar } = pageMeta;    {      const pullToRefresh = normalizePullToRefreshRpx(        shared.extend(          {            support: true,            color: "#2BD009",            style: "circle",            height: 70,            range: 150,            offset: 0          },          pageMeta.pullToRefresh        )      );      const { type, style } = navigationBar;      if (style !== "custom" && type !== "transparent") {        pullToRefresh.offset += uniShared.NAVBAR_HEIGHT + 0;      }      pageMeta.pullToRefresh = pullToRefresh;    }  }  if (__UNI_FEATURE_NAVIGATIONBAR__) {    const { navigationBar } = pageMeta;    const { titleSize, titleColor, backgroundColor } = navigationBar;    navigationBar.titleText = navigationBar.titleText || "";    navigationBar.type = navigationBar.type || "default";    navigationBar.titleSize = titleSize || "16px";    navigationBar.titleColor = titleColor || "#000000";    navigationBar.backgroundColor = backgroundColor || "#F8F8F8";    __UNI_FEATURE_I18N_LOCALE__ && initNavigationBarI18n(navigationBar);  }  return pageMeta;}function getStateId() {  {    return 1;  }}function removeNonTabBarPages() {  const curTabBarPageVm = getCurrentPageVm();  if (!curTabBarPageVm) {    return;  }  const pagesMap = getCurrentPagesMap();  const keys = pagesMap.keys();  for (const routeKey of keys) {    const page = pagesMap.get(routeKey);    if (!page.$.__isTabBar) {      removePage(routeKey);    } else {      page.$.__isActive = false;    }  }  if (curTabBarPageVm.$.__isTabBar) {    curTabBarPageVm.$.__isVisible = false;    invokeHook(curTabBarPageVm, uniShared.ON_HIDE);  }}function isSamePage(url, $page) {  return url === $page.fullPath || url === "/" && $page.meta.isEntry;}function getTabBarPageId(url) {  const pages = getCurrentPagesMap().values();  for (const page of pages) {    const $page = page.$page;    if (isSamePage(url, $page)) {      page.$.__isActive = true;      return $page.id;    }  }}function removeLastPage() {  const page = getCurrentPage();  if (!page) {    return;  }  const $page = page.$page;  removePage(normalizeRouteKey($page.path, $page.id));}function removeAllPages() {  const keys = getCurrentPagesMap().keys();  for (const routeKey of keys) {    removePage(routeKey);  }}function navigate({ type, url, tabBarText, events, isAutomatedTesting }, __id__) {  const router = getApp().$router;  const { path, query } = uniShared.parseUrl(url);  return new Promise((resolve, reject) => {    const state = createPageState(type, __id__);    router[type === "navigateTo" ? "push" : "replace"]({      path,      query,      state,      force: true    }).then((failure) => {      if (vueRouter.isNavigationFailure(failure)) {        return reject(failure.message);      }      if (type === "switchTab") {        router.currentRoute.value.meta.tabBarText = tabBarText;      }      if (type === "navigateTo") {        const meta = router.currentRoute.value.meta;        if (!meta.eventChannel) {          meta.eventChannel = new uniShared.EventChannel(state.__id__, events);        } else if (events) {          Object.keys(events).forEach((eventName) => {            meta.eventChannel._addListener(              eventName,              "on",              events[eventName]            );          });          meta.eventChannel._clearCache();        }        return isAutomatedTesting ? resolve({          __id__: state.__id__        }) : resolve({          eventChannel: meta.eventChannel        });      }      return isAutomatedTesting ? resolve({ __id__: state.__id__ }) : resolve();    });  });}function handleBeforeEntryPageRoutes() {  if (entryPageState.handledBeforeEntryPageRoutes) {    return;  }  entryPageState.handledBeforeEntryPageRoutes = true;  const navigateToPages = [...navigateToPagesBeforeEntryPages];  navigateToPagesBeforeEntryPages.length = 0;  navigateToPages.forEach(    ({ args, resolve, reject }) => (      // @ts-expect-error      navigate(args).then(resolve).catch(reject)    )  );  const switchTabPages = [...switchTabPagesBeforeEntryPages];  switchTabPagesBeforeEntryPages.length = 0;  switchTabPages.forEach(    ({ args, resolve, reject }) => (removeNonTabBarPages(), navigate(args, getTabBarPageId(args.url)).then(resolve).catch(reject))  );  const redirectToPages = [...redirectToPagesBeforeEntryPages];  redirectToPagesBeforeEntryPages.length = 0;  redirectToPages.forEach(    ({ args, resolve, reject }) => (removeLastPage(), navigate(args).then(resolve).catch(reject))  );  const reLaunchPages = [...reLaunchPagesBeforeEntryPages];  reLaunchPagesBeforeEntryPages.length = 0;  reLaunchPages.forEach(    ({ args, resolve, reject }) => (removeAllPages(), navigate(args).then(resolve).catch(reject))  );}let tabBar;function useTabBar() {  if (!tabBar) {    tabBar = __uniConfig.tabBar && vue.reactive(initTabBarI18n(__uniConfig.tabBar));  }  return tabBar;}const envMethod = /* @__PURE__ */ (() => "env")();function normalizeWindowBottom(windowBottom) {  return envMethod ? `calc(${windowBottom}px + ${envMethod}(safe-area-inset-bottom))` : `${windowBottom}px`;}const SEP = "$$";const currentPagesMap = /* @__PURE__ */ new Map();const entryPageState = {  handledBeforeEntryPageRoutes: false};const navigateToPagesBeforeEntryPages = [];const switchTabPagesBeforeEntryPages = [];const redirectToPagesBeforeEntryPages = [];const reLaunchPagesBeforeEntryPages = [];function pruneCurrentPages() {  currentPagesMap.forEach((page, id2) => {    if (page.$.isUnmounted) {      currentPagesMap.delete(id2);    }  });}function getCurrentPagesMap() {  return currentPagesMap;}function getCurrentPages$1() {  const curPages = [];  const pages = currentPagesMap.values();  for (const page of pages) {    if (page.$.__isTabBar) {      if (page.$.__isActive) {        curPages.push(page);      }    } else {      curPages.push(page);    }  }  return curPages;}function removeRouteCache(routeKey) {  const vnode = pageCacheMap.get(routeKey);  if (vnode) {    pageCacheMap.delete(routeKey);    routeCache.pruneCacheEntry(vnode);  }}function removePage(routeKey, removeRouteCaches = true) {  const pageVm = currentPagesMap.get(routeKey);  pageVm.$.__isUnload = true;  invokeHook(pageVm, uniShared.ON_UNLOAD);  currentPagesMap.delete(routeKey);  removeRouteCaches && removeRouteCache(routeKey);}let id = /* @__PURE__ */ getStateId();function createPageState(type, __id__) {  return {    __id__: __id__ || ++id,    __type__: type  };}function initPublicPage(route) {  const meta = usePageMeta();  if (!__UNI_FEATURE_PAGES__) {    return initPageInternalInstance("navigateTo", __uniRoutes[0].path, {}, meta);  }  let fullPath = route.fullPath;  if (route.meta.isEntry && fullPath.indexOf(route.meta.route) === -1) {    fullPath = "/" + route.meta.route + fullPath.replace("/", "");  }  return initPageInternalInstance("navigateTo", fullPath, {}, meta);}function initPage(vm) {  const route = vm.$route;  const page = initPublicPage(route);  initPageVm(vm, page);  {    const pageMeta = page.meta;    vm.$setPageStyle = (style) => {      for (const key in style) {        switch (key) {          case "navigationBarBackgroundColor":            pageMeta.navigationBar.backgroundColor = style[key];            break;          case "navigationBarTextStyle":            const textStyle = style[key];            if (textStyle == null) {              continue;            }            pageMeta.navigationBar.titleColor = ["black", "white"].includes(              textStyle            ) ? uniShared.normalizeTitleColor(textStyle || "") : textStyle;            break;          case "navigationBarTitleText":            pageMeta.navigationBar.titleText = style[key];            break;          case "titleImage":            pageMeta.navigationBar.titleImage = style[key];            break;          case "navigationStyle":            pageMeta.navigationBar.style = style[key];            break;          default:            pageMeta[key] = style[key];            break;        }      }    };    vm.$getPageStyle = () => new UTSJSONObject({      navigationBarBackgroundColor: pageMeta.navigationBar.backgroundColor,      navigationBarTextStyle: pageMeta.navigationBar.titleColor,      navigationBarTitleText: pageMeta.navigationBar.titleText,      titleImage: pageMeta.navigationBar.titleImage || "",      navigationStyle: pageMeta.navigationBar.style || "default",      disableScroll: pageMeta.disableScroll || false,      enablePullDownRefresh: pageMeta.enablePullDownRefresh || false,      onReachBottomDistance: pageMeta.onReachBottomDistance || uniShared.ON_REACH_BOTTOM_DISTANCE,      backgroundColorContent: pageMeta.backgroundColorContent    });  }  currentPagesMap.set(normalizeRouteKey(page.path, page.id), vm);  if (currentPagesMap.size === 1) {    setTimeout(() => {      handleBeforeEntryPageRoutes();    }, 0);  }}function normalizeRouteKey(path, id2) {  return path + SEP + id2;}function useKeepAliveRoute() {  const route = vueRouter.useRoute();  const routeKey = vue.computed(    () => normalizeRouteKey("/" + route.meta.route, getStateId())  );  const isTabBar = vue.computed(() => route.meta.isTabBar);  return {    routeKey,    isTabBar,    routeCache  };}const pageCacheMap = /* @__PURE__ */ new Map();const routeCache = {  get(key) {    return pageCacheMap.get(key);  },  set(key, value) {    pruneRouteCache(key);    pageCacheMap.set(key, value);  },  delete(key) {    const vnode = pageCacheMap.get(key);    if (!vnode) {      return;    }    pageCacheMap.delete(key);  },  forEach(fn) {    pageCacheMap.forEach(fn);  }};function isTabBarVNode(vnode) {  return vnode.props.type === "tabBar";}function pruneRouteCache(key) {  const pageId = parseInt(key.split(SEP)[1]);  if (!pageId) {    return;  }  routeCache.forEach((vnode, key2) => {    const cPageId = parseInt(key2.split(SEP)[1]);    if (cPageId && cPageId > pageId) {      if (__UNI_FEATURE_TABBAR__ && isTabBarVNode(vnode)) {        return;      }      routeCache.delete(key2);      routeCache.pruneCacheEntry(vnode);      vue.nextTick(() => pruneCurrentPages());    }  });}function initRouter(app) {  const router = vueRouter.createRouter(createRouterOptions());  router.beforeEach((to, from) => {    if (to && from && to.meta.isTabBar && from.meta.isTabBar) {      saveTabBarScrollPosition(from.meta.tabBarIndex);    }  });  app.router = router;  app.use(router);}let positionStore = /* @__PURE__ */ Object.create(null);function getTabBarScrollPosition(id2) {  return positionStore[id2];}function saveTabBarScrollPosition(id2) {  if (typeof window !== "undefined") {    positionStore[id2] = {      left: window.pageXOffset,      top: window.pageYOffset    };  }}const scrollBehavior = (to, from, savedPosition) => {  if (savedPosition) {    return savedPosition;  } else {    if (to && from && to.meta.isTabBar && from.meta.isTabBar) {      const position = getTabBarScrollPosition(to.meta.tabBarIndex);      if (position) {        return position;      }    }    return {      left: 0,      top: 0    };  }};function createRouterOptions() {  return {    history: initHistory(),    strict: !!__uniConfig.router.strict,    routes: __uniRoutes,    scrollBehavior  };}function initHistory() {  let { routerBase } = __uniConfig.router;  if (routerBase === "/") {    routerBase = "";  }  {    return vueRouter.createMemoryHistory(routerBase);  }}const index$c = {  install(app) {    initApp$1(app);    if (!app.config.warnHandler) {      app.config.warnHandler = warnHandler;    }    if (__UNI_FEATURE_PAGES__) {      initRouter(app);    }  }};function warnHandler(msg, instance, trace) {  if (instance) {    const name = instance.$.type.name;    if ("PageMetaHead" === name) {      return;    }    const parent = instance.$.parent;    if (parent && parent.type.name === "PageMeta") {      return;    }  }  const warnArgs = [`[Vue warn]: ${msg}`];  if (trace.length) {    warnArgs.push(``, trace);  }  console.warn(...warnArgs);}const clazz = { class: "uni-async-loading" };const loadingVNode = /* @__PURE__ */ vue.createVNode(  "i",  { class: "uni-loading" },  null,  -1  /* HOISTED */);const AsyncLoadingComponent = /* @__PURE__ */ defineSystemComponent({  name: "AsyncLoading",  render() {    return vue.openBlock(), vue.createBlock("div", clazz, [loadingVNode]);  }});function reload() {  window.location.reload();}const AsyncErrorComponent = /* @__PURE__ */ defineSystemComponent({  name: "AsyncError",  setup() {    initI18nAsyncMsgsOnce();    const {      t: t2    } = useI18n();    return () => vue.createVNode("div", {      "class": "uni-async-error",      "onClick": reload    }, [t2("uni.async.error")], 8, ["onClick"]);  }});let appVm;function getApp$1() {  return appVm;}function initApp(vm) {  appVm = vm;  Object.defineProperty(appVm.$.ctx, "$children", {    get() {      return getCurrentPages().map((page) => page.$vm);    }  });  const app = appVm.$.appContext.app;  if (!app.component(AsyncLoadingComponent.name)) {    app.component(AsyncLoadingComponent.name, AsyncLoadingComponent);  }  if (!app.component(AsyncErrorComponent.name)) {    app.component(AsyncErrorComponent.name, AsyncErrorComponent);  }  initAppVm(appVm);  defineGlobalData(appVm);}function wrapperComponentSetup(comp, { clone, init, setup, before }) {  if (clone) {    comp = shared.extend({}, comp);  }  before && before(comp);  const oldSetup = comp.setup;  comp.setup = (props2, ctx) => {    const instance = vue.getCurrentInstance();    init(instance.proxy);    const query = setup(instance);    if (oldSetup) {      return oldSetup(query || props2, ctx);    }  };  return comp;}function setupComponent(comp, options) {  if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) {    return wrapperComponentSetup(comp.default, options);  }  return wrapperComponentSetup(comp, options);}function setupWindow(comp, id2) {  return setupComponent(comp, {    init: (vm) => {      vm.$page = {        id: id2      };    },    setup(instance) {      instance.$pageInstance = instance;    }  });}function setupPage(comp) {  if (process.env.NODE_ENV !== "production") {    comp.__mpType = "page";  }  return setupComponent(comp, {    clone: true,    // 页面组件可能会被其他地方手动引用,比如 windows 等,需要 clone 一份新的作为页面组件    init: initPage,    setup(instance) {      instance.$pageInstance = instance;      const route = usePageRoute();      const query = uniShared.decodedQuery(route.query);      instance.attrs.__pageQuery = query;      instance.proxy.$page.options = query;      instance.proxy.options = query;      {        return query;      }    }  });}function setupApp(comp) {  if (process.env.NODE_ENV !== "production") {    comp.__mpType = "app";  }  return setupComponent(comp, {    init: initApp,    setup(instance) {      const route = usePageRoute();      {        return route.query;      }    },    before(comp2) {      comp2.mpType = "app";      const { setup } = comp2;      const render = () => {        return vue.openBlock(), vue.createBlock(LayoutComponent);      };      comp2.setup = (props2, ctx) => {        const res = setup && setup(props2, ctx);        return shared.isFunction(res) ? render : res;      };      comp2.render = render;    }  });}function formatTime(val) {  val = val > 0 && val < Infinity ? val : 0;  const h = Math.floor(val / 3600);  const m = Math.floor(val % 3600 / 60);  const s = Math.floor(val % 3600 % 60);  const hStr = (h < 10 ? "0" : "") + h;  const mStr = (m < 10 ? "0" : "") + m;  const sStr = (s < 10 ? "0" : "") + s;  let str = mStr + ":" + sStr;  if (hStr !== "00") {    str = hStr + ":" + str;  }  return str;}function useGesture(props2, videoRef, fullscreenState) {  const state = vue.reactive({    gestureType: "none",    volumeOld: 0,    volumeNew: 0,    currentTimeOld: 0,    currentTimeNew: 0  });  const touchStartOrigin = {    x: 0,    y: 0  };  function onTouchstart(event) {    const toucher = event.targetTouches[0];    touchStartOrigin.x = toucher.pageX;    touchStartOrigin.y = toucher.pageY;    state.gestureType = "none";    state.volumeOld = 0;    state.currentTimeOld = state.currentTimeNew = 0;  }  function onTouchmove(event) {    function stop() {      event.stopPropagation();      event.preventDefault();    }    if (fullscreenState.fullscreen) {      stop();    }    const gestureType = state.gestureType;    if (gestureType === "stop") {      return;    }    const toucher = event.targetTouches[0];    const pageX = toucher.pageX;    const pageY = toucher.pageY;    const origin = touchStartOrigin;    const video = videoRef.value;    if (gestureType === "progress") {      changeProgress(pageX - origin.x);    } else if (gestureType === "volume") {      changeVolume(pageY - origin.y);    }    if (gestureType !== "none") {      return;    }    if (Math.abs(pageX - origin.x) > Math.abs(pageY - origin.y)) {      if (!props2.enableProgressGesture) {        state.gestureType = "stop";        return;      }      state.gestureType = "progress";      state.currentTimeOld = state.currentTimeNew = video.currentTime;      if (!fullscreenState.fullscreen) {        stop();      }    } else {      if (!props2.pageGesture) {        state.gestureType = "stop";        return;      }      state.gestureType = "volume";      state.volumeOld = video.volume;      if (!fullscreenState.fullscreen) {        stop();      }    }  }  function onTouchend(event) {    const video = videoRef.value;    if (state.gestureType !== "none" && state.gestureType !== "stop") {      event.stopPropagation();      event.preventDefault();    }    if (state.gestureType === "progress" && state.currentTimeOld !== state.currentTimeNew) {      video.currentTime = state.currentTimeNew;    }    state.gestureType = "none";  }  function changeProgress(x) {    const video = videoRef.value;    const duration = video.duration;    let currentTimeNew = x / 600 * duration + state.currentTimeOld;    if (currentTimeNew < 0) {      currentTimeNew = 0;    } else if (currentTimeNew > duration) {      currentTimeNew = duration;    }    state.currentTimeNew = currentTimeNew;  }  function changeVolume(y) {    const video = videoRef.value;    const valueOld = state.volumeOld;    let value;    if (typeof valueOld === "number") {      value = valueOld - y / 200;      if (value < 0) {        value = 0;      } else if (value > 1) {        value = 1;      }      video.volume = value;      state.volumeNew = value;    }  }  return {    state,    onTouchstart,    onTouchmove,    onTouchend  };}function useFullscreen(trigger, containerRef, videoRef, userActionState, rootRef) {  const state = vue.reactive({    fullscreen: false  });  const isSafari = /^Apple/.test(navigator.vendor);  function onFullscreenChange($event, webkit) {    if (webkit && document.fullscreenEnabled) {      return;    }    emitFullscreenChange(!!(document.fullscreenElement || document.webkitFullscreenElement));  }  function emitFullscreenChange(val) {    state.fullscreen = val;    trigger("fullscreenchange", {}, {      fullScreen: val,      direction: "vertical"    });  }  function toggleFullscreen(val) {    const root = rootRef.value;    const container = containerRef.value;    const video = videoRef.value;    let mockFullScreen;    if (val) {      if ((document.fullscreenEnabled || document.webkitFullscreenEnabled) && (!isSafari || userActionState.userAction)) {        container[document.fullscreenEnabled ? "requestFullscreen" : "webkitRequestFullscreen"]();      } else if (video.webkitEnterFullScreen) {        video.webkitEnterFullScreen();      } else {        mockFullScreen = true;        container.remove();        container.classList.add("uni-video-type-fullscreen");        document.body.appendChild(container);      }    } else {      if (document.fullscreenEnabled || document.webkitFullscreenEnabled) {        if (document.fullscreenElement) {          document.exitFullscreen();        } else if (document.webkitFullscreenElement) {          document.webkitExitFullscreen();        }      } else if (video.webkitExitFullScreen) {        video.webkitExitFullScreen();      } else {        mockFullScreen = true;        container.remove();        container.classList.remove("uni-video-type-fullscreen");        root.appendChild(container);      }    }    if (mockFullScreen) {      emitFullscreenChange(val);    }  }  function requestFullScreen() {    toggleFullscreen(true);  }  function exitFullScreen() {    toggleFullscreen(false);  }  return {    state,    onFullscreenChange,    emitFullscreenChange,    toggleFullscreen,    requestFullScreen,    exitFullScreen  };}function useVideo(props2, attrs, trigger) {  const videoRef = vue.ref(null);  const src = vue.computed(() => getRealPath(props2.src));  const muted = vue.computed(() => props2.muted === "true" || props2.muted === true);  const state = vue.reactive({    start: false,    src,    playing: false,    currentTime: 0,    duration: 0,    progress: 0,    buffered: 0,    muted  });  vue.watch(() => src.value, () => {    state.playing = false;    state.currentTime = 0;  });  vue.watch(() => state.buffered, (buffered) => {    trigger("progress", {}, {      buffered    });  });  vue.watch(() => muted.value, (muted2) => {    const video = videoRef.value;    video.muted = muted2;  });  function onDurationChange({    target  }) {    state.duration = target.duration;  }  function onLoadedMetadata($event) {    const initialTime = Number(props2.initialTime) || 0;    const video = $event.target;    if (initialTime > 0) {      video.currentTime = initialTime;    }    trigger("loadedmetadata", $event, {      width: video.videoWidth,      height: video.videoHeight,      duration: video.duration    });    onProgress($event);  }  function onProgress($event) {    const video = $event.target;    const buffered = video.buffered;    if (buffered.length) {      state.buffered = buffered.end(buffered.length - 1) / video.duration * 100;    }  }  function onWaiting($event) {    trigger("waiting", $event, {});  }  function onVideoError($event) {    state.playing = false;    trigger("error", $event, {});  }  function onPlay($event) {    state.start = true;    state.playing = true;    trigger("play", $event, {});  }  function onPause($event) {    state.playing = false;    trigger("pause", $event, {});  }  function onEnded($event) {    state.playing = false;    trigger("ended", $event, {});  }  function onTimeUpdate($event) {    const video = $event.target;    const currentTime = state.currentTime = video.currentTime;    trigger("timeupdate", $event, {      currentTime,      duration: video.duration    });  }  function toggle() {    const video = videoRef.value;    if (state.playing) {      video.pause();    } else {      video.play();    }  }  function play() {    const video = videoRef.value;    state.start = true;    video.play();  }  function pause() {    const video = videoRef.value;    video.pause();  }  function seek(position) {    const video = videoRef.value;    position = Number(position);    if (typeof position === "number" && !isNaN(position)) {      video.currentTime = position;    }  }  function stop() {    seek(0);    pause();  }  function playbackRate(rate) {    const video = videoRef.value;    video.playbackRate = rate;  }  return {    videoRef,    state,    play,    pause,    stop,    seek,    playbackRate,    toggle,    onDurationChange,    onLoadedMetadata,    onProgress,    onWaiting,    onVideoError,    onPlay,    onPause,    onEnded,    onTimeUpdate  };}function useControls(props2, videoState, seek) {  const progressRef = vue.ref(null);  const ballRef = vue.ref(null);  const centerPlayBtnShow = vue.computed(() => props2.showCenterPlayBtn && !videoState.start);  const controlsVisible = vue.ref(true);  const controlsShow = vue.computed(() => !centerPlayBtnShow.value && props2.controls && controlsVisible.value);  const state = vue.reactive({    touching: false,    controlsTouching: false,    centerPlayBtnShow,    controlsShow,    controlsVisible  });  function clickProgress(event) {    const $progress = progressRef.value;    let element = event.target;    let x = event.offsetX;    while (element && element !== $progress) {      x += element.offsetLeft;      element = element.parentNode;    }    const w = $progress.offsetWidth;    let progress = 0;    if (x >= 0 && x <= w) {      progress = x / w;      seek(videoState.duration * progress);    }  }  function toggleControls() {    state.controlsVisible = !state.controlsVisible;  }  let hideTiming;  function autoHideStart() {    hideTiming = setTimeout(() => {      state.controlsVisible = false;    }, 3e3);  }  function autoHideEnd() {    if (hideTiming) {      clearTimeout(hideTiming);      hideTiming = null;    }  }  vue.watch(() => state.controlsShow && videoState.playing && !state.controlsTouching, (val) => {    if (val) {      autoHideStart();    } else {      autoHideEnd();    }  });  vue.watch([() => videoState.currentTime, () => {    props2.duration;  }], function updateProgress() {    if (!state.touching) {      videoState.progress = videoState.currentTime / videoState.duration * 100;    }  });  return {    state,    progressRef,    ballRef,    clickProgress,    toggleControls,    autoHideStart,    autoHideEnd  };}function useDanmu(props2, videoState) {  const danmuRef = vue.ref(null);  const state = vue.reactive({    enable: Boolean(props2.enableDanmu)  });  let danmuIndex = {    time: 0,    index: -1  };  const danmuList = shared.isArray(props2.danmuList) ? JSON.parse(JSON.stringify(props2.danmuList)) : [];  danmuList.sort(function(a, b) {    return (a.time || 0) - (b.time || 0);  });  function toggleDanmu() {    state.enable = !state.enable;  }  function updateDanmu(event) {    const video = event.target;    const currentTime = video.currentTime;    const oldDanmuIndex = danmuIndex;    const newDanmuIndex = {      time: currentTime,      index: oldDanmuIndex.index    };    if (currentTime > oldDanmuIndex.time) {      for (let index2 = oldDanmuIndex.index + 1; index2 < danmuList.length; index2++) {        const element = danmuList[index2];        if (currentTime >= (element.time || 0)) {          newDanmuIndex.index = index2;          if (videoState.playing && state.enable) {            playDanmu(element);          }        } else {          break;        }      }    } else if (currentTime < oldDanmuIndex.time) {      for (let index2 = oldDanmuIndex.index - 1; index2 > -1; index2--) {        const element = danmuList[index2];        if (currentTime <= (element.time || 0)) {          newDanmuIndex.index = index2 - 1;        } else {          break;        }      }    }    danmuIndex = newDanmuIndex;  }  function playDanmu(danmu) {    const p2 = document.createElement("p");    p2.className = "uni-video-danmu-item";    p2.innerText = danmu.text;    let style = `bottom: ${Math.random() * 100}%;color: ${danmu.color};`;    p2.setAttribute("style", style);    const danmuEl = danmuRef.value;    danmuEl.appendChild(p2);    setTimeout(function() {      style += "left: 0;-webkit-transform: translateX(-100%);transform: translateX(-100%);";      p2.setAttribute("style", style);      setTimeout(function() {        p2.remove();      }, 4e3);    }, 17);  }  function sendDanmu(danmu) {    danmuList.splice(danmuIndex.index + 1, 0, {      text: String(danmu.text),      color: danmu.color,      time: videoState.currentTime || 0    });  }  return {    state,    danmuRef,    updateDanmu,    toggleDanmu,    sendDanmu  };}function useContext(play, pause, stop, seek, sendDanmu, playbackRate, requestFullScreen, exitFullScreen) {  useContextInfo();  useSubscribe();}const props$9 = {  id: {    type: String,    default: ""  },  src: {    type: String,    default: ""  },  duration: {    type: [Number, String],    default: ""  },  controls: {    type: [Boolean, String],    default: true  },  danmuList: {    type: Array,    default() {      return [];    }  },  danmuBtn: {    type: [Boolean, String],    default: false  },  enableDanmu: {    type: [Boolean, String],    default: false  },  autoplay: {    type: [Boolean, String],    default: false  },  loop: {    type: [Boolean, String],    default: false  },  muted: {    type: [Boolean, String],    default: false  },  objectFit: {    type: String,    default: "contain"  },  poster: {    type: String,    default: ""  },  direction: {    type: [String, Number],    default: ""  },  showProgress: {    type: Boolean,    default: true  },  initialTime: {    type: [String, Number],    default: 0  },  showFullscreenBtn: {    type: [Boolean, String],    default: true  },  pageGesture: {    type: [Boolean, String],    default: false  },  enableProgressGesture: {    type: [Boolean, String],    default: true  },  showPlayBtn: {    type: [Boolean, String],    default: true  },  showCenterPlayBtn: {    type: [Boolean, String],    default: true  }};const index$b = /* @__PURE__ */ defineBuiltInComponent({  name: "Video",  props: props$9,  emits: ["fullscreenchange", "progress", "loadedmetadata", "waiting", "error", "play", "pause", "ended", "timeupdate"],  setup(props2, {    emit: emit2,    attrs,    slots  }) {    const rootRef = vue.ref(null);    const containerRef = vue.ref(null);    const trigger = useCustomEvent(rootRef, emit2);    const {      state: userActionState    } = useUserAction();    const {      $attrs: videoAttrs    } = useAttrs({      excludeListeners: true    });    const {      t: t2    } = useI18n();    initI18nVideoMsgsOnce();    const {      videoRef,      state: videoState,      play,      pause,      stop,      seek,      playbackRate,      toggle,      onDurationChange,      onLoadedMetadata,      onProgress,      onWaiting,      onVideoError,      onPlay,      onPause,      onEnded,      onTimeUpdate    } = useVideo(props2, attrs, trigger);    const {      state: danmuState,      danmuRef,      updateDanmu,      toggleDanmu,      sendDanmu    } = useDanmu(props2, videoState);    const {      state: fullscreenState,      onFullscreenChange,      emitFullscreenChange,      toggleFullscreen,      requestFullScreen,      exitFullScreen    } = useFullscreen(trigger, containerRef, videoRef, userActionState, rootRef);    const {      state: gestureState,      onTouchstart,      onTouchend,      onTouchmove    } = useGesture(props2, videoRef, fullscreenState);    const {      state: controlsState,      progressRef,      ballRef,      clickProgress,      toggleControls    } = useControls(props2, videoState, seek);    useContext();    return () => {      return vue.createVNode("uni-video", {        "ref": rootRef,        "id": props2.id,        "onClick": toggleControls      }, [vue.createVNode("div", {        "ref": containerRef,        "class": "uni-video-container",        "onTouchstart": onTouchstart,        "onTouchend": onTouchend,        "onTouchmove": onTouchmove,        "onFullscreenchange": vue.withModifiers(onFullscreenChange, ["stop"]),        "onWebkitfullscreenchange": vue.withModifiers(($event) => onFullscreenChange($event, true), ["stop"])      }, [vue.createVNode("video", vue.mergeProps({        "ref": videoRef,        "style": {          "object-fit": props2.objectFit        },        "muted": !!props2.muted,        "loop": !!props2.loop,        "src": videoState.src,        "poster": props2.poster,        "autoplay": !!props2.autoplay      }, videoAttrs.value, {        "class": "uni-video-video",        "webkit-playsinline": true,        "playsinline": true,        "onDurationchange": onDurationChange,        "onLoadedmetadata": onLoadedMetadata,        "onProgress": onProgress,        "onWaiting": onWaiting,        "onError": onVideoError,        "onPlay": onPlay,        "onPause": onPause,        "onEnded": onEnded,        "onTimeupdate": (event) => {          onTimeUpdate(event);          updateDanmu(event);        },        "onWebkitbeginfullscreen": () => emitFullscreenChange(true),        "onX5videoenterfullscreen": () => emitFullscreenChange(true),        "onWebkitendfullscreen": () => emitFullscreenChange(false),        "onX5videoexitfullscreen": () => emitFullscreenChange(false)      }), null, 16, ["muted", "loop", "src", "poster", "autoplay", "webkit-playsinline", "playsinline", "onDurationchange", "onLoadedmetadata", "onProgress", "onWaiting", "onError", "onPlay", "onPause", "onEnded", "onTimeupdate", "onWebkitbeginfullscreen", "onX5videoenterfullscreen", "onWebkitendfullscreen", "onX5videoexitfullscreen"]), vue.withDirectives(vue.createVNode("div", {        "class": "uni-video-bar uni-video-bar-full",        "onClick": vue.withModifiers(() => {        }, ["stop"])      }, [vue.createVNode("div", {        "class": "uni-video-controls"      }, [vue.withDirectives(vue.createVNode("div", {        "class": {          "uni-video-control-button": true,          "uni-video-control-button-play": !videoState.playing,          "uni-video-control-button-pause": videoState.playing        },        "onClick": vue.withModifiers(toggle, ["stop"])      }, null, 10, ["onClick"]), [[vue.vShow, props2.showPlayBtn]]), vue.withDirectives(vue.createVNode("div", {        "class": "uni-video-current-time"      }, [formatTime(videoState.currentTime)], 512), [[vue.vShow, props2.showProgress]]), vue.withDirectives(vue.createVNode("div", {        "ref": progressRef,        "class": "uni-video-progress-container",        "onClick": vue.withModifiers(clickProgress, ["stop"])      }, [vue.createVNode("div", {        "class": "uni-video-progress"      }, [vue.createVNode("div", {        "style": {          width: videoState.buffered + "%"        },        "class": "uni-video-progress-buffered"      }, null, 4), vue.createVNode("div", {        "ref": ballRef,        "style": {          left: videoState.progress + "%"        },        "class": "uni-video-ball"      }, [vue.createVNode("div", {        "class": "uni-video-inner"      }, null)], 4)])], 8, ["onClick"]), [[vue.vShow, props2.showProgress]]), vue.withDirectives(vue.createVNode("div", {        "class": "uni-video-duration"      }, [formatTime(Number(props2.duration) || videoState.duration)], 512), [[vue.vShow, props2.showProgress]])]), vue.withDirectives(vue.createVNode("div", {        "class": {          "uni-video-danmu-button": true,          "uni-video-danmu-button-active": danmuState.enable        },        "onClick": vue.withModifiers(toggleDanmu, ["stop"])      }, [t2("uni.video.danmu")], 10, ["onClick"]), [[vue.vShow, props2.danmuBtn]]), vue.withDirectives(vue.createVNode("div", {        "class": {          "uni-video-fullscreen": true,          "uni-video-type-fullscreen": fullscreenState.fullscreen        },        "onClick": vue.withModifiers(() => toggleFullscreen(!fullscreenState.fullscreen), ["stop"])      }, null, 10, ["onClick"]), [[vue.vShow, props2.showFullscreenBtn]])], 8, ["onClick"]), [[vue.vShow, controlsState.controlsShow]]), vue.withDirectives(vue.createVNode("div", {        "ref": danmuRef,        "style": "z-index: 0;",        "class": "uni-video-danmu"      }, null, 512), [[vue.vShow, videoState.start && danmuState.enable]]), controlsState.centerPlayBtnShow && vue.createVNode("div", {        "class": "uni-video-cover",        "onClick": vue.withModifiers(() => {        }, ["stop"])      }, [vue.createVNode("div", {        "class": "uni-video-cover-play-button",        "onClick": vue.withModifiers(play, ["stop"])      }, null, 8, ["onClick"]), vue.createVNode("p", {        "class": "uni-video-cover-duration"      }, [formatTime(Number(props2.duration) || videoState.duration)])], 8, ["onClick"]), vue.createVNode("div", {        "class": {          "uni-video-toast": true,          "uni-video-toast-volume": gestureState.gestureType === "volume"        }      }, [vue.createVNode("div", {        "class": "uni-video-toast-title"      }, [t2("uni.video.volume")]), vue.createVNode("svg", {        "class": "uni-video-toast-icon",        "width": "200px",        "height": "200px",        "viewBox": "0 0 1024 1024",        "version": "1.1",        "xmlns": "http://www.w3.org/2000/svg"      }, [vue.createVNode("path", {        "d": "M475.400704 201.19552l0 621.674496q0 14.856192-10.856448 25.71264t-25.71264 10.856448-25.71264-10.856448l-190.273536-190.273536-149.704704 0q-14.856192 0-25.71264-10.856448t-10.856448-25.71264l0-219.414528q0-14.856192 10.856448-25.71264t25.71264-10.856448l149.704704 0 190.273536-190.273536q10.856448-10.856448 25.71264-10.856448t25.71264 10.856448 10.856448 25.71264zm219.414528 310.837248q0 43.425792-24.28416 80.851968t-64.2816 53.425152q-5.71392 2.85696-14.2848 2.85696-14.856192 0-25.71264-10.570752t-10.856448-25.998336q0-11.999232 6.856704-20.284416t16.570368-14.2848 19.427328-13.142016 16.570368-20.284416 6.856704-32.569344-6.856704-32.569344-16.570368-20.284416-19.427328-13.142016-16.570368-14.2848-6.856704-20.284416q0-15.427584 10.856448-25.998336t25.71264-10.570752q8.57088 0 14.2848 2.85696 39.99744 15.427584 64.2816 53.139456t24.28416 81.137664zm146.276352 0q0 87.422976-48.56832 161.41824t-128.5632 107.707392q-7.428096 2.85696-14.2848 2.85696-15.427584 0-26.284032-10.856448t-10.856448-25.71264q0-22.284288 22.284288-33.712128 31.997952-16.570368 43.425792-25.141248 42.283008-30.855168 65.995776-77.423616t23.712768-99.136512-23.712768-99.136512-65.995776-77.423616q-11.42784-8.57088-43.425792-25.141248-22.284288-11.42784-22.284288-33.712128 0-14.856192 10.856448-25.71264t25.71264-10.856448q7.428096 0 14.856192 2.85696 79.99488 33.712128 128.5632 107.707392t48.56832 161.41824zm146.276352 0q0 131.42016-72.566784 241.41312t-193.130496 161.989632q-7.428096 2.85696-14.856192 2.85696-14.856192 0-25.71264-10.856448t-10.856448-25.71264q0-20.570112 22.284288-33.712128 3.999744-2.285568 12.85632-5.999616t12.85632-5.999616q26.284032-14.2848 46.854144-29.140992 70.281216-51.996672 109.707264-129.705984t39.426048-165.132288-39.426048-165.132288-109.707264-129.705984q-20.570112-14.856192-46.854144-29.140992-3.999744-2.285568-12.85632-5.999616t-12.85632-5.999616q-22.284288-13.142016-22.284288-33.712128 0-14.856192 10.856448-25.71264t25.71264-10.856448q7.428096 0 14.856192 2.85696 120.563712 51.996672 193.130496 161.989632t72.566784 241.41312z"      }, null)]), vue.createVNode("div", {        "class": "uni-video-toast-value"      }, [vue.createVNode("div", {        "style": {          width: gestureState.volumeNew * 100 + "%"        },        "class": "uni-video-toast-value-content"      }, [vue.createVNode("div", {        "class": "uni-video-toast-volume-grids"      }, [vue.renderList(10, () => vue.createVNode("div", {        "class": "uni-video-toast-volume-grids-item"      }, null))])], 4)])], 2), vue.createVNode("div", {        "class": {          "uni-video-toast": true,          "uni-video-toast-progress": gestureState.gestureType === "progress"        }      }, [vue.createVNode("div", {        "class": "uni-video-toast-title"      }, [formatTime(gestureState.currentTimeNew), " / ", formatTime(videoState.duration)])], 2), vue.createVNode("div", {        "class": "uni-video-slots"      }, [slots.default && slots.default()])], 40, ["onTouchstart", "onTouchend", "onTouchmove", "onFullscreenchange", "onWebkitfullscreenchange"])], 8, ["id", "onClick"]);    };  }});const onWebInvokeAppService = ({ name, arg }) => {  if (name === "postMessage")    ;  else {    uni[name](arg);  }};const Invoke = /* @__PURE__ */ uniShared.once(() => UniServiceJSBridge.on(uniShared.ON_WEB_INVOKE_APP_SERVICE, onWebInvokeAppService));const props$8 = {  src: {    type: String,    default: ""  }};const indexX = /* @__PURE__ */ defineBuiltInComponent({  inheritAttrs: false,  name: "WebView",  props: props$8,  setup(props2) {    Invoke();    const rootRef = vue.ref(null);    vue.ref(null);    const {      $attrs,      $excludeAttrs,      $listeners    } = useAttrs({      excludeListeners: true    });    return () => {      return vue.createVNode("uni-web-view", vue.mergeProps({        "class": "uni-webview"      }, $listeners.value, $excludeAttrs.value, {        "ref": rootRef      }), null, 16);    };  }});const ICON_PATH_ORIGIN = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIQAAACECAMAAABmmnOVAAAC01BMVEUAAAAAef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef8Aef96quGStdqStdpbnujMzMzCyM7Gyc7Ky83MzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwAef8GfP0yjfNWnOp0qOKKsdyYt9mju9aZt9mMstx1qeJYnekyjvIIfP0qivVmouaWttnMzMyat9lppOUujPQKffxhoOfNzc3Y2Njh4eHp6enu7u7y8vL19fXv7+/i4uLZ2dnOzs6auNgOf/sKff15quHR0dHx8fH9/f3////j4+N6quFdn+iywdPb29vw8PD+/v7c3NyywtLa2tr29vbS0tLd3d38/Pzf39/o6Ojc7f+q0v+HwP9rsf9dqv9Hnv9Vpv/q6urj8P+Vx/9Am/8Pgf8Iff/z8/OAvP95uf/n5+c5l//V6f+52v+y1//7+/vt7e0rkP/09PTQ0NDq9P8Whf+cy//W1tbe3t7A3v/m5ubs7OxOov/r6+vk5OQiaPjKAAAAknRSTlMACBZ9oB71/jiqywJBZATT6hBukRXv+zDCAVrkDIf4JbQsTb7eVeJLbwfa8Rh4G/OlPS/6/kxQ9/xdmZudoJxNVhng7B6wtWdzAtQOipcF1329wS44doK/BAkyP1pvgZOsrbnGXArAg34G2IsD1eMRe7bi7k5YnqFT9V0csyPedQyYD3p/Fje+hDpskq/MwpRBC6yKp2MAAAQdSURBVHja7Zn1exMxGIAPHbrhDsPdneHuNtzd3d3dIbjLh93o2o4i7TpgG1Jk0g0mMNwd/gTa5rq129reHnK5e/bk/TFNk/dJ7r5894XjGAwGg8GgTZasCpDIll1+hxw5vXLJLpEboTx5ZXbIhyzkl9fB28cqUaCgrBKFkI3CcjoUKYolihWXUSI7EihRUjaHXF52CVRKLoe8eZIdUOkyMknkRw6UlcehYAFHiXK+skgURk6Ul8OhQjFnCVRRBolKqRxQ5SzUHaqgNGSj7VCmalqJnDkoS5RF6ZCbroNvufQkUD6qEuXTdUA+3hQdqiEXVKfnUKOmK4latalJ1EEuoZZ6162HJ9x/4OChw0eOHj12/MTJU6dxG7XUu751tjNnz4ET5y9ctLZTSr0beKFLl89bpuUDrqgC1RqNWqsKuqqzNFw7e51S6u3tc+OmZUJ9kCHY6ECwOkRvab51iUrqXej2HYDQsHBjWgx3Ae7dppB6N2wEcF9jdMGDUIDGTaR2aNoM9FqjG7QmaN5CWgc/gIePjG559BigpZQOrYB/4jBfRGRUtDkmJjY6KjLCofkpD62lc2gDfMpWPIuLdwyV8XEpHgaddBZ+wBuSFcwJqSN2ovmZ/dfnOvCTxqGtwzq8SEjv4EhISn48eWgnhUP7DvDSvgzxrs6vV6+FLiro2EkCic4QKkzwJsH1KYreCp0eQhfyDl1B/w4P/xa5JVJ4U03QjbRD9x7wXlgH5IE3wmMBHXoSlugFAcI6f/AkkSi8q6HQm6xDn77wEQ8djTwSj3tqAMguRTe4ikeOQyJ4YV+KfkQl+oNW5GbY4gWOWgbwJ+kwAD6Fi90MK2ZsrIeBBCUGwRXbqJ+/iJMQliIEBhOU6AJhtlG/IpHE2bqrYQg5h6HA4yQiRqwEfkGCdTCMmMRw+IbPDCQaHCsCYAQxiZHw3TbmD/ESOHgHwShiEqPhp/gggYkSztIxxCRawy/bmEniJaJtfwiEscQkxkFgRqJESqQwwHhiEuMBp3Vm8RK/cZoHEzKXhCK2QxEPpiJe0YlKCFaKCNv/cYBNUsBRPlkJSc0U+dM7E9H0ThGJbgZT/iR7yj+VqMS06Qr4+OFm2JdCxIa8lugzkJs5K6MfxAaYPUcBpYG5khZJEkUUSb7DPCnKRfPBXj6M8FwuegoLpCgXcQszVjhbJFUJUee2hBhLoYTIcYtB57KY+opSMdVqwatSlZVj05aV//CwJLMX2DluaUcwhXm4ali2XOoLjxUrPV26zFtF4f5p0Gp310+z13BUWNvbehEXona6iAtX/zVZmtfN4WixfsNky4S6gCCVVq3RPLdfSfpv3MRRZfPoLc6Xs/5bt3EyMGzE9h07/Xft2t15z6i9+zgGg8FgMBgMBoPBYDAYDAYj8/APG67Rie8pUDsAAAAASUVORK5CYII=";var MapType = /* @__PURE__ */ ((MapType2) => {  MapType2["QQ"] = "qq";  MapType2["GOOGLE"] = "google";  MapType2["AMAP"] = "AMap";  MapType2["BMAP"] = "BMapGL";  MapType2["UNKNOWN"] = "";  return MapType2;})(MapType || {});function getMapInfo() {  if (__uniConfig.bMapKey) {    return {      type: "BMapGL",      key: __uniConfig.bMapKey    };  }  if (__uniConfig.qqMapKey) {    return {      type: "qq",      key: __uniConfig.qqMapKey    };  }  if (__uniConfig.googleMapKey) {    return {      type: "google",      key: __uniConfig.googleMapKey    };  }  if (__uniConfig.aMapKey) {    return {      type: "AMap",      key: __uniConfig.aMapKey,      securityJsCode: __uniConfig.aMapSecurityJsCode,      serviceHost: __uniConfig.aMapServiceHost    };  }  return {    type: "",    key: ""  };}let IS_AMAP = false;let hasGetIsAMap = false;const getIsAMap = () => {  if (hasGetIsAMap) {    return IS_AMAP;  } else {    hasGetIsAMap = true;    return IS_AMAP = getMapInfo().type === "AMap";  }};const getIsBMap = () => {  return getMapInfo().type === "BMapGL";};const props$7 = {  id: {    type: [Number, String],    default: ""  },  latitude: {    type: [Number, String],    require: true  },  longitude: {    type: [Number, String],    require: true  },  title: {    type: String,    default: ""  },  iconPath: {    type: String,    require: true  },  rotate: {    type: [Number, String],    default: 0  },  alpha: {    type: [Number, String],    default: 1  },  width: {    type: [Number, String],    default: ""  },  height: {    type: [Number, String],    default: ""  },  callout: {    type: Object,    default: null  },  label: {    type: Object,    default: null  },  anchor: {    type: Object,    default: null  },  clusterId: {    type: [Number, String],    default: ""  },  customCallout: {    type: Object,    default: null  },  ariaLabel: {    type: String,    default: ""  }};function useMarkerLabelStyle(id2) {  const className = "uni-map-marker-label-" + id2;  const styleEl = document.createElement("style");  styleEl.id = className;  document.head.appendChild(styleEl);  return function updateMarkerLabelStyle(style) {    const newStyle = Object.assign({}, style, {      position: "absolute",      top: "70px",      borderStyle: "solid"    });    const div = document.createElement("div");    Object.keys(newStyle).forEach((key) => {      div.style[key] = newStyle[key] || "";    });    styleEl.innerText = `.${className}{${div.getAttribute("style")}}`;    return className;  };}const MapMarker = /* @__PURE__ */ defineSystemComponent({  name: "MapMarker",  props: props$7,  setup(props2) {    const id2 = String(!isNaN(Number(props2.id)) ? props2.id : "");    const onMapReady = vue.inject("onMapReady");    const updateMarkerLabelStyle = useMarkerLabelStyle(id2);    let marker;    function removeMarkerCallout(callout) {      if (getIsAMap()) {        callout.removeAMapText();      } else {        callout.setMap(null);      }    }    onMapReady((map, maps, trigger) => {      function updateMarker(option) {        const title = option.title;        let position;        if (getIsAMap()) {          position = new maps.LngLat(option.longitude, option.latitude);        } else if (getIsBMap()) {          position = new maps.Point(option.longitude, option.latitude);        } else {          position = new maps.LatLng(option.latitude, option.longitude);        }        const img = new Image();        let imgHeight = 0;        img.onload = () => {          const anchor = option.anchor || {};          let icon;          let w;          let h;          let top;          let x = typeof anchor.x === "number" ? anchor.x : 0.5;          let y = typeof anchor.y === "number" ? anchor.y : 1;          if (option.iconPath && (option.width || option.height)) {            w = option.width || img.width / img.height * option.height;            h = option.height || img.height / img.width * option.width;          } else {            w = img.width / 2;            h = img.height / 2;          }          imgHeight = h;          top = h - (h - y * h);          if ("MarkerImage" in maps) {            icon = new maps.MarkerImage(img.src, null, null, new maps.Point(x * w, y * h), new maps.Size(w, h));          } else if ("Icon" in maps) {            icon = new maps.Icon({              image: img.src,              size: new maps.Size(w, h),              imageSize: new maps.Size(w, h),              imageOffset: new maps.Pixel(x * w, y * h)            });          } else {            icon = {              url: img.src,              anchor: new maps.Point(x, y),              size: new maps.Size(w, h)            };          }          if (getIsBMap()) {            marker = new maps.Marker(new maps.Point(position.lng, position.lat));            map.addOverlay(marker);          } else {            marker.setPosition(position);            marker.setIcon(icon);          }          if ("setRotation" in marker) {            marker.setRotation(option.rotate || 0);          }          const labelOpt = option.label || {};          if ("label" in marker) {            marker.label.setMap(null);            delete marker.label;          }          let label;          if (labelOpt.content) {            const labelStyle = {              borderColor: labelOpt.borderColor,              borderWidth: (Number(labelOpt.borderWidth) || 0) + "px",              padding: (Number(labelOpt.padding) || 0) + "px",              borderRadius: (Number(labelOpt.borderRadius) || 0) + "px",              backgroundColor: labelOpt.bgColor,              color: labelOpt.color,              fontSize: (labelOpt.fontSize || 14) + "px",              lineHeight: (labelOpt.fontSize || 14) + "px",              marginLeft: (Number(labelOpt.anchorX || labelOpt.x) || 0) + "px",              marginTop: (Number(labelOpt.anchorY || labelOpt.y) || 0) + "px"            };            if ("Label" in maps) {              label = new maps.Label({                position,                map,                clickable: false,                content: labelOpt.content,                style: labelStyle              });              marker.label = label;            } else if ("setLabel" in marker) {              if (getIsAMap()) {                const content = `<div style="                  margin-left:${labelStyle.marginLeft};                  margin-top:${labelStyle.marginTop};                  padding:${labelStyle.padding};                  background-color:${labelStyle.backgroundColor};                  border-radius:${labelStyle.borderRadius};                  line-height:${labelStyle.lineHeight};                  color:${labelStyle.color};                  font-size:${labelStyle.fontSize};                  ">                  ${labelOpt.content}                <div>`;                marker.setLabel({                  content,                  direction: "bottom-right"                });              } else {                const className = updateMarkerLabelStyle(labelStyle);                marker.setLabel({                  text: labelOpt.content,                  color: labelStyle.color,                  fontSize: labelStyle.fontSize,                  className                });              }            }          }          const calloutOpt = option.callout || {};          let callout = marker.callout;          let calloutStyle;          if (calloutOpt.content || title) {            if (getIsAMap() && calloutOpt.content) {              calloutOpt.content = calloutOpt.content.replaceAll("\n", "<br/>");            }            const boxShadow = "0px 0px 3px 1px rgba(0,0,0,0.5)";            let offsetY = -imgHeight / 2;            if (option.width || option.height) {              offsetY += 14 - imgHeight / 2;            }            calloutStyle = calloutOpt.content ? {              position,              map,              top,              // handle AMap callout offset              offsetY,              content: calloutOpt.content,              color: calloutOpt.color,              fontSize: calloutOpt.fontSize,              borderRadius: calloutOpt.borderRadius,              bgColor: calloutOpt.bgColor,              padding: calloutOpt.padding,              boxShadow: calloutOpt.boxShadow || boxShadow,              display: calloutOpt.display            } : {              position,              map,              top,              // handle AMap callout offset              offsetY,              content: title,              boxShadow            };            if (callout) {              callout.setOption(calloutStyle);            } else {              if (getIsAMap()) {                const callback = () => {                  if (id2 !== "") {                    trigger("callouttap", {}, {                      markerId: Number(id2)                    });                  }                };                callout = marker.callout = new maps.Callout(calloutStyle, callback);              } else {                callout = marker.callout = new maps.Callout(calloutStyle);                callout.div.onclick = function($event) {                  if (id2 !== "") {                    trigger("callouttap", $event, {                      markerId: Number(id2)                    });                  }                  $event.stopPropagation();                  $event.preventDefault();                };                if (getMapInfo().type === MapType.GOOGLE) {                  callout.div.ontouchstart = function($event) {                    $event.stopPropagation();                  };                  callout.div.onpointerdown = function($event) {                    $event.stopPropagation();                  };                }              }            }          } else {            if (callout) {              removeMarkerCallout(callout);              delete marker.callout;            }          }        };        if (option.iconPath) {          img.src = getRealPath(option.iconPath);        } else {          console.error("Marker.iconPath is required.");        }      }      function addMarker(props3) {        if (!getIsBMap()) {          marker = new maps.Marker({            map,            flat: true,            autoRotation: false          });        }        updateMarker(props3);        const MapsEvent = maps.event || maps.Event;        if (getIsBMap())          ;        else {          MapsEvent.addListener(marker, "click", () => {            const callout = marker.callout;            if (callout && !callout.alwaysVisible) {              if (getIsAMap()) {                callout.visible = !callout.visible;                if (callout.visible) {                  marker.callout.createAMapText();                } else {                  marker.callout.removeAMapText();                }              } else {                callout.set("visible", !callout.visible);                if (callout.visible) {                  const div = callout.div;                  const parent = div.parentNode;                  parent.removeChild(div);                  parent.appendChild(div);                }              }            }            if (id2) {              trigger("markertap", {}, {                markerId: Number(id2),                latitude: props3.latitude,                longitude: props3.longitude              });            }          });        }      }      addMarker(props2);      vue.watch(props2, updateMarker);    });    if (id2) {      const addMapChidlContext = vue.inject("addMapChidlContext");      vue.inject("removeMapChidlContext");      const context = {        id: id2,        translate(data) {          onMapReady((map, maps, trigger) => {            const destination = data.destination;            const duration = data.duration;            const autoRotate = !!data.autoRotate;            let rotate = Number(data.rotate) || 0;            let rotation = 0;            if ("getRotation" in marker) {              rotation = marker.getRotation();            }            const a = marker.getPosition();            const b = new maps.LatLng(destination.latitude, destination.longitude);            const distance = maps.geometry.spherical.computeDistanceBetween(a, b) / 1e3;            const time = (typeof duration === "number" ? duration : 1e3) / (1e3 * 60 * 60);            const speed = distance / time;            const MapsEvent = maps.event || maps.Event;            const movingEvent = MapsEvent.addListener(marker, "moving", (e2) => {              const latLng = e2.latLng;              const label = marker.label;              if (label) {                label.setPosition(latLng);              }              const callout = marker.callout;              if (callout) {                callout.setPosition(latLng);              }            });            const event = MapsEvent.addListener(marker, "moveend", () => {              event.remove();              movingEvent.remove();              marker.lastPosition = a;              marker.setPosition(b);              const label = marker.label;              if (label) {                label.setPosition(b);              }              const callout = marker.callout;              if (callout) {                callout.setPosition(b);              }              const cb = data.animationEnd;              if (shared.isFunction(cb)) {                cb();              }            });            let lastRtate = 0;            if (autoRotate) {              if (marker.lastPosition) {                lastRtate = maps.geometry.spherical.computeHeading(marker.lastPosition, a);              }              rotate = maps.geometry.spherical.computeHeading(a, b) - lastRtate;            }            if ("setRotation" in marker) {              marker.setRotation(rotation + rotate);            }            if ("moveTo" in marker) {              marker.moveTo(b, speed);            } else {              marker.setPosition(b);              MapsEvent.trigger(marker, "moveend", {});            }          });        }      };      addMapChidlContext(context);    }    return () => {      return null;    };  }});function hexToRgba(hex) {  if (!hex) {    return {      r: 0,      g: 0,      b: 0,      a: 0    };  }  let tmpHex = hex.slice(1);  const tmpHexLen = tmpHex.length;  if (![3, 4, 6, 8].includes(tmpHexLen)) {    return {      r: 0,      g: 0,      b: 0,      a: 0    };  }  if (tmpHexLen === 3 || tmpHexLen === 4) {    tmpHex = tmpHex.replace(/(\w{1})/g, "$1$1");  }  let [sr, sg, sb, sa] = tmpHex.match(/(\w{2})/g);  const r = parseInt(sr, 16), g2 = parseInt(sg, 16), b = parseInt(sb, 16);  if (!sa) {    return { r, g: g2, b, a: 1 };  }  return {    r,    g: g2,    b,    a: (`0x100${sa}` - 65536) / 255  };}const props$6 = {  points: {    type: Array,    require: true  },  color: {    type: String,    default: "#000000"  },  width: {    type: [Number, String],    default: ""  },  dottedLine: {    type: [Boolean, String],    default: false  },  arrowLine: {    type: [Boolean, String],    default: false  },  arrowIconPath: {    type: String,    default: ""  },  borderColor: {    type: String,    default: "#000000"  },  borderWidth: {    type: [Number, String],    default: ""  },  colorList: {    type: Array,    default() {      return [];    }  },  level: {    type: String,    default: ""  }};const MapPolyline = /* @__PURE__ */ defineSystemComponent({  name: "MapPolyline",  props: props$6,  setup(props2) {    const onMapReady = vue.inject("onMapReady");    let polyline;    let polylineBorder;    function removePolyline() {      if (polyline) {        polyline.setMap(null);      }      if (polylineBorder) {        polylineBorder.setMap(null);      }    }    onMapReady((map, maps) => {      function updatePolyline(option) {        removePolyline();        addPolyline(option);      }      function addPolyline(option) {        const path = [];        option.points.forEach((point) => {          let pointPosition;          if (getIsAMap()) {            pointPosition = [point.longitude, point.latitude];          } else if (getIsBMap()) {            pointPosition = new maps.Point(point.longitude, point.latitude);          } else {            pointPosition = new maps.LatLng(point.latitude, point.longitude);          }          path.push(pointPosition);        });        const strokeWeight = Number(option.width) || 1;        const {          r: sr,          g: sg,          b: sb,          a: sa        } = hexToRgba(option.color);        const {          r: br,          g: bg,          b: bb,          a: ba        } = hexToRgba(option.borderColor);        const polylineOptions = {          map,          clickable: false,          path,          strokeWeight,          strokeColor: option.color || void 0,          strokeDashStyle: option.dottedLine ? "dash" : "solid"        };        const borderWidth = Number(option.borderWidth) || 0;        const polylineBorderOptions = {          map,          clickable: false,          path,          strokeWeight: strokeWeight + borderWidth * 2,          strokeColor: option.borderColor || void 0,          strokeDashStyle: option.dottedLine ? "dash" : "solid"        };        if ("Color" in maps) {          polylineOptions.strokeColor = new maps.Color(sr, sg, sb, sa);          polylineBorderOptions.strokeColor = new maps.Color(br, bg, bb, ba);        } else {          polylineOptions.strokeColor = `rgb(${sr}, ${sg}, ${sb})`;          polylineOptions.strokeOpacity = sa;          polylineBorderOptions.strokeColor = `rgb(${br}, ${bg}, ${bb})`;          polylineBorderOptions.strokeOpacity = ba;        }        if (borderWidth) {          polylineBorder = new maps.Polyline(polylineBorderOptions);        }        if (getIsBMap()) {          polyline = new maps.Polyline(polylineOptions.path, polylineOptions);          map.addOverlay(polyline);        } else {          polyline = new maps.Polyline(polylineOptions);        }      }      addPolyline(props2);      vue.watch(props2, updatePolyline);    });    return () => {      return null;    };  }});const props$5 = {  latitude: {    type: [Number, String],    require: true  },  longitude: {    type: [Number, String],    require: true  },  color: {    type: String,    default: "#000000"  },  fillColor: {    type: String,    default: "#00000000"  },  radius: {    type: [Number, String],    require: true  },  strokeWidth: {    type: [Number, String],    default: ""  },  level: {    type: String,    default: ""  }};const MapCircle = /* @__PURE__ */ defineSystemComponent({  name: "MapCircle",  props: props$5,  setup(props2) {    const onMapReady = vue.inject("onMapReady");    let circle;    function removeCircle() {      if (circle) {        circle.setMap(null);      }    }    onMapReady((map, maps) => {      function updateCircle(option) {        removeCircle();        addCircle(option);      }      function addCircle(option) {        const center = getIsAMap() || getIsBMap() ? [option.longitude, option.latitude] : new maps.LatLng(option.latitude, option.longitude);        const circleOptions = {          map,          center,          clickable: false,          radius: option.radius,          strokeWeight: Number(option.strokeWidth) || 1,          strokeDashStyle: "solid"        };        if (getIsBMap()) {          circleOptions.strokeColor = option.color;          circleOptions.fillColor = option.fillColor || "#000";          circleOptions.fillOpacity = 1;        } else {          const {            r: fr,            g: fg,            b: fb,            a: fa          } = hexToRgba(option.fillColor);          const {            r: sr,            g: sg,            b: sb,            a: sa          } = hexToRgba(option.color);          if ("Color" in maps) {            circleOptions.fillColor = new maps.Color(fr, fg, fb, fa);            circleOptions.strokeColor = new maps.Color(sr, sg, sb, sa);          } else {            circleOptions.fillColor = `rgb(${fr}, ${fg}, ${fb})`;            circleOptions.fillOpacity = fa;            circleOptions.strokeColor = `rgb(${sr}, ${sg}, ${sb})`;            circleOptions.strokeOpacity = sa;          }        }        if (getIsBMap()) {          let pt = new maps.Point(            // @ts-ignore            circleOptions.center[0],            // @ts-ignore            circleOptions.center[1]          );          circle = new maps.Circle(pt, circleOptions.radius, circleOptions);          map.addOverlay(circle);        } else {          circle = new maps.Circle(circleOptions);          if (getIsAMap()) {            map.add(circle);          }        }      }      addCircle(props2);      vue.watch(props2, updateCircle);    });    return () => {      return null;    };  }});const props$4 = {  id: {    type: [Number, String],    default: ""  },  position: {    type: Object,    required: true  },  iconPath: {    type: String,    required: true  },  clickable: {    type: [Boolean, String],    default: ""  },  trigger: {    type: Function,    required: true  }};const MapControl = /* @__PURE__ */ defineSystemComponent({  name: "MapControl",  props: props$4,  setup(props2) {    const imgPath = vue.computed(() => getRealPath(props2.iconPath));    const positionStyle = vue.computed(() => {      let positionStyle2 = `top:${props2.position.top || 0}px;left:${props2.position.left || 0}px;`;      if (props2.position.width) {        positionStyle2 += `width:${props2.position.width}px;`;      }      if (props2.position.height) {        positionStyle2 += `height:${props2.position.height}px;`;      }      return positionStyle2;    });    const handleClick = ($event) => {      if (props2.clickable) {        props2.trigger("controltap", $event, {          controlId: props2.id        });      }    };    return () => {      return vue.createVNode("div", {        "class": "uni-map-control"      }, [vue.createVNode("img", {        "src": imgPath.value,        "style": positionStyle.value,        "class": "uni-map-control-icon",        "onClick": handleClick      }, null, 12, ["src", "onClick"])]);    };  }});const CONTEXT_ID = "MAP_LOCATION";const MapLocation = /* @__PURE__ */ defineSystemComponent({  name: "MapLocation",  setup() {    const state = vue.reactive({      latitude: 0,      longitude: 0,      rotate: 0    });    return () => {      return state.latitude ? vue.createVNode(MapMarker, vue.mergeProps({        "anchor": {          x: 0.5,          y: 0.5        },        "width": "44",        "height": "44",        "iconPath": ICON_PATH_ORIGIN      }, state), null, 16, ["iconPath"]) : null;    };  }});const props$3 = {  // 边框虚线,腾讯地图支持,google 高德 地图不支持,默认值为[0, 0] 为实线,非 [0, 0] 为虚线,H5 端无法像微信小程序一样控制虚线的间隔像素大小  dashArray: {    type: Array,    default: () => [0, 0]  },  // 经纬度数组,[{latitude: 0, longitude: 0}]  points: {    type: Array,    required: true  },  // 描边的宽度  strokeWidth: {    type: Number,    default: 1  },  // 描边的颜色,十六进制  strokeColor: {    type: String,    default: "#000000"  },  // 填充颜色,十六进制  fillColor: {    type: String,    default: "#00000000"  },  // 设置多边形 Z 轴数值  zIndex: {    type: Number,    default: 0  }};const MapPolygon = /* @__PURE__ */ defineSystemComponent({  name: "MapPolygon",  props: props$3,  setup(props2) {    let polygonIns;    const onMapReady = vue.inject("onMapReady");    onMapReady((map, maps, trigger) => {      function drawPolygon() {        const {          points,          strokeWidth,          strokeColor,          dashArray,          fillColor,          zIndex        } = props2;        const path = points.map((item) => {          const {            latitude,            longitude          } = item;          if (getIsAMap()) {            return [longitude, latitude];          } else if (getIsBMap()) {            return new maps.Point(longitude, latitude);          } else {            return new maps.LatLng(latitude, longitude);          }        });        const {          r: fcR,          g: fcG,          b: fcB,          a: fcA        } = hexToRgba(fillColor);        const {          r: scR,          g: scG,          b: scB,          a: scA        } = hexToRgba(strokeColor);        const polygonOptions = {          //多边形是否可点击。          clickable: true,          //鼠标在多边形内的光标样式。          cursor: "crosshair",          //多边形是否可编辑。          editable: false,          // 地图实例,即要显示多边形的地图          // @ts-ignore          map,          // 区域填充色          fillColor: "",          //多边形的路径,以经纬度坐标数组构成。          path,          // 区域边框          strokeColor: "",          //多边形的边框样式。实线是solid,虚线是dash。          strokeDashStyle: dashArray.some((item) => item > 0) ? "dash" : "solid",          //多边形的边框线宽。          strokeWeight: strokeWidth,          //多边形是否可见。          visible: true,          //多边形的zIndex值。          zIndex        };        if (maps.Color) {          polygonOptions.fillColor = new maps.Color(fcR, fcG, fcB, fcA);          polygonOptions.strokeColor = new maps.Color(scR, scG, scB, scA);        } else {          polygonOptions.fillColor = `rgb(${fcR}, ${fcG}, ${fcB})`;          polygonOptions.fillOpacity = fcA;          polygonOptions.strokeColor = `rgb(${scR}, ${scG}, ${scB})`;          polygonOptions.strokeOpacity = scA;        }        if (polygonIns) {          polygonIns.setOptions(polygonOptions);          return;        }        if (getIsBMap()) {          polygonIns = new maps.Polygon(polygonOptions.path, polygonOptions);          map.addOverlay(polygonIns);        } else {          polygonIns = new maps.Polygon(polygonOptions);        }      }      drawPolygon();      vue.watch(props2, drawPolygon);    });    return () => null;  }});const props$2 = {  id: {    type: String,    default: ""  },  latitude: {    type: [String, Number],    default: 0  },  longitude: {    type: [String, Number],    default: 0  },  scale: {    type: [String, Number],    default: 16  },  markers: {    type: Array,    default() {      return [];    }  },  includePoints: {    type: Array,    default() {      return [];    }  },  polyline: {    type: Array,    default() {      return [];    }  },  circles: {    type: Array,    default() {      return [];    }  },  controls: {    type: Array,    default() {      return [];    }  },  showLocation: {    type: [Boolean, String],    default: false  },  libraries: {    type: Array,    default() {      return [];    }  },  polygons: {    type: Array,    default: () => []  }};function getPoints(points) {  const newPoints = [];  if (shared.isArray(points)) {    points.forEach((point) => {      if (point && point.latitude && point.longitude) {        newPoints.push({          latitude: point.latitude,          longitude: point.longitude        });      }    });  }  return newPoints;}function getAMapPosition(maps, latitude, longitude) {  return new maps.LngLat(longitude, latitude);}function getBMapPosition(maps, latitude, longitude) {  return new maps.Point(longitude, latitude);}function getGoogleOrQQMapPosition(maps, latitude, longitude) {  return new maps.LatLng(latitude, longitude);}function getMapPosition(maps, latitude, longitude) {  if (getIsBMap()) {    return getBMapPosition(maps, latitude, longitude);  } else if (getIsAMap()) {    return getAMapPosition(maps, latitude, longitude);  } else {    return getGoogleOrQQMapPosition(maps, latitude, longitude);  }}function getLat(latLng) {  if ("getLat" in latLng) {    return latLng.getLat();  } else {    if (getIsBMap()) {      return latLng.lat;    }    return latLng.lat();  }}function getLng(latLng) {  if ("getLng" in latLng) {    return latLng.getLng();  } else {    if (getIsBMap()) {      return latLng.lng;    }    return latLng.lng();  }}function useMap(props2, rootRef, emit2) {  const trigger = useCustomEvent(rootRef, emit2);  const mapRef = vue.ref(null);  let maps;  let map;  const state = vue.reactive({    latitude: Number(props2.latitude),    longitude: Number(props2.longitude),    includePoints: getPoints(props2.includePoints)  });  function onMapReady(callback) {  }  let isBoundsReady;  function onBoundsReady(callback) {  }  const contexts = {};  function addMapChidlContext(context) {    contexts[context.id] = context;  }  function removeMapChidlContext(context) {    delete contexts[context.id];  }  vue.watch([() => props2.latitude, () => props2.longitude], ([latitudeVlaue, longitudeVlaue]) => {    const latitude = Number(latitudeVlaue);    const longitude = Number(longitudeVlaue);    if (latitude !== state.latitude || longitude !== state.longitude) {      state.latitude = latitude;      state.longitude = longitude;    }  });  vue.watch(() => props2.includePoints, (points) => {    state.includePoints = getPoints(points);  }, {    deep: true  });  function updateBounds() {    if (getIsAMap()) {      const points = [];      state.includePoints.forEach((point) => {        points.push([point.longitude, point.latitude]);      });      const bounds = new maps.Bounds(...points);      map.setBounds(bounds);    } else if (getIsBMap())      ;    else {      const bounds = new maps.LatLngBounds();      state.includePoints.forEach(({        latitude,        longitude      }) => {        const latLng = new maps.LatLng(latitude, longitude);        bounds.extend(latLng);      });      map.fitBounds(bounds);    }  }  try {    const id2 = useContextInfo();    useSubscribe((type, data = {}) => {      switch (type) {        case "getCenterLocation":          onMapReady(() => {            const center = map.getCenter();            uniShared.callOptions(data, {              latitude: getLat(center),              longitude: getLng(center),              errMsg: `${type}:ok`            });          });          break;        case "moveToLocation":          {            let latitude = Number(data.latitude);            let longitude = Number(data.longitude);            if (!latitude || !longitude) {              const context = contexts[CONTEXT_ID];              if (context) {                latitude = context.state.latitude;                longitude = context.state.longitude;              }            }            if (latitude && longitude) {              state.latitude = latitude;              state.longitude = longitude;              if (map)                ;              onMapReady(() => {                uniShared.callOptions(data, `${type}:ok`);              });            } else {              uniShared.callOptions(data, `${type}:fail`);            }          }          break;        case "translateMarker":          onMapReady(() => {            const context = contexts[data.markerId];            if (context) {              try {                context.translate(data);              } catch (error) {                uniShared.callOptions(data, `${type}:fail ${error.message}`);              }              uniShared.callOptions(data, `${type}:ok`);            } else {              uniShared.callOptions(data, `${type}:fail not found`);            }          });          break;        case "includePoints":          state.includePoints = getPoints(data.includePoints);          if (isBoundsReady || getIsAMap()) {            updateBounds();          }          onBoundsReady(() => {            uniShared.callOptions(data, `${type}:ok`);          });          break;        case "getRegion":          onBoundsReady(() => {            const latLngBounds = map.getBounds();            const southwest = latLngBounds.getSouthWest();            const northeast = latLngBounds.getNorthEast();            uniShared.callOptions(data, {              southwest: {                latitude: getLat(southwest),                longitude: getLng(southwest)              },              northeast: {                latitude: getLat(northeast),                longitude: getLng(northeast)              },              errMsg: `${type}:ok`            });          });          break;        case "getScale":          onMapReady(() => {            uniShared.callOptions(data, {              scale: map.getZoom(),              errMsg: `${type}:ok`            });          });          break;      }    }, id2, true);  } catch (error) {  }  vue.provide("onMapReady", onMapReady);  vue.provide("addMapChidlContext", addMapChidlContext);  vue.provide("removeMapChidlContext", removeMapChidlContext);  return {    state,    mapRef,    trigger  };}const index$a = /* @__PURE__ */ defineBuiltInComponent({  name: "Map",  props: props$2,  emits: ["markertap", "labeltap", "callouttap", "controltap", "regionchange", "tap", "click", "updated", "update:scale", "update:latitude", "update:longitude"],  setup(props2, {    emit: emit2,    slots  }) {    const rootRef = vue.ref(null);    const {      mapRef,      trigger    } = useMap(props2, rootRef, emit2);    return () => {      return vue.createVNode("uni-map", {        "ref": rootRef,        "id": props2.id      }, [vue.createVNode("div", {        "ref": mapRef,        "style": "width: 100%; height: 100%; position: relative; overflow: hidden"      }, null, 512), props2.markers.map((item) => vue.createVNode(MapMarker, vue.mergeProps({        "key": item.id      }, item), null, 16)), props2.polyline.map((item) => vue.createVNode(MapPolyline, item, null, 16)), props2.circles.map((item) => vue.createVNode(MapCircle, item, null, 16)), props2.controls.map((item) => vue.createVNode(MapControl, vue.mergeProps(item, {        "trigger": trigger      }), null, 16, ["trigger"])), props2.showLocation && vue.createVNode(MapLocation, null, null), props2.polygons.map((item) => vue.createVNode(MapPolygon, item, null, 16)), vue.createVNode("div", {        "style": "position: absolute;top: 0;width: 100%;height: 100%;overflow: hidden;pointer-events: none;"      }, [slots.default && slots.default()])], 8, ["id"]);    };  }});const props$1 = {  scrollTop: {    type: [String, Number],    default: 0  }};const index$9 = /* @__PURE__ */ defineBuiltInComponent({  name: "CoverView",  compatConfig: {    MODE: 3  },  props: props$1,  setup(props2, {    slots  }) {    const root = vue.ref(null);    const content = vue.ref(null);    vue.watch(() => props2.scrollTop, (val) => {      setScrollTop(val);    });    function setScrollTop(val) {      let _content = content.value;      if (getComputedStyle(_content).overflowY === "scroll") {        _content.scrollTop = _upx2pxNum(val);      }    }    function _upx2pxNum(val) {      let _val = String(val);      if (/\d+[ur]px$/i.test(_val)) {        _val.replace(/\d+[ur]px$/i, (text) => {          return String(uni.upx2px(parseFloat(text)));        });      }      return parseFloat(_val) || 0;    }    return () => {      return vue.createVNode("uni-cover-view", {        "scroll-top": props2.scrollTop,        "ref": root      }, [vue.createVNode("div", {        "ref": content,        "class": "uni-cover-view"      }, [slots.default && slots.default()], 512)], 8, ["scroll-top"]);    };  }});const index$8 = /* @__PURE__ */ defineBuiltInComponent({  name: "CoverImage",  compatConfig: {    MODE: 3  },  props: {    src: {      type: String,      default: ""    }  },  emits: ["load", "error"],  setup(props2, {    emit: emit2  }) {    const root = vue.ref(null);    const trigger = useCustomEvent(root, emit2);    function load($event) {      trigger("load", $event);    }    function error($event) {      trigger("error", $event);    }    return () => {      const {        src      } = props2;      return vue.createVNode("uni-cover-image", {        "ref": root,        "src": src      }, [vue.createVNode("div", {        "class": "uni-cover-image"      }, [src ? vue.createVNode("img", {        "src": getRealPath(src),        "onLoad": load,        "onError": error      }, null, 40, ["src", "onLoad", "onError"]) : null])], 8, ["src"]);    };  }});function usePopupStyle(props2) {  const popupWidth = vue.ref(0);  const popupHeight = vue.ref(0);  const isDesktop = vue.computed(    () => popupWidth.value >= 500 && popupHeight.value >= 500  );  const popupStyle = vue.computed(() => {    const style = {      content: {        transform: "",        left: "",        top: "",        bottom: ""      },      triangle: {        left: "",        top: "",        bottom: "",        "border-width": "",        "border-color": ""      }    };    const contentStyle = style.content;    const triangleStyle = style.triangle;    const popover = props2.popover;    function getNumber(value) {      return Number(value) || 0;    }    if (isDesktop.value && popover) {      shared.extend(triangleStyle, {        position: "absolute",        width: "0",        height: "0",        "margin-left": "-6px",        "border-style": "solid"      });      const popoverLeft = getNumber(popover.left);      const popoverWidth = getNumber(popover.width);      const popoverTop = getNumber(popover.top);      const popoverHeight = getNumber(popover.height);      const center = popoverLeft + popoverWidth / 2;      contentStyle.transform = "none !important";      const contentLeft = Math.max(0, center - 300 / 2);      contentStyle.left = `${contentLeft}px`;      let triangleLeft = Math.max(12, center - contentLeft);      triangleLeft = Math.min(300 - 12, triangleLeft);      triangleStyle.left = `${triangleLeft}px`;      const vcl = popupHeight.value / 2;      if (popoverTop + popoverHeight - vcl > vcl - popoverTop) {        contentStyle.top = "auto";        contentStyle.bottom = `${popupHeight.value - popoverTop + 6}px`;        triangleStyle.bottom = "-6px";        triangleStyle["border-width"] = "6px 6px 0 6px";        triangleStyle["border-color"] = "#fcfcfd transparent transparent transparent";      } else {        contentStyle.top = `${popoverTop + popoverHeight + 6}px`;        triangleStyle.top = "-6px";        triangleStyle["border-width"] = "0 6px 6px 6px";        triangleStyle["border-color"] = "transparent transparent #fcfcfd transparent";      }    }    return style;  });  return {    isDesktop,    popupStyle  };}function useKeyboard() {  const key = vue.ref("");  const disable = vue.ref(false);  return {    key,    disable  };}function _isSlot(s) {  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);}function getDefaultStartValue(props2) {  if (props2.mode === mode.TIME) {    return "00:00";  }  if (props2.mode === mode.DATE) {    const year = (/* @__PURE__ */ new Date()).getFullYear() - 150;    switch (props2.fields) {      case fields.YEAR:        return year.toString();      case fields.MONTH:        return year + "-01";      default:        return year + "-01-01";    }  }  return "";}function getDefaultEndValue(props2) {  if (props2.mode === mode.TIME) {    return "23:59";  }  if (props2.mode === mode.DATE) {    const year = (/* @__PURE__ */ new Date()).getFullYear() + 150;    switch (props2.fields) {      case fields.YEAR:        return year.toString();      case fields.MONTH:        return year + "-12";      default:        return year + "-12-31";    }  }  return "";}function getDateValueArray(props2, state, valueStr, defaultValue) {  const splitStr = props2.mode === mode.DATE ? "-" : ":";  const array = props2.mode === mode.DATE ? state.dateArray : state.timeArray;  let max;  if (props2.mode === mode.TIME) {    max = 2;  } else {    switch (props2.fields) {      case fields.YEAR:        max = 1;        break;      case fields.MONTH:        max = 2;        break;      default:        max = 3;        break;    }  }  const inputArray = String(valueStr).split(splitStr);  let value = [];  for (let i = 0; i < max; i++) {    const val = inputArray[i];    value.push(array[i].indexOf(val));  }  if (value.indexOf(-1) >= 0) {    value = defaultValue ? getDateValueArray(props2, state, defaultValue) : value.map(() => 0);  }  return value;}const mode = {  SELECTOR: "selector",  MULTISELECTOR: "multiSelector",  TIME: "time",  DATE: "date"  // 暂不支持城市选择  // REGION: 'region'};const fields = {  YEAR: "year",  MONTH: "month",  DAY: "day"};const selectorType = {  PICKER: "picker",  SELECT: "select"};const props = {  name: {    type: String,    default: ""  },  range: {    type: Array,    default() {      return [];    }  },  rangeKey: {    type: String,    default: ""  },  value: {    type: [Number, String, Array],    default: 0  },  mode: {    type: String,    default: mode.SELECTOR,    validator(val) {      return Object.values(mode).includes(val);    }  },  fields: {    type: String,    default: ""  },  start: {    type: String,    default: (props2) => {      return getDefaultStartValue(props2);    }  },  end: {    type: String,    default: (props2) => {      return getDefaultEndValue(props2);    }  },  disabled: {    type: [Boolean, String],    default: false  },  selectorType: {    type: String,    default: ""  }};const index$7 = /* @__PURE__ */ defineBuiltInComponent({  name: "Picker",  compatConfig: {    MODE: 3  },  props,  emits: ["change", "cancel", "columnchange"],  setup(props2, {    emit: emit2,    slots  }) {    initI18nPickerMsgsOnce();    const {      t: t2    } = useI18n();    const rootRef = vue.ref(null);    const pickerRef = vue.ref(null);    const selectRef = vue.ref(null);    const inputRef = vue.ref(null);    const pickerRender = vue.ref(false);    const {      state,      rangeArray    } = usePickerState(props2);    const trigger = useCustomEvent(rootRef, emit2);    const {      system,      selectorTypeComputed,      _show,      _l10nColumn,      _l10nItem,      _input,      _fixInputPosition,      _pickerViewChange,      _cancel,      _change,      _resetFormData,      _getFormData,      _createTime,      _createDate,      _setValueSync    } = usePickerMethods(props2, state, trigger, rootRef, pickerRef, selectRef, inputRef);    usePickerWatch(state, _cancel, _change);    usePickerForm(_resetFormData, _getFormData);    _createTime();    _createDate();    _setValueSync();    const popup = usePopupStyle(state);    vue.watchEffect(() => {      state.isDesktop = popup.isDesktop.value;      state.popupStyle = popup.popupStyle.value;    });    return () => {      let _slot2;      const {        visible,        contentVisible,        valueArray,        popupStyle,        valueSync      } = state;      const {        rangeKey,        mode: mode2,        start,        end      } = props2;      const booleanAttrs = useBooleanAttr(props2, "disabled");      return vue.createVNode("uni-picker", vue.mergeProps({        "ref": rootRef      }, booleanAttrs, {        "onClick": withWebEvent(_show)      }), [pickerRender.value ? vue.createVNode("div", {        "ref": pickerRef,        "class": ["uni-picker-container", `uni-${mode2}-${selectorTypeComputed.value}`],        "onWheel": onEventPrevent,        "onTouchmove": onEventPrevent      }, [vue.createVNode(vue.Transition, {        "name": "uni-fade"      }, {        default: () => [vue.withDirectives(vue.createVNode("div", {          "class": "uni-mask uni-picker-mask",          "onClick": withWebEvent(_cancel),          "onMousemove": _fixInputPosition        }, null, 40, ["onClick", "onMousemove"]), [[vue.vShow, visible]])]      }), !system.value ? vue.createVNode("div", {        "class": [{          "uni-picker-toggle": visible        }, "uni-picker-custom"],        "style": popupStyle.content      }, [vue.createVNode("div", {        "class": "uni-picker-header",        "onClick": onEventStop      }, [vue.createVNode("div", {        "class": "uni-picker-action uni-picker-action-cancel",        "onClick": withWebEvent(_cancel)      }, [t2("uni.picker.cancel")], 8, ["onClick"]), vue.createVNode("div", {        "class": "uni-picker-action uni-picker-action-confirm",        "onClick": _change      }, [t2("uni.picker.done")], 8, ["onClick"])], 8, ["onClick"]), contentVisible ? vue.createVNode(PickerView, {        "value": _l10nColumn(valueArray),        "class": "uni-picker-content",        "onChange": _pickerViewChange      }, _isSlot(_slot2 = vue.renderList(_l10nColumn(rangeArray.value), (rangeItem, index0) => {        let _slot;        return vue.createVNode(PickerViewColumn, {          "key": index0        }, _isSlot(_slot = vue.renderList(rangeItem, (item, index2) => vue.createVNode("div", {          "key": index2,          "class": "uni-picker-item"        }, [typeof item === "object" ? item[rangeKey] || "" : _l10nItem(item, index0)]))) ? _slot : {          default: () => [_slot],          _: 1        });      })) ? _slot2 : {        default: () => [_slot2],        _: 1      }, 8, ["value", "onChange"]) : null, vue.createVNode("div", {        "ref": selectRef,        "class": "uni-picker-select",        "onWheel": onEventStop,        "onTouchmove": onEventStop      }, [vue.renderList(rangeArray.value[0], (item, index2) => vue.createVNode("div", {        "key": index2,        "class": ["uni-picker-item", {          selected: valueArray[0] === index2        }],        "onClick": () => {          valueArray[0] = index2;          _change();        }      }, [typeof item === "object" ? item[rangeKey] || "" : item], 10, ["onClick"]))], 40, ["onWheel", "onTouchmove"]), vue.createVNode("div", {        "style": popupStyle.triangle      }, null, 4)], 6) : null], 40, ["onWheel", "onTouchmove"]) : null, vue.createVNode("div", null, [slots.default && slots.default()]), system.value ? vue.createVNode("div", {        "class": "uni-picker-system",        "onMousemove": withWebEvent(_fixInputPosition)      }, [vue.createVNode("input", {        "class": ["uni-picker-system_input", system.value],        "ref": inputRef,        "value": valueSync,        "type": mode2,        "tabindex": "-1",        "min": start,        "max": end,        "onChange": ($event) => {          _input($event);          onEventStop($event);        }      }, null, 42, ["value", "type", "min", "max", "onChange"])], 40, ["onMousemove"]) : null], 16, ["onClick"]);    };  }});function usePickerState(props2) {  const state = vue.reactive({    valueSync: void 0,    visible: false,    contentVisible: false,    popover: null,    valueChangeSource: "",    timeArray: [],    dateArray: [],    valueArray: [],    oldValueArray: [],    isDesktop: false,    popupStyle: {      content: {},      triangle: {}    }  });  const rangeArray = vue.computed(() => {    let val = props2.range;    switch (props2.mode) {      case mode.SELECTOR:        return [val];      case mode.MULTISELECTOR:        return val;      case mode.TIME:        return state.timeArray;      case mode.DATE: {        const dateArray = state.dateArray;        switch (props2.fields) {          case fields.YEAR:            return [dateArray[0]];          case fields.MONTH:            return [dateArray[0], dateArray[1]];          default:            return [dateArray[0], dateArray[1], dateArray[2]];        }      }    }    return [];  });  return {    state,    rangeArray  };}function useIsiPad() {  const isiPad = vue.ref(false);  return isiPad;}function useSystem() {  const _system = vue.ref("");  return _system;}let __contentVisibleDelay;function usePickerMethods(props2, state, trigger, rootRef, pickerRef, selectRef, inputRef) {  const isiPad = useIsiPad();  const _system = useSystem();  const selectorTypeComputed = vue.computed(() => {    const type = props2.selectorType;    if (Object.values(selectorType).includes(type)) {      return type;    }    return isiPad.value ? selectorType.PICKER : selectorType.SELECT;  });  const system = vue.computed(() => {    if (props2.mode === mode.DATE && !Object.values(fields).includes(props2.fields) && state.isDesktop) {      return _system.value;    }    return "";  });  const startArray = vue.computed(() => {    return getDateValueArray(props2, state, props2.start, getDefaultStartValue(props2));  });  const endArray = vue.computed(() => {    return getDateValueArray(props2, state, props2.end, getDefaultEndValue(props2));  });  function _show(event) {    if (props2.disabled) {      return;    }    state.valueChangeSource = "";    let $picker = pickerRef.value;    let _currentTarget = event.currentTarget;    $picker.remove();    (document.querySelector("uni-app") || document.body).appendChild($picker);    $picker.style.display = "block";    const rect = _currentTarget.getBoundingClientRect();    state.popover = {      top: rect.top,      left: rect.left,      width: rect.width,      height: rect.height    };    setTimeout(() => {      state.visible = true;    }, 20);  }  function _getFormData() {    return {      value: state.valueSync,      key: props2.name    };  }  function _resetFormData() {    switch (props2.mode) {      case mode.SELECTOR:        state.valueSync = 0;        break;      case mode.MULTISELECTOR:        state.valueSync = props2.value.map((val) => 0);        break;      case mode.DATE:      case mode.TIME:        state.valueSync = "";        break;    }  }  function _createTime() {    let hours = [];    let minutes = [];    for (let i = 0; i < 24; i++) {      hours.push((i < 10 ? "0" : "") + i);    }    for (let i = 0; i < 60; i++) {      minutes.push((i < 10 ? "0" : "") + i);    }    state.timeArray.push(hours, minutes);  }  function getYearStartEnd() {    let year = (/* @__PURE__ */ new Date()).getFullYear();    let start = year - 150;    let end = year + 150;    if (props2.start) {      const _year = new Date(props2.start).getFullYear();      if (!isNaN(_year) && _year < start) {        start = _year;      }    }    if (props2.end) {      const _year = new Date(props2.end).getFullYear();      if (!isNaN(_year) && _year > end) {        end = _year;      }    }    return {      start,      end    };  }  function _createDate() {    let years = [];    const year = getYearStartEnd();    for (let i = year.start, end = year.end; i <= end; i++) {      years.push(String(i));    }    let months = [];    for (let i = 1; i <= 12; i++) {      months.push((i < 10 ? "0" : "") + i);    }    let days = [];    for (let i = 1; i <= 31; i++) {      days.push((i < 10 ? "0" : "") + i);    }    state.dateArray.push(years, months, days);  }  function _getTimeValue(val) {    return val[0] * 60 + val[1];  }  function _getDateValue(val) {    const DAY = 31;    return val[0] * DAY * 12 + (val[1] || 0) * DAY + (val[2] || 0);  }  function _cloneArray(val1, val2) {    for (let i = 0; i < val1.length && i < val2.length; i++) {      val1[i] = val2[i];    }  }  function _setValueSync() {    let val = props2.value;    switch (props2.mode) {      case mode.MULTISELECTOR:        {          if (!shared.isArray(val)) {            val = state.valueArray;          }          if (!shared.isArray(state.valueSync)) {            state.valueSync = [];          }          const length = state.valueSync.length = Math.max(val.length, props2.range.length);          for (let index2 = 0; index2 < length; index2++) {            const val0 = Number(val[index2]);            const val1 = Number(state.valueSync[index2]);            const val2 = isNaN(val0) ? isNaN(val1) ? 0 : val1 : val0;            const maxVal = props2.range[index2] ? props2.range[index2].length - 1 : 0;            state.valueSync.splice(index2, 1, val2 < 0 || val2 > maxVal ? 0 : val2);          }        }        break;      case mode.TIME:      case mode.DATE:        state.valueSync = String(val);        break;      default: {        const valueSync = Number(val);        state.valueSync = valueSync < 0 ? 0 : valueSync;        break;      }    }  }  function _setValueArray() {    let val = state.valueSync;    let valueArray;    switch (props2.mode) {      case mode.MULTISELECTOR:        valueArray = [...val];        break;      case mode.TIME:        valueArray = getDateValueArray(props2, state, val, uniShared.formatDateTime({          mode: mode.TIME        }));        break;      case mode.DATE:        valueArray = getDateValueArray(props2, state, val, uniShared.formatDateTime({          mode: mode.DATE        }));        break;      default:        valueArray = [val];        break;    }    state.oldValueArray = [...valueArray];    state.valueArray = [...valueArray];  }  function _getValue() {    let val = state.valueArray;    switch (props2.mode) {      case mode.SELECTOR:        return val[0];      case mode.MULTISELECTOR:        return val.map((val2) => val2);      case mode.TIME:        return state.valueArray.map((val2, i) => state.timeArray[i][val2]).join(":");      case mode.DATE:        return state.valueArray.map((val2, i) => state.dateArray[i][val2]).join("-");    }  }  function _change() {    _close();    state.valueChangeSource = "click";    const value = _getValue();    state.valueSync = shared.isArray(value) ? value.map((val) => val) : value;    trigger("change", {}, {      value    });  }  function _cancel($event) {    if (system.value === "firefox" && $event) {      const {        top,        left,        width,        height      } = state.popover;      const {        pageX,        pageY      } = $event;      if (pageX > left && pageX < left + width && pageY > top && pageY < top + height) {        return;      }    }    _close();    trigger("cancel", {}, {});  }  function _close() {    state.visible = false;    setTimeout(() => {      let $picker = pickerRef.value;      $picker.remove();      rootRef.value.prepend($picker);      $picker.style.display = "none";    }, 260);  }  function _select() {    if (props2.mode === mode.SELECTOR && selectorTypeComputed.value === selectorType.SELECT) {      selectRef.value.scrollTop = state.valueArray[0] * 34;    }  }  function _input($event) {    const EventTarget = $event.target;    state.valueSync = EventTarget.value;    vue.nextTick(() => {      _change();    });  }  function _fixInputPosition($event) {    if (system.value === "chrome") {      const rect = rootRef.value.getBoundingClientRect();      const fontSize = 32;      inputRef.value.style.left = `${$event.clientX - rect.left - fontSize * 1.5}px`;      inputRef.value.style.top = `${$event.clientY - rect.top - fontSize * 0.5}px`;    }  }  function _pickerViewChange(event) {    state.valueArray = _l10nColumn(event.detail.value, true);  }  function _l10nColumn(array, normalize) {    const {      getLocale: getLocale2    } = useI18n();    if (props2.mode === mode.DATE) {      const locale = getLocale2();      if (!locale.startsWith("zh")) {        switch (props2.fields) {          case fields.YEAR:            return array;          case fields.MONTH:            return [array[1], array[0]];          default:            switch (locale) {              case "es":              case "fr":                return [array[2], array[1], array[0]];              default:                return normalize ? [array[2], array[0], array[1]] : [array[1], array[2], array[0]];            }        }      }    }    return array;  }  function _l10nItem(item, index2) {    const {      getLocale: getLocale2    } = useI18n();    if (props2.mode === mode.DATE) {      const locale = getLocale2();      if (locale.startsWith("zh")) {        const array = ["年", "月", "日"];        return item + array[index2];      } else if (props2.fields !== fields.YEAR && index2 === (props2.fields !== fields.MONTH && (locale === "es" || locale === "fr") ? 1 : 0)) {        let array;        switch (locale) {          case "es":            array = ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"];            break;          case "fr":            array = ["janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", "septembre", "octobre", "novembre", "décembre"];            break;          default:            array = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];            break;        }        return array[Number(item) - 1];      }    }    return item;  }  vue.watch(() => state.visible, (val) => {    if (val) {      clearTimeout(__contentVisibleDelay);      state.contentVisible = val;      _select();    } else {      __contentVisibleDelay = setTimeout(() => {        state.contentVisible = val;      }, 300);    }  });  vue.watch([() => props2.mode, () => props2.value, () => props2.range], _setValueSync, {    deep: true  });  vue.watch(() => state.valueSync, _setValueArray, {    deep: true  });  vue.watch(() => state.valueArray, (val) => {    if (props2.mode === mode.TIME || props2.mode === mode.DATE) {      const getValue = props2.mode === mode.TIME ? _getTimeValue : _getDateValue;      const valueArray = state.valueArray;      const _startArray = startArray.value;      const _endArray = endArray.value;      if (props2.mode === mode.DATE) {        const dateArray = state.dateArray;        const max = dateArray[2].length;        const day = Number(dateArray[2][valueArray[2]]) || 1;        const realDay = (/* @__PURE__ */ new Date(`${dateArray[0][valueArray[0]]}/${dateArray[1][valueArray[1]]}/${day}`)).getDate();        if (realDay < day) {          valueArray[2] -= realDay + max - day;        }      }      if (getValue(valueArray) < getValue(_startArray)) {        _cloneArray(valueArray, _startArray);      } else if (getValue(valueArray) > getValue(_endArray)) {        _cloneArray(valueArray, _endArray);      }    }    val.forEach((value, column) => {      if (value !== state.oldValueArray[column]) {        state.oldValueArray[column] = value;        if (props2.mode === mode.MULTISELECTOR) {          trigger("columnchange", {}, {            column,            value          });        }      }    });  });  return {    selectorTypeComputed,    system,    _show,    _cancel,    _change,    _l10nColumn,    _l10nItem,    _input,    _resetFormData,    _getFormData,    _createTime,    _createDate,    _setValueSync,    _fixInputPosition,    _pickerViewChange  };}function usePickerWatch(state, _cancel, _change) {  const {    key,    disable  } = useKeyboard();  vue.watchEffect(() => {    disable.value = !state.visible;  });  vue.watch(key, (value) => {    if (value === "esc") {      _cancel();    } else if (value === "enter") {      _change();    }  });}function usePickerForm(_resetFormData, _getFormData) {  const uniForm = vue.inject(uniFormKey, false);  if (uniForm) {    const field = {      reset: _resetFormData,      submit: () => {        const data = ["", null];        const {          key,          value        } = _getFormData();        if (key !== "") {          data[0] = key;          data[1] = value;        }        return data;      }    };    uniForm.addField(field);  }}const index$6 = /* @__PURE__ */ defineUnsupportedComponent("ad");const index$5 = /* @__PURE__ */ defineUnsupportedComponent("ad-content-page");const index$4 = /* @__PURE__ */ defineUnsupportedComponent("ad-draw");const index$3 = /* @__PURE__ */ defineUnsupportedComponent("camera");const index$2 = /* @__PURE__ */ defineUnsupportedComponent("live-player");const index$1 = /* @__PURE__ */ defineUnsupportedComponent("live-pusher");const UniViewJSBridge$1 = /* @__PURE__ */ shared.extend(ViewJSBridge, {  publishHandler(event, args, pageId) {    UniServiceJSBridge.subscribeHandler(event, args, pageId);  }});const request = /* @__PURE__ */ defineTaskApi(  API_REQUEST,  ({    url,    data,    header = {},    method,    dataType: dataType2,    responseType,    withCredentials,    timeout = __uniConfig.networkTimeout.request  }, { resolve, reject }) => {    {      timeout = timeout == null ? __uniConfig.networkTimeout.request : timeout;    }    let body = null;    const contentType = normalizeContentType(header);    if (method !== "GET") {      if (shared.isString(data) || data instanceof ArrayBuffer) {        body = data;      } else {        if (contentType === "json") {          try {            body = JSON.stringify(data);          } catch (error) {            body = data.toString();          }        } else if (contentType === "urlencoded") {          const bodyArray = [];          for (const key in data) {            if (shared.hasOwn(data, key)) {              bodyArray.push(                encodeURIComponent(key) + "=" + encodeURIComponent(data[key])              );            }          }          body = bodyArray.join("&");        } else {          body = data.toString();        }      }    }    const xhr = new XMLHttpRequest();    const requestTask = new RequestTask(xhr);    xhr.open(method, url);    for (const key in header) {      if (shared.hasOwn(header, key)) {        xhr.setRequestHeader(key, header[key]);      }    }    const timer = setTimeout(function() {      xhr.onload = xhr.onabort = xhr.onerror = null;      requestTask.abort();      reject("timeout", { errCode: 5 });    }, timeout);    xhr.responseType = responseType;    xhr.onload = function() {      clearTimeout(timer);      const statusCode = xhr.status;      let res = responseType === "text" ? xhr.responseText : xhr.response;      if (responseType === "text" && dataType2 === "json") {        try {          res = UTS.JSON.parse(res);        } catch (error) {        }      }      resolve({        data: res,        statusCode,        header: parseHeaders(xhr.getAllResponseHeaders()),        cookies: []      });    };    xhr.onabort = function() {      clearTimeout(timer);      reject("abort", { errCode: 600003 });    };    xhr.onerror = function() {      clearTimeout(timer);      reject(void 0, { errCode: 5 });    };    xhr.withCredentials = withCredentials;    xhr.send(body);    return requestTask;  },  RequestProtocol,  RequestOptions);function normalizeContentType(header) {  const name = Object.keys(header).find(    (name2) => name2.toLowerCase() === "content-type"  );  if (!name) {    return;  }  const contentType = header[name];  if (name !== "Content-Type") {    header["Content-Type"] = header[name];    delete header[name];  }  if (contentType.indexOf("application/json") === 0) {    return "json";  } else if (contentType.indexOf("application/x-www-form-urlencoded") === 0) {    return "urlencoded";  }  return "string";}class RequestTask {  constructor(xhr) {    this._xhr = xhr;  }  abort() {    if (this._xhr) {      this._xhr.abort();      delete this._xhr;    }  }  onHeadersReceived(callback) {    throw new Error("Method not implemented.");  }  offHeadersReceived(callback) {    throw new Error("Method not implemented.");  }}function parseHeaders(headers) {  const headersObject = {};  headers.split(uniShared.LINEFEED).forEach((header) => {    const find = header.match(/(\S+\s*):\s*(.*)/);    if (!find || find.length !== 3) {      return;    }    headersObject[find[1]] = find[2];  });  return headersObject;}const STORAGE_KEYS = "uni-storage-keys";function parseValue(value) {  const types = ["object", "string", "number", "boolean", "undefined"];  try {    const object = shared.isString(value) ? JSON.parse(value) : value;    const type = object.type;    if (types.indexOf(type) >= 0) {      const keys = Object.keys(object);      if (keys.length === 2 && "data" in object) {        if (typeof object.data === type) {          if (type === "object" && !Array.isArray(object.data)) {            return new UTSJSONObject(object.data);          }          return object.data;        }        if (type === "object" && /^\d{4}-\d{2}-\d{2}T\d{2}\:\d{2}\:\d{2}\.\d{3}Z$/.test(object.data)) {          return new Date(object.data);        }      } else if (keys.length === 1) {        return "";      }    }  } catch (error) {  }}const setStorageSync = /* @__PURE__ */ defineSyncApi(  API_SET_STORAGE_SYNC,  (key, data) => {    const type = typeof data;    const value = type === "string" ? data : JSON.stringify({      type,      data    });    localStorage.setItem(key, value);  },  SetStorageSyncProtocol);const setStorage = /* @__PURE__ */ defineAsyncApi(  API_SET_STORAGE,  ({ key, data }, { resolve, reject }) => {    try {      setStorageSync(key, data);      resolve();    } catch (error) {      reject(error.message);    }  },  SetStorageProtocol);function getStorageOrigin(key) {  const value = localStorage && localStorage.getItem(key);  if (!shared.isString(value)) {    throw new Error("data not found");  }  let data = value;  try {    const object = JSON.parse(value);    const result = parseValue(object);    if (result !== void 0) {      data = result;    }  } catch (error) {  }  return data;}const getStorageSync = /* @__PURE__ */ defineSyncApi(  API_GET_STORAGE_SYNC,  (key) => {    try {      return getStorageOrigin(key);    } catch (error) {      return "";    }  },  GetStorageSyncProtocol);const getStorage = /* @__PURE__ */ defineAsyncApi(  API_GET_STORAGE,  ({ key }, { resolve, reject }) => {    try {      const data = getStorageOrigin(key);      resolve({        data      });    } catch (error) {      reject(error.message);    }  },  GetStorageProtocol);const removeStorageSync = /* @__PURE__ */ defineSyncApi(  API_REMOVE_STORAGE,  (key) => {    if (localStorage) {      localStorage.removeItem(key);    }  },  RemoveStorageSyncProtocol);const removeStorage = /* @__PURE__ */ defineAsyncApi(  API_REMOVE_STORAGE,  ({ key }, { resolve }) => {    removeStorageSync(key);    resolve();  },  RemoveStorageProtocol);const clearStorageSync = /* @__PURE__ */ defineSyncApi(  "clearStorageSync",  () => {    if (localStorage) {      localStorage.clear();    }  });const clearStorage = /* @__PURE__ */ defineAsyncApi(  "clearStorage",  (_, { resolve }) => {    clearStorageSync();    resolve();  });const getStorageInfoSync = /* @__PURE__ */ defineSyncApi(  "getStorageInfoSync",  () => {    const length = localStorage && localStorage.length || 0;    const keys = [];    let currentSize = 0;    for (let index2 = 0; index2 < length; index2++) {      const key = localStorage.key(index2);      const value = localStorage.getItem(key) || "";      currentSize += key.length + value.length;      if (key !== STORAGE_KEYS) {        keys.push(key);      }    }    return {      keys,      currentSize: Math.ceil(currentSize * 2 / 1024),      limitSize: Number.MAX_VALUE    };  });const getStorageInfo = /* @__PURE__ */ defineAsyncApi(  "getStorageInfo",  (_, { resolve }) => {    resolve(getStorageInfoSync());  });function getTheme() {  if (__uniConfig.darkmode !== true)    return shared.isString(__uniConfig.darkmode) ? __uniConfig.darkmode : "light";  try {    return window.matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark";  } catch (error) {    return "light";  }}let browserInfo;function initBrowserInfo() {  {    return browserInfo = {};  }}const getDeviceInfo = /* @__PURE__ */ defineSyncApi(  "getDeviceInfo",  () => {    initBrowserInfo();    const {      deviceBrand,      deviceModel,      brand,      model,      platform,      system,      deviceOrientation,      deviceType,      osname,      osversion    } = browserInfo;    return shared.extend(      {        brand,        deviceBrand,        deviceModel,        devicePixelRatio: 1,        deviceId: Date.now() + "" + Math.floor(Math.random() * 1e7),        deviceOrientation,        deviceType,        model,        platform,        system      },      {        osName: osname ? osname.toLocaleLowerCase() : void 0,        osVersion: osversion      }    );  });const getAppBaseInfo = /* @__PURE__ */ defineSyncApi(  "getAppBaseInfo",  () => {    initBrowserInfo();    const { theme, language, browserName, browserVersion } = browserInfo;    return shared.extend(      {        appId: __uniConfig.appId,        appName: __uniConfig.appName,        appVersion: __uniConfig.appVersion,        appVersionCode: __uniConfig.appVersionCode,        appLanguage: getLocale ? getLocale() : language,        enableDebug: false,        hostSDKVersion: void 0,        hostPackageName: void 0,        hostFontSizeSetting: void 0,        hostName: browserName,        hostVersion: browserVersion,        hostTheme: theme,        hostLanguage: language,        language,        SDKVersion: "",        theme,        version: ""      },      {        uniCompilerVersion: __uniConfig.compilerVersion,        uniRuntimeVersion: __uniConfig.compilerVersion,        uniCompilerVersionCode: parseFloat(__uniConfig.compilerVersion),        uniRuntimeVersionCode: parseFloat(__uniConfig.compilerVersion),        isUniAppX: true      }    );  });const getSystemInfoSync = /* @__PURE__ */ defineSyncApi(  "getSystemInfoSync",  () => {    {      return {        deviceId: Date.now() + "" + Math.floor(Math.random() * 1e7),        platform: "nodejs"      };    }  });function updateDocumentTitle(title) {  {    const ssrContext = getApp$1().$.appContext.provides[vue.ssrContextKey];    if (ssrContext) {      ssrContext[uniShared.UNI_SSR_TITLE] = title;    }  }  UniServiceJSBridge.emit(uniShared.ON_NAVIGATION_BAR_CHANGE, { titleText: title });}function useDocumentTitle(pageMeta) {  function update() {    updateDocumentTitle(pageMeta.navigationBar.titleText);  }  vue.watchEffect(update);}function setNavigationBar(pageMeta, type, args, resolve, reject) {  if (!pageMeta) {    return reject("page not found");  }  const { navigationBar } = pageMeta;  switch (type) {    case API_SET_NAVIGATION_BAR_COLOR:      const { frontColor, backgroundColor, animation: animation2 } = args;      const { duration, timingFunc } = animation2;      if (frontColor) {        navigationBar.titleColor = frontColor === "#000000" ? "#000000" : "#ffffff";      }      if (backgroundColor) {        navigationBar.backgroundColor = backgroundColor;      }      navigationBar.duration = duration + "ms";      navigationBar.timingFunc = timingFunc;      break;    case API_SHOW_NAVIGATION_BAR_LOADING:      navigationBar.loading = true;      break;    case API_HIDE_NAVIGATION_BAR_LOADING:      navigationBar.loading = false;      break;    case API_SET_NAVIGATION_BAR_TITLE:      const { title } = args;      navigationBar.titleText = title;      {        updateDocumentTitle(args.title);      }      break;  }  resolve();}const setNavigationBarTitle = /* @__PURE__ */ defineAsyncApi(  API_SET_NAVIGATION_BAR_TITLE,  (args, { resolve, reject }) => {    setNavigationBar(      getCurrentPageMeta(),      API_SET_NAVIGATION_BAR_TITLE,      args,      resolve,      reject    );  },  SetNavigationBarTitleProtocol);require("localstorage-polyfill");global.XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;const api = /* @__PURE__ */ Object.defineProperty({  __proto__: null,  clearStorage,  clearStorageSync,  getAppBaseInfo,  getDeviceInfo,  getStorage,  getStorageInfo,  getStorageInfoSync,  getStorageSync,  getSystemInfoSync,  removeStorage,  removeStorageSync,  request,  setNavigationBarTitle,  setStorage,  setStorageSync}, Symbol.toStringTag, { value: "Module" });const uni$1 = api;const UniServiceJSBridge$1 = /* @__PURE__ */ shared.extend(ServiceJSBridge, {  publishHandler(event, args, pageId) {    UniViewJSBridge.subscribeHandler(event, args, pageId);  }});function onThemeChange(callback) {  if (__uniConfig.darkmode) {    UniServiceJSBridge.on(uniShared.ON_THEME_CHANGE, callback);  }}function parseTheme(pageStyle) {  let parsedStyle = {};  if (__uniConfig.darkmode) {    parsedStyle = uniShared.normalizeStyles(      pageStyle,      __uniConfig.themeConfig,      getTheme()    );  }  return __uniConfig.darkmode ? parsedStyle : pageStyle;}function useTheme(pageStyle, onThemeChangeCallback) {  const isReactivity = vue.isReactive(pageStyle);  const reactivePageStyle = isReactivity ? vue.reactive(parseTheme(pageStyle)) : parseTheme(pageStyle);  if (__uniConfig.darkmode && isReactivity) {    vue.watch(pageStyle, (value) => {      const _pageStyle = parseTheme(value);      for (const key in _pageStyle) {        reactivePageStyle[key] = _pageStyle[key];      }    });  }  onThemeChangeCallback && onThemeChange(onThemeChangeCallback);  return reactivePageStyle;}const _middleButton = {  width: "50px",  height: "50px",  iconWidth: "24px"};const TabBar = /* @__PURE__ */ defineSystemComponent({  name: "TabBar",  setup() {    const visibleList = vue.ref([]);    const _tabBar = useTabBar();    const tabBar2 = useTheme(_tabBar, () => {      const tabBarStyle = parseTheme(_tabBar);      tabBar2.backgroundColor = tabBarStyle.backgroundColor;      tabBar2.borderStyle = tabBarStyle.borderStyle;      tabBar2.color = tabBarStyle.color;      tabBar2.selectedColor = tabBarStyle.selectedColor;      tabBar2.blurEffect = tabBarStyle.blurEffect;      tabBar2.midButton = tabBarStyle.midButton;      if (tabBarStyle.list && tabBarStyle.list.length) {        tabBarStyle.list.forEach((item, index2) => {          tabBar2.list[index2].iconPath = item.iconPath;          tabBar2.list[index2].selectedIconPath = item.selectedIconPath;        });      }    });    useVisibleList(tabBar2, visibleList);    useTabBarCssVar(tabBar2);    const onSwitchTab = useSwitchTab(vueRouter.useRoute(), tabBar2, visibleList);    const {      style,      borderStyle,      placeholderStyle    } = useTabBarStyle(tabBar2);    return () => {      const tabBarItemsTsx = createTabBarItemsTsx(tabBar2, onSwitchTab, visibleList);      return vue.createVNode("uni-tabbar", {        "class": "uni-tabbar-" + tabBar2.position      }, [vue.createVNode("div", {        "class": "uni-tabbar",        "style": style.value      }, [vue.createVNode("div", {        "class": "uni-tabbar-border",        "style": borderStyle.value      }, null, 4), tabBarItemsTsx], 4), vue.createVNode("div", {        "class": "uni-placeholder",        "style": placeholderStyle.value      }, null, 4)], 2);    };  }});function useTabBarCssVar(tabBar2) {  vue.watch(() => tabBar2.shown, (value) => {    updatePageCssVar({      "--window-bottom": normalizeWindowBottom(value ? parseInt(tabBar2.height) : 0)    });  });}function useVisibleList(tabBar2, visibleList) {  const internalMidButton = vue.ref(shared.extend({    type: "midButton"  }, tabBar2.midButton));  function setVisibleList() {    let tempList = [];    tempList = tabBar2.list.filter((item) => item.visible !== false);    if (__UNI_FEATURE_TABBAR_MIDBUTTON__ && tabBar2.midButton) {      internalMidButton.value = shared.extend({}, _middleButton, internalMidButton.value, tabBar2.midButton);      tempList = tempList.filter((item) => !isMidButton(item));      if (tempList.length % 2 === 0) {        tempList.splice(Math.floor(tempList.length / 2), 0, internalMidButton.value);      }    }    visibleList.value = tempList;  }  vue.watchEffect(setVisibleList);}function useSwitchTab(route, tabBar2, visibleList) {  vue.watchEffect(() => {    const meta = route.meta;    if (meta.isTabBar) {      const pagePath = meta.route;      const index2 = visibleList.value.findIndex((item) => item.pagePath === pagePath);      tabBar2.selectedIndex = index2;    }  });  return (tabBarItem, index2) => {    const {      type    } = tabBarItem;    return () => {      if (__UNI_FEATURE_TABBAR_MIDBUTTON__ && type === "midButton") {        return UniServiceJSBridge.invokeOnCallback(API_ON_TAB_BAR_MID_BUTTON_TAP);      }      const {        pagePath,        text      } = tabBarItem;      let url = uniShared.addLeadingSlash(pagePath);      if (url === __uniRoutes[0].alias) {        url = "/";      }      if (route.path !== url) {        uni.switchTab({          from: "tabBar",          url,          tabBarText: text        });      } else {        invokeHook("onTabItemTap", {          index: index2,          text,          pagePath        });      }    };  };}const DEFAULT_BG_COLOR = "#f7f7fa";const BLUR_EFFECT_COLOR_DARK = "rgb(0, 0, 0, 0.8)";const BLUR_EFFECT_COLOR_LIGHT = "rgb(250, 250, 250, 0.8)";const BLUR_EFFECT_COLORS = {  dark: BLUR_EFFECT_COLOR_DARK,  light: BLUR_EFFECT_COLOR_LIGHT,  extralight: BLUR_EFFECT_COLOR_LIGHT};const BORDER_COLORS = {  white: "rgba(255, 255, 255, 0.33)",  black: "rgba(0, 0, 0, 0.33)"};function useTabBarStyle(tabBar2) {  const style = vue.computed(() => {    let backgroundColor = tabBar2.backgroundColor;    const blurEffect = tabBar2.blurEffect;    if (!backgroundColor) {      if (blurEffect && blurEffect !== "none") {        backgroundColor = BLUR_EFFECT_COLORS[blurEffect];      }    }    return {      backgroundColor: backgroundColor || DEFAULT_BG_COLOR,      backdropFilter: blurEffect !== "none" ? "blur(10px)" : blurEffect    };  });  const borderStyle = vue.computed(() => {    const {      borderStyle: borderStyle2,      borderColor    } = tabBar2;    if (borderColor && shared.isString(borderColor)) {      return {        backgroundColor: borderColor      };    }    return {      backgroundColor: BORDER_COLORS[borderStyle2] || BORDER_COLORS["black"]    };  });  const placeholderStyle = vue.computed(() => {    return {      height: tabBar2.height    };  });  return {    style,    borderStyle,    placeholderStyle  };}function isMidButton(item) {  return item.type === "midButton";}function createTabBarItemsTsx(tabBar2, onSwitchTab, visibleList) {  const {    selectedIndex,    selectedColor,    color  } = tabBar2;  return visibleList.value.map((item, index2) => {    const selected = selectedIndex === index2;    const textColor = selected ? selectedColor : color;    const iconPath = (selected ? item.selectedIconPath || item.iconPath : item.iconPath) || "";    const iconfontText = item.iconfont ? selected ? item.iconfont.selectedText || item.iconfont.text : item.iconfont.text : void 0;    const iconfontColor = item.iconfont ? selected ? item.iconfont.selectedColor || item.iconfont.color : item.iconfont.color : void 0;    if (!__UNI_FEATURE_TABBAR_MIDBUTTON__) {      return createTabBarItemTsx(textColor, iconPath, iconfontText, iconfontColor, item, tabBar2, index2, onSwitchTab);    }    return isMidButton(item) ? createTabBarMidButtonTsx(textColor, iconPath, iconfontText, iconfontColor, item, tabBar2, index2, onSwitchTab) : createTabBarItemTsx(textColor, iconPath, iconfontText, iconfontColor, item, tabBar2, index2, onSwitchTab);  });}function createTabBarItemTsx(color, iconPath, iconfontText, iconfontColor, tabBarItem, tabBar2, index2, onSwitchTab) {  return vue.createVNode("div", {    "key": index2,    "class": "uni-tabbar__item",    "onClick": onSwitchTab(tabBarItem, index2)  }, [createTabBarItemBdTsx(color, iconPath || "", iconfontText, iconfontColor, tabBarItem, tabBar2)], 8, ["onClick"]);}function createTabBarItemBdTsx(color, iconPath, iconfontText, iconfontColor, tabBarItem, tabBar2) {  const {    height  } = tabBar2;  return vue.createVNode("div", {    "class": "uni-tabbar__bd",    "style": {      height    }  }, [iconfontText ? createTabBarItemIconfontTsx(iconfontText, iconfontColor || BLUR_EFFECT_COLOR_DARK, tabBarItem, tabBar2) : iconPath && createTabBarItemIconTsx(iconPath, tabBarItem, tabBar2), tabBarItem.text && createTabBarItemTextTsx(color, tabBarItem, tabBar2), tabBarItem.redDot && createTabBarItemRedDotTsx(tabBarItem.badge)], 4);}function createTabBarItemIconTsx(iconPath, tabBarItem, tabBar2) {  const {    type,    text  } = tabBarItem;  const {    iconWidth  } = tabBar2;  const clazz2 = "uni-tabbar__icon" + (text ? " uni-tabbar__icon__diff" : "");  const style = {    width: iconWidth,    height: iconWidth  };  return vue.createVNode("div", {    "class": clazz2,    "style": style  }, [type !== "midButton" && vue.createVNode("img", {    "src": getRealPath(iconPath)  }, null, 8, ["src"])], 6);}function createTabBarItemIconfontTsx(iconfontText, iconfontColor, tabBarItem, tabBar2) {  var _a;  const {    type,    text  } = tabBarItem;  const {    iconWidth  } = tabBar2;  const clazz2 = "uni-tabbar__icon" + (text ? " uni-tabbar__icon__diff" : "");  const style = {    width: iconWidth,    height: iconWidth  };  const iconfontStyle = {    fontSize: ((_a = tabBarItem.iconfont) == null ? void 0 : _a.fontSize) || iconWidth,    color: iconfontColor  };  return vue.createVNode("div", {    "class": clazz2,    "style": style  }, [type !== "midButton" && vue.createVNode("div", {    "class": "uni-tabbar__iconfont",    "style": iconfontStyle  }, [iconfontText], 4)], 6);}function createTabBarItemTextTsx(color, tabBarItem, tabBar2) {  const {    iconPath,    text  } = tabBarItem;  const {    fontSize,    spacing  } = tabBar2;  const style = {    color,    fontSize,    lineHeight: !iconPath ? 1.8 : "normal",    marginTop: !iconPath ? "inherit" : spacing  };  return vue.createVNode("div", {    "class": "uni-tabbar__label",    "style": style  }, [text], 4);}function createTabBarItemRedDotTsx(badge) {  const clazz2 = "uni-tabbar__reddot" + (badge ? " uni-tabbar__badge" : "");  return vue.createVNode("div", {    "class": clazz2  }, [badge], 2);}function createTabBarMidButtonTsx(color, iconPath, iconfontText, iconfontColor, midButton, tabBar2, index2, onSwitchTab) {  const {    width,    height,    backgroundImage,    iconWidth  } = midButton;  return vue.createVNode("div", {    "key": "midButton",    "class": "uni-tabbar__item",    "style": {      flex: "0 0 " + width,      position: "relative"    },    "onClick": onSwitchTab(midButton, index2)  }, [vue.createVNode("div", {    "class": "uni-tabbar__mid",    "style": {      width,      height,      backgroundImage: backgroundImage ? "url('" + getRealPath(backgroundImage) + "')" : "none"    }  }, [iconPath && vue.createVNode("img", {    "style": {      width: iconWidth,      height: iconWidth    },    "src": getRealPath(iconPath)  }, null, 12, ["src"])], 4), createTabBarItemBdTsx(color, iconPath, iconfontText, iconfontColor, midButton, tabBar2)], 12, ["onClick"]);}const LayoutComponent = /* @__PURE__ */ defineSystemComponent({  name: "Layout",  setup(_props, {    emit: emit2  }) {    const rootRef = vue.ref(null);    const keepAliveRoute = __UNI_FEATURE_PAGES__ && useKeepAliveRoute();    const {      layoutState,      windowState    } = useState();    useMaxWidth(layoutState, rootRef);    const topWindow = __UNI_FEATURE_TOPWINDOW__ && useTopWindow(layoutState);    const leftWindow = __UNI_FEATURE_LEFTWINDOW__ && useLeftWindow(layoutState);    const rightWindow = __UNI_FEATURE_RIGHTWINDOW__ && useRightWindow(layoutState);    const showTabBar = __UNI_FEATURE_TABBAR__ && useShowTabBar();    const clazz2 = useAppClass(showTabBar);    return () => {      const layoutTsx = createLayoutTsx(keepAliveRoute, layoutState, windowState, topWindow, leftWindow, rightWindow);      const tabBarTsx = __UNI_FEATURE_TABBAR__ && createTabBarTsx(showTabBar);      return vue.createVNode("uni-app", {        "ref": rootRef,        "class": clazz2.value      }, [layoutTsx, tabBarTsx], 2);    };  }});function useAppClass(showTabBar) {  const showMaxWidth = vue.ref(false);  return vue.computed(() => {    return {      "uni-app--showtabbar": showTabBar && showTabBar.value,      "uni-app--maxwidth": showMaxWidth.value    };  });}function initMediaQuery(minWidth, callback) {  {    return false;  }}function useMaxWidth(layoutState, rootRef) {  const route = usePageRoute();  function checkMaxWidth() {    const windowWidth = document.body.clientWidth;    const pages = getCurrentPages();    let meta = {};    if (pages.length > 0) {      const curPage = pages[pages.length - 1];      meta = curPage.$page.meta;    } else {      const routeOptions = getRouteOptions(route.path, true);      if (routeOptions) {        meta = routeOptions.meta;      }    }    const maxWidth = parseInt(String((shared.hasOwn(meta, "maxWidth") ? meta.maxWidth : __uniConfig.globalStyle.maxWidth) || Number.MAX_SAFE_INTEGER));    let showMaxWidth = false;    if (windowWidth > maxWidth) {      showMaxWidth = true;    } else {      showMaxWidth = false;    }    if (showMaxWidth && maxWidth) {      layoutState.marginWidth = (windowWidth - maxWidth) / 2;      vue.nextTick(() => {        const rootEl = rootRef.value;        if (rootEl) {          rootEl.setAttribute("style", "max-width:" + maxWidth + "px;margin:0 auto;");        }      });    } else {      layoutState.marginWidth = 0;      vue.nextTick(() => {        const rootEl = rootRef.value;        if (rootEl) {          rootEl.removeAttribute("style");        }      });    }  }  vue.watch([() => route.path], checkMaxWidth);}function useState() {  const route = usePageRoute();  if (!__UNI_FEATURE_RESPONSIVE__) {    const layoutState2 = vue.reactive({      marginWidth: 0,      leftWindowWidth: 0,      rightWindowWidth: 0    });    vue.watch(() => layoutState2.marginWidth, (value) => updateCssVar({      "--window-margin": value + "px"    }));    vue.watch(() => layoutState2.leftWindowWidth + layoutState2.marginWidth, (value) => {      updateCssVar({        "--window-left": value + "px"      });    });    vue.watch(() => layoutState2.rightWindowWidth + layoutState2.marginWidth, (value) => {      updateCssVar({        "--window-right": value + "px"      });    });    return {      layoutState: layoutState2,      windowState: vue.computed(() => ({}))    };  }  const topWindowMediaQuery = vue.ref(false);  const leftWindowMediaQuery = vue.ref(false);  const rightWindowMediaQuery = vue.ref(false);  const showTopWindow = vue.computed(() => __UNI_FEATURE_TOPWINDOW__ && route.meta.topWindow !== false && topWindowMediaQuery.value);  const showLeftWindow = vue.computed(() => __UNI_FEATURE_LEFTWINDOW__ && route.meta.leftWindow !== false && leftWindowMediaQuery.value);  const showRightWindow = vue.computed(() => __UNI_FEATURE_RIGHTWINDOW__ && route.meta.rightWindow !== false && rightWindowMediaQuery.value);  const layoutState = vue.reactive({    topWindowMediaQuery,    showTopWindow,    apiShowTopWindow: false,    leftWindowMediaQuery,    showLeftWindow,    apiShowLeftWindow: false,    rightWindowMediaQuery,    showRightWindow,    apiShowRightWindow: false,    topWindowHeight: 0,    marginWidth: 0,    leftWindowWidth: 0,    rightWindowWidth: 0,    navigationBarTitleText: "",    topWindowStyle: {},    leftWindowStyle: {},    rightWindowStyle: {}  });  const props2 = ["topWindow", "leftWindow", "rightWindow"];  props2.forEach((prop) => {    var _a;    const matchMedia = (_a = __uniConfig[prop]) == null ? void 0 : _a.matchMedia;    if (matchMedia && shared.hasOwn(matchMedia, "minWidth")) {      matchMedia.minWidth;    }    const matches = initMediaQuery();    layoutState[`${prop}MediaQuery`] = matches;  });  vue.watch(() => layoutState.topWindowHeight, (value) => updateCssVar({    "--top-window-height": value + "px"  }));  vue.watch(() => layoutState.marginWidth, (value) => updateCssVar({    "--window-margin": value + "px"  }));  vue.watch(() => layoutState.leftWindowWidth + layoutState.marginWidth, (value) => {    updateCssVar({      "--window-left": value + "px"    });  });  vue.watch(() => layoutState.rightWindowWidth + layoutState.marginWidth, (value) => {    updateCssVar({      "--window-right": value + "px"    });  });  UniServiceJSBridge.on(uniShared.ON_NAVIGATION_BAR_CHANGE, (navigationBar) => {    layoutState.navigationBarTitleText = navigationBar.titleText;  });  const windowState = vue.computed(() => ({    matchTopWindow: layoutState.topWindowMediaQuery,    showTopWindow: layoutState.showTopWindow || layoutState.apiShowTopWindow,    matchLeftWindow: layoutState.leftWindowMediaQuery,    showLeftWindow: layoutState.showLeftWindow || layoutState.apiShowLeftWindow,    matchRightWindow: layoutState.rightWindowMediaQuery,    showRightWindow: layoutState.showRightWindow || layoutState.apiShowRightWindow  }));  return {    layoutState,    windowState  };}function createLayoutTsx(keepAliveRoute, layoutState, windowState, topWindow, leftWindow, rightWindow) {  const routerVNode = __UNI_FEATURE_PAGES__ ? createRouterViewVNode(keepAliveRoute) : createPageVNode();  if (!__UNI_FEATURE_RESPONSIVE__) {    return routerVNode;  }  const topWindowTsx = __UNI_FEATURE_TOPWINDOW__ ? createTopWindowTsx(topWindow, layoutState, windowState.value) : null;  const leftWindowTsx = __UNI_FEATURE_LEFTWINDOW__ ? createLeftWindowTsx(leftWindow, layoutState, windowState.value) : null;  const rightWindowTsx = __UNI_FEATURE_RIGHTWINDOW__ ? createRightWindowTsx(rightWindow, layoutState, windowState.value) : null;  return vue.createVNode("uni-layout", {    "class": {      "uni-app--showtopwindow": __UNI_FEATURE_TOPWINDOW__ && layoutState.showTopWindow,      "uni-app--showleftwindow": __UNI_FEATURE_LEFTWINDOW__ && layoutState.showLeftWindow,      "uni-app--showrightwindow": __UNI_FEATURE_RIGHTWINDOW__ && layoutState.showRightWindow    }  }, [topWindowTsx, vue.createVNode("uni-content", null, [vue.createVNode("uni-main", null, [routerVNode]), leftWindowTsx, rightWindowTsx])], 2);}function useShowTabBar(emit2) {  const route = usePageRoute();  const tabBar2 = useTabBar();  const showTabBar = vue.computed(() => route.meta.isTabBar && tabBar2.shown);  return showTabBar;}function createTabBarTsx(showTabBar) {  return vue.withDirectives(vue.createVNode(TabBar, null, null, 512), [[vue.vShow, showTabBar.value]]);}function createPageVNode() {  return vue.createVNode(__uniRoutes[0].component);}function createRouterViewVNode({  routeKey,  isTabBar,  routeCache: routeCache2}) {  return vue.createVNode(vueRouter.RouterView, null, {    default: vue.withCtx(({      Component    }) => [(vue.openBlock(), vue.createBlock(vue.KeepAlive, {      matchBy: "key",      cache: routeCache2    }, [(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(Component), {      type: isTabBar.value ? "tabBar" : "",      key: routeKey.value    }))], 1032, ["cache"]))]),    _: 1    /* STABLE */  });}function useTopWindow(layoutState) {  const {    component,    style  } = __uniConfig.topWindow;  const windowRef = vue.ref(null);  function updateWindow() {    const instance = windowRef.value;    const el = uniShared.resolveOwnerEl(instance.$);    const height = el.getBoundingClientRect().height;    layoutState.topWindowHeight = height;  }  vue.watch(() => layoutState.showTopWindow || layoutState.apiShowTopWindow, () => vue.nextTick(updateWindow));  layoutState.topWindowStyle = style;  return {    component,    windowRef  };}function useLeftWindow(layoutState) {  const {    component,    style  } = __uniConfig.leftWindow;  const windowRef = vue.ref(null);  function updateWindow() {    const instance = windowRef.value;    const el = uniShared.resolveOwnerEl(instance.$);    const width = el.getBoundingClientRect().width;    layoutState.leftWindowWidth = width;  }  vue.watch(() => layoutState.showLeftWindow || layoutState.apiShowLeftWindow, () => vue.nextTick(updateWindow));  layoutState.leftWindowStyle = style;  return {    component,    windowRef  };}function useRightWindow(layoutState) {  const {    component,    style  } = __uniConfig.rightWindow;  const windowRef = vue.ref(null);  function updateWindow() {    const instance = windowRef.value;    const el = uniShared.resolveOwnerEl(instance.$);    const width = el.getBoundingClientRect().width;    layoutState.rightWindowWidth = width;  }  vue.watch(() => layoutState.showRightWindow || layoutState.apiShowRightWindow, () => vue.nextTick(updateWindow));  layoutState.rightWindowStyle = style;  return {    component,    windowRef  };}function createTopWindowTsx(topWindow, layoutState, windowState) {  if (topWindow) {    const {      component: TopWindow,      windowRef    } = topWindow;    return vue.withDirectives(vue.createVNode("uni-top-window", null, [vue.createVNode("div", {      "class": "uni-top-window",      "style": layoutState.topWindowStyle    }, [vue.createVNode(TopWindow, vue.mergeProps({      "ref": windowRef,      "navigation-bar-title-text": layoutState.navigationBarTitleText    }, windowState), null, 16, ["navigation-bar-title-text"])], 4), vue.createVNode("div", {      "class": "uni-top-window--placeholder",      "style": {        height: layoutState.topWindowHeight + "px"      }    }, null, 4)], 512), [[vue.vShow, layoutState.showTopWindow || layoutState.apiShowTopWindow]]);  }}function createLeftWindowTsx(leftWindow, layoutState, windowState) {  if (leftWindow) {    const {      component: LeftWindow,      windowRef    } = leftWindow;    return vue.withDirectives(vue.createVNode("uni-left-window", {      "data-show": layoutState.apiShowLeftWindow || void 0,      "style": layoutState.leftWindowStyle    }, [layoutState.apiShowLeftWindow ? vue.createVNode("div", {      "class": "uni-mask",      "onClick": () => layoutState.apiShowLeftWindow = false    }, null, 8, ["onClick"]) : null, vue.createVNode("div", {      "class": "uni-left-window"    }, [vue.createVNode(LeftWindow, vue.mergeProps({      "ref": windowRef    }, windowState), null, 16)])], 12, ["data-show"]), [[vue.vShow, layoutState.showLeftWindow || layoutState.apiShowLeftWindow]]);  }}function createRightWindowTsx(rightWindow, layoutState, windowState) {  if (rightWindow) {    const {      component: RightWindow,      windowRef    } = rightWindow;    return vue.withDirectives(vue.createVNode("uni-right-window", {      "data-show": layoutState.apiShowRightWindow || void 0,      "style": layoutState.rightWindowStyle    }, [layoutState.apiShowRightWindow ? vue.createVNode("div", {      "class": "uni-mask",      "onClick": () => layoutState.apiShowRightWindow = false    }, null, 8, ["onClick"]) : null, vue.createVNode("div", {      "class": "uni-right-window"    }, [vue.createVNode(RightWindow, vue.mergeProps({      "ref": windowRef    }, windowState), null, 16)])], 12, ["data-show"]), [[vue.vShow, layoutState.showRightWindow || layoutState.apiShowRightWindow]]);  }}function updateBackgroundColorContent(backgroundColorContent) {  {    return;  }}function useBackgroundColorContent(pageMeta) {  function update() {    if (pageMeta.backgroundColorContent) {      updateBackgroundColorContent(        parseTheme({ backgroundColorContent: pageMeta.backgroundColorContent }).backgroundColorContent      );    }  }  onThemeChange(update);  vue.watchEffect(update);}function usePageHeadTransparentBackgroundColor(backgroundColor) {  const { r, g: g2, b } = hexToRgba(backgroundColor);  return `rgba(${r},${g2},${b},0)`;}function usePageHeadTransparent(headRef, {  id: id2,  navigationBar: { titleColor, coverage, backgroundColor }}) {  vue.computed(() => hexToRgba(backgroundColor));}const ICON_PATHS = {  none: "",  forward: "M11 7.844q-0.25-0.219-0.25-0.578t0.25-0.578q0.219-0.25 0.563-0.25t0.563 0.25l9.656 9.125q0.125 0.125 0.188 0.297t0.063 0.328q0 0.188-0.063 0.359t-0.188 0.297l-9.656 9.125q-0.219 0.25-0.563 0.25t-0.563-0.25q-0.25-0.219-0.25-0.578t0.25-0.609l9.063-8.594-9.063-8.594z",  back: ICON_PATH_BACK,  select: ICON_PATH_BACK,  share: "M26.563 24.844q0 0.125-0.109 0.234t-0.234 0.109h-17.938q-0.125 0-0.219-0.109t-0.094-0.234v-13.25q0-0.156 0.094-0.25t0.219-0.094h5.5v-1.531h-6q-0.531 0-0.906 0.391t-0.375 0.922v14.375q0 0.531 0.375 0.922t0.906 0.391h18.969q0.531 0 0.891-0.391t0.359-0.953v-5.156h-1.438v4.625zM29.813 10.969l-5.125-5.375-1.031 1.094 3.438 3.594-3.719 0.031q-2.313 0.188-4.344 1.125t-3.578 2.422-2.5 3.453-1.109 4.188l-0.031 0.25h1.469v-0.219q0.156-1.875 1-3.594t2.25-3.063 3.234-2.125 3.828-0.906l0.188-0.031 3.313-0.031-3.438 3.625 1.031 1.063 5.125-5.375-0.031-0.063 0.031-0.063z",  favorite: "M27.594 13.375q-0.063-0.188-0.219-0.313t-0.344-0.156l-7.094-0.969-3.219-6.406q-0.094-0.188-0.25-0.281t-0.375-0.094q-0.188 0-0.344 0.094t-0.25 0.281l-3.125 6.438-7.094 1.094q-0.188 0.031-0.344 0.156t-0.219 0.313q-0.031 0.188 0.016 0.375t0.172 0.313l5.156 4.969-1.156 7.063q-0.031 0.188 0.047 0.375t0.234 0.313q0.094 0.063 0.188 0.094t0.219 0.031q0.063 0 0.141-0.031t0.172-0.063l6.313-3.375 6.375 3.313q0.063 0.031 0.141 0.047t0.172 0.016q0.188 0 0.344-0.094t0.25-0.281q0.063-0.094 0.078-0.234t-0.016-0.234q0-0.031 0-0.063l-1.25-6.938 5.094-5.031q0.156-0.156 0.203-0.344t-0.016-0.375zM11.469 19.063q0.031-0.188-0.016-0.344t-0.172-0.281l-4.406-4.25 6.063-0.906q0.156-0.031 0.297-0.125t0.203-0.25l2.688-5.531 2.75 5.5q0.063 0.156 0.203 0.25t0.297 0.125l6.094 0.844-4.375 4.281q-0.125 0.125-0.172 0.297t-0.016 0.328l1.063 6.031-5.438-2.813q-0.156-0.094-0.328-0.078t-0.297 0.078l-5.438 2.875 1-6.031z",  home: "M23.719 16.5q-0.313 0-0.531 0.219t-0.219 0.5v7.063q0 0.219-0.172 0.391t-0.391 0.172h-12.344q-0.25 0-0.422-0.172t-0.172-0.391v-7.063q0-0.281-0.219-0.5t-0.531-0.219q-0.281 0-0.516 0.219t-0.234 0.5v7.063q0.031 0.844 0.625 1.453t1.438 0.609h12.375q0.844 0 1.453-0.609t0.609-1.453v-7.063q0-0.125-0.063-0.266t-0.156-0.234q-0.094-0.125-0.234-0.172t-0.297-0.047zM26.5 14.875l-8.813-8.813q-0.313-0.313-0.688-0.453t-0.781-0.141-0.781 0.141-0.656 0.422l-8.813 8.844q-0.188 0.219-0.188 0.516t0.219 0.484q0.094 0.125 0.234 0.172t0.297 0.047q0.125 0 0.25-0.047t0.25-0.141l8.781-8.781q0.156-0.156 0.406-0.156t0.406 0.156l8.813 8.781q0.219 0.188 0.516 0.188t0.516-0.219q0.188-0.188 0.203-0.484t-0.172-0.516z",  menu: "M8.938 18.313q0.875 0 1.484-0.609t0.609-1.453-0.609-1.453-1.484-0.609q-0.844 0-1.453 0.609t-0.609 1.453 0.609 1.453 1.453 0.609zM16.188 18.313q0.875 0 1.484-0.609t0.609-1.453-0.609-1.453-1.484-0.609q-0.844 0-1.453 0.609t-0.609 1.453 0.609 1.453 1.453 0.609zM23.469 18.313q0.844 0 1.453-0.609t0.609-1.453-0.609-1.453-1.453-0.609q-0.875 0-1.484 0.609t-0.609 1.453 0.609 1.453 1.484 0.609z",  close: ICON_PATH_CLOSE};const PageHead = /* @__PURE__ */ defineSystemComponent({  name: "PageHead",  setup() {    const headRef = vue.ref(null);    const pageMeta = usePageMeta();    const navigationBar = useTheme(pageMeta.navigationBar, () => {      const _navigationBar = parseTheme(pageMeta.navigationBar);      navigationBar.backgroundColor = _navigationBar.backgroundColor;      navigationBar.titleColor = _navigationBar.titleColor;    });    const {      clazz: clazz2,      style    } = usePageHead(navigationBar);    const buttons = __UNI_FEATURE_NAVIGATIONBAR_BUTTONS__ && usePageHeadButtons(pageMeta);    const searchInput = __UNI_FEATURE_NAVIGATIONBAR_SEARCHINPUT__ && navigationBar.searchInput && usePageHeadSearchInput(pageMeta);    __UNI_FEATURE_NAVIGATIONBAR_TRANSPARENT__ && navigationBar.type === "transparent" && usePageHeadTransparent(headRef, pageMeta);    return () => {      const backButtonTsx = __UNI_FEATURE_PAGES__ ? createBackButtonTsx(navigationBar, pageMeta.isQuit) : null;      const leftButtonsTsx = __UNI_FEATURE_NAVIGATIONBAR_BUTTONS__ ? createButtonsTsx(buttons.left) : [];      const rightButtonsTsx = __UNI_FEATURE_NAVIGATIONBAR_BUTTONS__ ? createButtonsTsx(buttons.right) : [];      const type = navigationBar.type || "default";      const placeholderTsx = type !== "transparent" && type !== "float" && vue.createVNode("div", {        "class": {          "uni-placeholder": true,          "uni-placeholder-titlePenetrate": navigationBar.titlePenetrate        }      }, null, 2);      return vue.createVNode("uni-page-head", {        "uni-page-head-type": type      }, [vue.createVNode("div", {        "ref": headRef,        "class": clazz2.value,        "style": style.value      }, [vue.createVNode("div", {        "class": "uni-page-head-hd"      }, [backButtonTsx, ...leftButtonsTsx]), createPageHeadBdTsx(navigationBar, searchInput), vue.createVNode("div", {        "class": "uni-page-head-ft"      }, [...rightButtonsTsx])], 6), placeholderTsx], 8, ["uni-page-head-type"]);    };  }});function createBackButtonTsx(navigationBar, isQuit) {  if (!isQuit) {    return vue.createVNode("div", {      "class": "uni-page-head-btn",      "onClick": onPageHeadBackButton    }, [createSvgIconVNode(ICON_PATH_BACK, navigationBar.type === "transparent" ? "#fff" : navigationBar.titleColor, 26)], 8, ["onClick"]);  }}function createButtonsTsx(btns) {  return btns.map(({    onClick,    btnClass,    btnStyle,    btnText,    btnIconPath,    badgeText,    iconStyle,    btnSelect  }, index2) => {    return vue.createVNode("div", {      "key": index2,      "class": btnClass,      "style": btnStyle,      "onClick": onClick,      "badge-text": badgeText    }, [btnIconPath ? createSvgIconVNode(btnIconPath, iconStyle.color, iconStyle.fontSize) : btnSelect ? vue.createVNode("span", {      "style": iconStyle    }, [vue.createVNode("i", {      "class": "uni-btn-icon",      "innerHTML": btnText    }, null, 8, ["innerHTML"]), createSvgIconVNode(ICON_PATHS["select"], "#000", 14)], 4) : vue.createVNode("i", {      "class": "uni-btn-icon",      "style": iconStyle,      "innerHTML": btnText    }, null, 12, ["innerHTML"])], 14, ["onClick", "badge-text"]);  });}function createPageHeadBdTsx(navigationBar, searchInput) {  if (!__UNI_FEATURE_NAVIGATIONBAR_SEARCHINPUT__ || !navigationBar.searchInput) {    return createPageHeadTitleTextTsx(navigationBar);  }  return createPageHeadSearchInputTsx(navigationBar, searchInput);}function createPageHeadTitleTextTsx({  type,  loading,  titleSize,  titleText,  titleImage}) {  return vue.createVNode("div", {    "class": "uni-page-head-bd"  }, [vue.createVNode("div", {    "style": {      fontSize: titleSize,      opacity: type === "transparent" ? 0 : 1    },    "class": "uni-page-head__title"  }, [loading ? vue.createVNode("i", {    "class": "uni-loading"  }, null) : titleImage ? vue.createVNode("img", {    "src": titleImage,    "class": "uni-page-head__title_image"  }, null, 8, ["src"]) : titleText], 4)]);}function createPageHeadSearchInputTsx(navigationBar, {  text,  focus,  composing,  onBlur,  onFocus,  onInput,  onConfirm,  onClick}) {  const {    color,    align,    autoFocus,    disabled,    borderRadius,    backgroundColor,    placeholder,    placeholderColor  } = navigationBar.searchInput;  const searchStyle = {    borderRadius,    backgroundColor  };  const placeholderClass = ["uni-page-head-search-placeholder", `uni-page-head-search-placeholder-${focus.value || text.value ? "left" : align}`];  return vue.createVNode("div", {    "class": "uni-page-head-search",    "style": searchStyle  }, [vue.createVNode("div", {    "style": {      color: placeholderColor    },    "class": placeholderClass  }, [vue.createVNode("div", {    "class": "uni-page-head-search-icon"  }, [createSvgIconVNode(ICON_PATH_SEARCH, placeholderColor, 20)]), text.value || composing.value ? "" : placeholder], 6), disabled ? vue.createVNode(Input, {    "disabled": true,    "style": {      color    },    "placeholder-style": "color: " + placeholderColor,    "class": "uni-page-head-search-input",    "confirm-type": "search",    "onClick": onClick  }, null, 8, ["style", "placeholder-style", "onClick"]) : vue.createVNode(Input, {    "focus": autoFocus,    "style": {      color    },    "placeholder-style": "color: " + placeholderColor,    "class": "uni-page-head-search-input",    "confirm-type": "search",    "onFocus": onFocus,    "onBlur": onBlur,    "onInput": onInput,    "onConfirm": onConfirm  }, null, 8, ["focus", "style", "placeholder-style", "onFocus", "onBlur", "onInput", "onConfirm"])], 4);}function onPageHeadBackButton() {  if (getCurrentPages().length === 1) {    uni.reLaunch({      url: "/"    });  } else {    uni.navigateBack({      from: "backbutton",      success() {      }      // 传入空方法,避免返回Promise,因为onBackPress可能导致fail    });  }}function usePageHead(navigationBar) {  const clazz2 = vue.computed(() => {    const {      type,      titlePenetrate,      shadowColorType    } = navigationBar;    const clazz3 = {      "uni-page-head": true,      "uni-page-head-transparent": type === "transparent",      "uni-page-head-titlePenetrate": titlePenetrate === "YES",      "uni-page-head-shadow": !!shadowColorType    };    if (shadowColorType) {      clazz3[`uni-page-head-shadow-${shadowColorType}`] = true;    }    return clazz3;  });  const style = vue.computed(() => {    const backgroundColor = __UNI_FEATURE_NAVIGATIONBAR_TRANSPARENT__ && navigationBar.type === "transparent" ? usePageHeadTransparentBackgroundColor(navigationBar.backgroundColor) : navigationBar.backgroundColor;    return {      backgroundColor,      color: navigationBar.titleColor,      transitionDuration: navigationBar.duration,      transitionTimingFunction: navigationBar.timingFunc    };  });  return {    clazz: clazz2,    style  };}function usePageHeadButtons({  id: id2,  navigationBar}) {  const left = [];  const right = [];  const {    buttons  } = navigationBar;  if (shared.isArray(buttons)) {    const {      type    } = navigationBar;    const isTransparent = type === "transparent";    const fonts = /* @__PURE__ */ Object.create(null);    buttons.forEach((btn, index2) => {      if (btn.fontSrc && !btn.fontFamily) {        const fontSrc = getRealPath(btn.fontSrc);        let fontFamily = fonts[fontSrc];        if (!fontFamily) {          fontFamily = `font${Date.now()}`;          fonts[fontSrc] = fontFamily;        }        btn.fontFamily = fontFamily;      }      const pageHeadBtn = usePageHeadButton(id2, index2, btn, isTransparent);      if (btn.float === "left") {        left.push(pageHeadBtn);      } else {        right.push(pageHeadBtn);      }    });  }  return {    left,    right  };}function usePageHeadButton(pageId, index2, btn, isTransparent) {  const iconStyle = {    color: btn.color,    fontSize: btn.fontSize,    fontWeight: btn.fontWeight  };  if (btn.fontFamily) {    iconStyle.fontFamily = btn.fontFamily;  }  return new Proxy({    btnClass: {      // 类似这样的大量重复的字符串,会在gzip时压缩大小,无需在代码层考虑优化相同字符串      "uni-page-head-btn": true,      "uni-page-head-btn-red-dot": !!(btn.redDot || btn.badgeText),      "uni-page-head-btn-select": !!btn.select    },    btnStyle: {      backgroundColor: isTransparent ? btn.background : "transparent",      width: btn.width    },    btnText: "",    btnIconPath: ICON_PATHS[btn.type],    badgeText: btn.badgeText,    iconStyle,    onClick() {      invokeHook(pageId, uniShared.ON_NAVIGATION_BAR_BUTTON_TAP, shared.extend({        index: index2      }, btn));    },    btnSelect: btn.select  }, {    get(target, key, receiver) {      if (["btnText"].includes(key)) {        return btn.fontSrc && btn.fontFamily ? btn.text.replace("\\u", "&#x") : btn.text;      } else {        return Reflect.get(target, key, receiver);      }    }  });}function usePageHeadSearchInput({  id: id2,  navigationBar: {    searchInput  }}) {  const focus = vue.ref(false);  const text = vue.ref("");  const composing = vue.ref(false);  const {    disabled  } = searchInput;  if (disabled) {    const onClick = () => {      invokeHook(id2, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CLICKED);    };    return {      focus,      text,      composing,      onClick    };  }  const onFocus = () => {    focus.value = true;    invokeHook(id2, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, {      focus: true    });  };  const onBlur = () => {    focus.value = false;    invokeHook(id2, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_FOCUS_CHANGED, {      focus: false    });  };  const onInput = (evt) => {    text.value = evt.detail.value;    invokeHook(id2, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CHANGED, {      text: text.value    });  };  const onConfirm = (evt) => {    invokeHook(id2, uniShared.ON_NAVIGATION_BAR_SEARCH_INPUT_CONFIRMED, {      text: text.value    });  };  return {    focus,    text,    composing,    onFocus,    onBlur,    onInput,    onConfirm  };}const _sfc_main = {  name: "PageRefresh",  setup() {    const { pullToRefresh } = usePageMeta();    return {      offset: pullToRefresh.offset,      color: pullToRefresh.color    };  }};const _export_sfc = (sfc, props2) => {  const target = sfc.__vccOpts || sfc;  for (const [key, val] of props2) {    target[key] = val;  }  return target;};const _hoisted_1 = { class: "uni-page-refresh-inner" };const _hoisted_2 = ["fill"];const _hoisted_3 = /* @__PURE__ */ vue.createElementVNode("path", { d: "M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z" }, null, -1);const _hoisted_4 = /* @__PURE__ */ vue.createElementVNode("path", {  d: "M0 0h24v24H0z",  fill: "none"}, null, -1);const _hoisted_5 = [  _hoisted_3,  _hoisted_4];const _hoisted_6 = {  class: "uni-page-refresh__spinner",  width: "24",  height: "24",  viewBox: "25 25 50 50"};const _hoisted_7 = ["stroke"];function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {  return vue.openBlock(), vue.createElementBlock("uni-page-refresh", null, [    vue.createElementVNode("div", {      style: vue.normalizeStyle({ "margin-top": $setup.offset + "px" }),      class: "uni-page-refresh"    }, [      vue.createElementVNode("div", _hoisted_1, [        (vue.openBlock(), vue.createElementBlock("svg", {          fill: $setup.color,          class: "uni-page-refresh__icon",          width: "24",          height: "24",          viewBox: "0 0 24 24"        }, _hoisted_5, 8, _hoisted_2)),        (vue.openBlock(), vue.createElementBlock("svg", _hoisted_6, [          vue.createElementVNode("circle", {            stroke: $setup.color,            class: "uni-page-refresh__path",            cx: "50",            cy: "50",            r: "20",            fill: "none",            "stroke-width": "4",            "stroke-miterlimit": "10"          }, null, 8, _hoisted_7)        ]))      ])    ], 4)  ]);}const PageRefresh = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);const PageBody = /* @__PURE__ */ defineSystemComponent({  name: "PageBody",  setup(props2, ctx) {    const pageMeta = __UNI_FEATURE_PULL_DOWN_REFRESH__ && usePageMeta();    const refreshRef = __UNI_FEATURE_PULL_DOWN_REFRESH__ && vue.ref(null);    const _pageRefresh = null;    const pageRefresh = vue.ref(null);    vue.watch(() => {      return pageMeta.enablePullDownRefresh;    }, () => {      pageRefresh.value = pageMeta.enablePullDownRefresh ? _pageRefresh : null;    }, {      immediate: true    });    return () => {      const pageRefreshTsx = __UNI_FEATURE_PULL_DOWN_REFRESH__ && createPageRefreshTsx(refreshRef);      return vue.createVNode(vue.Fragment, null, [pageRefreshTsx, vue.createVNode("uni-page-wrapper", pageRefresh.value, [vue.createVNode("uni-page-body", null, [vue.renderSlot(ctx.slots, "default")])], 16)]);    };  }});function createPageRefreshTsx(refreshRef, pageMeta) {  return vue.createVNode(PageRefresh, {    "ref": refreshRef  }, null, 512);}const index = /* @__PURE__ */ defineSystemComponent({  name: "Page",  setup(_props, ctx) {    const pageMeta = providePageMeta(getStateId());    const navigationBar = pageMeta.navigationBar;    const pageStyle = {};    useDocumentTitle(pageMeta);    {      useBackgroundColorContent(pageMeta);    }    return () => vue.createVNode(      "uni-page",      {        "data-page": pageMeta.route,        style: pageStyle      },      __UNI_FEATURE_NAVIGATIONBAR__ && navigationBar.style !== "custom" ? [vue.createVNode(PageHead), createPageBodyVNode(ctx)] : [createPageBodyVNode(ctx)]    );  }});function createPageBodyVNode(ctx) {  return vue.openBlock(), vue.createBlock(    PageBody,    { key: 0 },    {      default: vue.withCtx(() => [vue.renderSlot(ctx.slots, "page")]),      _: 3    }  );}exports.Ad = index$6;exports.AdContentPage = index$5;exports.AdDraw = index$4;exports.AsyncErrorComponent = AsyncErrorComponent;exports.AsyncLoadingComponent = AsyncLoadingComponent;exports.Button = index$z;exports.Camera = index$3;exports.Canvas = indexX$4;exports.Checkbox = index$x;exports.CheckboxGroup = index$y;exports.CoverImage = index$8;exports.CoverView = index$9;exports.Editor = index$w;exports.Form = index$B;exports.Icon = index$v;exports.Image = index$u;exports.Input = Input;exports.Label = index$A;exports.LayoutComponent = LayoutComponent;exports.ListItem = index$g;exports.ListView = index$h;exports.LivePlayer = index$2;exports.LivePusher = index$1;exports.Map = index$a;exports.MovableArea = index$t;exports.MovableView = index$s;exports.Navigator = index$r;exports.PageComponent = index;exports.Picker = index$7;exports.PickerView = PickerView;exports.PickerViewColumn = PickerViewColumn;exports.Progress = index$q;exports.Radio = indexX$3;exports.RadioGroup = index$p;exports.ResizeSensor = ResizeSensor;exports.RichText = index$o;exports.ScrollView = index$n;exports.Slider = indexX$2;exports.StickyHeader = index$e;exports.StickySection = index$f;exports.Swiper = index$m;exports.SwiperItem = index$l;exports.Switch = indexX$1;exports.Text = index$k;exports.Textarea = index$j;exports.UniServiceJSBridge = UniServiceJSBridge$1;exports.UniViewJSBridge = UniViewJSBridge$1;exports.Video = index$b;exports.View = index$i;exports.WebView = indexX;exports.clearStorage = clearStorage;exports.clearStorageSync = clearStorageSync;exports.getApp = getApp$1;exports.getAppBaseInfo = getAppBaseInfo;exports.getCurrentPages = getCurrentPages$1;exports.getDeviceInfo = getDeviceInfo;exports.getRealPath = getRealPath;exports.getStorage = getStorage;exports.getStorageInfo = getStorageInfo;exports.getStorageInfoSync = getStorageInfoSync;exports.getStorageSync = getStorageSync;exports.getSystemInfoSync = getSystemInfoSync;exports.plugin = index$c;exports.removeStorage = removeStorage;exports.removeStorageSync = removeStorageSync;exports.request = request;exports.setNavigationBarTitle = setNavigationBarTitle;exports.setStorage = setStorage;exports.setStorageSync = setStorageSync;exports.setupApp = setupApp;exports.setupPage = setupPage;exports.setupWindow = setupWindow;exports.uni = uni$1;exports.useI18n = useI18n;exports.useTabBar = useTabBar;
 |