{"version":3,"file":"static/js/774.c8ead40d.chunk.js","mappings":"gOAC0BA,SAA1B,MACMC,EAAsBD,SAsB5B,MAAME,EAAWC,OAAOC,eAElBC,EAAiB,IAAIC,QAGrBC,EAAsBC,GAC1BA,IAAQH,EAAeI,IAAID,GACvBH,EAAeK,IAAIF,GAClBN,EAASM,KAASL,OAAOQ,WAAaT,EAASM,KAASI,MAAMD,WA6XxDE,EAAc,SAACL,GAAoB,IAAPP,IAAAa,UAAAC,OAAA,QAAAC,IAAAF,UAAA,KAAAA,UAAA,GACvCT,EAAeY,IAAIT,EAAKP,EAAI,EC5ZxBiB,EAAYC,GAAmB,kBAANA,GAAwB,OAANA,EAC3CC,EAAgC,IAAId,QACpCe,EAAyB,IAAIC,QAC7BC,EAAqB,eAACC,EAAQV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGX,OAAOsB,GAAIC,EAAQZ,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAACa,EAAQC,IAAY,IAAIC,MAAMF,EAAQC,GAAUE,EAAQhB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAIK,GAAMD,EAASC,KAAOE,EAAOZ,IAAIU,KAAOP,MAAMmB,QAAQZ,MAAQnB,OAAOgC,YAAYb,OAASA,aAAab,YAAca,aAAaG,YAAcH,aAAac,UAAYd,aAAae,WAAaf,aAAagB,SAAWhB,aAAaiB,WAAajB,aAAakB,WAAalB,aAAamB,aAAcC,EAAoBzB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAI0B,IAC1b,OAAQA,EAAQC,QACd,IAAK,YACH,OAAOD,EAAQE,MACjB,IAAK,WACH,MAAMF,EAAQG,OAChB,QACE,MAAMH,EACV,EACCI,EAAS9B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAmB,IAAIR,QAAWuC,EAAc/B,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,SAACa,EAAQmB,GAAkD,IAAzCC,EAAajC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGyB,EAC/F,MAAMS,EAAQJ,EAAUlC,IAAIiB,GAC5B,IAAc,MAATqB,OAAgB,EAASA,EAAM,MAAQF,EAC1C,OAAOE,EAAM,GAEf,MAAMC,EAAOrC,MAAMmB,QAAQJ,GAAU,GAAKxB,OAAO+C,OAAO/C,OAAOC,eAAeuB,IAgC9E,OA/BAwB,EAAYF,GAAM,GAClBL,EAAU3B,IAAIU,EAAQ,CAACmB,EAASG,IAChCG,QAAQC,QAAQ1B,GAAQ2B,SAASC,IAC/B,GAAIpD,OAAOqD,yBAAyBP,EAAMM,GACxC,OAEF,MAAMb,EAAQU,QAAQ1C,IAAIiB,EAAQ4B,GAC5BE,EAAO,CACXf,QACAgB,YAAY,EAGZC,cAAc,GAEhB,GAAItC,EAAOZ,IAAIiC,GACbS,EAAYT,GAAO,QACd,GAAIA,aAAiBkB,eACnBH,EAAKf,MACZe,EAAK/C,IAAM,IAAMqC,EAAcL,QAC1B,GAAItB,EAAcX,IAAIiC,GAAQ,CACnC,MAAOmB,EAASC,GAAiB1C,EAAcV,IAC7CgC,GAEFe,EAAKf,MAAQG,EACXgB,EACAC,IACAf,EAEJ,CACA5C,OAAO4D,eAAed,EAAMM,EAAKE,EAAK,IAEjCtD,OAAO6D,kBAAkBf,EAClC,EAAGgB,EAAUnD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAmB,IAAIR,QAAW4D,EAAapD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAAG,GAAIqD,EAAarD,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAIsD,IACtF,IAAKlD,EAASkD,GACZ,MAAM,IAAInC,MAAM,mBAElB,MAAMoC,EAAQJ,EAAWvD,IAAI0D,GAC7B,GAAIC,EACF,OAAOA,EAET,IAAIvB,EAAUoB,EAAc,GAC5B,MAAMI,EAA4B,IAAIC,IAChCC,EAAe,SAACC,GAAyC,IAArCC,EAAW5D,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,KAAKoD,EAAc,GAClDpB,IAAY4B,IACd5B,EAAU4B,EACVJ,EAAUhB,SAASqB,GAAaA,EAASF,EAAIC,KAEjD,EACA,IAAIE,EAAeV,EAAc,GACjC,MAYMW,EAAsBC,GAAS,CAACL,EAAIC,KACxC,MAAMK,EAAQ,IAAIN,GAClBM,EAAM,GAAK,CAACD,KAASC,EAAM,IAC3BP,EAAaO,EAAOL,EAAY,EAE5BM,EAAkC,IAAIC,IAYtCC,EAAsBJ,IAC1B,IAAIK,EACJ,MAAMC,EAAQJ,EAAgBtE,IAAIoE,GAC9BM,IACFJ,EAAgBK,OAAOP,GACJ,OAAlBK,EAAKC,EAAM,KAAuBD,EAAGG,KAAKF,GAC7C,EA0BIG,EAAa3E,MAAMmB,QAAQqC,GAAiB,GAAKjE,OAAO+C,OAAO/C,OAAOC,eAAegE,IACrFxC,EAAU,CACd4D,cAAAA,CAAe7D,EAAQmD,GACrB,MAAMW,EAAYrC,QAAQ1C,IAAIiB,EAAQmD,GACtCI,EAAmBJ,GACnB,MAAMY,EAAUtC,QAAQoC,eAAe7D,EAAQmD,GAI/C,OAHIY,GACFlB,EAAa,CAAC,SAAU,CAACM,GAAOW,IAE3BC,CACT,EACAzE,GAAAA,CAAIU,EAAQmD,EAAMpC,EAAOiD,GACvB,MAAMC,EAAexC,QAAQ3C,IAAIkB,EAAQmD,GACnCW,EAAYrC,QAAQ1C,IAAIiB,EAAQmD,EAAMa,GAC5C,GAAIC,IAAiBpE,EAASiE,EAAW/C,IAAUuB,EAAWxD,IAAIiC,IAAUlB,EAASiE,EAAWxB,EAAWvD,IAAIgC,KAC7G,OAAO,EAETwC,EAAmBJ,GACf5D,EAASwB,KACXA,EDqOwBlC,IAC1BD,EAAgBC,IACVA,EAAsCP,IAGlD,KC1OgB4F,CAAanD,IAAUA,GAEjC,IAAIoD,EAAYpD,EAChB,GAAIA,aAAiBkB,QACnBlB,EAAMqD,MAAMC,IACVtD,EAAMD,OAAS,YACfC,EAAMA,MAAQsD,EACdxB,EAAa,CAAC,UAAW,CAACM,GAAOkB,GAAG,IACnCC,OAAOzF,IACRkC,EAAMD,OAAS,WACfC,EAAMC,OAASnC,EACfgE,EAAa,CAAC,SAAU,CAACM,GAAOtE,GAAG,QAEhC,EACAY,EAAcX,IAAIiC,IAAUZ,EAASY,KACxCoD,EAAY3B,EAAczB,IAE5B,MAAMwD,GAAmB7E,EAAOZ,IAAIqF,IAAc1E,EAAcV,IAAIoF,GAChEI,GAhFcC,EAACrB,EAAMsB,KAC7B,GAA0EpB,EAAgBvE,IAAIqE,GAC5F,MAAM,IAAI7C,MAAM,gCAElB,GAAIqC,EAAU+B,KAAM,CAClB,MAAMC,EAASF,EAAe,GAAGvB,EAAmBC,IACpDE,EAAgB/D,IAAI6D,EAAM,CAACsB,EAAgBE,GAC7C,MACEtB,EAAgB/D,IAAI6D,EAAM,CAACsB,GAC7B,EAwEMD,CAAgBrB,EAAMoB,EAE1B,CAGA,OAFA9C,QAAQnC,IAAIU,EAAQmD,EAAMgB,EAAWH,GACrCnB,EAAa,CAAC,MAAO,CAACM,GAAOpC,EAAO+C,KAC7B,CACT,GAEIc,EAAc7E,EAAS6D,EAAY3D,GACzCqC,EAAWhD,IAAImD,EAAemC,GAC9B,MAAMC,EAAa,CACjBjB,EA9GoB,WAA2C,IAA1CkB,EAAgB3F,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,KAAKoD,EAAc,GAUxD,OATIU,IAAiB6B,GAAqBnC,EAAU+B,OAClDzB,EAAe6B,EACfzB,EAAgB1B,SAAQoD,IAAsB,IAApBN,GAAeM,EACvC,MAAMC,EAAcP,EAAe,GAAGK,GAClCE,EAAc7D,IAChBA,EAAU6D,EACZ,KAGG7D,CACT,EAqGED,EA3EmB8B,IACnBL,EAAUsC,IAAIjC,GACS,IAAnBL,EAAU+B,MACZrB,EAAgB1B,SAAQ,CAAAuD,EAA+B/B,KAAS,IAAtCsB,EAAgBU,GAAWD,EACnD,GAA0EC,EACxE,MAAM,IAAI7E,MAAM,yBAElB,MAAMqE,EAASF,EAAe,GAAGvB,EAAmBC,IACpDE,EAAgB/D,IAAI6D,EAAM,CAACsB,EAAgBE,GAAQ,IAcvD,MAXuBS,KACrBzC,EAAUe,OAAOV,GACM,IAAnBL,EAAU+B,MACZrB,EAAgB1B,SAAQ,CAAA0D,EAA2BlC,KAAS,IAAlCsB,EAAgBE,GAAOU,EAC3CV,IACFA,IACAtB,EAAgB/D,IAAI6D,EAAM,CAACsB,IAC7B,GAEJ,CAEmB,GAqEvB,OAbAhF,EAAcH,IAAIsF,EAAaC,GAC/BpD,QAAQC,QAAQe,GAAed,SAASC,IACtC,MAAME,EAAOtD,OAAOqD,yBAClBY,EACAb,GAEE,UAAWE,IACb8C,EAAYhD,GAAOa,EAAcb,UAC1BE,EAAKf,aACLe,EAAKwD,UAEd9G,OAAO4D,eAAewB,EAAYhC,EAAKE,EAAK,IAEvC8C,CAAW,EACnB,MAAK,CAEJpC,EAEA/C,EACAC,EAEAG,EACAE,EACAI,EACAS,EACAK,EACAC,EACAoB,EACAC,EACD,GACMgD,GAAwB3F,IAC/B,SAAS4F,IACP,OAAOD,EADmBpG,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,EAEhC,CAKA,SAASsG,EAAUb,EAAac,EAAUC,GACxC,MAAMd,EAAapF,EAAcV,IAAI6F,GAIrC,IAAI/D,EAHuEgE,GACzEe,QAAQC,KAAK,2BAGf,MAAMC,EAAM,GACNC,EAAclB,EAAW,GAC/B,IAAImB,GAAmB,EACvB,MAeMZ,EAAiBW,GAfLjD,IAChBgD,EAAIG,KAAKnD,GACL6C,EACFD,EAASI,EAAII,OAAO,IAGjBrF,IACHA,EAAUoB,QAAQkE,UAAU/B,MAAK,KAC/BvD,OAAU,EACNmF,GACFN,EAASI,EAAII,OAAO,GACtB,IAEJ,IAIF,OADAF,GAAmB,EACZ,KACLA,GAAmB,EACnBZ,GAAgB,CAEpB,CAaA,MCrQMgB,EAAQC,EAAuB,CACnCC,QAAS,CAAC,iBACVC,KAAM,gBACNC,UAAM,IAIKC,EAAa,CACxBC,MAAAN,EAEAX,UAAU5G,GACDK,EAAUkH,GAAO,IAAMvH,EAASuH,KAGzCH,IAAAA,CAAKpH,EAA+BP,GAC9BO,IAASuH,EAAMG,OACjBH,EAAMG,KAAO1H,EACTP,IACF8H,EAAMI,KAAOlI,GAEf8H,EAAME,QAAQL,KAAKpH,GAEvB,EAEA8H,KAAAA,CAAM9H,GACJuH,EAAMG,KAAO1H,EACbuH,EAAME,QAAU,CAACzH,EACnB,EAEA+H,OAAAA,CAAQ/H,GACFuH,EAAME,QAAQlH,OAAS,IACzBgH,EAAME,QAAQF,EAAME,QAAQlH,OAAS,GAAKP,EAC1CuH,EAAMG,KAAO1H,EAEjB,EAEAgI,MAAAA,GACE,GAAIT,EAAME,QAAQlH,OAAS,EAAG,CAC5BgH,EAAME,QAAQQ,MACd,MAAOjI,GAAQuH,EAAME,QAAQS,OAAO,GACpCX,EAAMG,KAAO1H,CAAA,CAEjB,EAEAmI,OAAAA,CAAQnI,GACNuH,EAAMI,KAAO3H,CACf,GChDWoI,EAAW,CACtBC,8BAA+B,gCAE/BC,YAAa,cAEbC,0BAA2B,EAE3BC,SAAQ,WACKC,OAAW,KACbC,QACLD,OAAOE,WAAW,oBAAoBC,SACpC,wDAAwDC,KAAKC,UAAUC,YAO/EC,UAAS,IACAZ,EAASI,YAAcM,UAAUC,UAAUE,cAAcC,SAAS,WAG3EC,KAAAA,GACE,MAAMnJ,EAAK8I,UAAUC,UAAUE,cAE/B,OAAOb,EAASI,aAAexI,EAAGkJ,SAAS,WAAalJ,EAAGkJ,SAAS,QACtE,EAEAE,UAAUpJ,GACDA,EAAIqJ,WAAW,YAAcrJ,EAAIqJ,WAAW,YAGrD9H,QAAWvB,GACFI,MAAMmB,QAAQvB,IAASA,EAAKO,OAAS,EAG9C+I,eAAAA,CAAgBtJ,EAAgBP,EAAeC,GAC7C,GAAI0I,EAASgB,UAAUpJ,GACrB,OAAOuJ,KAAKC,mBAAmBxJ,EAAQP,EAAOC,GAEhD,IAAI+J,EAAazJ,EACZyJ,EAAWP,SAAS,SACvBO,EAAazJ,EAAO0J,WAAW,IAAK,IAAIA,WAAW,IAAK,IACxDD,EAAA,GAAAE,OAAgBF,EAAA,QAEbA,EAAWG,SAAS,OACvBH,EAAA,GAAAE,OAAgBF,EAAA,MAElBF,KAAKM,yBAAyBJ,EAAY/J,GAC1C,MAAMoK,EAAeC,mBAAmBtK,GAExC,MAAO,GAAPkK,OAAUF,EAAA,WAAAE,OAAoBG,EAChC,EAEAN,kBAAAA,CAAmBxJ,EAAgBP,EAAeC,GAChD,IAAK0I,EAASgB,UAAUpJ,GACtB,OAAOuJ,KAAKD,gBAAgBtJ,EAAQP,EAAOC,GAE7C,IAAI+J,EAAazJ,EACZyJ,EAAWG,SAAS,OACvBH,EAAA,GAAAE,OAAgBF,EAAA,MAElBF,KAAKM,yBAAyBJ,EAAY/J,GAC1C,MAAMoK,EAAeC,mBAAmBtK,GAExC,MAAO,GAAPkK,OAAUF,EAAA,WAAAE,OAAoBG,EAChC,EAEAE,KAAU,MAAChK,GACF,IAAIoD,SAAQ3D,IACjBwK,WAAWxK,EAASO,EACtB,IAGFkK,QAAAA,CAASlK,EAAcP,GACrBgJ,OAAO0B,KAAKnK,EAAMP,EAAQ,sBAC5B,EAEAoK,wBAAAA,CAAyB7J,EAAcP,GACrC,IACE2K,aAAaC,QAAQjC,EAASC,8BAA+BiC,KAAKC,UAAU,CAAEC,KAAAxK,EAAMyK,KAAAhL,IACtF,CAAE,MACAsH,QAAQ2D,KAAK,wCACf,CACF,EAEAC,+BAAAA,CAAgC3K,GAC9B,IACE,MAAOP,GAAQO,EAAM4K,MAAM,KAC3BR,aAAaC,QACXjC,EAASC,8BACTiC,KAAKC,UAAU,CAAEC,KAAA/K,EAAMgL,KAAM,YAEjC,CAAE,MACA1D,QAAQ2D,KAAK,gDACf,CACF,EAEAG,2BAAAA,GACE,IACET,aAAaU,WAAW1C,EAASC,8BACnC,CAAE,MACAtB,QAAQ2D,KAAK,2CACf,CACF,EAEAK,wBAAAA,GACE,WACaX,aAAiB,KAC1BA,aAAaC,QAAQjC,EAASE,YAAa,QAE/C,CAAE,MACAvB,QAAQ2D,KAAK,6CACf,CACF,EAEAM,mBAAAA,GAtHF,IAAAhL,EAuHI,MAAMP,EAAa,OAAAO,EAAA4H,EAAWC,MAAMF,WAAjB,EAAA3H,EAAuBiL,OAC1C,IAAKxL,EACH,MAAM,IAAIgC,MAAM,8BAGlB,OAAOhC,CACT,GCpHIyL,EAAQ1D,EAAuB,CACnC2D,eALOC,SAAa,MACnBA,SAASC,SAASnC,SAAS,cAAgBkC,SAASE,SAASpC,SAAS,UAKvEqC,cAAe,GACfC,OAAQ,GACRC,uBAAmB,IAIRC,EAAa,CACxB7D,MAAAqD,EAEAtE,UAAU5G,GACDK,EAAU6K,EAAMM,QAAQ,IAAMxL,EHwOzC,SAAkB+F,EAAaxD,GAC7B,MAAMyD,EAAapF,EAAcV,IAAI6F,GACsCC,GACzEe,QAAQC,KAAK,2BAEf,MAAO7F,EAAQmC,EAAejB,GAAkB2D,EAChD,OAAO3D,EAAelB,EAAQmC,IAAiBf,EACjD,CG/OkDoJ,CAAST,EAAMM,OAAON,EAAMM,OAAOjL,OAAS,OAG5FqL,UAAAA,GACMV,EAAMC,gBAA0B,MAARU,YAAQ,EAAAA,OAAAC,YAAe,MACjDZ,EAAMK,cAAgBM,OAAOC,aAEjC,EAEAC,oBAAAA,CAAqB/L,GACnBkL,EAAMO,kBAAoBzL,CAC5B,EAEAgM,KAAAA,CAAMhM,GACJ,GAAIkL,EAAMC,QAAS,CACjB,MAAM1L,EAAQ,CACZwM,KAAM,QACNxB,KAAMzK,EAAKyK,KACXc,cAAeL,EAAMK,cACrBW,UAAWvK,KAAKwK,MAChBxE,KAAA3H,GAEFkL,EAAMM,OAAOpE,KAAK3H,EAAK,CAE3B,EAEA2M,KAAAA,CAAMpM,GACJ,GAAIkL,EAAMC,QAAS,CACjB,MAAM1L,EAAQ,CACZwM,KAAM,QACNxB,KAAMzK,EAAKyK,KACXc,cAAeL,EAAMK,cACrBW,UAAWvK,KAAKwK,MAChBxE,KAAA3H,GAEFkL,EAAMM,OAAOpE,KAAK3H,EAAK,CAE3B,EAEAiI,IAAAA,CAAK1H,GACH,GAAIkL,EAAMC,QAAS,CACjB,MAAM1L,EAAQ,CACZwM,KAAM,OACNxB,KAAMzK,EAAKyK,KACXc,cAAeL,EAAMK,cACrBW,UAAWvK,KAAKwK,MAChBxE,KAAA3H,GAEFkL,EAAMM,OAAOpE,KAAK3H,EAAK,CAE3B,GCnEII,EAAQ2H,EAAwB,CACpC6E,YAAQ,EACRC,sBAAkB,EAClBC,QAAQ,EACRC,iBAAiB,EACjBC,gBAAgB,EAChBC,cAAc,EACdC,YAAY,IAIDC,EAAc,CACzB/E,MAAAhI,EAEA+G,UAAU5G,GACDK,EAAUR,GAAO,IAAMG,EAASH,KAGzCgN,SAAAA,CAAU7M,GACRH,EAAMwM,OAASrM,CACjB,EAEA8M,mBAAAA,CAAoB9M,GAClBH,EAAMyM,iBAAmBtM,CAC3B,EAEA+M,kBAAAA,CAAmB/M,GACjBH,EAAM2M,gBAAkBxM,CAC1B,EAEAgN,iBAAAA,CAAkBhN,GAChBH,EAAM4M,eAAiBzM,CACzB,EAEAiN,eAAAA,CAAgBjN,GACdH,EAAM6M,aAAe1M,CACvB,EAEAkN,aAAAA,CAAclN,GACZH,EAAM8M,WAAa3M,CACrB,EAEAmN,SAAAA,CAAUnN,GACRH,EAAM0M,OAASvM,CACjB,GC1CIoN,EAAQ5F,EAAuB,CACnC6F,UAAW,GACXC,mBAAe,EACfC,oBAAgB,EAChBC,kBAAc,EACdnB,YAAQ,EACRoB,gBAAgB,EAChBC,gBAAgB,EAChBC,+BAA2B,EAC3BC,kCAA8B,EAC9BC,uBAAmB,EACnBC,sBAAkB,IAIPC,EAAa,CACxBlG,MAAAuF,EAEAxG,UAAU5G,GACDK,EAAU+M,GAAO,IAAMpN,EAASoN,KAGzCY,SAAAA,CAAUhO,GA5BZ,IAAAP,EAAAC,EA6BIgM,EAAWE,aACXgB,EAAYC,UAAU7M,EAAOqM,QAC7BO,EAAYO,UAAUzE,QAAQ1I,EAAOyN,iBACrCb,EAAYI,kBAAkBtE,QAAQ,OAAAjJ,EAAAO,EAAOsN,oBAAP,EAAA7N,EAAsBc,SAC5DqM,EAAYG,mBAAmBrE,QAAQ,OAAAhJ,EAAAM,EAAOuN,qBAAP,EAAA7N,EAAuBa,SAE9D6H,EAAS2C,2BAETpL,OAAOsO,OAAOb,EAAOpN,EACvB,GCtCF,IAAAkO,EAAAvO,OAAA4D,eAAA4K,EAAAxO,OAAAyO,sBAAAC,EAAA1O,OAAAQ,UAAAmO,eAAAC,EAAA5O,OAAAQ,UAAAqO,qBAAAC,EAAAC,CAAA1O,EAAAP,EAAAC,IAAAD,KAAAO,EAAAkO,EAAAlO,EAAAP,EAAA,CAAAyD,YAAA,EAAAC,cAAA,EAAAsD,UAAA,EAAAvE,MAAAxC,IAAAM,EAAAP,GAAAC,EAIA,MAAMiP,EAAU,yCACVC,EAAW,MACXC,EAAc,WAEpB7E,eAAe8E,EAAc9O,EAAkBP,GAC7C,MAAMC,EATRK,EAAAC,EAAAP,KAAA,QAAAC,KAAAD,IAAAA,EAAA,IAAA4O,EAAAvJ,KAAArF,EAAAC,IAAA+O,EAAAzO,EAAAN,EAAAD,EAAAC,IAAA,GAAAyO,EAAA,QAAAzO,KAAAyO,EAAA1O,GAAA8O,EAAAzJ,KAAArF,EAAAC,IAAA+O,EAAAzO,EAAAN,EAAAD,EAAAC,IAAA,OAAAM,CAAA,EASoB+O,CAAA,CAAEC,QAASJ,EAAUK,WAAYJ,GAAgBpP,GAC7DgK,EAAM,IAAIyF,IAAIlP,EAAU2O,GAC9B,OAAAlF,EAAI0F,aAAaC,OAAO,YAAarB,EAAWlG,MAAMwF,WACtD1N,OAAO0P,QAAQ3P,GAAWoD,SAAQoD,IAAkB,IAAhB4D,EAAK/J,GAAKmG,EACxCnG,GACF0J,EAAI0F,aAAaC,OAAOtF,EAAKlI,OAAO7B,GAExC,WACsBuP,MAAM7F,IAEb8F,MACjB,CAGa,MAAAb,EAAe,CAC1B1E,mBAAwB,MAAChK,GAChB8O,EAAc,6BAA8B9O,GAGrDgK,kBAAuB,MAAChK,GACf8O,EAAc,4BAA6B9O,GAGpDgK,oBAAyB,MAAChK,GACjB8O,EAAc,8BAA+B9O,GAGtDgK,eAAoB,MAAChK,GACZ8O,EAAc,yBAA0B9O,GAGjDwP,kBAAkBxP,GACT,GAAP2J,OAAUgF,EAAA,2BAAAhF,OAAiC3J,EAAA,eAAA2J,OAAqBoE,EAAWlG,MAAMwF,UAAA,aAAA1D,OAAqBiF,EAAA,gBAAAjF,OAAuBkF,GAG/HY,iBAAiBzP,GACR,GAAP2J,OAAUgF,EAAA,0BAAAhF,OAAgC3J,EAAA,eAAA2J,OAAqBoE,EAAWlG,MAAMwF,UAAA,aAAA1D,OAAqBiF,EAAA,gBAAAjF,OAAuBkF,IC7ChI,IAAAa,EAAA/P,OAAA4D,eAAAoM,EAAAhQ,OAAAyO,sBAAAwB,EAAAjQ,OAAAQ,UAAAmO,eAAAuB,EAAAlQ,OAAAQ,UAAAqO,qBAAAsB,EAAAnP,CAAAX,EAAAP,EAAAC,IAAAD,KAAAO,EAAA0P,EAAA1P,EAAAP,EAAA,CAAAyD,YAAA,EAAAC,cAAA,EAAAsD,UAAA,EAAAvE,MAAAxC,IAAAM,EAAAP,GAAAC,EAOA,MAAMqQ,EAAW3H,EAASI,WAGpBwH,EAAQxI,EAAyB,CACrCyI,QAAS,CAAEC,SAAU,GAAIC,MAAO,EAAGC,KAAM,GACzCC,OAAQ,CAAEH,SAAU,GAAIC,MAAO,EAAGC,KAAM,GACxCE,kBAAmB,KAIRC,EAAe,CAC1B1I,MAAAmI,EAEA,0BAAMQ,GACJ,MAAQ5C,6BAAA5N,EAA8B2N,0BAAAlO,GAA8BsO,EAAWlG,MAG/E,GACmC,SAAjC7H,GAC+B,QAA9BP,IAAwCO,EAEzC,OAAOgQ,EAAMM,kBAIf,GAAIlI,EAAS7G,QAAQvB,GAA+B,CAElD,MAAMN,EAAS,CAAE+Q,eADMzQ,EAA6B0Q,KAAK,OAEjDR,SAAAzG,SAAmBiF,EAAaiC,eAAejR,GACjDoK,EAAcnK,OAAOiR,OAAOnH,GAClCK,EAAY+G,MAAK,CAAC9Q,EAAGyF,IACJxF,EAA6B8Q,QAAQ/Q,EAAEgR,IACvC/Q,EAA6B8Q,QAAQtL,EAAEuL,MAIxDf,EAAMM,kBAAoBxG,CAAA,KAIvB,CACH,MAAQuC,OAAA3M,EAAQ6M,OAAA9C,GAAWmD,EAAY/E,MACjCiC,EAAe,OAAApK,QAAA,IAAAA,OAAA,EAAAA,EAAQgR,KAAK,KAC5B3Q,EAAaqI,EAAS7G,QAAQ9B,GAC9B+F,EAAS,CACb4K,KAAM,EACNY,KAAMvH,EAAS,eAAY,EAC3B4F,QAASjH,EAASG,0BAClB8D,OAAQvC,EACRxH,QAAS,EACT2O,YAAalR,EAAaN,EAA0BiR,KAAK,UAAO,IAE1DR,SAAAgB,GAAanB,QACXrB,EAAayC,kBAAkB3L,SAC/BkJ,EAAa0C,mBAAmB5L,GAC1CwK,EAAMM,kBAAoB3Q,OAAOiR,OAAOM,EAAQ,CAGlD,OAAOlB,EAAMM,iBACf,EAEA,gBAAMe,CAAWrR,GACf,MAAMP,EArEV6R,EAAAtR,EAAAP,KAAA,QAAAC,KAAAD,IAAAA,EAAA,IAAAmQ,EAAA9K,KAAArF,EAAAC,IAAAoQ,EAAA9P,EAAAN,EAAAD,EAAAC,IAAA,GAAAiQ,EAAA,QAAAjQ,KAAAiQ,EAAAlQ,GAAAoQ,EAAA/K,KAAArF,EAAAC,IAAAoQ,EAAA9P,EAAAN,EAAAD,EAAAC,IAAA,OAAAM,CAAA,EAqE0CuR,CAAA,GAAKvR,IACnC4N,6BAAAlO,EAA8BiO,0BAAAlE,GAA8BsE,EAAWlG,OACvEyI,kBAAAxG,GAAsBkG,EAG9B,GAAkC,QAA9BvG,EACF,OAAOuG,EAAMC,QAIXnG,EAAkBvJ,OACpBd,EAAewR,YAAcnH,EAAkB0H,KAAI7Q,GAAUA,EAAOoQ,KAAIL,KAAK,KACpEtI,EAAS7G,QAAQ7B,KAC1BD,EAAewR,YAAcvR,EAA6BgR,KAAK,MAI7DtI,EAAS7G,QAAQkI,KACnBhK,EAAewR,YAAc,CAACxR,EAAewR,YAAaxH,GACvDgI,OAAO/I,SACPgI,KAAK,MAIN9D,EAAY/E,MAAM0E,SACpB9M,EAAeuR,KAAO,WAGxB,MAAQZ,KAAArQ,EAAMsQ,OAAA7K,GAAWxF,GACjBkQ,SAAUgB,EAAaf,MAAAmB,GAAUvB,QAC/BrB,EAAayC,kBAAkB1R,SAC/BiP,EAAa0C,mBAAmB3R,GACpCiS,EAAW/R,OAAOiR,OAAOM,GACzBS,EAAOnM,EAAS,SAAW,UACjC,OAAAwK,EAAM2B,GAAQ,CACZzB,SAAU,IAAIF,EAAM2B,GAAMzB,YAAawB,GACvCvB,MAAAmB,EACAlB,KAAM,OAAArQ,QAAA,IAAAA,EAAAA,EAAQ,GAGT,CAAEmQ,SAAAwB,EAAUvB,MAAAmB,EACrB,EAEA9B,kBAAkBxP,GACT0O,EAAac,kBAAkBxP,GAGxCyP,iBAAiBzP,GACR0O,EAAae,iBAAiBzP,GAGvC4R,WAAAA,GACE5B,EAAMK,OAAS,CAAEH,SAAU,GAAIC,MAAO,EAAGC,KAAM,EACjD,GC7GIyB,EAAQrK,EAAsB,CAClC2C,MAAM,IAIK2H,EAAY,CACvBjK,MAAAgK,EAEAjL,UAAU5G,GACDK,EAAUwR,GAAO,IAAM7R,EAAS6R,KAGzC7H,KAAU,MAAChK,GACF,IAAIoD,SAAc3D,IACvB,MAAQkN,WAAAjN,EAAYgN,aAAAjD,GAAiBmD,EAAY/E,MAQjD,GAPAO,EAASyC,8BAET+B,EAAYE,oBAAoB,OAAA9M,QAAA,IAAAA,OAAA,EAAAA,EAAS+R,KACzCnF,EAAYC,UAAU,OAAA7M,QAAA,IAAAA,OAAA,EAAAA,EAASqM,QAC/BzE,EAAWE,MAAM,iBAGbpI,GAAc+J,EAChBoI,EAAM1H,MAAO,EACb1K,QAGG,CACH,MAAMqK,EAAWkI,aAAY,KAC3B,MAAMjS,EAAO6M,EAAY/E,MACrB9H,EAAK4M,YAAc5M,EAAK2M,eAC1BuF,cAAcnI,GACd+H,EAAM1H,MAAO,EACb1K,IAEJ,GAAG,IAAG,KAKZyS,KAAAA,GACEL,EAAM1H,MAAO,CACf,GCvDF,IAAAgI,EAAAxS,OAAA4D,eAAA6O,EAAAzS,OAAAyO,sBAAAiE,EAAA1S,OAAAQ,UAAAmO,eAAAgE,EAAA3S,OAAAQ,UAAAqO,qBAAA+D,EAAA7D,CAAA1O,EAAAP,EAAAC,IAAAD,KAAAO,EAAAmS,EAAAnS,EAAAP,EAAA,CAAAyD,YAAA,EAAAC,cAAA,EAAAsD,UAAA,EAAAvE,MAAAxC,IAAAM,EAAAP,GAAAC,EAQA,MAAM8S,EAAQhL,EAAsB,CAClCiL,iBAJc9J,WAAe,KAAeA,WAAW,gCAAgCC,QAI7D,OAAS,UAIxB8J,EAAY,CACvB7K,MAAA2K,EAEA5L,UAAU5G,GACDK,EAAUmS,GAAO,IAAMxS,EAASwS,KAGzCG,cAAAA,CAAe3S,GACb,MAAQyS,UAAAhT,EAAWmT,eAAAlT,GAAmBM,EAElCP,IACF+S,EAAMC,UAAYhT,GAGhBC,IACF8S,EAAMI,eA5BZlT,EAAAM,EAAAP,KAAA,QAAAC,KAAAD,IAAAA,EAAA,IAAA4S,EAAAvN,KAAArF,EAAAC,IAAA6S,EAAAvS,EAAAN,EAAAD,EAAAC,IAAA,GAAA0S,EAAA,QAAA1S,KAAA0S,EAAA3S,GAAA6S,EAAAxN,KAAArF,EAAAC,IAAA6S,EAAAvS,EAAAN,EAAAD,EAAAC,IAAA,OAAAM,CAAA,EA4B6B6S,CAAA,GAAKnT,GAEhC,GC1BIoT,EAAQtL,EAAsB,CAClC2C,MAAM,EACN4I,QAAS,GACTC,QAAS,YAIEC,EAAY,CACvBpL,MAAAiL,EAEAlM,UAAU5G,GACDK,EAAUyS,GAAO,IAAM9S,EAAS8S,KAGzCI,SAAAA,CAAUlT,EAAoCP,GAC5CqT,EAAM3I,MAAO,EACb2I,EAAMC,QAAU/S,EAChB8S,EAAME,QAAUvT,CAClB,EAEA0T,UAAAA,GACEL,EAAM3I,MAAO,CACf,E,gECfW,MAAA6F,EACJoD,WAAAA,CAAYpT,GAenB,KAAOqT,UAAY5T,EAAAA,GAAU0K,KAE7B,KAAOmJ,WAAa7T,EAAAA,GAAUyS,MAE9B,KAAOqB,eAAiB9T,EAAAA,GAAUmH,UAElC,KAAO4M,SAAWjM,EAAAA,UAAUoL,eApB1BpL,EAAAA,UAAUoL,eAAe3S,GACzB8J,EAAAA,WAAWkE,UAAUhO,GACrBuJ,KAAKkK,QACP,CAEA,YAAcA,GACZ,UAAWhL,OAAW,IAAa,OACpB,+BACb,MAAMzI,EAAQ0T,SAASC,cAAc,aACrCD,SAASE,KAAKC,sBAAsB,YAAa7T,GACjDyJ,EAAAA,YAAYyD,eAAc,EAAI,CAElC,E","sources":["../node_modules/proxy-compare/src/index.ts","../node_modules/valtio/esm/vanilla.mjs","../node_modules/@walletconnect/modal-core/src/controllers/RouterCtrl.ts","../node_modules/@walletconnect/modal-core/src/utils/CoreUtil.ts","../node_modules/@walletconnect/modal-core/src/controllers/EventsCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/OptionsCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/ConfigCtrl.ts","../node_modules/@walletconnect/modal-core/src/utils/ExplorerUtil.ts","../node_modules/@walletconnect/modal-core/src/controllers/ExplorerCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/ModalCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/ThemeCtrl.ts","../node_modules/@walletconnect/modal-core/src/controllers/ToastCtrl.ts","../node_modules/@walletconnect/modal/src/client.ts"],"sourcesContent":["// symbols\nconst TRACK_MEMO_SYMBOL = Symbol();\nconst GET_ORIGINAL_SYMBOL = Symbol();\n\n// properties\nconst AFFECTED_PROPERTY = 'a';\nconst IS_TARGET_COPIED_PROPERTY = 'f';\nconst PROXY_PROPERTY = 'p';\nconst PROXY_CACHE_PROPERTY = 'c';\nconst TARGET_CACHE_PROPERTY = 't';\nconst NEXT_OBJECT_PROPERTY = 'n';\nconst CHANGED_PROPERTY = 'g';\nconst HAS_KEY_PROPERTY = 'h';\nconst ALL_OWN_KEYS_PROPERTY = 'w';\nconst HAS_OWN_KEY_PROPERTY = 'o';\nconst KEYS_PROPERTY = 'k';\n\n// function to create a new bare proxy\nlet newProxy = (\n target: T,\n handler: ProxyHandler,\n) => new Proxy(target, handler);\n\n// get object prototype\nconst getProto = Object.getPrototypeOf;\n\nconst objectsToTrack = new WeakMap();\n\n// check if obj is a plain object or an array\nconst isObjectToTrack = (obj: T): obj is T extends object ? T : never => (\n obj && (objectsToTrack.has(obj as unknown as object)\n ? objectsToTrack.get(obj as unknown as object) as boolean\n : (getProto(obj) === Object.prototype || getProto(obj) === Array.prototype)\n )\n);\n\n// check if it is object\nconst isObject = (x: unknown): x is object => (\n typeof x === 'object' && x !== null\n);\n\n// Properties that are both non-configurable and non-writable will break\n// the proxy get trap when we try to return a recursive/child compare proxy\n// from them. We can avoid this by making a copy of the target object with\n// all descriptors marked as configurable, see `copyTargetObject`.\n// See: https://github.com/dai-shi/proxy-compare/pull/8\nconst needsToCopyTargetObject = (obj: object) => (\n Object.values(Object.getOwnPropertyDescriptors(obj)).some(\n (descriptor) => !descriptor.configurable && !descriptor.writable,\n )\n);\n\n// Make a copy with all descriptors marked as configurable.\nconst copyTargetObject = (obj: T): T => {\n if (Array.isArray(obj)) {\n // Arrays need a special way to copy\n return Array.from(obj) as T;\n }\n // For non-array objects, we create a new object keeping the prototype\n // with changing all configurable options (otherwise, proxies will complain)\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n Object.values(descriptors).forEach((desc) => { desc.configurable = true; });\n return Object.create(getProto(obj), descriptors);\n};\n\ntype HasKeySet = Set\ntype HasOwnKeySet = Set\ntype KeysSet = Set\ntype Used = {\n [HAS_KEY_PROPERTY]?: HasKeySet;\n [ALL_OWN_KEYS_PROPERTY]?: true;\n [HAS_OWN_KEY_PROPERTY]?: HasOwnKeySet;\n [KEYS_PROPERTY]?: KeysSet;\n};\ntype Affected = WeakMap;\ntype ProxyHandlerState = {\n readonly [IS_TARGET_COPIED_PROPERTY]: boolean;\n [PROXY_PROPERTY]?: T;\n [PROXY_CACHE_PROPERTY]?: ProxyCache | undefined;\n [TARGET_CACHE_PROPERTY]?: TargetCache | undefined;\n [AFFECTED_PROPERTY]?: Affected;\n}\ntype ProxyCache = WeakMap<\n object,\n readonly [ProxyHandler, ProxyHandlerState]\n>;\ntype TargetCache = WeakMap<\n object,\n readonly [target: T, copiedTarget?: T]\n>;\n\nconst createProxyHandler = (origObj: T, isTargetCopied: boolean) => {\n const state: ProxyHandlerState = {\n [IS_TARGET_COPIED_PROPERTY]: isTargetCopied,\n };\n let trackObject = false; // for trackMemo\n const recordUsage = (\n type:\n | typeof HAS_KEY_PROPERTY\n | typeof ALL_OWN_KEYS_PROPERTY\n | typeof HAS_OWN_KEY_PROPERTY\n | typeof KEYS_PROPERTY,\n key?: string | symbol,\n ) => {\n if (!trackObject) {\n let used = (state[AFFECTED_PROPERTY] as Affected).get(origObj);\n if (!used) {\n used = {};\n (state[AFFECTED_PROPERTY] as Affected).set(origObj, used);\n }\n if (type === ALL_OWN_KEYS_PROPERTY) {\n used[ALL_OWN_KEYS_PROPERTY] = true;\n } else {\n let set = used[type];\n if (!set) {\n set = new Set();\n used[type] = set;\n }\n set.add(key as string | symbol);\n }\n }\n };\n const recordObjectAsUsed = () => {\n trackObject = true;\n (state[AFFECTED_PROPERTY] as Affected).delete(origObj);\n };\n const handler: ProxyHandler = {\n get(target, key) {\n if (key === GET_ORIGINAL_SYMBOL) {\n return origObj;\n }\n recordUsage(KEYS_PROPERTY, key);\n return createProxy(\n Reflect.get(target, key),\n (state[AFFECTED_PROPERTY] as Affected),\n state[PROXY_CACHE_PROPERTY],\n state[TARGET_CACHE_PROPERTY],\n );\n },\n has(target, key) {\n if (key === TRACK_MEMO_SYMBOL) {\n recordObjectAsUsed();\n return true;\n }\n recordUsage(HAS_KEY_PROPERTY, key);\n return Reflect.has(target, key);\n },\n getOwnPropertyDescriptor(target, key) {\n recordUsage(HAS_OWN_KEY_PROPERTY, key);\n return Reflect.getOwnPropertyDescriptor(target, key);\n },\n ownKeys(target) {\n recordUsage(ALL_OWN_KEYS_PROPERTY);\n return Reflect.ownKeys(target);\n },\n };\n if (isTargetCopied) {\n handler.set = handler.deleteProperty = () => false;\n }\n return [handler, state] as const;\n};\n\nconst getOriginalObject = (obj: T) => (\n // unwrap proxy\n (obj as { [GET_ORIGINAL_SYMBOL]?: typeof obj })[GET_ORIGINAL_SYMBOL]\n // otherwise\n || obj\n);\n\n/**\n * Create a proxy.\n *\n * This function will create a proxy at top level and proxy nested objects as you access them,\n * in order to keep track of which properties were accessed via get/has proxy handlers:\n *\n * NOTE: Printing of WeakMap is hard to inspect and not very readable\n * for this purpose you can use the `affectedToPathList` helper.\n *\n * @param {object} obj - Object that will be wrapped on the proxy.\n * @param {WeakMap} affected -\n * WeakMap that will hold the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [proxyCache] -\n * WeakMap that will help keep referential identity for proxies.\n * @returns {Proxy} - Object wrapped in a proxy.\n *\n * @example\n * import { createProxy } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n * const proxy = createProxy(original, affected);\n *\n * proxy.a // Will mark as used and track its value.\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"a\"\n *\n * proxy.d // Will mark \"d\" as accessed to track and proxy itself ({ e: \"3\" }).\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"d\"\n */\nexport const createProxy = (\n obj: T,\n affected: WeakMap,\n proxyCache?: WeakMap,\n targetCache?: WeakMap,\n): T => {\n if (!isObjectToTrack(obj)) return obj;\n let targetAndCopied = (\n targetCache && (targetCache as TargetCache).get(obj)\n );\n if (!targetAndCopied) {\n const target = getOriginalObject(obj);\n if (needsToCopyTargetObject(target)) {\n targetAndCopied = [target, copyTargetObject(target)];\n } else {\n targetAndCopied = [target];\n }\n targetCache?.set(obj, targetAndCopied);\n }\n const [target, copiedTarget] = targetAndCopied;\n let handlerAndState = (\n proxyCache && (proxyCache as ProxyCache).get(target)\n );\n if (\n !handlerAndState\n || handlerAndState[1][IS_TARGET_COPIED_PROPERTY] !== !!copiedTarget\n ) {\n handlerAndState = createProxyHandler(target, !!copiedTarget);\n handlerAndState[1][PROXY_PROPERTY] = newProxy(\n copiedTarget || target,\n handlerAndState[0],\n );\n if (proxyCache) {\n proxyCache.set(target, handlerAndState);\n }\n }\n handlerAndState[1][AFFECTED_PROPERTY] = affected as Affected;\n handlerAndState[1][PROXY_CACHE_PROPERTY] = proxyCache as ProxyCache | undefined;\n handlerAndState[1][TARGET_CACHE_PROPERTY] = targetCache as TargetCache | undefined;\n return handlerAndState[1][PROXY_PROPERTY] as typeof target;\n};\n\nconst isAllOwnKeysChanged = (prevObj: object, nextObj: object) => {\n const prevKeys = Reflect.ownKeys(prevObj);\n const nextKeys = Reflect.ownKeys(nextObj);\n return prevKeys.length !== nextKeys.length\n || prevKeys.some((k, i) => k !== nextKeys[i]);\n};\n\ntype ChangedCache = WeakMap;\n\n/**\n * Compare changes on objects.\n *\n * This will compare the affected properties on tracked objects inside the proxy\n * to check if there were any changes made to it,\n * by default if no property was accessed on the proxy it will attempt to do a\n * reference equality check for the objects provided (Object.is(a, b)). If you access a property\n * on the proxy, then isChanged will only compare the affected properties.\n *\n * @param {object} prevObj - The previous object to compare.\n * @param {object} nextObj - Object to compare with the previous one.\n * @param {WeakMap} affected -\n * WeakMap that holds the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap} [cache] -\n * WeakMap that holds a cache of the comparisons for better performance with repetitive comparisons,\n * and to avoid infinite loop with circular structures.\n * @returns {boolean} - Boolean indicating if the affected property on the object has changed.\n *\n * @example\n * import { createProxy, isChanged } from 'proxy-compare';\n *\n * const obj = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(obj, affected);\n *\n * proxy.a\n *\n * isChanged(obj, { a: \"1\" }, affected) // false\n *\n * proxy.a = \"2\"\n *\n * isChanged(obj, { a: \"1\" }, affected) // true\n */\n\nexport const isChanged = (\n prevObj: unknown,\n nextObj: unknown,\n affected: WeakMap,\n cache?: WeakMap,\n): boolean => {\n if (Object.is(prevObj, nextObj)) {\n return false;\n }\n if (!isObject(prevObj) || !isObject(nextObj)) return true;\n const used = (affected as Affected).get(getOriginalObject(prevObj));\n if (!used) return true;\n if (cache) {\n const hit = (cache as ChangedCache).get(prevObj);\n if (hit && hit[NEXT_OBJECT_PROPERTY] === nextObj) {\n return hit[CHANGED_PROPERTY];\n }\n // for object with cycles\n (cache as ChangedCache).set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: false,\n });\n }\n let changed: boolean | null = null;\n try {\n for (const key of used[HAS_KEY_PROPERTY] || []) {\n changed = Reflect.has(prevObj, key) !== Reflect.has(nextObj, key);\n if (changed) return changed;\n }\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n changed = isAllOwnKeysChanged(prevObj, nextObj);\n if (changed) return changed;\n } else {\n for (const key of used[HAS_OWN_KEY_PROPERTY] || []) {\n const hasPrev = !!Reflect.getOwnPropertyDescriptor(prevObj, key);\n const hasNext = !!Reflect.getOwnPropertyDescriptor(nextObj, key);\n changed = hasPrev !== hasNext;\n if (changed) return changed;\n }\n }\n for (const key of used[KEYS_PROPERTY] || []) {\n changed = isChanged(\n (prevObj as any)[key],\n (nextObj as any)[key],\n affected,\n cache,\n );\n if (changed) return changed;\n }\n if (changed === null) changed = true;\n return changed;\n } finally {\n if (cache) {\n cache.set(prevObj, {\n [NEXT_OBJECT_PROPERTY]: nextObj,\n [CHANGED_PROPERTY]: changed,\n });\n }\n }\n};\n\n// explicitly track object with memo\nexport const trackMemo = (obj: unknown) => {\n if (isObjectToTrack(obj)) {\n return TRACK_MEMO_SYMBOL in obj;\n }\n return false;\n};\n\n/**\n * Unwrap proxy to get the original object.\n *\n * Used to retrieve the original object used to create the proxy instance with `createProxy`.\n *\n * @param {Proxy} obj - The proxy wrapper of the originial object.\n * @returns {object | null} - Return either the unwrapped object if exists.\n *\n * @example\n * import { createProxy, getUntracked } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n * const originalFromProxy = getUntracked(proxy)\n *\n * Object.is(original, originalFromProxy) // true\n * isChanged(original, originalFromProxy, affected) // false\n */\nexport const getUntracked = (obj: T): T | null => {\n if (isObjectToTrack(obj)) {\n return (obj as { [GET_ORIGINAL_SYMBOL]?: T })[GET_ORIGINAL_SYMBOL] || null;\n }\n return null;\n};\n\n/**\n * Mark object to be tracked.\n *\n * This function marks an object that will be passed into `createProxy`\n * as marked to track or not. By default only Array and Object are marked to track,\n * so this is useful for example to mark a class instance to track or to mark a object\n * to be untracked when creating your proxy.\n *\n * @param obj - Object to mark as tracked or not.\n * @param mark - Boolean indicating whether you want to track this object or not.\n * @returns - No return.\n *\n * @example\n * import { createProxy, markToTrack, isChanged } from 'proxy-compare';\n *\n * const nested = { e: \"3\" }\n *\n * markToTrack(nested, false)\n *\n * const original = { a: \"1\", c: \"2\", d: nested };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n *\n * proxy.d.e\n *\n * isChanged(original, { d: { e: \"3\" } }, affected) // true\n */\nexport const markToTrack = (obj: object, mark = true) => {\n objectsToTrack.set(obj, mark);\n};\n\n/**\n * Convert `affected` to path list\n *\n * `affected` is a weak map which is not printable.\n * This function is can convert it to printable path list.\n * It's for debugging purpose.\n *\n * @param obj - An object that is used with `createProxy`.\n * @param affected - A weak map that is used with `createProxy`.\n * @param onlyWithValues - An optional boolean to exclude object getters.\n * @returns - An array of paths.\n */\nexport const affectedToPathList = (\n obj: unknown,\n affected: WeakMap,\n onlyWithValues?: boolean,\n) => {\n const list: (string | symbol)[][] = [];\n const seen = new WeakSet();\n const walk = (x: unknown, path?: (string | symbol)[]) => {\n if (seen.has(x as object)) {\n // for object with cycles\n return;\n }\n if (isObject(x)) {\n seen.add(x);\n }\n const used = isObject(x) && (affected as Affected).get(getOriginalObject(x));\n if (used) {\n used[HAS_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:has(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n const segment = ':ownKeys';\n list.push(path ? [...path, segment] : [segment]);\n } else {\n used[HAS_OWN_KEY_PROPERTY]?.forEach((key) => {\n const segment = `:hasOwn(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n }\n used[KEYS_PROPERTY]?.forEach((key) => {\n if (!onlyWithValues || 'value' in (Object.getOwnPropertyDescriptor(x, key) || {})) {\n walk((x as any)[key], path ? [...path, key] : [key]);\n }\n });\n } else if (path) {\n list.push(path);\n }\n };\n walk(obj);\n return list;\n};\n\n/**\n * replace newProxy function.\n *\n * This can be used if you want to use proxy-polyfill.\n * Note that proxy-polyfill can't polyfill everything.\n * Use it at your own risk.\n */\nexport const replaceNewProxy = (fn: typeof newProxy) => {\n newProxy = fn;\n};\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\nconst isObject = (x) => typeof x === \"object\" && x !== null;\nconst proxyStateMap = /* @__PURE__ */ new WeakMap();\nconst refSet = /* @__PURE__ */ new WeakSet();\nconst buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer), defaultHandlePromise = (promise) => {\n switch (promise.status) {\n case \"fulfilled\":\n return promise.value;\n case \"rejected\":\n throw promise.reason;\n default:\n throw promise;\n }\n}, snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version, handlePromise = defaultHandlePromise) => {\n const cache = snapCache.get(target);\n if ((cache == null ? void 0 : cache[0]) === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n if (Object.getOwnPropertyDescriptor(snap, key)) {\n return;\n }\n const value = Reflect.get(target, key);\n const desc = {\n value,\n enumerable: true,\n // This is intentional to avoid copying with proxy-compare.\n // It's still non-writable, so it avoids assigning a value.\n configurable: true\n };\n if (refSet.has(value)) {\n markToTrack(value, false);\n } else if (value instanceof Promise) {\n delete desc.value;\n desc.get = () => handlePromise(value);\n } else if (proxyStateMap.has(value)) {\n const [target2, ensureVersion] = proxyStateMap.get(\n value\n );\n desc.value = createSnapshot(\n target2,\n ensureVersion(),\n handlePromise\n );\n }\n Object.defineProperty(snap, key, desc);\n });\n return Object.preventExtensions(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n var _a;\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n (_a = entry[1]) == null ? void 0 : _a.call(entry);\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (value instanceof Promise) {\n value.then((v) => {\n value.status = \"fulfilled\";\n value.value = v;\n notifyUpdate([\"resolve\", [prop], v]);\n }).catch((e) => {\n value.status = \"rejected\";\n value.reason = e;\n notifyUpdate([\"reject\", [prop], e]);\n });\n } else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxyFunction(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [\n baseObject,\n ensureVersion,\n createSnapshot,\n addListener\n ];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(\n initialObject,\n key\n );\n if (\"value\" in desc) {\n proxyObject[key] = initialObject[key];\n delete desc.value;\n delete desc.writable;\n }\n Object.defineProperty(baseObject, key, desc);\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n defaultHandlePromise,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nconst [defaultProxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return defaultProxyFunction(initialObject);\n}\nfunction getVersion(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n return proxyState == null ? void 0 : proxyState[1]();\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject, handlePromise) {\n const proxyState = proxyStateMap.get(proxyObject);\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\" && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion(), handlePromise);\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\nconst unstable_buildProxyFunction = buildProxyFunction;\n\nexport { getVersion, proxy, ref, snapshot, subscribe, unstable_buildProxyFunction };\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { RouterCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n history: ['ConnectWallet'],\n view: 'ConnectWallet',\n data: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const RouterCtrl = {\n state,\n\n subscribe(callback: (newState: RouterCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n push(view: RouterCtrlState['view'], data?: RouterCtrlState['data']) {\n if (view !== state.view) {\n state.view = view\n if (data) {\n state.data = data\n }\n state.history.push(view)\n }\n },\n\n reset(view: RouterCtrlState['view']) {\n state.view = view\n state.history = [view]\n },\n\n replace(view: RouterCtrlState['view']) {\n if (state.history.length > 1) {\n state.history[state.history.length - 1] = view\n state.view = view\n }\n },\n\n goBack() {\n if (state.history.length > 1) {\n state.history.pop()\n const [last] = state.history.slice(-1)\n state.view = last\n }\n },\n\n setData(data: RouterCtrlState['data']) {\n state.data = data\n }\n}\n","import { RouterCtrl } from '../controllers/RouterCtrl'\n\nexport const CoreUtil = {\n WALLETCONNECT_DEEPLINK_CHOICE: 'WALLETCONNECT_DEEPLINK_CHOICE',\n\n WCM_VERSION: 'WCM_VERSION',\n\n RECOMMENDED_WALLET_AMOUNT: 9,\n\n isMobile() {\n if (typeof window !== 'undefined') {\n return Boolean(\n window.matchMedia('(pointer:coarse)').matches ||\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|Opera Mini/u.test(navigator.userAgent)\n )\n }\n\n return false\n },\n\n isAndroid() {\n return CoreUtil.isMobile() && navigator.userAgent.toLowerCase().includes('android')\n },\n\n isIos() {\n const ua = navigator.userAgent.toLowerCase()\n\n return CoreUtil.isMobile() && (ua.includes('iphone') || ua.includes('ipad'))\n },\n\n isHttpUrl(url: string) {\n return url.startsWith('http://') || url.startsWith('https://')\n },\n\n isArray(data?: T | T[]): data is T[] {\n return Array.isArray(data) && data.length > 0\n },\n\n formatNativeUrl(appUrl: string, wcUri: string, name: string): string {\n if (CoreUtil.isHttpUrl(appUrl)) {\n return this.formatUniversalUrl(appUrl, wcUri, name)\n }\n let safeAppUrl = appUrl\n if (!safeAppUrl.includes('://')) {\n safeAppUrl = appUrl.replaceAll('/', '').replaceAll(':', '')\n safeAppUrl = `${safeAppUrl}://`\n }\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`\n }\n this.setWalletConnectDeepLink(safeAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`\n },\n\n formatUniversalUrl(appUrl: string, wcUri: string, name: string): string {\n if (!CoreUtil.isHttpUrl(appUrl)) {\n return this.formatNativeUrl(appUrl, wcUri, name)\n }\n let safeAppUrl = appUrl\n if (!safeAppUrl.endsWith('/')) {\n safeAppUrl = `${safeAppUrl}/`\n }\n this.setWalletConnectDeepLink(safeAppUrl, name)\n const encodedWcUrl = encodeURIComponent(wcUri)\n\n return `${safeAppUrl}wc?uri=${encodedWcUrl}`\n },\n\n async wait(miliseconds: number) {\n return new Promise(resolve => {\n setTimeout(resolve, miliseconds)\n })\n },\n\n openHref(href: string, target: '_blank' | '_self') {\n window.open(href, target, 'noreferrer noopener')\n },\n\n setWalletConnectDeepLink(href: string, name: string) {\n try {\n localStorage.setItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE, JSON.stringify({ href, name }))\n } catch {\n console.info('Unable to set WalletConnect deep link')\n }\n },\n\n setWalletConnectAndroidDeepLink(wcUri: string) {\n try {\n const [href] = wcUri.split('?')\n localStorage.setItem(\n CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE,\n JSON.stringify({ href, name: 'Android' })\n )\n } catch {\n console.info('Unable to set WalletConnect android deep link')\n }\n },\n\n removeWalletConnectDeepLink() {\n try {\n localStorage.removeItem(CoreUtil.WALLETCONNECT_DEEPLINK_CHOICE)\n } catch {\n console.info('Unable to remove WalletConnect deep link')\n }\n },\n\n setModalVersionInStorage() {\n try {\n if (typeof localStorage !== 'undefined') {\n localStorage.setItem(CoreUtil.WCM_VERSION, process.env.ROLLUP_WCM_VERSION ?? 'UNKNOWN')\n }\n } catch {\n console.info('Unable to set Web3Modal version in storage')\n }\n },\n\n getWalletRouterData() {\n const routerData = RouterCtrl.state.data?.Wallet\n if (!routerData) {\n throw new Error('Missing \"Wallet\" view data')\n }\n\n return routerData\n }\n}\n","import { proxy, snapshot, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { EventsCtrlState, ModalEvent, ModalEventData } from '../types/controllerTypes'\n\n// -- helpers ------------------------------------------------------ //\nconst isEnabled =\n typeof location !== 'undefined' &&\n (location.hostname.includes('localhost') || location.protocol.includes('https'))\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n enabled: isEnabled,\n userSessionId: '',\n events: [],\n connectedWalletId: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const EventsCtrl = {\n state,\n\n subscribe(callback: (newEvent: ModalEvent) => void) {\n return valtioSub(state.events, () => callback(snapshot(state.events[state.events.length - 1])))\n },\n\n initialize() {\n if (state.enabled && typeof crypto?.randomUUID !== 'undefined') {\n state.userSessionId = crypto.randomUUID()\n }\n },\n\n setConnectedWalletId(connectedWalletId: EventsCtrlState['connectedWalletId']) {\n state.connectedWalletId = connectedWalletId\n },\n\n click(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'CLICK' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n },\n\n track(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'TRACK' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n },\n\n view(data: ModalEventData) {\n if (state.enabled) {\n const event = {\n type: 'VIEW' as const,\n name: data.name,\n userSessionId: state.userSessionId,\n timestamp: Date.now(),\n data\n }\n state.events.push(event)\n }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { OptionsCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n chains: undefined,\n walletConnectUri: undefined,\n isAuth: false,\n isCustomDesktop: false,\n isCustomMobile: false,\n isDataLoaded: false,\n isUiLoaded: false\n})\n\n// -- controller --------------------------------------------------- //\nexport const OptionsCtrl = {\n state,\n\n subscribe(callback: (newState: OptionsCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setChains(chains: OptionsCtrlState['chains']) {\n state.chains = chains\n },\n\n setWalletConnectUri(walletConnectUri: OptionsCtrlState['walletConnectUri']) {\n state.walletConnectUri = walletConnectUri\n },\n\n setIsCustomDesktop(isCustomDesktop: OptionsCtrlState['isCustomDesktop']) {\n state.isCustomDesktop = isCustomDesktop\n },\n\n setIsCustomMobile(isCustomMobile: OptionsCtrlState['isCustomMobile']) {\n state.isCustomMobile = isCustomMobile\n },\n\n setIsDataLoaded(isDataLoaded: OptionsCtrlState['isDataLoaded']) {\n state.isDataLoaded = isDataLoaded\n },\n\n setIsUiLoaded(isUiLoaded: OptionsCtrlState['isUiLoaded']) {\n state.isUiLoaded = isUiLoaded\n },\n\n setIsAuth(isAuth: OptionsCtrlState['isAuth']) {\n state.isAuth = isAuth\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ConfigCtrlState } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { EventsCtrl } from './EventsCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst state = proxy({\n projectId: '',\n mobileWallets: undefined,\n desktopWallets: undefined,\n walletImages: undefined,\n chains: undefined,\n enableAuthMode: false,\n enableExplorer: true,\n explorerExcludedWalletIds: undefined,\n explorerRecommendedWalletIds: undefined,\n termsOfServiceUrl: undefined,\n privacyPolicyUrl: undefined\n})\n\n// -- controller --------------------------------------------------- //\nexport const ConfigCtrl = {\n state,\n\n subscribe(callback: (newState: ConfigCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setConfig(config: ConfigCtrlState) {\n EventsCtrl.initialize()\n OptionsCtrl.setChains(config.chains)\n OptionsCtrl.setIsAuth(Boolean(config.enableAuthMode))\n OptionsCtrl.setIsCustomMobile(Boolean(config.mobileWallets?.length))\n OptionsCtrl.setIsCustomDesktop(Boolean(config.desktopWallets?.length))\n\n CoreUtil.setModalVersionInStorage()\n\n Object.assign(state, config)\n }\n}\n","import { ConfigCtrl } from '../controllers/ConfigCtrl'\nimport type { ListingParams, ListingResponse } from '../types/controllerTypes'\n\n// -- Helpers -------------------------------------------------------\nconst W3M_API = 'https://explorer-api.walletconnect.com'\nconst SDK_TYPE = 'wcm'\nconst SDK_VERSION = `js-${process.env.ROLLUP_WCM_VERSION}`\n\nasync function fetchListings(endpoint: string, params: ListingParams) {\n const allParams = { sdkType: SDK_TYPE, sdkVersion: SDK_VERSION, ...params }\n const url = new URL(endpoint, W3M_API)\n url.searchParams.append('projectId', ConfigCtrl.state.projectId)\n Object.entries(allParams).forEach(([key, value]) => {\n if (value) {\n url.searchParams.append(key, String(value))\n }\n })\n const request = await fetch(url)\n\n return request.json() as Promise\n}\n\n// -- Utility -------------------------------------------------------\nexport const ExplorerUtil = {\n async getDesktopListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getDesktopListings', params)\n },\n\n async getMobileListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getMobileListings', params)\n },\n\n async getInjectedListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getInjectedListings', params)\n },\n\n async getAllListings(params: ListingParams) {\n return fetchListings('/w3m/v1/getAllListings', params)\n },\n\n getWalletImageUrl(imageId: string) {\n return `${W3M_API}/w3m/v1/getWalletImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`\n },\n\n getAssetImageUrl(imageId: string) {\n return `${W3M_API}/w3m/v1/getAssetImage/${imageId}?projectId=${ConfigCtrl.state.projectId}&sdkType=${SDK_TYPE}&sdkVersion=${SDK_VERSION}`\n }\n}\n","import { proxy } from 'valtio/vanilla'\nimport type { ExplorerCtrlState, ListingParams } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { ExplorerUtil } from '../utils/ExplorerUtil'\nimport { ConfigCtrl } from './ConfigCtrl'\nimport { OptionsCtrl } from './OptionsCtrl'\n\nconst isMobile = CoreUtil.isMobile()\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n wallets: { listings: [], total: 0, page: 1 },\n search: { listings: [], total: 0, page: 1 },\n recomendedWallets: []\n})\n\n// -- controller --------------------------------------------------- //\nexport const ExplorerCtrl = {\n state,\n\n async getRecomendedWallets() {\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state\n\n // Don't fetch recomended wallets\n if (\n explorerRecommendedWalletIds === 'NONE' ||\n (explorerExcludedWalletIds === 'ALL' && !explorerRecommendedWalletIds)\n ) {\n return state.recomendedWallets\n }\n\n // Fetch only recomended wallets defined in config\n if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n const recommendedIds = explorerRecommendedWalletIds.join(',')\n const params = { recommendedIds }\n const { listings } = await ExplorerUtil.getAllListings(params)\n const listingsArr = Object.values(listings)\n listingsArr.sort((a, b) => {\n const aIndex = explorerRecommendedWalletIds.indexOf(a.id)\n const bIndex = explorerRecommendedWalletIds.indexOf(b.id)\n\n return aIndex - bIndex\n })\n state.recomendedWallets = listingsArr\n }\n\n // Fetch default recomended wallets based on user's device, options and excluded config\n else {\n const { chains, isAuth } = OptionsCtrl.state\n const chainsFilter = chains?.join(',')\n const isExcluded = CoreUtil.isArray(explorerExcludedWalletIds)\n const params = {\n page: 1,\n sdks: isAuth ? 'auth_v1' : undefined,\n entries: CoreUtil.RECOMMENDED_WALLET_AMOUNT,\n chains: chainsFilter,\n version: 2,\n excludedIds: isExcluded ? explorerExcludedWalletIds.join(',') : undefined\n }\n const { listings } = isMobile\n ? await ExplorerUtil.getMobileListings(params)\n : await ExplorerUtil.getDesktopListings(params)\n state.recomendedWallets = Object.values(listings)\n }\n\n return state.recomendedWallets\n },\n\n async getWallets(params: ListingParams) {\n const extendedParams: ListingParams = { ...params }\n const { explorerRecommendedWalletIds, explorerExcludedWalletIds } = ConfigCtrl.state\n const { recomendedWallets } = state\n\n // Don't fetch any wallets if all are excluded\n if (explorerExcludedWalletIds === 'ALL') {\n return state.wallets\n }\n\n // Don't fetch recomended wallets, as we already have these\n if (recomendedWallets.length) {\n extendedParams.excludedIds = recomendedWallets.map(wallet => wallet.id).join(',')\n } else if (CoreUtil.isArray(explorerRecommendedWalletIds)) {\n extendedParams.excludedIds = explorerRecommendedWalletIds.join(',')\n }\n\n // Don't fetch user defined excluded wallets & recomended wallets\n if (CoreUtil.isArray(explorerExcludedWalletIds)) {\n extendedParams.excludedIds = [extendedParams.excludedIds, explorerExcludedWalletIds]\n .filter(Boolean)\n .join(',')\n }\n\n // Fetch only auth wallets\n if (OptionsCtrl.state.isAuth) {\n extendedParams.sdks = 'auth_v1'\n }\n\n const { page, search } = params\n const { listings: listingsObj, total } = isMobile\n ? await ExplorerUtil.getMobileListings(extendedParams)\n : await ExplorerUtil.getDesktopListings(extendedParams)\n const listings = Object.values(listingsObj)\n const type = search ? 'search' : 'wallets'\n state[type] = {\n listings: [...state[type].listings, ...listings],\n total,\n page: page ?? 1\n }\n\n return { listings, total }\n },\n\n getWalletImageUrl(imageId: string) {\n return ExplorerUtil.getWalletImageUrl(imageId)\n },\n\n getAssetImageUrl(imageId: string) {\n return ExplorerUtil.getAssetImageUrl(imageId)\n },\n\n resetSearch() {\n state.search = { listings: [], total: 0, page: 1 }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ModalCtrlState } from '../types/controllerTypes'\nimport { CoreUtil } from '../utils/CoreUtil'\nimport { OptionsCtrl } from './OptionsCtrl'\nimport { RouterCtrl } from './RouterCtrl'\n\n// -- types -------------------------------------------------------- //\nexport interface OpenOptions {\n uri: string\n chains?: string[]\n}\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n open: false\n})\n\n// -- controller --------------------------------------------------- //\nexport const ModalCtrl = {\n state,\n\n subscribe(callback: (newState: ModalCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n async open(options?: OpenOptions) {\n return new Promise(resolve => {\n const { isUiLoaded, isDataLoaded } = OptionsCtrl.state\n CoreUtil.removeWalletConnectDeepLink()\n\n OptionsCtrl.setWalletConnectUri(options?.uri)\n OptionsCtrl.setChains(options?.chains)\n RouterCtrl.reset('ConnectWallet')\n\n // Open modal if essential async data is ready\n if (isUiLoaded && isDataLoaded) {\n state.open = true\n resolve()\n }\n // Otherwise (slow network) re-attempt open checks\n else {\n const interval = setInterval(() => {\n const opts = OptionsCtrl.state\n if (opts.isUiLoaded && opts.isDataLoaded) {\n clearInterval(interval)\n state.open = true\n resolve()\n }\n }, 200)\n }\n })\n },\n\n close() {\n state.open = false\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ThemeCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nfunction isDarkMode() {\n return typeof matchMedia !== 'undefined' && matchMedia('(prefers-color-scheme: dark)').matches\n}\n\nconst state = proxy({\n themeMode: isDarkMode() ? 'dark' : 'light'\n})\n\n// -- controller --------------------------------------------------- //\nexport const ThemeCtrl = {\n state,\n\n subscribe(callback: (newState: ThemeCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n setThemeConfig(theme: ThemeCtrlState) {\n const { themeMode, themeVariables } = theme\n\n if (themeMode) {\n state.themeMode = themeMode\n }\n\n if (themeVariables) {\n state.themeVariables = { ...themeVariables }\n }\n }\n}\n","import { proxy, subscribe as valtioSub } from 'valtio/vanilla'\nimport type { ToastCtrlState } from '../types/controllerTypes'\n\n// -- initial state ------------------------------------------------ //\nconst state = proxy({\n open: false,\n message: '',\n variant: 'success'\n})\n\n// -- controller --------------------------------------------------- //\nexport const ToastCtrl = {\n state,\n\n subscribe(callback: (newState: ToastCtrlState) => void) {\n return valtioSub(state, () => callback(state))\n },\n\n openToast(message: ToastCtrlState['message'], variant: ToastCtrlState['variant']) {\n state.open = true\n state.message = message\n state.variant = variant\n },\n\n closeToast() {\n state.open = false\n }\n}\n","import type { ConfigCtrlState, ThemeCtrlState } from '@walletconnect/modal-core'\nimport { ConfigCtrl, ModalCtrl, OptionsCtrl, ThemeCtrl } from '@walletconnect/modal-core'\n\n/**\n * Types\n */\nexport type WalletConnectModalConfig = ConfigCtrlState & ThemeCtrlState\n\n/**\n * Client\n */\nexport class WalletConnectModal {\n public constructor(config: WalletConnectModalConfig) {\n ThemeCtrl.setThemeConfig(config)\n ConfigCtrl.setConfig(config)\n this.initUi()\n }\n\n private async initUi() {\n if (typeof window !== 'undefined') {\n await import('@walletconnect/modal-ui')\n const modal = document.createElement('wcm-modal')\n document.body.insertAdjacentElement('beforeend', modal)\n OptionsCtrl.setIsUiLoaded(true)\n }\n }\n\n public openModal = ModalCtrl.open\n\n public closeModal = ModalCtrl.close\n\n public subscribeModal = ModalCtrl.subscribe\n\n public setTheme = ThemeCtrl.setThemeConfig\n}\n"],"names":["Symbol","t","s","Object","getPrototypeOf","c","WeakMap","l","e","has","get","prototype","Array","h","arguments","length","undefined","set","isObject","x","proxyStateMap","refSet","WeakSet","buildProxyFunction","objectIs","is","newProxy","target","handler","Proxy","canProxy","isArray","iterator","Error","Number","Date","String","RegExp","ArrayBuffer","defaultHandlePromise","promise","status","value","reason","snapCache","createSnapshot","version","handlePromise","cache","snap","create","markToTrack","Reflect","ownKeys","forEach","key","getOwnPropertyDescriptor","desc","enumerable","configurable","Promise","target2","ensureVersion","defineProperty","preventExtensions","proxyCache","versionHolder","proxyFunction","initialObject","found","listeners","Set","notifyUpdate","op","nextVersion","listener","checkVersion","createPropListener","prop","newOp","propProxyStates","Map","removePropListener","_a","entry","delete","call","baseObject","deleteProperty","prevValue","deleted","receiver","hasPrevValue","getUntracked","nextValue","then","v","catch","childProxyState","addPropListener","propProxyState","size","remove","proxyObject","proxyState","nextCheckVersion","_ref","propVersion","add","_ref2","prevRemove","removeListener","_ref3","writable","defaultProxyFunction","proxy","subscribe","callback","notifyInSync","console","warn","ops","addListener","isListenerActive","push","splice","resolve","o","u","history","view","data","T","state","reset","replace","goBack","pop","slice","setData","a","WALLETCONNECT_DEEPLINK_CHOICE","WCM_VERSION","RECOMMENDED_WALLET_AMOUNT","isMobile","window","Boolean","matchMedia","matches","test","navigator","userAgent","isAndroid","toLowerCase","includes","isIos","isHttpUrl","startsWith","formatNativeUrl","this","formatUniversalUrl","n","replaceAll","concat","endsWith","setWalletConnectDeepLink","i","encodeURIComponent","async","setTimeout","openHref","open","localStorage","setItem","JSON","stringify","href","name","info","setWalletConnectAndroidDeepLink","split","removeWalletConnectDeepLink","removeItem","setModalVersionInStorage","getWalletRouterData","Wallet","r","enabled","location","hostname","protocol","userSessionId","events","connectedWalletId","R","P","initialize","crypto","randomUUID","setConnectedWalletId","click","type","timestamp","now","track","chains","walletConnectUri","isAuth","isCustomDesktop","isCustomMobile","isDataLoaded","isUiLoaded","p","setChains","setWalletConnectUri","setIsCustomDesktop","setIsCustomMobile","setIsDataLoaded","setIsUiLoaded","setIsAuth","W","projectId","mobileWallets","desktopWallets","walletImages","enableAuthMode","enableExplorer","explorerExcludedWalletIds","explorerRecommendedWalletIds","termsOfServiceUrl","privacyPolicyUrl","y","setConfig","assign","V","D","getOwnPropertySymbols","H","hasOwnProperty","B","propertyIsEnumerable","M","m","L","E","O","w","K","sdkType","sdkVersion","URL","searchParams","append","entries","fetch","json","getWalletImageUrl","getAssetImageUrl","z","j","J","q","k","N","d","wallets","listings","total","page","search","recomendedWallets","te","getRecomendedWallets","recommendedIds","join","getAllListings","values","sort","indexOf","id","sdks","excludedIds","b","getMobileListings","getDesktopListings","getWallets","f","F","map","filter","A","U","resetSearch","I","se","uri","setInterval","clearInterval","close","G","$","Q","X","S","C","themeMode","ne","setThemeConfig","themeVariables","Y","g","message","variant","oe","openToast","closeToast","constructor","openModal","closeModal","subscribeModal","setTheme","initUi","document","createElement","body","insertAdjacentElement"],"sourceRoot":""}