{"version":3,"file":"js/chunk.a452eee76eee332b.js","mappings":"0NAwHA,UA1G4D,SAACA,GAC3D,OAAoCC,EAAAA,EAAAA,UAAc,GAAE,WAA7CC,EAAU,KAAEC,EAAa,MAEhCC,EAAAA,EAAAA,YAAU,WACR,GAAIJ,EAAMK,KAAKC,gBACbH,EAAcI,EAAAA,EAAAA,mBACT,GAAIP,EAAMK,KAAKG,iBACpB,OAAQR,EAAMK,KAAKG,kBACjB,IAAK,MACHL,EAAcI,EAAAA,EAAAA,wBACd,MACF,IAAK,MACHJ,EAAcI,EAAAA,EAAAA,qBACd,MACF,IAAK,MACHJ,EAAcI,EAAAA,EAAAA,wBAGTP,EAAMK,KAAKI,YACpBN,EAAcI,EAAAA,EAAAA,UAEdJ,EAAcI,EAAAA,EAAAA,iBAElB,GAAG,CAACP,EAAMK,OACV,IAAMK,EAAwB,WAE5BC,OAAOC,SAASC,KAAO,iCACzB,EACA,OACE,SAAC,IAAO,CACNC,UAAU,aACVC,OACE,+BACE,iBAAKC,UAAU,8BAA6B,WAC1C,gBACEC,IAAKjB,EAAMK,KAAKa,WAChBF,UAAU,oCACVG,IAAI,KACJC,MAAO,CAAEC,UAAW,YAEtB,iBAAML,UAAU,2BAA0B,SAAEhB,EAAMK,KAAKiB,OACtDpB,IAAeK,EAAAA,EAAAA,qBACd,gBACES,UAAU,wBACVC,IAAKM,EACLC,QAASd,EACTK,MAAM,SAENb,IAAeK,EAAAA,EAAAA,cACjB,gBACES,UAAU,wBACVC,IAAKQ,EACLD,QAASd,EACTK,MAAM,SAEN,UAIVW,SACE,iCACE,iBAAKV,UAAU,uBAAsB,WACnC,iBAAKA,UAAU,gBAAe,WAC5B,iBAAMA,UAAU,qBAAoB,SACjChB,EAAMK,KAAKsB,cAAgB,KAE9B,iBAAMX,UAAU,4BAA2B,SAAC,WAE9C,iBAAKA,UAAU,gBAAe,WAC5B,iBAAMA,UAAU,qBAAoB,SACjChB,EAAMK,KAAKuB,gBAAkB,KAEhC,iBAAMZ,UAAU,4BAA2B,SAAC,WAE9C,iBAAKA,UAAU,gBAAe,WAC5B,iBAAMA,UAAU,qBAAoB,SACjChB,EAAMK,KAAKwB,mBAAqB,KAEnC,iBAAMb,UAAU,4BAA2B,SAAC,cAIhD,iBAAKA,UAAU,+BAA8B,WAC3C,SAAC,IAAoB,CACnBX,KAAML,EAAMK,KACZyB,mBAAoB9B,EAAM8B,mBAC1BC,UAAW/B,EAAM+B,aAEnB,SAAC,KAAM,CACLP,QAAS,WACPb,OAAOC,SAASC,KAAO,0BAAH,OAA6Bb,EAAMK,KAAK2B,IAC9D,EAAE,SACH,eAMPC,aAAc,CAAEC,MAAO,IAAKC,WAAY,GACxCC,WAAW,EAAM,SAEhBpC,EAAMqC,UAGb,C,sRCoCA,EA7IwE,SACtErC,GAGA,OAAoCC,EAAAA,EAAAA,WAAS,GAAM,WAA5CqC,EAAU,KAAEC,EAAa,KAChC,GAA4CtC,EAAAA,EAAAA,WAAS,GAAM,WAApDuC,EAAc,KAAEC,EAAiB,KAExC,EAAeC,EAAAA,EAAAA,UAARC,EAAsB,SAAlB,GACLjB,EAAUgB,EAAAA,EAAAA,SAAc,UAAWC,IAEzCvC,EAAAA,EAAAA,YAAU,WACPO,OAAeiC,KAAKC,cACvB,GAAG,IAEH,IAAwBC,EAAkB,EAClCC,EASR,OACE,gBACE/B,UAAU,8FACVI,MAAO,CAAE4B,UAAW,0CAA2C,SAE9DR,GACC,iCACE,iBAAKxB,UAAU,+BAA8B,WAC3C,gBAAKA,UAAU,qBAAoB,SAAC,QACpC,gBACEA,UAAU,+BACVC,IAAKgC,EACLzB,QAAS,kBAAMiB,GAAkB,EAAM,QAG3C,SAAC,IAAI,CACHE,KAAMA,EACNO,SAAQ,iCAAE,WAAOC,GAAM,yEAED,OAApBZ,GAAc,GAAM,kBAECvC,EAAMoD,QAAQC,WAAW,CAC1C3B,QAASyB,EAAOzB,UAChB,OAFI4B,EAAO,EAAH,KAGVf,GAAc,GACdE,GAAkB,GACda,GACFX,EAAKY,cACN,kDAEDhB,GAAc,GAAO,0DAExB,mDAfO,GAeN,UAEF,UAAC,IAAG,YACF,SAAC,IAAG,CAACiB,KAAM,GAAG,UACZ,SAAC,SAAS,CACRlC,KAAK,UACLmC,MAAO,CAAC,CAAEC,UAAU,EAAMC,QAAS,UAAW,UAE9C,SAACC,EAAA,EAAU,CACTC,OAAQ,IACRC,cAAe,CACbC,YAAa,CACX,eACA,aACA,IACA,YACA,SACA,mBACA,QACA,UACA,WACA,aACA,aACA,eACA,eACA,OACA,gBACA,eACA,cACA,cAEA,UACA,OACA,OACA,cAGFC,WAAY,CACVC,MAAO,GACPC,KAAM,CAAC,6BAMjB,SAAC,IAAG,CAACV,KAAM,EAAGxC,UAAU,UAAUI,MAAO,CAAE+C,UAAW,SAAU,UAC9D,SAAC,SAAS,WACR,SAAC,KAAM,CACLC,KAAK,UACLC,SAAS,SACTC,UA5FMxB,EA4FmBpB,EA3FnCqB,EAAQwB,SAASC,cAAc,OACrCzB,EAAM0B,UAAY3B,IAEI,QAAlB,EAACC,EAAM2B,mBAAW,OAAjB,EAAmBC,QAAW5B,EAAM6B,cAAc,SAyFvCC,QAASvC,EAAW,SACrB,sBASX,iBAAKtB,UAAU,oCAAmC,WAMhD,SAAC,KAAM,CACLoD,KAAK,UACLU,MAAM,gBAAK7D,IAAK8D,EAAY/D,UAAU,WACtCgE,OAAK,EACLxD,QAAS,kBAAMiB,GAAkB,EAAK,EACtCzB,UAAU,qCACVI,MAAO,CAAE6D,OAAQ,oBAAqBpB,OAAQ,GAAIqB,aAAc,GAAI,SACrE,QAID,SAACC,EAAA,QAAoB,QAK/B,C,qWC7IAC,IAAAA,OAAa,MAWb,IAmHA,EAnHkD,SAACpF,GACjD,OAA2DqF,EAAAA,EAAAA,GAAU,gBACnE,yGACEC,EAAAA,GAAoBtF,EAAMgC,IAAK,CAC7BuD,OACE,sEACF,2CACJ,CAAEC,YAAa,KANHC,EAAY,EAAlBnC,KAA4BoC,EAAkB,EAA1BC,OAS5B,GAAoC1F,EAAAA,EAAAA,YAAe,WAA5CC,EAAU,KAAEC,EAAa,MAEhCC,EAAAA,EAAAA,YAAU,WACR,GAAIJ,EAAMK,KAAKC,gBACbH,EAAcI,EAAAA,EAAAA,mBACT,GAAIP,EAAMK,KAAKG,iBACpB,OAAQR,EAAMK,KAAKG,kBACjB,IAAK,MACCR,EAAMK,KAAKI,YACbN,EAAcI,EAAAA,EAAAA,UAEdJ,EAAcI,EAAAA,EAAAA,kBAGhB,MACF,IAAK,MACHJ,EAAcI,EAAAA,EAAAA,qBACd,MACF,IAAK,MACHJ,EAAcI,EAAAA,EAAAA,mBAItB,GAAG,CAACP,EAAMK,OAEV,IAAMyB,GAAqB8D,EAAAA,EAAAA,GAAa,iCAAC,WAAOvF,GAAI,uEAC9CA,EAAKwF,mBAAoB,CAAF,+BACnBP,EAAAA,GAAajF,EAAK2B,KAAI,OAC5B2B,EAAAA,GAAAA,QAAgB,UAChB+B,EAAmB,WACdrF,GAAI,IACPwF,oBAAoB,EACpBjE,eAAgBvB,EAAKuB,eAAiB,KACrC,uCAEG0D,EAAAA,GAAWjF,EAAK2B,KAAI,OAC1B2B,EAAAA,GAAAA,QAAgB,QAChB+B,EAAmB,WACdrF,GAAI,IACPwF,oBAAoB,EACpBjE,eAAgBvB,EAAKuB,eAAiB,KACrC,4CAEN,mDAlBuC,IAoBlClB,EAAwB,WAE5BC,OAAOC,SAASC,KAAO,iCACzB,EAEA,OACE,iBAAK,YAAU,4BAA2B,WACxC,iBAAK,eAAS,UACX4E,IACC,SAACK,EAAA,QAAiB,CAChBzF,KAAMoF,EACN3D,mBAAoBA,EAAmB,UAEvC,SAAC,IAAM,CACLiE,KAAM,QACN9E,IACEjB,EAAMkB,YACJ,SAAC,IAAK,CACJgB,MAAO,GACP2B,OAAQ,GACR5C,IAAKjB,EAAMkB,WACX8E,SAAS,EACT5E,MAAO,CAAEC,UAAW,gBAEpB4E,OAMZ,iBAAKjF,UAAU,kBAAiB,WAC9B,iBAAKA,UAAU,WAAU,UACtBhB,EAAMsB,KACNpB,IAAeK,EAAAA,EAAAA,qBACd,gBACES,UAAU,wBACVC,IAAKM,EACLC,QAASd,EACTK,MAAM,SAENb,IAAeK,EAAAA,EAAAA,cACjB,gBACES,UAAU,wBACVC,IAAKQ,EACLD,QAASd,EACTK,MAAM,SAEN,SAEN,gBACEC,UAAU,6BACVkF,wBAAyB,CAAEC,OAAQnG,EAAM0B,iBAI9C1B,EAAMoG,cAAe,gBAAKnF,IAAKoF,MAGtC,E,qHC5HAjB,IAAAA,OAAa,MACbA,IAAAA,OAAakB,KAQb,IAuJA,EAvJ0D,SAACtG,GACzD,IAKwB8C,EAAkB,EAClCC,EANR,GAAkC9C,EAAAA,EAAAA,WAAS,GAAM,WAA1CsG,EAAS,KAAEC,EAAY,KAC9B,GAAoCvG,EAAAA,EAAAA,WAAS,GAAM,WAA5CqC,EAAU,KAAEC,EAAa,KAChC,EAAeG,EAAAA,EAAAA,UAARC,EAAsB,SAAlB,GACL8D,EAAU/D,EAAAA,EAAAA,SAAc,UAAWC,GAYzC,OACE,4BACE,iBACE3B,UAAU,oCACVI,MAAO,CAAEsF,MAAO,UAAWC,SAAU,QAAS,WAE9C,0BACGvB,IAA8B,IAAxBpF,EAAM4G,KAAKC,YAAmBC,OAAO,0BAE9C,iBAAK9F,UAAU,oBAAmB,UAC/BuF,GACC,iBACEvF,UAAU,UACVI,MAAO,CAAE2F,OAAQ,WACjBvF,QAAS,kBAAMgF,GAAa,EAAM,EAAC,SACpC,QAID,kBACExF,UAAU,4BACVI,MAAO,CAAE2F,OAAQ,WACjBvF,QAAS,kBAAMgF,GAAa,EAAK,EAAC,WAElC,gBAAKvF,IAAK+F,EAAUhG,UAAU,WAAW,QAI5ChB,EAAMiH,UAAYjH,EAAM4G,KAAKvG,KAAK2B,MACjC,iBACEhB,UAAU,gBACVQ,QAAO,gBAAE,gGACDxB,EAAMoD,QAAQ8D,WAAWlH,EAAM4G,KAAK5E,KAAI,2CAC9C,SACH,UAIH,iBACEhB,UAAU,yBACVQ,QAAS,WACHxB,EAAM4G,KAAKO,YACbnH,EAAMoD,QAAQgE,cAAcpH,EAAM4G,KAAK5E,KAEvChC,EAAMoD,QAAQiE,YAAYrH,EAAM4G,KAAK5E,IAEzC,EACA,YAAU,2BAA0B,WAEpC,gBAAKf,IAAKjB,EAAM4G,KAAKO,YAAcG,EAAWC,KAC9C,iBAAMvG,UAAU,SAAQ,SAAEhB,EAAM4G,KAAKY,sBAI1CjB,IACC,SAAC,IAAI,CACH5D,KAAMA,EACN3B,UAAU,UACVkC,SAAQ,iCAAE,WAAOJ,GAAK,mEACA,OAApBP,GAAc,GAAM,kBAEZvC,EAAMoD,QAAQC,WAAW,CAC7B3B,QAASoB,EAAM2D,QACfgB,YAAazH,EAAMyH,YACnBC,WAAY1H,EAAM4G,KAAK5E,MACvB,OACFW,EAAKY,cACLiD,GAAa,GACbjE,GAAc,GAAO,gDAErBA,GAAc,GAAO,yDAExB,mDAdO,GAcN,UAEF,UAAC,IAAG,YACF,SAAC,IAAG,CAACiB,KAAM,GAAG,UACZ,SAAC,SAAS,CACRlC,KAAK,UACLmC,MAAO,CAAC,CAAEC,UAAU,EAAMC,QAAS,UAAW,UAE9C,SAACC,EAAA,EAAU,CACTC,OAAQ,IACRC,cAAe,CACbC,YAAa,CACX,eACA,aACA,IACA,YACA,SACA,mBACA,QACA,UACA,WACA,aACA,aACA,eACA,eACA,OACA,gBACA,eACA,cACA,cAEA,UACA,OACA,OACA,cAGFC,WAAY,CACVC,MAAO,GACPC,KAAM,CAAC,6BAMjB,SAAC,IAAG,CAACV,KAAM,EAAE,UACX,SAAC,SAAS,WACR,SAAC,KAAM,CACLxC,UAAU,UACVqD,SAAS,SACTQ,QAASvC,EACTgC,UArIQxB,EAqIiB2D,EApIjC1D,EAAQwB,SAASC,cAAc,OACrCzB,EAAM0B,UAAY3B,IAEI,QAAlB,EAACC,EAAM2B,mBAAW,OAAjB,EAAmBC,QAAW5B,EAAM6B,cAAc,SAiIP,SACnC,kBAUjB,EC1JM+C,EAA4D,SAAH,GAEzD,IADJtH,EAAI,EAAJA,KAEA,GAA2DgF,EAAAA,EAAAA,GAAU,gBACnE,yGACEC,EAAAA,GAAoBjF,EAAK2B,IAAK,CAC5BuD,OACE,sEACF,2CACJ,CAAEC,YAAa,KANHC,EAAY,EAAlBnC,KAA4BoC,EAAkB,EAA1BC,OAStB7D,GAAqB8D,EAAAA,EAAAA,GAAa,iCAAC,WAAOvF,GAAI,uEAC9CA,EAAKwF,mBAAoB,CAAF,+BACnBP,EAAAA,GAAajF,EAAK2B,KAAI,OAC5B2B,EAAAA,GAAAA,QAAgB,UAChB+B,EAAmB,WACdrF,GAAI,IACPwF,oBAAoB,EACpBjE,eAAgBvB,EAAKuB,eAAiB,KACrC,uCAEG0D,EAAAA,GAAWjF,EAAK2B,KAAI,OAC1B2B,EAAAA,GAAAA,QAAgB,QAChB+B,EAAmB,WACdrF,GAAI,IACPwF,oBAAoB,EACpBjE,eAAgBvB,EAAKuB,eAAiB,KACrC,4CAEN,mDAlBuC,IAmBxC,OACE,8BACG6D,IACC,SAACK,EAAA,QAAiB,CAChBzF,KAAMoF,EACN3D,mBAAoBA,EAAmB,UAEvC,SAAC,IAAM,CACLiE,KAAM,QACN9E,IACEZ,EAAKa,YACH,SAAC,IAAK,CACJD,IAAKZ,EAAKa,WACV8E,SAAS,EACT5E,MAAO,CAAEC,UAAW,gBAEpB4E,OAOlB,EA4NA,EAjNI,SAACjG,GACH,OAAkCC,EAAAA,EAAAA,WAAS,GAAM,WAA1CsG,EAAS,KAAEC,EAAY,KAC9B,GAAoCvG,EAAAA,EAAAA,WAAS,GAAM,WAA5CqC,EAAU,KAAEC,EAAa,KAEhC,EAAeG,EAAAA,EAAAA,UAARC,EAAsB,SAAlB,GACL8D,EAAU/D,EAAAA,EAAAA,SAAc,UAAWC,IAGzCvC,EAAAA,EAAAA,YAAU,WACPO,OAAeiC,KAAKC,cACvB,GAAG,IAEH,IAAwBC,EAAkB,EAClCC,EASFrC,EAAwB,WAE5BC,OAAOC,SAASC,KAAO,iCACzB,EAEA,OACE,iBAAKG,UAAU,uCAAsC,WACnD,iBAAKA,UAAU,4CAA2C,WACxD,gBAAKA,UAAU,4BAA2B,SACvCoE,IAAyB,IAAnBpF,EAAM6G,YAAmBC,OAAO,0BAEzC,iBAAK9F,UAAU,oBAAmB,WAChC,iBAAKA,UAAU,eAAc,UAC1BuF,GACC,iBAAMvF,UAAU,SAASQ,QAAS,kBAAMgF,GAAa,EAAM,EAAC,SAAC,QAI7D,kBACExF,UAAU,2BACVQ,QAAS,kBAAMgF,GAAa,EAAK,EAAC,WAElC,gBAAKvF,IAAK+F,EAAUhG,UAAU,WAAW,QAI5ChB,EAAM4H,QACL,iBACE5G,UAAU,gBACVQ,QAAO,gBAAE,gGACDxB,EAAMoD,QAAQ8D,WAAWlH,EAAM6H,OAAO7F,KAAI,2CAChD,SACH,aAKL,iBACEhB,UAAS,SACTI,MAAO,CAAE2F,OAAQ,WACjBvF,QAAS,WACHxB,EAAM6H,OAAOV,YACfnH,EAAMoD,QAAQgE,cAAcpH,EAAM6H,OAAO7F,KAEzChC,EAAMoD,QAAQiE,YAAYrH,EAAM6H,OAAO7F,IAE3C,EACA,YAAU,2BAA0B,WAEpC,gBAAKf,IAAKjB,EAAM6H,OAAOV,YAAcG,EAAWC,KAChD,iBAAMvG,UAAU,yBAAwB,SACrChB,EAAM6H,OAAOL,uBAKtB,gBAAKxG,UAAU,UAAS,SACrBuF,IACC,SAAC,IAAI,CACH5D,KAAMA,EACN3B,UAAU,UACVkC,SAAQ,iCAAE,WAAOJ,GAAK,mEACA,OAApBP,GAAc,GAAM,kBAEZvC,EAAMoD,QAAQC,WAAW,CAC7B3B,QAASoB,EAAM2D,QACfgB,YAAazH,EAAM6H,OAAO7F,IAC1B0F,WAAY1H,EAAM6H,OAAO7F,MACzB,OACFW,EAAKY,cACLiD,GAAa,GACbjE,GAAc,GAAO,gDAErBA,GAAc,GAAO,yDAExB,mDAdO,GAcN,UAEF,UAAC,IAAG,YACF,SAAC,IAAG,CAACiB,KAAM,GAAG,UACZ,SAAC,SAAS,CACRlC,KAAK,UACLmC,MAAO,CAAC,CAAEC,UAAU,EAAMC,QAAS,UAAW,UAE9C,SAACC,EAAA,EAAU,CACTC,OAAQ,IACRC,cAAe,CACbC,YAAa,CACX,eACA,aACA,IACA,YACA,SACA,mBACA,QACA,UACA,WACA,aACA,aACA,eACA,eACA,OACA,gBACA,eACA,cACA,cAEA,UACA,OACA,OACA,cAGFC,WAAY,CACVC,MAAO,GACPC,KAAM,CAAC,6BAMjB,SAAC,IAAG,CAACV,KAAM,EAAGpC,MAAO,CAAE+C,UAAW,SAAU,UAC1C,SAAC,SAAS,WACR,SAAC,KAAM,CACLnD,UAAU,UACVqD,SAAS,SACTQ,QAASvC,EACTgC,UAxIMxB,EAwImB2D,EAvInC1D,EAAQwB,SAASC,cAAc,OACrCzB,EAAM0B,UAAY3B,IAEI,QAAlB,EAACC,EAAM2B,mBAAW,OAAjB,EAAmBC,QAAW5B,EAAM6B,cAAc,SAoIL,SACnC,kBASZ5E,EAAM6H,OAAOC,YAAYC,KAAI,SAACnB,GAAI,OACjC,gBAAoB5F,UAAU,mCAAkC,UAC9D,iBAAK,eAAS,WACZ,SAAC2G,EAAmB,CAACtH,KAAMuG,EAAKvG,QAEhC,iBAAKW,UAAU,UAAUI,MAAO,CAAE4G,KAAM,GAAI,WAC1C,iBAAK5G,MAAO,CAAEsF,MAAO,UAAWuB,WAAY,KAAM,UAC/CrB,EAAKvG,KAAKiB,KACVsF,EAAKvG,KAAKC,iBACT,gBACEU,UAAU,wBACVC,IAAKQ,EACLD,QAASd,EACTK,MAAM,SAEyB,QAA/B6F,EAAKvG,KAAKG,kBACZ,gBACEQ,UAAU,wBACVC,IAAKM,EACLC,QAASd,EACTK,MAAM,SAEN,SAEN,4BACE,iBAAMC,UAAU,kBAAiB,SAAC,QAClC,iBAAMA,UAAU,0BAAyB,SACtC4F,EAAKsB,cAAc5G,QAEtB,iBAAMN,UAAU,kBAAiB,SAAC,OAClC,iBACEA,UAAU,mDACVkF,wBAAyB,CAAEC,OAAQS,EAAKlF,eAG5C,0BACE,SAAC,EAAgB,CACfkF,KAAMA,EACNa,YAAazH,EAAM6H,OAAO7F,IAC1BoB,QAASpD,EAAMoD,QACf6D,QAASjH,EAAMiH,mBAvCfL,EAAK5E,IA4CT,MAId,ECnNA,EA7DoE,SAAChC,GACnE,OAA+CmI,EAAAA,EAAAA,GAAWnI,EAAMoI,WAAlDC,EAAU,EAAhB/E,KAAkBuB,EAAO,EAAPA,QAASzB,EAAO,EAAPA,QAEnC,OACE,gBAAKpC,UAAU,mBAAkB,SAC9B6D,GACC,SAAC,IAAI,KAEL,iCACE,iBAAK7D,UAAU,qBAAoB,UAAC,OAEjChB,EAAMsI,mBAAqBtI,EAAMsI,kBAAoB,EAAC,WAC/CtI,EAAMsI,kBAAiB,KAC3B,QAELD,SAAAA,EAAYE,QAAUF,EAAWE,OAAS,GACzC,8BACGF,EAAWN,KAAI,SAACF,GAAM,OACrB,gBAAK7G,UAAU,wBAAuB,UACpC,iBAAKA,UAAU,UAAS,WACtB,SAAC,EAAY,CACXgB,IAAK6F,EAAOxH,KAAK2B,IACjBd,WAAY2G,EAAOxH,KAAKa,WACxBI,KAAMuG,EAAOxH,KAAKiB,KAClB8E,YAAayB,EAAOW,gBACpB9G,QAASmG,EAAOnG,QAChBrB,KAAMwH,EAAOxH,QAEf,0BACE,SAAC,EAAiC,CAChCuH,MAAOC,EAAOxH,KAAK2B,MAAQhC,EAAMiH,QACjCY,OAAQA,EACRzE,QAASA,EACT6D,QAASjH,EAAMiH,QACfJ,WAAYgB,EAAOhB,mBAhBiBgB,EAAO7F,IAoB7C,OAIV,iBACEhB,UAAU,4CACVI,MAAO,CAAEyC,OAAQ,QAAS,WAE1B,gBAAK5C,IAAKwH,KACV,iBAAMzH,UAAU,sBAAqB,SAAC,kBAI1C,SAAC0H,EAAA,QAAuB,CACtBN,UAAWpI,EAAMoI,UACjBhF,QAASA,QAMrB,C,sCC1EA,IAAeuF,EAAG,C,sCCAlB,IAAeC,EAAG,C","sources":["webpack:///./src/components/UserAvatarPopover/index.tsx","webpack:///./src/components/group/GroupDetailAnswerList/GroupCommentBottomInput.tsx","webpack:///./src/components/group/GroupDetailAnswerList/AnswerHeader.tsx","webpack:///./src/components/group/GroupDetailAnswerList/CommentInComment.tsx","webpack:///./src/components/group/GroupDetailAnswerList/GroupDetailListWithLikeAndComment.tsx","webpack:///./src/components/group/GroupDetailAnswerList/index.tsx","webpack:///./node_modules/antd/es/col/index.js","webpack:///./node_modules/antd/es/row/index.js"],"sourcesContent":["import AvatarFoundingMemberIcon from '@/static/imgs/AvatarFoundingMemberIcon.svg';\nimport AvatarSuperMemberIcon from '@/static/imgs/AvatarSuperMemberIcon.svg';\nimport { Button, Popover } from 'antd';\nimport { useEffect, useState } from 'react';\nimport HomepageFollowButton from '../homepage/HomepageFollowButton';\nimport { MEMBER_TYPE } from '../UserTrayAvatar';\n\ntype UserAvatarPopoverProps = {\n user: API.User.UserOverviewForGet;\n toggleFollowStatus: (user: API.User.UserOverviewForGet) => void;\n loggedUid?: string;\n children?: JSX.Element;\n};\n\nconst UserAvatarPopover: React.FC<UserAvatarPopoverProps> = (props) => {\n const [memberType, setMemberType] = useState<any>(0);\n\n useEffect(() => {\n if (props.user.is_founding_vip) {\n setMemberType(MEMBER_TYPE.FOUNDING_VIP);\n } else if (props.user.super_vip_status) {\n switch (props.user.super_vip_status) {\n case '未开通':\n setMemberType(MEMBER_TYPE.SUPER_VIP_NONACTIVATED);\n break;\n case '生效中':\n setMemberType(MEMBER_TYPE.SUPER_VIP_ACTIVATED);\n break;\n case '已过期':\n setMemberType(MEMBER_TYPE.SUPER_VIP_EXPRIED);\n break;\n }\n } else if (props.user.is_base_vip) {\n setMemberType(MEMBER_TYPE.BASE_VIP);\n } else {\n setMemberType(MEMBER_TYPE.NOT_CERTIFICATED);\n }\n }, [props.user]);\n const handleJumpToMemberPay = () => {\n // 跳转会员支付页面\n window.location.href = '/community/user/vip/categories/';\n };\n return (\n <Popover\n placement=\"bottomLeft\"\n title={\n <>\n <div className=\"flex items-center text-16px\">\n <img\n src={props.user.avatar_url}\n className=\"h-20px w-20px rounded-full mr-5px\"\n alt=\"头像\"\n style={{ objectFit: 'cover' }}\n />\n <span className=\"font-500 text-hex-1a263d\">{props.user.name}</span>\n {memberType === MEMBER_TYPE.SUPER_VIP_ACTIVATED ? (\n <img\n className=\"w-20px h-20px ml-10px\"\n src={AvatarSuperMemberIcon}\n onClick={handleJumpToMemberPay}\n title=\"超级会员\"\n />\n ) : memberType === MEMBER_TYPE.FOUNDING_VIP ? (\n <img\n className=\"w-20px h-20px ml-10px\"\n src={AvatarFoundingMemberIcon}\n onClick={handleJumpToMemberPay}\n title=\"创始会员\"\n />\n ) : null}\n </div>\n </>\n }\n content={\n <>\n <div className=\"flex justify-between\">\n <div className=\"flex flex-col\">\n <span className=\"text-16px font-500\">\n {props.user.follow_count || 0}\n </span>\n <span className=\"text-hex-86909C text-12px\">关注</span>\n </div>\n <div className=\"flex flex-col\">\n <span className=\"text-16px font-500\">\n {props.user.follower_count || 0}\n </span>\n <span className=\"text-hex-86909C text-12px\">粉丝</span>\n </div>\n <div className=\"flex flex-col\">\n <span className=\"text-16px font-500\">\n {props.user.create_post_count || 0}\n </span>\n <span className=\"text-hex-86909C text-12px\">发帖</span>\n </div>\n </div>\n\n <div className=\"flex justify-between mt-15px\">\n <HomepageFollowButton\n user={props.user}\n toggleFollowStatus={props.toggleFollowStatus}\n loggedUid={props.loggedUid}\n />\n <Button\n onClick={() => {\n window.location.href = `/community/user/people/${props.user.uid}`;\n }}\n >\n 个人主页\n </Button>\n </div>\n </>\n }\n overlayStyle={{ width: 270, paddingTop: 0 }}\n showArrow={false}\n >\n {props.children}\n </Popover>\n );\n};\n\nexport default UserAvatarPopover;\n","import { Toolkit } from '@/components/Comment/useComment';\nimport GroupPostDetailTools from '@/components/group/GroupPostDetailTools';\nimport WangEditor from '@/components/WangEditor';\nimport closeSvg from '@/static/imgs/close.svg';\nimport commentSvg from '@/static/imgs/post-detail-comment.svg';\nimport { Button, Col, Form, Row } from 'antd';\nimport { useEffect, useState } from 'react';\n\ntype GroupCommentBottomInputProps = {\n threadUid: string;\n toolkit: Toolkit;\n};\n\nconst GroupCommentBottomInput: React.FC<GroupCommentBottomInputProps> = (\n props,\n) => {\n // const { toolkit } = useComment(props.threadUid);\n const [btnLoading, setBtnLoading] = useState(false);\n const [showWangEditor, setShowWangEditor] = useState(false);\n\n const [form] = Form.useForm();\n const content = Form.useWatch('content', form);\n\n useEffect(() => {\n (window as any).hljs.highlightAll();\n }, []);\n\n const isContentEmpty = (value: string) => {\n const divEl = document.createElement('div');\n divEl.innerHTML = value;\n\n if (!divEl.textContent?.trim() && !divEl.querySelector('img')) {\n return true;\n }\n return false;\n };\n\n return (\n <div\n className=\"group-detail-bottom-comment w-856px bg-hex-fff p-10px fixed bottom-0 -ml-24px rounded-t-6px\"\n style={{ boxShadow: '0px -3px 10px -2px rgba(29,33,41,0.08)' }}\n >\n {showWangEditor ? (\n <>\n <div className=\"mb-12px flex justify-between\">\n <div className=\"text-18px font-500\">评论</div>\n <img\n className=\"w-20px h-20px cursor-pointer\"\n src={closeSvg}\n onClick={() => setShowWangEditor(false)}\n />\n </div>\n <Form\n form={form}\n onFinish={async (values) => {\n // 添加评论\n setBtnLoading(true);\n try {\n const data = await props.toolkit.addComment({\n content: values.content,\n });\n setBtnLoading(false);\n setShowWangEditor(false);\n if (data) {\n form.resetFields();\n }\n } catch (e) {\n setBtnLoading(false);\n }\n }}\n >\n <Row>\n <Col span={21}>\n <Form.Item\n name=\"content\"\n rules={[{ required: true, message: '请输入评论' }]}\n >\n <WangEditor\n height={150}\n toolbarConfig={{\n excludeKeys: [\n 'headerSelect',\n 'blockquote',\n '|',\n 'underline',\n 'italic',\n 'group-more-style',\n 'color',\n 'bgColor',\n 'fontSize',\n 'fontFamily',\n 'lineHeight',\n 'bulletedList',\n 'numberedList',\n 'todo',\n 'group-justify',\n 'group-indent',\n 'group-video',\n 'insertTable',\n // 'codeBlock',\n 'divider',\n 'undo',\n 'redo',\n 'fullScreen',\n ],\n // 插入哪些菜单\n insertKeys: {\n index: 23, // 自定义插入的位置\n keys: ['uploadAttachment'], // “上传附件”菜单\n },\n }}\n />\n </Form.Item>\n </Col>\n <Col span={2} className=\"ml-10px\" style={{ textAlign: 'right' }}>\n <Form.Item>\n <Button\n type=\"primary\"\n htmlType=\"submit\"\n disabled={isContentEmpty(content)}\n loading={btnLoading}\n >\n 发表评论\n </Button>\n </Form.Item>\n </Col>\n </Row>\n </Form>\n </>\n ) : (\n <div className=\"flex items-center justify-between\">\n {/* <Input\n style={{ width: 474 }}\n onClick={() => setShowWangEditor(true)}\n /> */}\n\n <Button\n type=\"primary\"\n icon={<img src={commentSvg} className=\"mr-4px\" />}\n ghost\n onClick={() => setShowWangEditor(true)}\n className=\"flex items-center border-bg-3598E8\"\n style={{ border: '1px solid #3598E8', height: 42, borderRadius: 6 }}\n >\n 评论\n </Button>\n\n <GroupPostDetailTools />\n </div>\n )}\n </div>\n );\n};\n\nexport default GroupCommentBottomInput;\n","import * as api from '@/api/user';\nimport UserAvatarPopover from '@/components/UserAvatarPopover';\nimport { MEMBER_TYPE } from '@/components/UserTrayAvatar';\nimport acceptedSvg from '@/static/imgs/accepted.svg';\nimport AvatarFoundingMemberIcon from '@/static/imgs/AvatarFoundingMemberIcon.svg';\nimport AvatarSuperMemberIcon from '@/static/imgs/AvatarSuperMemberIcon.svg';\nimport { useMemoizedFn, useRequest } from 'ahooks';\nimport { Avatar, Image, message } from 'antd';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/zh';\nimport { useEffect, useState } from 'react';\ndayjs.locale('zh');\n\ntype AnswerHeaderProps = {\n uid: string;\n avatar_url: string;\n name: string;\n is_accepted: boolean;\n content: string;\n user: any;\n};\n\nconst AnswerHeader: React.FC<AnswerHeaderProps> = (props) => {\n const { data: userOverview, mutate: mutateUserOverview } = useRequest(\n async () =>\n api.getUserOverview(props.uid, {\n with_f:\n 'follow_count,follower_count,create_post_count,user_follow_status',\n }),\n { refreshDeps: [] },\n );\n\n const [memberType, setMemberType] = useState<any>();\n\n useEffect(() => {\n if (props.user.is_founding_vip) {\n setMemberType(MEMBER_TYPE.FOUNDING_VIP);\n } else if (props.user.super_vip_status) {\n switch (props.user.super_vip_status) {\n case '未开通':\n if (props.user.is_base_vip) {\n setMemberType(MEMBER_TYPE.BASE_VIP);\n } else {\n setMemberType(MEMBER_TYPE.NOT_CERTIFICATED);\n }\n // setMemberType(MEMBER_TYPE.SUPER_VIP_NONACTIVATED);\n break;\n case '生效中':\n setMemberType(MEMBER_TYPE.SUPER_VIP_ACTIVATED);\n break;\n case '已过期':\n setMemberType(MEMBER_TYPE.SUPER_VIP_EXPRIED);\n break;\n }\n }\n }, [props.user]);\n\n const toggleFollowStatus = useMemoizedFn(async (user) => {\n if (user.user_follow_status) {\n await api.unfollow(user.uid);\n message.success('取消关注成功');\n mutateUserOverview({\n ...user,\n user_follow_status: false,\n follower_count: user.follower_count - 1,\n });\n } else {\n await api.follow(user.uid);\n message.success('关注成功');\n mutateUserOverview({\n ...user,\n user_follow_status: true,\n follower_count: user.follower_count + 1,\n });\n }\n });\n\n const handleJumpToMemberPay = () => {\n // 跳转会员支付页面\n window.location.href = '/community/user/vip/categories/';\n };\n\n return (\n <div data-flex=\"main:justify cross:center\">\n <div data-flex>\n {userOverview && (\n <UserAvatarPopover\n user={userOverview}\n toggleFollowStatus={toggleFollowStatus}\n >\n <Avatar\n size={'large'}\n src={\n props.avatar_url ? (\n <Image\n width={40}\n height={40}\n src={props.avatar_url}\n preview={false}\n style={{ objectFit: 'cover' }}\n />\n ) : undefined\n }\n ></Avatar>\n </UserAvatarPopover>\n )}\n\n <div className=\"ml-10px w-760px\">\n <div className=\"font-550\">\n {props.name}\n {memberType === MEMBER_TYPE.SUPER_VIP_ACTIVATED ? (\n <img\n className=\"w-20px h-20px ml-10px\"\n src={AvatarSuperMemberIcon}\n onClick={handleJumpToMemberPay}\n title=\"超级会员\"\n />\n ) : memberType === MEMBER_TYPE.FOUNDING_VIP ? (\n <img\n className=\"w-20px h-20px ml-10px\"\n src={AvatarFoundingMemberIcon}\n onClick={handleJumpToMemberPay}\n title=\"创始会员\"\n />\n ) : null}\n </div>\n <div\n className=\"mt-8px rich-text text-15px\"\n dangerouslySetInnerHTML={{ __html: props.content }}\n ></div>\n </div>\n </div>\n {props.is_accepted && <img src={acceptedSvg} />}\n </div>\n );\n};\n\nexport default AnswerHeader;\n","import { Toolkit } from '@/components/Comment/useComment';\nimport WangEditor from '@/components/WangEditor';\nimport like2Svg from '@/static/imgs/like2.svg';\nimport replySvg from '@/static/imgs/reply.svg';\nimport unlike2Svg from '@/static/imgs/unlike2.svg';\nimport { Button, Col, Form, Row } from 'antd';\nimport dayjs from 'dayjs';\nimport 'dayjs/locale/zh';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport { useState } from 'react';\n\ndayjs.locale('zh');\ndayjs.extend(relativeTime);\n\ntype CommentInCommentProps = {\n item: API.Comment.DescendantsForList;\n ancestorUid: string;\n toolkit: Toolkit;\n userUid: string;\n};\nconst CommentInComment: React.FC<CommentInCommentProps> = (props) => {\n const [showInput, setShowInput] = useState(false);\n const [btnLoading, setBtnLoading] = useState(false);\n const [form] = Form.useForm();\n const comment = Form.useWatch('comment', form);\n\n const isContentEmpty = (value: string) => {\n const divEl = document.createElement('div');\n divEl.innerHTML = value;\n\n if (!divEl.textContent?.trim() && !divEl.querySelector('img')) {\n return true;\n }\n return false;\n };\n\n return (\n <div>\n <div\n className=\"flex items-center justify-between\"\n style={{ color: '#86909C', fontSize: '12px' }}\n >\n <span>\n {dayjs(props.item.created_at * 1000).format('YYYY-MM-DD HH:mm:ss')}\n </span>\n <div className=\"flex items-center\">\n {showInput ? (\n <span\n className=\"ml-10px\"\n style={{ cursor: 'pointer' }}\n onClick={() => setShowInput(false)}\n >\n 收起\n </span>\n ) : (\n <span\n className=\"flex items-center ml-10px\"\n style={{ cursor: 'pointer' }}\n onClick={() => setShowInput(true)}\n >\n <img src={replySvg} className=\"mr-4px\" />\n 回复\n </span>\n )}\n {props.userUid === props.item.user.uid && (\n <span\n className=\"replay ml-2px\"\n onClick={async () => {\n await props.toolkit.delComment(props.item.uid);\n }}\n >\n | 删除\n </span>\n )}\n <div\n className=\"ml-20px cursor-pointer\"\n onClick={() => {\n if (props.item.like_status) {\n props.toolkit.unlikeComment(props.item.uid);\n } else {\n props.toolkit.likeComment(props.item.uid);\n }\n }}\n data-flex=\"main:center cross:center\"\n >\n <img src={props.item.like_status ? like2Svg : unlike2Svg} />\n <span className=\"ml-4px\">{props.item.like_count}</span>\n </div>\n </div>\n </div>\n {showInput && (\n <Form\n form={form}\n className=\"mt-20px\"\n onFinish={async (value) => {\n setBtnLoading(true);\n try {\n await props.toolkit.addComment({\n content: value.comment,\n ancestorUid: props.ancestorUid,\n replyToUid: props.item.uid,\n });\n form.resetFields();\n setShowInput(false);\n setBtnLoading(false);\n } catch {\n setBtnLoading(false);\n }\n }}\n >\n <Row>\n <Col span={22}>\n <Form.Item\n name=\"comment\"\n rules={[{ required: true, message: '请输入评论' }]}\n >\n <WangEditor\n height={150}\n toolbarConfig={{\n excludeKeys: [\n 'headerSelect',\n 'blockquote',\n '|',\n 'underline',\n 'italic',\n 'group-more-style',\n 'color',\n 'bgColor',\n 'fontSize',\n 'fontFamily',\n 'lineHeight',\n 'bulletedList',\n 'numberedList',\n 'todo',\n 'group-justify',\n 'group-indent',\n 'group-video',\n 'insertTable',\n // 'codeBlock',\n 'divider',\n 'undo',\n 'redo',\n 'fullScreen',\n ],\n // 插入哪些菜单\n insertKeys: {\n index: 23, // 自定义插入的位置\n keys: ['uploadAttachment'], // “上传附件”菜单\n },\n }}\n />\n </Form.Item>\n </Col>\n <Col span={2}>\n <Form.Item>\n <Button\n className=\"ml-10px\"\n htmlType=\"submit\"\n loading={btnLoading}\n disabled={isContentEmpty(comment)}\n >\n 发表\n </Button>\n </Form.Item>\n </Col>\n </Row>\n </Form>\n )}\n </div>\n );\n};\nexport default CommentInComment;\n","import * as api from '@/api/user';\nimport { Toolkit } from '@/components/Comment/useComment';\nimport UserAvatarPopover from '@/components/UserAvatarPopover';\nimport WangEditor from '@/components/WangEditor';\nimport AvatarFoundingMemberIcon from '@/static/imgs/AvatarFoundingMemberIcon.svg';\nimport AvatarSuperMemberIcon from '@/static/imgs/AvatarSuperMemberIcon.svg';\nimport like2Svg from '@/static/imgs/like2.svg';\nimport replySvg from '@/static/imgs/reply.svg';\nimport unlike2Svg from '@/static/imgs/unlike2.svg';\nimport { useMemoizedFn, useRequest } from 'ahooks';\nimport { Avatar, Button, Col, Form, Image, message, Row } from 'antd';\nimport dayjs from 'dayjs';\nimport React, { useEffect, useState } from 'react';\nimport CommentInComment from './CommentInComment';\nimport './index.scss';\n\nconst SecondCommentAvatar: React.FC<{ user: API.Comment.User }> = ({\n user,\n}) => {\n const { data: userOverview, mutate: mutateUserOverview } = useRequest(\n async () =>\n api.getUserOverview(user.uid, {\n with_f:\n 'follow_count,follower_count,create_post_count,user_follow_status',\n }),\n { refreshDeps: [] },\n );\n\n const toggleFollowStatus = useMemoizedFn(async (user) => {\n if (user.user_follow_status) {\n await api.unfollow(user.uid);\n message.success('取消关注成功');\n mutateUserOverview({\n ...user,\n user_follow_status: false,\n follower_count: user.follower_count - 1,\n });\n } else {\n await api.follow(user.uid);\n message.success('关注成功');\n mutateUserOverview({\n ...user,\n user_follow_status: true,\n follower_count: user.follower_count + 1,\n });\n }\n });\n return (\n <>\n {userOverview && (\n <UserAvatarPopover\n user={userOverview}\n toggleFollowStatus={toggleFollowStatus}\n >\n <Avatar\n size={'large'}\n src={\n user.avatar_url ? (\n <Image\n src={user.avatar_url}\n preview={false}\n style={{ objectFit: 'cover' }}\n />\n ) : undefined\n }\n ></Avatar>\n </UserAvatarPopover>\n )}\n </>\n );\n};\n\ntype GroupDetailListWithLikeAndCommentProps = {\n answer: API.Comment.CommentForList;\n toolkit: Toolkit;\n isOwn: boolean;\n userUid: string;\n created_at: number;\n};\nconst GroupDetailListWithLikeAndComment: React.FC<\n GroupDetailListWithLikeAndCommentProps\n> = (props) => {\n const [showInput, setShowInput] = useState(false);\n const [btnLoading, setBtnLoading] = useState(false);\n\n const [form] = Form.useForm();\n const comment = Form.useWatch('comment', form);\n\n // PrismJs.highlightAll();\n useEffect(() => {\n (window as any).hljs.highlightAll();\n }, []);\n\n const isContentEmpty = (value: string) => {\n const divEl = document.createElement('div');\n divEl.innerHTML = value;\n\n if (!divEl.textContent?.trim() && !divEl.querySelector('img')) {\n return true;\n }\n return false;\n };\n\n const handleJumpToMemberPay = () => {\n // 跳转会员支付页面\n window.location.href = '/community/user/vip/categories/';\n };\n\n return (\n <div className=\"qa-detail-list-with-like-and-comment\">\n <div className=\"ml-46px flex items-center justify-between\">\n <div className=\"text-hex-86909C text-12px\">\n {dayjs(props.created_at * 1000).format('YYYY-MM-DD HH:mm:ss')}\n </div>\n <div className=\"flex items-center\">\n <div className=\"flex mr-20px\">\n {showInput ? (\n <span className=\"replay\" onClick={() => setShowInput(false)}>\n 收起\n </span>\n ) : (\n <span\n className=\"replay flex items-center\"\n onClick={() => setShowInput(true)}\n >\n <img src={replySvg} className=\"mr-4px\" />\n 回复\n </span>\n )}\n {props.isOwn && (\n <span\n className=\"replay ml-2px\"\n onClick={async () => {\n await props.toolkit.delComment(props.answer.uid);\n }}\n >\n | 删除\n </span>\n )}\n </div>\n <div\n className={`py-7px`}\n style={{ cursor: 'pointer' }}\n onClick={() => {\n if (props.answer.like_status) {\n props.toolkit.unlikeComment(props.answer.uid);\n } else {\n props.toolkit.likeComment(props.answer.uid);\n }\n }}\n data-flex=\"main:center cross:center\"\n >\n <img src={props.answer.like_status ? like2Svg : unlike2Svg} />\n <span className=\"ml-4px text-hex-86909c\">\n {props.answer.like_count}\n </span>\n </div>\n </div>\n </div>\n <div className=\"mt-20px\">\n {showInput && (\n <Form\n form={form}\n className=\"mt-20px\"\n onFinish={async (value) => {\n setBtnLoading(true);\n try {\n await props.toolkit.addComment({\n content: value.comment,\n ancestorUid: props.answer.uid,\n replyToUid: props.answer.uid,\n });\n form.resetFields();\n setShowInput(false);\n setBtnLoading(false);\n } catch {\n setBtnLoading(false);\n }\n }}\n >\n <Row>\n <Col span={22}>\n <Form.Item\n name=\"comment\"\n rules={[{ required: true, message: '请输入评论' }]}\n >\n <WangEditor\n height={150}\n toolbarConfig={{\n excludeKeys: [\n 'headerSelect',\n 'blockquote',\n '|',\n 'underline',\n 'italic',\n 'group-more-style',\n 'color',\n 'bgColor',\n 'fontSize',\n 'fontFamily',\n 'lineHeight',\n 'bulletedList',\n 'numberedList',\n 'todo',\n 'group-justify',\n 'group-indent',\n 'group-video',\n 'insertTable',\n // 'codeBlock',\n 'divider',\n 'undo',\n 'redo',\n 'fullScreen',\n ],\n // 插入哪些菜单\n insertKeys: {\n index: 23, // 自定义插入的位置\n keys: ['uploadAttachment'], // “上传附件”菜单\n },\n }}\n />\n </Form.Item>\n </Col>\n <Col span={2} style={{ textAlign: 'right' }}>\n <Form.Item>\n <Button\n className=\"ml-10px\"\n htmlType=\"submit\"\n loading={btnLoading}\n disabled={isContentEmpty(comment)}\n >\n 发表\n </Button>\n </Form.Item>\n </Col>\n </Row>\n </Form>\n )}\n </div>\n {props.answer.descendants.map((item) => (\n <div key={item.uid} className=\"comment-container p-16px ml-46px\">\n <div data-flex>\n <SecondCommentAvatar user={item.user} />\n\n <div className=\"ml-10px\" style={{ flex: 1 }}>\n <div style={{ color: '#1D2129', fontWeight: 550 }}>\n {item.user.name}\n {item.user.is_founding_vip ? (\n <img\n className=\"w-20px h-20px ml-10px\"\n src={AvatarFoundingMemberIcon}\n onClick={handleJumpToMemberPay}\n title=\"创始会员\"\n />\n ) : item.user.super_vip_status === '生效中' ? (\n <img\n className=\"w-20px h-20px ml-10px\"\n src={AvatarSuperMemberIcon}\n onClick={handleJumpToMemberPay}\n title=\"超级会员\"\n />\n ) : null}\n </div>\n <div>\n <span className=\"text-hex-86909C\">回复</span>\n <span className=\"ml-10px text-hex-1D2129\">\n {item.reply_to_user.name}\n </span>\n <span className=\"text-hex-4E5969\">:</span>\n <span\n className=\"text-hex-1D2129 rich-text inline-block text-15px\"\n dangerouslySetInnerHTML={{ __html: item.content }}\n ></span>\n </div>\n <div>\n <CommentInComment\n item={item}\n ancestorUid={props.answer.uid}\n toolkit={props.toolkit}\n userUid={props.userUid}\n />\n </div>\n </div>\n </div>\n </div>\n ))}\n </div>\n );\n};\n\nexport default GroupDetailListWithLikeAndComment;\n","// 圈子详情-评论列表\nimport useComment from '@/components/Comment/useComment';\nimport noContentPng from '@/static/imgs/no-content.png';\nimport { Spin } from 'antd';\nimport AnswerHeader from './AnswerHeader';\nimport GroupCommentBottomInput from './GroupCommentBottomInput';\nimport GroupDetailListWithLikeAndComment from './GroupDetailListWithLikeAndComment';\nimport './index.scss';\n\ntype GroupDetailAnswerListProps = {\n threadUid: string;\n userUid: string;\n totalCommentCount?: number;\n user: any;\n};\n// 评论列表\nconst GroupDetailAnswerList: React.FC<GroupDetailAnswerListProps> = (props) => {\n const { data: answerList, loading, toolkit } = useComment(props.threadUid);\n\n return (\n <div className=\"questions p-24px\">\n {loading ? (\n <Spin />\n ) : (\n <>\n <div className=\"text-18px font-500\">\n 全部评论\n {props.totalCommentCount && props.totalCommentCount > 0\n ? `(${props.totalCommentCount})`\n : null}\n </div>\n {answerList?.length && answerList.length > 0 ? (\n <>\n {answerList.map((answer) => (\n <div className=\"question-item mt-10px\" key={answer.uid}>\n <div className=\"mt-18px\">\n <AnswerHeader\n uid={answer.user.uid}\n avatar_url={answer.user.avatar_url}\n name={answer.user.name}\n is_accepted={answer.bookmark_status}\n content={answer.content}\n user={answer.user}\n />\n <div>\n <GroupDetailListWithLikeAndComment\n isOwn={answer.user.uid === props.userUid}\n answer={answer}\n toolkit={toolkit}\n userUid={props.userUid}\n created_at={answer.created_at}\n />\n </div>\n </div>\n </div>\n ))}\n </>\n ) : (\n <div\n className=\"flex flex-col items-center justify-center\"\n style={{ height: '100%' }}\n >\n <img src={noContentPng} />\n <span className=\"mt-10px text-center\">成为第一个评论的人</span>\n </div>\n )}\n\n <GroupCommentBottomInput\n threadUid={props.threadUid}\n toolkit={toolkit}\n />\n </>\n )}\n </div>\n );\n};\n\nexport default GroupDetailAnswerList;\n","import { Col } from '../grid';\nexport default Col;","import { Row } from '../grid';\nexport default Row;"],"names":["props","useState","memberType","setMemberType","useEffect","user","is_founding_vip","MEMBER_TYPE","super_vip_status","is_base_vip","handleJumpToMemberPay","window","location","href","placement","title","className","src","avatar_url","alt","style","objectFit","name","AvatarSuperMemberIcon","onClick","AvatarFoundingMemberIcon","content","follow_count","follower_count","create_post_count","toggleFollowStatus","loggedUid","uid","overlayStyle","width","paddingTop","showArrow","children","btnLoading","setBtnLoading","showWangEditor","setShowWangEditor","Form","form","hljs","highlightAll","value","divEl","boxShadow","closeSvg","onFinish","values","toolkit","addComment","data","resetFields","span","rules","required","message","WangEditor","height","toolbarConfig","excludeKeys","insertKeys","index","keys","textAlign","type","htmlType","disabled","document","createElement","innerHTML","textContent","trim","querySelector","loading","icon","commentSvg","ghost","border","borderRadius","GroupPostDetailTools","dayjs","useRequest","api","with_f","refreshDeps","userOverview","mutateUserOverview","mutate","useMemoizedFn","user_follow_status","UserAvatarPopover","size","preview","undefined","dangerouslySetInnerHTML","__html","is_accepted","acceptedSvg","relativeTime","showInput","setShowInput","comment","color","fontSize","item","created_at","format","cursor","replySvg","userUid","delComment","like_status","unlikeComment","likeComment","like2Svg","unlike2Svg","like_count","ancestorUid","replyToUid","SecondCommentAvatar","isOwn","answer","descendants","map","flex","fontWeight","reply_to_user","useComment","threadUid","answerList","totalCommentCount","length","bookmark_status","noContentPng","GroupCommentBottomInput","Col","Row"],"sourceRoot":""}