{"version":3,"file":"static/chunks/774-e8aaca9f65b9458e.js","mappings":"yOAiCA,eAAeA,EACbC,CAAoB,CACpBC,CAAsB,CACtBC,CAAqB,CACrBC,CAAgB,CAChBC,CAAgB,CAChB,CACA,IAAMC,EAAc,MAAML,EAAOM,YAAY,CAAC,CAC5CC,QAASL,EACTM,IAAKC,EAAAA,eAAAA,CAAAA,GAAmB,CACxBC,aAAc,YACdC,KAAM,CAACV,EAAeG,EAAQ,GAGhC,MAAO,CACLC,YAAAA,EACAO,UAAWC,CAAAA,EAAAA,EAAAA,CAAAA,EAAYR,EAAaF,EACtC,CACF,4PC1CO,IAAMW,EAAUC,CAAAA,EAAAA,EAAAA,EAAAA,EAAOC,EAAAA,EAAAA,CAAAA,gBAA+B,EAAAC,UAAA,oCAKlD,GAAsBC,IAArB,CAAEA,aAAAA,CAAAA,CAAc,CAAAC,SAAKD,GAAgB,EAAC,EACtC,GAAuBE,IAAtB,CAAEA,cAAAA,CAAAA,CAAe,CAAAD,SAAKC,GAAiB,EAAC,EAEvC,GAAsBC,IAArB,CAAEA,aAAAA,CAAAA,CAAc,CAAAF,SAAKE,GAAgB,OAAM,wPCI1D,IAAMC,EAAiBP,CAAAA,EAAAA,EAAAA,EAAAA,EAAOQ,EAAAA,GAAMA,EAAAA,UAAAA,CAAAA,mCAChC,GACAC,IADC,CAAEA,QAAAA,CAAAA,CAASC,MAAAA,CAAAA,CAAOC,SAAAA,CAAAA,CAAU,CAAAP,QAC7BK,WAAAA,EACI,qBAEKC,MAAAA,CADKA,EAAME,MAAM,CAACC,MAAM,CAACC,UAAU,CAACC,GAAG,CAAC,6BAE7BL,MAAAA,CADXA,EAAME,MAAM,CAACC,MAAM,CAACG,OAAO,CAAC,wCAE1BL,MAAAA,CADSD,EAAME,MAAM,CAACC,MAAM,CAACC,UAAU,CAACC,GAAG,CAAC,+BAGrCL,MAAAA,CAFPC,EAAW,GAAM,CAAC,CAAC,yCAGfA,MAAAA,CADGD,EAAME,MAAM,CAACC,MAAM,CAACC,UAAU,CAACC,GAAG,CAAC,mCACjBE,MAAA,CAArBN,EAAW,GAAM,EAAG,CAAC,eAGhCF,WAAAA,EACA,kDAGgBC,MAAAA,CADXA,EAAME,MAAM,CAACC,MAAM,CAACK,OAAO,CAAC,wCAE1BP,MAAAA,CADSD,EAAME,MAAM,CAACC,MAAM,CAACK,OAAO,CAAC,+BAIjCP,MAAAA,CAHJA,EAAW,GAAM,CAAC,CAAC,4EAGMM,MAAA,CAArBN,EAAW,GAAM,EAAG,CAAC,eAGhC,kDAGgBD,MAAAA,CADXA,EAAME,MAAM,CAACC,MAAM,CAACK,OAAO,CAAC,wCAE1BP,MAAAA,CADSD,EAAME,MAAM,CAACC,MAAM,CAACK,OAAO,CAAC,+BAIjCP,MAAAA,CAHJA,EAAW,GAAM,CAAC,CAAC,4EAGMM,MAAA,CAArBN,EAAW,GAAM,EAAG,CAAC,cAErC,EACS,GAAmBA,IAAlB,CAAEA,SAAAA,CAAAA,CAAU,CAAAP,SAAMO,EAAW,OAAS,SAAS,GAU/CQ,EAeT,GAgBE,IAhBD,CACHC,MAAAA,CAAAA,CACAC,gBAAAA,CAAAA,CACAC,OAAAA,CAAAA,CACAC,kBAAAA,EAAoB,EAAK,CACzBC,UAAAA,EAAY,EAAK,CACjBC,gBAAAA,CAAAA,CACAC,QAAAA,EAAU,YACVC,MAAAA,EAAQ,UACRC,MAAAA,CAAAA,CACAC,UAAAA,CAAAA,CACAC,OAAAA,CAAAA,CACAC,QAAAA,EAAU,EAAK,CACfzB,aAAAA,CAAAA,CACAH,aAAAA,CAAAA,CACAE,cAAAA,CAAAA,CACD,CAAAD,EACO,CAAE4B,YAAAA,CAAAA,CAAaxC,QAASN,CAAAA,CAAe,CAAG+C,CAAAA,EAAAA,EAAAA,CAAAA,IAC1C,CAAEC,iBAAAA,CAAAA,CAAkB,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,IACvB,CAAEC,YAAAA,CAAAA,CAAa,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,IAClB,CAACC,EAASC,EAAW,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACjC,CAACC,EAAQC,EAAU,CAAGF,CAAAA,EAAAA,EAAAA,QAAAA,EAAkBG,KAAAA,GACxCxD,EAAeiC,MAAAA,EAAAA,KAAAA,EAAAA,EAAO5B,OAAO,CAE7BoD,EAAiBC,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IAAM,CACnC,IAAMC,EAAkBvB,EACpBwB,IAAAA,KAAgB,CACdA,IAAAA,QAAmB,CAACzB,EAAQ,IAAMF,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAOhC,QAAQ,GACjD,EACA2D,IAAAA,aAAAA,CAAAA,EAA2B,EAE7BC,EAAAA,EAAW,CACf,MAAO,CACLC,KAAM/D,EACNgE,GAAI/D,EACJgE,KAAMzD,EAAAA,eAAAA,CAAAA,eAA+B,GAAG0D,kBAAkB,CAAC,UAAW,CACpE/B,EACAyB,EACD,CACH,CACF,EAAG,CACDxB,EACAD,EACAD,MAAAA,EAAAA,KAAAA,EAAAA,EAAOhC,QAAQ,CACfD,EACAoC,EACArC,EACD,EAEK,CACJiE,KAAME,CAAAA,CACNC,UAAWC,CAAAA,CACXC,OAAQC,CAAAA,CACT,CAAGC,SF9HJvE,CAAoB,CACpBC,CAAgB,CAChBC,CAAe,CACf,KAOgBsE,EANhB,GAAM,CAAEnE,QAASN,CAAAA,CAAe8C,YAAAA,CAAAA,CAAa,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,IAC1C,CAAE2B,UAAAA,CAAAA,CAAWD,aAAAA,CAAAA,CAAc,CAAGxB,CAAAA,EAAAA,EAAAA,CAAAA,IAC9B0B,EACJ7B,GACA4B,GACA1E,GACA0E,IAAcD,CAAAA,IAAkB,GAAlBA,CAAAA,EAAAA,EAAaG,KAAK,GAAlBH,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAoBI,EAAE,EACtC,MAAOC,CAAAA,EAAAA,EAAAA,CAAAA,EACLH,EACI,wBAAyC1E,MAAAA,CAAjBD,EAAc,KAAmBG,MAAAA,CAAhBF,EAAa,KAAW8B,MAAA,CAAR5B,GACzD,IAAI,CACR,IACEL,EACE2E,EACAzE,EACAC,EACAC,EACAC,GAGR,EEuGIF,EACAiC,EAAQA,EAAMhC,QAAQ,CAAG,EAAE,CAC3BiC,GAGF4C,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,IAAM,CACV,CAACV,GAAqBF,GACxBa,CAAAA,EAAAA,EAAAA,SAAAA,IAAYC,KAAK,CAAC,qBAAsB,CACtCd,aAAAA,CACF,EAEJ,EAAG,CAACE,EAAmBF,EAAa,EAEpC,GAAM,CACJe,MAAAA,CAAAA,CACAjB,KAAMkB,CAAAA,CACNC,gBAAAA,CAAAA,CACAC,UAAWC,CAAAA,CACXC,UAAWC,CAAAA,CACZ,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,EAA0B/B,GAExB,CACJO,KAAMyB,CAAAA,CACNC,QAASC,CAAAA,CACTxB,UAAWyB,CAAAA,CACZ,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,EAAsB,CACxBC,KAAMxC,CACR,GAEAwB,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,IAAM,CACdR,GACF,EAAG,CAACzB,EAAaE,EAAiB,EAElC+B,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,IAAM,CACV,CAACO,GAAeE,GAClBnC,EAAW,EAEf,EAAG,CAACiC,EAAaE,EAAY,EAE7BT,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,IAAM,CACVI,IACF3B,EAAU2B,GACVjC,EAAY,CACV8C,KAAM,sCACNC,OAAQ,YACRC,YAAa,CACXH,KAAMZ,EACNgB,WAAY,kCAEXpE,MAAA,CADCG,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAOkE,MAAM,GAAI,SAEnBC,WAAY,GAA4BtE,MAAA,CAAzBG,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAOkE,MAAM,GAAI,QAAQ,mBAC1C,CACF,GAEJ,EAAG,CAACjB,EAAO,EAEX,IAAMmB,EAAWC,CAAAA,EAAAA,EAAAA,MAAAA,EAAO,IAAI,EAC5BxB,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,IAAM,CACV,CAACc,GAAmBH,GAAcA,YAAAA,EAAWO,MAAM,GACjDK,EAASE,OAAO,EAClBC,aAAaH,EAASE,OAAO,EAE/BF,EAASE,OAAO,CAAGE,WAAW,IAAM,CAClCnC,IACAf,EAAUC,KAAAA,GACVJ,EAAW,EACb,EAAG,KAEP,EAAG,CAACqC,EAAYG,EAAgB,EAEhCd,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,IAAM,CACVa,IACFpC,EAAUC,KAAAA,GACVJ,EAAW,GAEf,EAAG,CAACuC,EAAc,EAElBb,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,IAAM,KAKuBZ,EAJjCrB,GACFP,EACEI,EAAAA,GAEIkB,GAAAA,IAAAA,SAAoB,CAACzB,EAAQ+B,IAAuB,GAAvBA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAcxD,SAAS,GAAvBwD,KAAAA,IAAAA,EAAAA,EAA2B,GAAG,EAErE,EAAG,CAACA,EAAcxB,EAAWP,EAAQU,EAAY,EAEjD,IAAM6D,GAAahD,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IAAM,KAQAQ,EAP/B,MACE,CAACrB,GACD,CAACE,GACD,CAACmB,GACA7B,CAAAA,EACGuB,EAAAA,IAAAA,SAAoB,CAACzB,EAAQ,KAC7ByB,GAAAA,IAAAA,SAAoB,CAACzB,EAAQ,IAAS,GAC1CyB,GAAAA,IAAAA,SAAoB,CAACzB,EAAQ+B,IAAuB,GAAvBA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAcxD,SAAS,GAAvBwD,KAAAA,IAAAA,EAAAA,EAA2B,GAAG,GAC3DE,GACAiB,GACAlC,IAAAA,GACA,CAAClB,CAEL,EAAG,CACDY,EACAE,EACAd,EACAE,EACA+B,EACAE,EACAiB,EACAlC,EACD,EAEKwD,GAAqBjD,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IAAM,KA0BRQ,EAzB/B,GAAI,CAACrB,EACH,MAAO,gBAkCR,CAjCM,GAAI,CAACE,EACV,MAAO,eAgCR,CA/BM,GAAI,CAACd,EACV,MAAO,cA8BR,CA7BM,GACLI,EACIuB,EAAAA,IAAAA,SAAoB,CAACzB,EAAQ,KAC7ByB,GAAAA,IAAAA,SAAoB,CAACzB,EAAQ,IAAS,CAE1C,MAAO,oBAwBR,CAvBM,GAAI,CAAC+B,GAAgBE,EAC1B,MACE,GAAAwC,EAAAC,IAAA,EAAAD,EAAAE,QAAA,YACE,GAAAF,EAAAG,GAAA,EAACC,EAAAA,GAAOA,CAAAA,CAAAA,GAAG,aAoBhB,CAjBM,GAAI3B,GAAelC,IAAAA,EACxB,MACE,GAAAyD,EAAAC,IAAA,EAAAD,EAAAE,QAAA,YACE,GAAAF,EAAAG,GAAA,EAACC,EAAAA,GAAOA,CAAAA,CAAAA,GAAG,eAchB,CAXM,GACLpD,GAAAA,IAAAA,SAAoB,CAACzB,EAAQ+B,IAAuB,GAAvBA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAcxD,SAAS,GAAvBwD,KAAAA,IAAAA,EAAAA,EAA2B,GAAG,EAE3D,MACE,GAAA0C,EAAAC,IAAA,EAAAD,EAAAE,QAAA,YACE,GAAAF,EAAAG,GAAA,EAACjG,EAAAA,EAAAA,CAAAA,aAA4B,EAACmG,MAAO,GAAIC,OAAQ,KAAM,YAC7CjF,MAAAA,EAAAA,KAAAA,EAAAA,EAAOkE,MAAM,SAI3B,MAAO,WAAyBrE,MAAA,CAAdG,MAAAA,EAAAA,KAAAA,EAAAA,EAAOkE,MAAM,CAChC,EACA,CACDtD,EACAE,EACAd,EACAE,EACA+B,EACAE,EACAiB,EACAlC,EACD,EAEKgE,GAAqBzD,CAAAA,EAAAA,EAAAA,OAAAA,EAAQ,IAAM,KAkBRQ,EAjB/B,GAAI,CAACrB,EACH,MAAO,SAqBR,CApBM,GAAI,CAACE,GAED,CAACd,GAGVI,CAAAA,EACIuB,EAAAA,IAAAA,SAAoB,CAACzB,EAAQ,KAC7ByB,GAAAA,IAAAA,SAAoB,CAACzB,EAAQ,IAAS,EAN1C,MAAO,EAmBR,CAVM,GAAI,CAAC+B,GAAgBE,EAC1B,MAAO,EASR,CARM,GAAIiB,GAAelC,IAAAA,EACxB,MAAO,EAOR,CANM,GACLS,GAAAA,IAAAA,SAAoB,CAACzB,EAAQ+B,IAAuB,GAAvBA,CAAAA,EAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAcxD,SAAS,GAAvBwD,KAAAA,IAAAA,EAAAA,EAA2B,GAAG,EAE3D,MAAO,eAEP,MAAO,EACR,EACA,CACDrB,EACAE,EACAd,EACAE,EACA+B,EACAE,EACAiB,EACAlC,EACD,EAED,MACE,GAAAyD,EAAAG,GAAA,EAAAH,EAAAE,QAAA,WACG,CAAEpE,CAAAA,GAAaC,CAAAA,GACd,GAAAiE,EAAAG,GAAA,EAAC3F,EAAAA,CACCmB,QAASA,EACT6E,KAAK,KACLH,MAAM,OACNxE,MAAOA,EACP4E,QAAS,IAAMlC,MAAAA,EAAAA,KAAAA,EAAAA,GAAAA,CACf3D,SAAUkF,GACVpF,QAAS6F,YAERvE,EACC,GAAAgE,EAAAG,GAAA,EAACnG,EAAOA,CACNO,aAAcA,EACdH,aAAcA,EACdE,cAAeA,IAGjByF,EACD,IAKX,EAEA,IAAAW,EAAetF,g0HCxVR,IAAMuF,EAAW1G,CAAAA,EAAAA,EAAAA,EAAAA,EAAO2G,EAAAA,GAASA,EAAAA,UAAAA,CAAAA,oCAO3BC,EAAQ5G,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,qCAMlB6G,EAAY7G,CAAAA,EAAAA,EAAAA,EAAAA,EAAO8G,EAAAA,GAASA,EAAAA,UAAAA,CAAAA,mCAK9B,GAAepG,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACC,EAAE,GAGxCC,EAAYjH,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,oCAK1B,GAAeU,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAMwG,OAAO,CAACC,EAAE,GAG3BC,EAAMpH,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,qCAMhBqH,EAAarH,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,oCAI3B,GAAasH,IAAZ,CAAEA,IAAAA,CAAAA,CAAK,CAAAlH,SAAKkH,CAAE,GAGXC,EAAgBvH,CAAAA,EAAAA,EAAAA,EAAAA,EAAOwH,EAAAA,GAAUA,EAAAA,UAAAA,CAAAA,mCAGrC,GAAe9G,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAMwG,OAAO,CAAC,MAAM,GAM/BO,EAAWzH,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,oCAIf,GAAeU,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAMgH,KAAK,CAACC,EAAE,EAKvC,GAAejH,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAMwG,OAAO,CAACU,EAAE,EAClB,GAAelH,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACgH,IAAI,CAACC,KAAK,EACxD,GAAepH,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACgB,EAAE,EAGzC,GAAerH,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACC,EAAE,EAElDgB,CAAAA,EAAAA,EAAAA,EAAAA,EAAQC,EAAAA,EAAMA,CAAEC,EAAAA,EAAKA,GAGZC,EAAkBnI,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,oCAC5B,GAAiBoI,IAAhB,CAAEA,QAAAA,CAAAA,CAAS,CAAAhI,SAAKgI,GAAW,GAAE,EAC3B,GAAe1H,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACC,UAAU,CAACuH,GAAG,EACtD,GAAe3H,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACC,EAAE,EACzC,GACR,IADS,CAAEoB,QAAAA,CAAAA,CAAS,CAAAhI,SACpB,EAEI,aAA2Da,MAAA,CAA9C,GAAeP,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACgH,IAAI,CAACS,KAAK,EAAC,KAD3D,MAC6D,EAClD,GAAe5H,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAMgH,KAAK,CAACC,EAAE,EAE5CM,EAAAA,EAAMA,EAGuBjI,CAAAA,EAAAA,EAAAA,EAAAA,EAAOmI,GAAAA,UAAAA,CAAAA,oCAIjC,IAAMI,EAAYvI,CAAAA,EAAAA,EAAAA,EAAAA,EAAOmI,GAAAA,UAAAA,CAAAA,oCAGvB,GAAoBb,IAAnB,CAAE5G,MAAAA,CAAAA,CAAO4G,IAAAA,CAAAA,CAAK,CAAAlH,SAAKkH,MAAAA,EAAAA,EAAO5G,EAAMwG,OAAO,CAACS,EAAE,EACzC,GAAejH,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACC,EAAE,GAGxCwB,EAAWxI,CAAAA,EAAAA,EAAAA,EAAAA,EAAOyI,EAAAA,GAASA,EAAAA,UAAAA,CAAAA,oCAC7B,GAAe/H,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACC,EAAE,GAExC0B,EAAQ1I,CAAAA,EAAAA,EAAAA,EAAAA,EAAOyI,EAAAA,GAASA,EAAAA,UAAAA,CAAAA,oCAI1B,GAAe/H,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACC,EAAE,GAExC2B,EAAQ3I,CAAAA,EAAAA,EAAAA,EAAAA,EAAO0I,GAAAA,UAAAA,CAAAA,qCAMfE,EAAU5I,CAAAA,EAAAA,EAAAA,EAAAA,EAAOwH,EAAAA,GAAUA,EAAAA,UAAAA,CAAAA,oCAI/B,GAAe9G,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAMwG,OAAO,CAACC,EAAE,EAC7B,GAAezG,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACC,EAAE,GAGxC6B,EAAoB7I,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,qCAGrB,GAAeU,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACgH,IAAI,CAACS,KAAK,GAIpCtI,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,qCAQjB,GAAeU,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACgH,IAAI,CAACS,KAAK,GAI9D,IAAMQ,EAAW9I,CAAAA,EAAAA,EAAAA,EAAAA,EAAO+I,EAAAA,GAAYA,EAAAA,UAAAA,CAAAA,oCAEhC,GAAerI,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAME,MAAM,CAACC,MAAM,CAACkG,IAAI,CAACgB,EAAE,GAIxCiB,EAAUhJ,EAAAA,EAAAA,CAAAA,GAAAA,CAAAA,UAAU,qCACrB,GAAgBqG,IAAf,CAAEA,OAAAA,CAAAA,CAAQ,CAAAjG,SAAKiG,CAAK,EACtB,GAAeD,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAhG,SAAKgG,CAAI,EAIrB,GAAe1F,IAAd,CAAEA,MAAAA,CAAAA,CAAO,CAAAN,SAAKM,EAAMwG,OAAO,CAACS,EAAE,GAG3BsB,EAASjJ,CAAAA,EAAAA,EAAAA,EAAAA,EAAOkJ,EAAAA,EAAAA,CAAAA,eAA6B,EAAAhJ,UAAA","sources":["webpack://_N_E/./hooks/useFetchUserTokenApproval.ts","webpack://_N_E/./components/Button/LoadingBtn.tsx","webpack://_N_E/./components/Button/ApprovalBtn.tsx","webpack://_N_E/./views/style.ts","webpack://_N_E/<anon>"],"sourcesContent":["import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { IERC20__factory } from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport useSWR from \"swr/immutable\";\nimport { Address, PublicClient, formatUnits } from \"viem\";\nimport { useAccount } from \"wagmi\";\n\nexport function useFetchUserTokenApproval(\n tokenAddress: string,\n decimals: number,\n spender: string\n) {\n const { address: walletAddress, isConnected } = useAccount();\n const { networkId, publicClient } = useNetwork();\n const showFetch =\n isConnected &&\n networkId &&\n walletAddress &&\n networkId === publicClient.chain?.id;\n return useSWR(\n showFetch\n ? `user-token-allowance-${walletAddress}-${tokenAddress}-${spender}`\n : null,\n () =>\n getTokenAllowance(\n publicClient,\n walletAddress!,\n tokenAddress as Address,\n decimals,\n spender as Address\n )\n );\n}\n\nasync function getTokenAllowance(\n client: PublicClient,\n walletAddress: Address,\n tokenAddress: Address,\n decimals: number,\n spender: Address\n) {\n const allowanceBN = await client.readContract({\n address: tokenAddress,\n abi: IERC20__factory.abi,\n functionName: \"allowance\",\n args: [walletAddress, spender],\n });\n\n return {\n allowanceBN,\n allowance: formatUnits(allowanceBN, decimals),\n };\n}\n","import { AccessoryIcons } from \"@aperture/assetkit\";\nimport styled from \"styled-components\";\n\nexport interface LoadingProps {\n loadingColor?: string;\n loadingWidth?: number;\n loadingHeight?: number;\n}\n\nexport const Loading = styled(AccessoryIcons.AnimationLoading)<{\n loadingColor?: string;\n loadingWidth?: number;\n loadingHeight?: number;\n}>`\n width: ${({ loadingWidth }) => loadingWidth || 20}px;\n height: ${({ loadingHeight }) => loadingHeight || 20}px;\n > circle {\n stroke: ${({ loadingColor }) => loadingColor || \"white\"};\n }\n`;\n","import { useNetwork } from \"@/components/NetworkContext/NetworkContext\";\nimport { useFetchUserTokenApproval } from \"@/hooks/useFetchUserTokenApproval\";\nimport { useWaitForTransaction } from \"@/hooks/useWaitForTransaction\";\nimport { useSendTransactionWithGas } from \"@/hooks/wagmi/useSendTransactionWithGas\";\nimport { MAX_UINT256 } from \"@/utils/helper\";\nimport { AccessoryIcons } from \"@aperture/assetkit\";\nimport { IToken } from \"@aperture/types\";\nimport { Button, Spinner } from \"@aperture/uikit\";\nimport {\n IERC20__factory,\n getLogger,\n} from \"@aperture_finance/uniswap-v3-automation-sdk\";\nimport { Color } from \"@ui/components/Button/types\";\nimport bigDecimal from \"js-big-decimal\";\nimport { CSSProperties, useEffect, useMemo, useRef, useState } from \"react\";\nimport styled from \"styled-components\";\nimport { Address } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { useSnackbarV2 } from \"../SnackbarContext/SnackbarContextV2\";\nimport { Loading, LoadingProps } from \"./LoadingBtn\";\n\nconst ApprovalButton = styled(Button)<{ btntype: string }>`\n ${({ btntype, theme, disabled }) =>\n btntype == \"success\"\n ? `\n background: ${theme.colors.global.background.BG3} !important;\n color: ${theme.colors.global.success} !important;\n border: 2px solid ${theme.colors.global.background.BG3} !important;\n opacity: ${disabled ? 0.5 : 1};\n :hover {\n background: ${theme.colors.global.background.BG3} !important;\n opacity: ${disabled ? 0.5 : 0.8}\n }\n `\n : btntype == \"connect\"\n ? `\n background: none !important;\n color: ${theme.colors.global.primary} !important;\n border: 2px solid ${theme.colors.global.primary} !important;\n opacity: ${disabled ? 0.3 : 1};\n :hover {\n background: none !important;\n opacity: ${disabled ? 0.3 : 0.8}\n }\n `\n : `\n background: none !important;\n color: ${theme.colors.global.primary} !important;\n border: 2px solid ${theme.colors.global.primary} !important;\n opacity: ${disabled ? 0.5 : 1};\n :hover {\n background: none !important;\n opacity: ${disabled ? 0.5 : 0.8}\n }\n `};\n cursor: ${({ disabled }) => (disabled ? \"auto\" : \"pointer\")};\n padding: 0;\n padding-inline: 0;\n font-family: \"Roboto Flex\";\n font-size: 16px;\n font-style: normal;\n font-weight: 500;\n line-height: 20px;\n`;\n\nexport const ApproveTokenBtn: React.FC<\n {\n token?: IToken;\n contractAddress: Address;\n amount: string;\n canBeZero?: boolean;\n approveOnChange: (approved: boolean) => void;\n variant?: \"contained\" | \"outlined\";\n color?: Color;\n style?: CSSProperties;\n useNative?: boolean;\n hidden?: boolean;\n loading?: boolean;\n useSpecificAmount?: boolean;\n } & LoadingProps\n> = ({\n token,\n contractAddress,\n amount,\n useSpecificAmount = false,\n canBeZero = false,\n approveOnChange,\n variant = \"contained\",\n color = \"primary\",\n style,\n useNative,\n hidden,\n loading = false,\n loadingColor,\n loadingWidth,\n loadingHeight,\n}) => {\n const { isConnected, address: walletAddress } = useAccount();\n const { isChainSupported } = useNetwork();\n const { addSnackbar } = useSnackbarV2();\n const [waiting, setWaiting] = useState(-1); // -1 initial state; 0 waiting for approval data; 1 got approval data\n const [txHash, setTxHash] = useState<Address>(undefined);\n const tokenAddress = token?.address!;\n\n const approveRequest = useMemo(() => {\n const amountToApprove = useSpecificAmount\n ? bigDecimal.round(\n bigDecimal.multiply(amount, 10 ** token?.decimals),\n 0,\n bigDecimal.RoundingModes.UP\n )\n : MAX_UINT256;\n return {\n from: walletAddress,\n to: tokenAddress,\n data: IERC20__factory.createInterface().encodeFunctionData(\"approve\", [\n contractAddress,\n amountToApprove,\n ]),\n };\n }, [\n amount,\n contractAddress,\n token?.decimals,\n tokenAddress,\n useSpecificAmount,\n walletAddress,\n ]);\n\n const {\n data: approvalData,\n isLoading: isApprovalLoading,\n mutate: approvalMutate,\n } = useFetchUserTokenApproval(\n tokenAddress,\n token ? token.decimals : 18,\n contractAddress\n );\n\n useEffect(() => {\n if (!isApprovalLoading && approvalData) {\n getLogger().debug(\"Token.ApprovalData\", {\n approvalData,\n });\n }\n }, [isApprovalLoading, approvalData]);\n\n const {\n ready,\n data: txData,\n sendTransaction,\n isPending: isTxLoading,\n isSuccess: isTxSuccess,\n } = useSendTransactionWithGas(approveRequest);\n\n const {\n data: waitTxData,\n isError: isWaitTxError,\n isLoading: isWaitTxLoading,\n } = useWaitForTransaction({\n hash: txHash,\n });\n\n useEffect(() => {\n approvalMutate();\n }, [isConnected, isChainSupported]);\n\n useEffect(() => {\n if (!isTxLoading && isTxSuccess) {\n setWaiting(0);\n }\n }, [isTxLoading, isTxSuccess]);\n\n useEffect(() => {\n if (txData) {\n setTxHash(txData);\n addSnackbar({\n info: \"Your approve request has been sent.\",\n status: \"completed\",\n transaction: {\n hash: txData,\n successMsg: `You have successfully approved ${\n token?.ticker || \"token\"\n }`,\n failureMsg: `${token?.ticker || \"Token\"} approval failed`,\n },\n });\n }\n }, [txData]);\n\n const timerRef = useRef(null);\n useEffect(() => {\n if (!isWaitTxLoading && waitTxData && waitTxData.status === \"success\") {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n }\n timerRef.current = setTimeout(() => {\n approvalMutate();\n setTxHash(undefined);\n setWaiting(1);\n }, 500);\n }\n }, [waitTxData, isWaitTxLoading]);\n\n useEffect(() => {\n if (isWaitTxError) {\n setTxHash(undefined);\n setWaiting(1);\n }\n }, [isWaitTxError]);\n\n useEffect(() => {\n if (isConnected)\n approveOnChange(\n useNative\n ? true\n : bigDecimal.compareTo(amount, approvalData?.allowance ?? \"0\") <= 0\n );\n }, [approvalData, useNative, amount, isConnected]);\n\n const isDisabled = useMemo(() => {\n return (\n !isConnected ||\n !isChainSupported ||\n !approvalData ||\n (canBeZero\n ? bigDecimal.compareTo(amount, \"0\") < 0\n : bigDecimal.compareTo(amount, \"0\") <= 0) ||\n bigDecimal.compareTo(amount, approvalData?.allowance ?? \"0\") <= 0 ||\n isApprovalLoading ||\n isTxLoading ||\n waiting === 0 ||\n !token\n );\n }, [\n isConnected,\n isChainSupported,\n token,\n amount,\n approvalData,\n isApprovalLoading,\n isTxLoading,\n waiting,\n ]);\n\n const approvalButtonText = useMemo(() => {\n if (!isConnected) {\n return \"Connect Wallet\";\n } else if (!isChainSupported) {\n return \"Wrong Network\";\n } else if (!token) {\n return \"Select Token\";\n } else if (\n canBeZero\n ? bigDecimal.compareTo(amount, \"0\") < 0\n : bigDecimal.compareTo(amount, \"0\") <= 0\n ) {\n return \"Input Token Amount\";\n } else if (!approvalData || isApprovalLoading) {\n return (\n <>\n <Spinner /> Loading\n </>\n );\n } else if (isTxLoading || waiting === 0) {\n return (\n <>\n <Spinner /> Approving\n </>\n );\n } else if (\n bigDecimal.compareTo(amount, approvalData?.allowance ?? \"0\") <= 0\n ) {\n return (\n <>\n <AccessoryIcons.CheckMarkIcon width={20} height={20} />\n Approved {token?.ticker}\n </>\n );\n } else {\n return `Approve ${token?.ticker}`;\n }\n }, [\n isConnected,\n isChainSupported,\n token,\n amount,\n approvalData,\n isApprovalLoading,\n isTxLoading,\n waiting,\n ]);\n\n const approvalButtonType = useMemo(() => {\n if (!isConnected) {\n return \"connect\";\n } else if (!isChainSupported) {\n return \"\";\n } else if (!token) {\n return \"\";\n } else if (\n canBeZero\n ? bigDecimal.compareTo(amount, \"0\") < 0\n : bigDecimal.compareTo(amount, \"0\") <= 0\n ) {\n return \"\";\n } else if (!approvalData || isApprovalLoading) {\n return \"\";\n } else if (isTxLoading || waiting === 0) {\n return \"\";\n } else if (\n bigDecimal.compareTo(amount, approvalData?.allowance ?? \"0\") <= 0\n ) {\n return \"success\";\n } else {\n return \"\";\n }\n }, [\n isConnected,\n isChainSupported,\n token,\n amount,\n approvalData,\n isApprovalLoading,\n isTxLoading,\n waiting,\n ]);\n\n return (\n <>\n {!(useNative || hidden) && (\n <ApprovalButton\n variant={variant}\n size=\"lg\"\n width=\"100%\"\n style={style}\n onClick={() => sendTransaction?.()}\n disabled={isDisabled}\n btntype={approvalButtonType}\n >\n {loading ? (\n <Loading\n loadingColor={loadingColor}\n loadingWidth={loadingWidth}\n loadingHeight={loadingHeight}\n />\n ) : (\n approvalButtonText\n )}\n </ApprovalButton>\n )}\n </>\n );\n};\n\nexport default ApproveTokenBtn;\n","import { ApertureLogos } from \"@aperture/assetkit\";\nimport {\n CommonLgText,\n FlexColumn,\n Headline1,\n Headline5,\n T1Regular,\n} from \"@aperture/uikit\";\nimport styled from \"styled-components\";\nimport { LayoutProps, SpaceProps, compose, layout, space } from \"styled-system\";\n\nexport const Headline = styled(T1Regular)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-family: \"Roboto Flex\";\n`;\n\nexport const Title = styled.div`\n display: flex;\n align-items: center;\n flex-direction: row;\n`;\n\nexport const TitleText = styled(Headline1)`\n width: 100%;\n font-weight: 500;\n font-family: \"Dunbar Tall\";\n text-align: start;\n color: ${({ theme }) => theme.colors.global.text.T1};\n`;\n\nexport const Container = styled.div`\n box-sizing: border-box;\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.spacing.xl};\n`;\n\nexport const Row = styled.div`\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const RowWithGap = styled.div<{ gap: string }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: ${({ gap }) => gap};\n`;\n\nexport const PageContainer = styled(FlexColumn)`\n margin-top: 20px;\n align-items: center;\n gap: ${({ theme }) => theme.spacing[\"3xl\"]};\n width: 100%;\n max-width: calc(100vw * 0.75);\n padding-bottom: 30px;\n`;\n\nexport const EmptyBox = styled.div<LayoutProps & SpaceProps>`\n width: 100%;\n height: 276px;\n font-weight: 500;\n border-radius: ${({ theme }) => theme.radii.md};\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: ${({ theme }) => theme.spacing.lg};\n border: 1px solid ${({ theme }) => theme.colors.global.line.Line1};\n color: ${({ theme }) => theme.colors.global.text.T3};\n > svg,\n path {\n fill: ${({ theme }) => theme.colors.global.text.T1};\n }\n ${compose(layout, space)}\n`;\n\nexport const CommonContainer = styled.div<LayoutProps & { padding?: string }>`\n padding: ${({ padding }) => padding || \"0\"};\n background: ${({ theme }) => theme.colors.global.background.BG2};\n color: ${({ theme }) => theme.colors.global.text.T1};\n border: ${({ padding }) =>\n !padding\n ? \"none\"\n : `1px solid ${({ theme }) => theme.colors.global.line.Line2};`};\n border-radius: ${({ theme }) => theme.radii.md};\n box-sizing: border-box;\n ${layout}\n`;\n\nexport const PositionContainer = styled(CommonContainer)`\n width: 100%;\n`;\n\nexport const OtherInfo = styled(CommonContainer)<{ gap?: string }>`\n display: flex;\n flex-direction: column;\n gap: ${({ theme, gap }) => gap ?? theme.spacing.md};\n color: ${({ theme }) => theme.colors.global.text.T1};\n`;\n\nexport const RowTitle = styled(Headline5)`\n color: ${({ theme }) => theme.colors.global.text.T1};\n`;\nexport const Text1 = styled(Headline5)`\n font-size: 16px;\n line-height: 20px;\n font-weight: 500;\n color: ${({ theme }) => theme.colors.global.text.T1};\n`;\nexport const Text2 = styled(Text1)`\n font-weight: 400;\n font-size: 14px;\n line-height: 16px;\n`;\n\nexport const Expires = styled(FlexColumn)`\n width: 160px;\n align-items: flex-end;\n justify-content: center;\n gap: ${({ theme }) => theme.spacing.xl};\n color: ${({ theme }) => theme.colors.global.text.T1};\n`;\n\nexport const DividerHorizontal = styled.div`\n height: 1px;\n width: 100%;\n background-color: ${({ theme }) => theme.colors.global.line.Line2};\n align-self: stretch;\n`;\n\nexport const DividerVertical = styled.div`\n ::after {\n position: absolute;\n top: 0;\n bottom: 0;\n content: \"\";\n width: 1px;\n height: 100%;\n background-color: ${({ theme }) => theme.colors.global.line.Line2};\n }\n`;\n\nexport const TimeZone = styled(CommonLgText)`\n text-align: right;\n color: ${({ theme }) => theme.colors.global.text.T3};\n margin-top: -8px;\n`;\n\nexport const IconDiv = styled.div<{ width: number; height: number }>`\n height: ${({ height }) => height}px;\n width: ${({ width }) => width}px;\n flex: 1 1 0%;\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spacing.md};\n`;\n\nexport const Loader = styled(ApertureLogos.TransparentLogo)`\n height: 80px;\n width: 80px;\n animation: rotation infinite 3s linear;\n\n @keyframes rotation {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n }\n`;\n"],"names":["getTokenAllowance","client","walletAddress","tokenAddress","decimals","spender","allowanceBN","readContract","address","abi","IERC20__factory","functionName","args","allowance","formatUnits","Loading","styled","AccessoryIcons","withConfig","loadingWidth","param","loadingHeight","loadingColor","ApprovalButton","Button","btntype","theme","disabled","colors","global","background","BG3","success","concat","primary","ApproveTokenBtn","token","contractAddress","amount","useSpecificAmount","canBeZero","approveOnChange","variant","color","style","useNative","hidden","loading","isConnected","useAccount","isChainSupported","useNetwork","addSnackbar","useSnackbarV2","waiting","setWaiting","useState","txHash","setTxHash","undefined","approveRequest","useMemo","amountToApprove","bigDecimal","MAX_UINT256","from","to","data","encodeFunctionData","approvalData","isLoading","isApprovalLoading","mutate","approvalMutate","useFetchUserTokenApproval","publicClient","networkId","showFetch","chain","id","useSWR","useEffect","getLogger","debug","ready","txData","sendTransaction","isPending","isTxLoading","isSuccess","isTxSuccess","useSendTransactionWithGas","waitTxData","isError","isWaitTxError","isWaitTxLoading","useWaitForTransaction","hash","info","status","transaction","successMsg","ticker","failureMsg","timerRef","useRef","current","clearTimeout","setTimeout","isDisabled","approvalButtonText","jsx_runtime","jsxs","Fragment","jsx","Spinner","width","height","approvalButtonType","size","onClick","ApprovalBtn","Headline","T1Regular","Title","TitleText","Headline1","text","T1","Container","spacing","xl","Row","RowWithGap","gap","PageContainer","FlexColumn","EmptyBox","radii","md","lg","line","Line1","T3","compose","layout","space","CommonContainer","padding","BG2","Line2","OtherInfo","RowTitle","Headline5","Text1","Text2","Expires","DividerHorizontal","TimeZone","CommonLgText","IconDiv","Loader","ApertureLogos"],"sourceRoot":""}