{"version":3,"sources":["webpack://@lemon8/web-seo/./client/components/loading/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/article/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/article/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/article-card/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/campaign/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/skeleton-scanline/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/common/skeleton-wrapper/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/discover/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/discover/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/hashtag/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/hashtag/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/feed/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/poi/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/poi/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/user/component/index.tsx","webpack://@lemon8/web-seo/./client/skeleton/user/index.tsx","webpack://@lemon8/web-seo/./shared/atoms/article/article-comment-detail-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-comment-detail.ts","webpack://@lemon8/web-seo/./shared/atoms/common/campaign-banner.ts","webpack://@lemon8/web-seo/./shared/atoms/common/category.ts","webpack://@lemon8/web-seo/./shared/atoms/discover/data.ts","webpack://@lemon8/web-seo/./shared/atoms/discover/breadcrumbs.ts","webpack://@lemon8/web-seo/./shared/atoms/discover/discover-article-related-post.ts","webpack://@lemon8/web-seo/./shared/atoms/discover/hot-words.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-detail.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-comments.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-comments-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-post.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-post-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-related-hashtag.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-category-post.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-category-post-loadmore.ts","webpack://@lemon8/web-seo/./shared/atoms/article/article-guess-words-cards.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-detail.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-detail-v2.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-posts.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-related-user.ts","webpack://@lemon8/web-seo/./shared/atoms/user-follow/user-follower.ts","webpack://@lemon8/web-seo/./shared/atoms/user-follow/user-following.ts","webpack://@lemon8/web-seo/./shared/atoms/user-follow/user-follow-topic.ts","webpack://@lemon8/web-seo/./shared/atoms/feed/index.ts","webpack://@lemon8/web-seo/./shared/atoms/topic/index.ts","webpack://@lemon8/web-seo/./shared/atoms/poi/index.ts","webpack://@lemon8/web-seo/./shared/atoms/page-traffic/index.ts","webpack://@lemon8/web-seo/./shared/atoms/user/user-posts-loadmore.ts","webpack://@lemon8/web-seo/./shared/models/page-type.ts","webpack://@lemon8/web-seo/./shared/utils/pending-queue.ts","webpack://@lemon8/web-seo/./shared/utils/node-pending-queue.ts","webpack://@lemon8/web-seo/./shared/utils/safe-atom-family.ts","webpack://@lemon8/web-seo/../libs/ark-css-links/dist/es/index.js"],"names":["LoadingBall","props","fitParent","style","loadingDiv","useRef","useEffect","current","lottie","container","renderer","loop","autoplay","animationData","LOADING_BALL","jsx","className","cls","children","ref","LoadingGradient","shadow","backgroundImage","concat","LOADING_GRADIENT_SHADOW","LOADING_GRADIENT_NO_SHADOW","Loading","variant","jsxs","Fragment","ArticleLargeImageSkeleton","ArticleAuthorSkeleton","xmlns","width","height","viewBox","fill","cx","cy","r","x","y","rx","ArticleTitleSkeleton","ArticleContentSkeleton","ArticleCommentSkeleton","transform","ArticleSkeleton","SkeletonWrapper","fix","CampaignSkeleton","ArticleCardSkeleton","SkeletonScanline","ArticleBodySkeleton","ArticleRecommendSkeleton","DiscoverSkeletonInfo","DiscoverSkeletonTitle","DiscoverFullSkeleton","DiscoverBodySkeleton","HashtagInfoSkeleton","HashtagSkeleton","HashtagBodySkeleton","FeedSkeleton","RootSkeleton","location","navigationLocation","useNavigation","currentLocation","useLocation","pathname","pageType","PageTypeUtils","EPageType","UserFullSkeleton","POIFullSkeleton","POIInfoSkeleton","POIBodySkeleton","UserProfileSkeleton","UserBodySkeleton","$ArticleCommentDetailLoadmore","safeAtomFamily","commentId","a","atom","get","set","input","commentDetail","$ArticleCommentDetail","replies","hasMore","nextReplies","cursor","debugLabel","encodeURIComponent","$ArticleCommentDetailStore","old","_objectSpread","$CampaignBanner","$CategoryList","Promise","$DiscoverDataStore","$DiscoverData","keyword","data","resolve","pendingQueue","args","$DiscoverBreadCrumbsStore","$DiscoverBreadcrumbs","$DiscoverArticleRelatedPost","groupId","searchId","items","$DiscoverClassifyHotWordsStore","$DiscoverClassifyHotWords","$ArticleDetailStore","$ArticleDetail","newArticle","$ArticleCommentStore","$ArticleComments","comments","$ArticleCommentsLoadmore","nextItems","nextHasMore","nextCursor","output","$ArticleRelatedPostStore","$ArticleRelatedPost","$ArticleRelatedPostLoadmore","$ArticleRelatedHashtagStore","$ArticleRelatedHashtag","$ArticleCategoryPostStore","$ArticleCategoryPost","$ArticleCategoryPostLoadmore","$ArticleGuessCardsWordsStore","$ArticleGuessCardsWords","newData","$UserDetailStore","$UserDetail","userId","userDetail","$UserDetailV2Store","$UserDetailV2","userUniqueName","$UserPostStore","$UserPost","userLinkName","$UserRelatedStore","$UserRelatedUser","$UserFollowerStore","$UserFollower","$UserFollowerLoadmore","$UserFollowingStore","$UserFollowing","$UserFollowingLoadmore","$UserFollowingTopicStore","$UserFollowingTopic","$UserFollowTopicLoadmore","$FeedDataStore","$FeedData","categoryName","nextCategoryData","then","catch","$FeedDateLoadmore","minBeHotTime","maxBeHotTime","$HashtagInfoStore","$HashtagPopularPostStore","$HashtagRecentPostStore","$HashtagRelatedStore","$HashtagInfo","hashtagId","$HashtagPopularPost","$HashtagRecentPost","$HashtagRecentPostLoadmore","hashtag","sessionImprId","$HashtagRelated","poiInfoPendingQueue","poiPostPendingQueue","poiRelatedPendingQueue","$PoiInfoStore","$PoiPostStore","$PoiRelatedStore","$PoiInfo","poiId","push","forEach","$PoiPost","$PoiPostLoadmore","posts","$PoiRelated","$PageLevelTraffic","$UserPostLoadmore","awaitOld","awaitedInput","getPageTypeFromPathname","startsWith","match","segmentCount","split","filter","Boolean","length","PendingQueue","constructor","_tasks","_doInterval","console","log","task","window","setInterval","NodePendingQueue","nodePendingQueue","initializeAtom","areEqual","family","initializeAtomWrapper","param","remove","atomFamily","manifestCache","getManifest","__remixManifest","cssLinks","routeId","routes","cssImports","map","href","rel"],"mappings":"yiKAyBO,MAAMA,EAAeC,GAAqE,CAC/F,KAAM,CAAEC,YAAWC,QAAQ,CAAC,CAAE,EAAIF,EAC5BG,G,EAAaC,UAAuB,IAAI,EAE9CC,O,EAAAA,aAAU,IAAM,CACVF,EAAWG,SACbC,kBAAqB,CACnBC,UAAWL,EAAWG,QACtBG,SAAU,SACVC,KAAM,GACNC,SAAU,GACVC,cAAeC,CACjB,CAAC,CAEL,EAAG,CAAC,CAAC,G,EAGHC,OAAC,OACCC,UAAWC,IAAI,6BAA8B,CAC3C,aAAcf,CAChB,CAAC,EACDC,QAEAe,U,EAAAH,OAAC,OAAII,IAAKf,EAAYY,UAAU,oCAAoC,EACtE,CAEJ,EAEaI,EAAmBnB,GAAsF,CACpH,KAAM,CAAEoB,SAAQnB,YAAWC,QAAQ,CAAC,CAAE,EAAIF,EAC1C,O,EACEc,OAAC,OACCC,UAAWC,IAAI,iCAAkC,CAC/C,aAAcf,CAChB,CAAC,EACDC,QAEAe,U,EAAAH,OAAC,OACCC,UAAU,wCACVb,MAAO,CACLmB,gBAAA,OAAAC,OAAwBF,EAASG,EAA0BC,EAAA,IAC7D,EACF,EACF,CAEJ,EAEaC,EAAWzB,GAAqC,CAC3D,KAAM,CAAE0B,UAASN,SAAS,GAAOnB,YAAY,GAAOC,QAAQ,CAAC,CAAE,EAAIF,EAEnE,O,EACE2B,QAAAC,WAAA,CACGX,SAAA,CAAAS,IAAY,S,EAAUZ,OAACf,EAAA,CAAYE,YAAsBC,OAAA,CAAc,EACvEwB,IAAY,a,EAAcZ,OAACK,EAAA,CAAgBC,SAAgBnB,YAAsBC,OAAA,CAAc,GAClG,CAEJ,C,uFC7EO,MAAM2B,EAA4BA,K,EAChCf,OAAC,OAAIC,UAAU,+BAA+B,EAG1Ce,EAA4BA,K,EAErChB,OAAC,OAAIC,UAAU,uCACbE,U,EAAAU,QAAC,OAAII,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFlB,SAAA,E,EAAAH,OAAC,UAAOsB,GAAG,KAAKC,GAAG,OAAOC,EAAE,KAAKH,KAAK,UAAU,G,EAChDrB,OAAC,QAAKyB,EAAE,KAAKC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACnErB,OAAC,QAAKyB,EAAE,MAAMC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GACtE,EACF,EAISO,EAA2BA,K,EAEpC5B,OAAC,OAAIC,UAAU,sCACbE,U,EAAAH,OAAC,OAAIiB,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFlB,U,EAAAH,OAAC,QAAKkB,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EACtD,EACF,EAISQ,EAA6BA,K,EAEtChB,QAAC,OAAIZ,UAAU,wCACbE,SAAA,E,EAAAH,OAAC,OAAyCC,UAAU,6CAClDE,U,EAAAH,OAAC,OAAIiB,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFlB,U,EAAAH,OAAC,QAAKkB,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EACtD,GAHO,gCAIT,G,EACArB,OAAC,OAAyCC,UAAU,6CAClDE,U,EAAAH,OAAC,OAAIiB,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFlB,U,EAAAH,OAAC,QAAKkB,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EACtD,GAHO,gCAIT,G,EACArB,OAAC,OAAyCC,UAAU,6CAClDE,U,EAAAH,OAAC,OAAIiB,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFlB,U,EAAAH,OAAC,QAAKkB,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EACtD,GAHO,gCAIT,GACF,EAISS,EAA6BA,K,EAEtC9B,OAAC,OAAIC,UAAU,wCACbE,U,EAAAU,QAAC,OAAII,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,MAAMC,QAAQ,cAAcC,KAAK,OAC1FlB,SAAA,E,EAAAH,OAAC,QAAKyB,EAAE,KAAKP,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC1DrB,OAAC,QAAKkB,MAAM,MAAMC,OAAO,KAAKY,UAAU,kBAAkBV,KAAK,QAAQ,G,EACvErB,OAAC,UAAOsB,GAAG,KAAKC,GAAG,KAAKC,EAAE,KAAKH,KAAK,UAAU,G,EAC9CrB,OAAC,QAAKyB,EAAE,KAAKC,EAAE,KAAKR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACjErB,OAAC,QAAKyB,EAAE,KAAKC,EAAE,KAAKR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAClErB,OAAC,QAAKkB,MAAM,MAAMC,OAAO,KAAKY,UAAU,mBAAmBV,KAAK,QAAQ,G,EACxErB,OAAC,UAAOsB,GAAG,KAAKC,GAAG,MAAMC,EAAE,KAAKH,KAAK,UAAU,G,EAC/CrB,OAAC,QAAKyB,EAAE,KAAKC,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACnErB,OAAC,QAAKyB,EAAE,KAAKC,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GACrE,EACF,C,0HCrDG,MAAMW,EAAsBA,K,EAE/BnB,QAACoB,IAAA,CAAgBC,IAAG,GAClB/B,SAAA,E,EAAAH,OAACgB,KAAA,EAAsB,G,EACvBhB,OAACe,KAAA,EAA0B,G,EAC3Bf,OAAC4B,KAAA,EAAqB,G,EACtB5B,OAAC6B,KAAA,EAAuB,G,EACxB7B,OAAC8B,KAAA,EAAuB,G,EACxB9B,OAACmC,IAAA,EAAiB,G,EAClBnC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,EAISC,EAA0BA,K,EAEnCzB,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAAC8B,KAAA,EAAuB,G,EACxB9B,OAACmC,IAAA,EAAiB,G,EAClBnC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,EAISE,EAA+BA,K,EAExC1B,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,C,kDC3CG,MAAMD,EAA0BA,K,EAEnCpC,OAAC,OAAIC,UAAU,qCACbE,U,EAAAU,QAAC,OAAIK,MAAM,MAAMC,OAAO,MAAMC,QAAQ,cAAcC,KAAK,OAAOJ,MAAM,6BACpEd,SAAA,E,EAAAH,OAAC,QAAK0B,EAAE,MAAMR,MAAM,MAAMC,OAAO,MAAMQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DrB,OAAC,QAAKyB,EAAE,MAAMC,EAAE,MAAMR,MAAM,MAAMC,OAAO,MAAMQ,GAAG,IAAIN,KAAK,UAAU,G,EACrErB,OAAC,QAAKyB,EAAE,MAAMC,EAAE,MAAMR,MAAM,MAAMC,OAAO,MAAMQ,GAAG,IAAIN,KAAK,UAAU,G,EACrErB,OAAC,QAAK0B,EAAE,QAAQR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC9DrB,OAAC,QAAK0B,EAAE,QAAQR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC9DrB,OAAC,QAAK0B,EAAE,QAAQR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC9DrB,OAAC,QAAK0B,EAAE,QAAQR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,C,iDCZG,MAAMc,EAAuBA,K,EAAMnC,OAAC,OAAIC,UAAU,oBAAoB,C,kDCAtE,MAAMoC,EAAuBA,K,EAAMrC,OAAC,OAAIC,UAAU,oBAAoB,C,sECctE,MAAMgC,EAAiE/C,GAAU,CACtF,KAAM,CAAEiB,WAAU+B,MAAM,EAAM,EAAIhD,EAClC,O,EAAOc,OAAC,OAAIC,UAAWC,IAAI,mBAAoB,CAAEgC,KAAI,CAAC,EAAI/B,UAAA,CAAS,CACrE,C,0DCjBO,MAAMqC,EAA2BA,K,EAEpCxC,OAAC,OAAIC,UAAU,sCACbE,U,EAAAU,QAAC,OAAIK,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OAAOJ,MAAM,6BAClEd,SAAA,E,EAAAH,OAAC,QAAK0B,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC5DrB,OAAC,QAAK0B,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DrB,OAAC,QAAK0B,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,EAISoB,EAA4BA,IAErCzC,IAAC,OAAIC,UAAU,uCACbE,SAAAH,IAAC,OAAIkB,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOJ,MAAM,6BAChEd,SAAAH,IAAC,QAAK0B,EAAE,MAAMR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EAC7D,EACF,E,+CCVG,MAAMqB,EAA2BA,K,EAEpC7B,QAACoB,IAAA,CAAgBC,IAAG,GAClB/B,SAAA,E,EAAAH,OAACmC,IAAA,EAAiB,G,EAClBnC,OAACwC,EAAA,EAAqB,G,EACtBxC,OAACgB,KAAA,EAAsB,G,EACvBhB,OAACe,KAAA,EAA0B,G,EAC3Bf,OAAC4B,KAAA,EAAqB,G,EACtB5B,OAAC6B,KAAA,EAAuB,G,EACxB7B,OAACqC,IAAA,EAAiB,GACpB,EAISM,EAA2BA,K,EAEpC9B,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAACwC,EAAA,EAAqB,G,EACtBxC,OAACgB,KAAA,EAAsB,G,EACvBhB,OAACe,KAAA,EAA0B,G,EAC3Bf,OAAC4B,KAAA,EAAqB,G,EACtB5B,OAAC6B,KAAA,EAAuB,G,EACxB7B,OAACqC,IAAA,EAAiB,GACpB,C,gFC/BG,MAAMO,EAA0BA,K,EAEnC5C,OAAC,OAAIC,UAAU,qCACbE,U,EAAAU,QAAC,OAAIK,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OAAOJ,MAAM,6BAClEd,SAAA,E,EAAAH,OAAC,QAAK0B,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC5DrB,OAAC,QAAK0B,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DrB,OAAC,QAAK0B,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,E,eCNG,MAAMwB,EAAsBA,K,EAE/BhC,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAAC4C,EAAA,EAAoB,G,EACrB5C,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,EAISS,EAA0BA,K,EAEnCjC,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,C,yGCrBG,MAAMU,EAAmBA,K,EAE5BlC,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,GACvB,E,0DCEG,MAAMY,EAAmBA,IAAM,CACpC,KAAM,CAAEC,SAAUC,CAAmB,G,EAAIC,iBAAc,EACjDC,G,EAAkBC,eAAY,EAE9B,CAAEC,UAAS,EAAIJ,GAAsBE,EACrCG,EAAWC,4BAAsCF,CAAQ,EAE/D,OAAIC,IAAaE,c,EACRzD,OAAC0C,IAAA,EAAqB,EAG3Ba,IAAaE,U,EACRzD,OAAC+C,EAAA,EAAa,EAMnBQ,IAAaE,aAAqBF,IAAaE,W,EAC1CzD,OAACgC,KAAA,EAAgB,EAGtBuB,IAAaE,U,EACRzD,OAAC0D,IAAA,EAAiB,EAGvBH,IAAaE,S,EACRzD,OAAC2D,IAAA,EAAgB,EAGtBJ,IAAaE,a,EACRzD,OAAC6C,IAAA,EAAgB,G,EAGnB7C,OAACW,KAAA,CAAQC,QAAQ,OAAO,CACjC,C,qEC5CO,MAAMgD,EAAsBA,K,EAE/B5D,OAAC,OAAIC,UAAU,iCACbE,U,EAAAU,QAAC,OAAIK,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OAAOJ,MAAM,6BAClEd,SAAA,E,EAAAH,OAAC,QAAK0B,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC5DrB,OAAC,QAAK0B,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DrB,OAAC,QAAK0B,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,E,0BCNG,MAAMsC,EAAsBA,K,EAE/B9C,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAAC4D,EAAA,EAAgB,G,EACjB5D,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,EAISwB,EAAsBA,K,EAE/BhD,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,C,gFCnBG,MAAMyB,EAA0BA,K,EAEnC9D,OAAC,OAAIC,UAAU,qCACbE,U,EAAAU,QAAC,OAAIK,MAAM,MAAMC,OAAO,MAAMC,QAAQ,cAAcC,KAAK,OAAOJ,MAAM,6BACpEd,SAAA,E,EAAAH,OAAC,UAAOsB,GAAG,KAAKC,GAAG,OAAOC,EAAE,KAAKH,KAAK,UAAU,G,EAChDrB,OAAC,QAAKyB,EAAE,MAAMC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACpErB,OAAC,QAAKyB,EAAE,QAAQC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACtErB,OAAC,QAAKyB,EAAE,MAAMC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACpErB,OAAC,QAAK0B,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DrB,OAAC,QAAK0B,EAAE,QAAQR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC9DrB,OAAC,QAAK0B,EAAE,QAAQR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,E,eCVG,MAAMqC,EAAuBA,K,EAEhC7C,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAAC8D,EAAA,EAAoB,G,EACrB9D,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,EAIS0B,EAAuBA,K,EAEhClD,QAACoB,IAAA,CACC9B,SAAA,E,EAAAH,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACoC,IAAA,EAAoB,G,EACrBpC,OAACqC,IAAA,EAAiB,GACpB,C,qGCnBG,MAAM2B,G,EAAgCC,KAAgBC,GAAsB,CACjF,MAAMC,G,EAAIC,QAAK,KAAM,CAACC,EAAKC,EAAKC,IAAiC,CAC/D,MAAMC,EAAgBH,G,EAAII,KAAsBP,CAAS,CAAC,EACpD,CAAEQ,SAAQ,EAAIF,EACd,CAAEG,UAASD,QAASE,EAAaC,QAAO,EAAIN,EAElDD,G,EAAIG,KAAsBP,CAAS,EAAG,CACpCS,UACAD,QAAS,CAAC,GAAGA,EAAS,GAAGE,CAAW,EACpCC,QACF,CAAC,CACH,CAAC,EAEDV,SAAEW,WAAA,iCAAAtE,OAA8CuE,mBAAmBb,CAAS,CAAC,EAEtEC,CACT,CAAC,C,iFCRD,MAAMa,G,EAA6BZ,QAAiC,CAAC,CAAC,EAEzDK,G,EAAwBR,KAAgBC,GAAsB,CACzE,MAAMC,G,EAAIC,QACPC,GAEGA,EAAIW,CAA0B,EAAEd,IAAc,CAC5CQ,QAAS,CAAC,EACVC,QAAS,GACTE,OAAQ,CACV,EAGJ,CAACR,EAAKC,EAAKC,IAAiC,CAC1C,MAAMU,EAAMZ,EAAIW,CAA0B,EAE1CV,EAAIU,G,EAAAE,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACf,GAAYK,CAAA,EACd,CACH,CACF,EAEAJ,SAAEW,WAAA,yBAAAtE,OAAsCuE,mBAAmBb,CAAS,CAAC,EAE9DC,CACT,CAAC,C,2DCxBM,MAAMgB,G,EAAkBf,QAAuB,CAAC,CAAC,EACxDe,EAAgBL,WAAa,iB,2DCZtB,MAAMM,G,EAAgBhB,QAA8B,IAAIiB,QAAe,IAAG,EAAS,CAAC,EAC3FD,EAAcN,WAAa,e,+bCG3B,MAAMQ,G,EAAmDlB,QAAoB,CAAC,CAAC,EAElEmB,G,EAAgBtB,KAAgBuB,GAAoB,CAC/D,MAAMrB,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIiB,CAAkB,EAAEE,GACrC,GAAI,CAACC,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKsB,IAAc,CACvB,MAAMX,EAAMZ,EAAIiB,CAAkB,EAClChB,EAAIgB,G,EAAAJ,M,EAAAA,KAAA,GAAyBD,CAAA,MAAK,CAACO,GAAUI,CAAA,EAAM,CACrD,CACF,EAEAzB,SAAEW,WAAA,iBAAAtE,OAA8BuE,mBAAmBS,CAAO,CAAC,EAEpDrB,CACT,CAAC,ECrBY0B,G,EAA4BzB,QAA+B,CAAC,CAAC,EAE7D0B,G,EAAuB7B,KAAgBuB,GAAoB,CACtE,MAAMrB,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIwB,CAAyB,EAAEL,GAC5C,GAAI,CAACC,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAA+B,CACxC,MAAMU,EAAMZ,EAAIwB,CAAyB,EACzCvB,EAAIuB,G,EAAAX,M,EAAAA,KAAA,GAAgCD,CAAA,MAAK,CAACO,GAAUjB,CAAA,EAAO,CAC7D,CACF,EAEAJ,SAAEW,WAAA,wBAAAtE,OAAqCuE,mBAAmBS,CAAO,CAAC,EAE3DrB,CACT,CAAC,ECxBY4B,G,EAA8B9B,KAAgB+B,GAAoB,CAC7E,MAAM7B,G,EAAIC,QAA0B,CAClC6B,SAAU,GACVC,MAAO,CAAC,EACRrB,OAAQ,EACRF,QAAS,EACX,CAAC,EACDR,SAAEW,WAAA,+BAAAtE,OAA4CuE,mBAAmBiB,CAAO,CAAC,EAElE7B,CACT,CAAC,ECPYgC,G,EAAiC/B,QAAoC,CAAC,CAAC,EAEvEgC,G,EAA4BnC,KAAgBuB,GAAoB,CAC3E,MAAMrB,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAI8B,CAA8B,EAAEX,GACjD,GAAI,CAACC,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAAoC,CAC7C,MAAMU,EAAMZ,EAAI8B,CAA8B,EAC9C7B,EAAI6B,G,EAAAjB,M,EAAAA,KAAA,GAAqCD,CAAA,MAAK,CAACO,GAAUjB,CAAA,EAAO,CAClE,CACF,EAEAJ,SAAEW,WAAA,6BAAAtE,OAA0CuE,mBAAmBS,CAAO,CAAC,EAEhErB,CACT,CAAC,ECvBYkC,G,EAAsBjC,QAAU,CAAC,CAAC,EAElCkC,G,EAAiBrC,KAAgB+B,GAAoB,CAChE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIgC,CAAmB,EAAEL,GACtC,GAAI,CAACP,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkB,IAAMD,EAAQ,uBAAuB,CAAC,CAAC,EAE1F,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKiC,IAAe,CACxB,MAAMtB,EAAMZ,EAAIgC,CAAmB,EACnC/B,EAAI+B,G,EAAAnB,M,EAAAA,KAAA,GAA0BD,CAAA,MAAK,CAACe,GAAUO,CAAA,EAAY,CAC5D,CACF,EAEApC,SAAEW,WAAA,kBAAAtE,OAA+BuE,mBAAmBiB,CAAO,CAAC,EAErD7B,CACT,CAAC,ECtBKqC,G,EAAuBpC,QAAU,CAAC,CAAC,EAQ5BqC,G,EAAmBxC,KAAgB+B,GAAoB,CAClE,MAAM7B,G,EAAIC,QACPC,GACQA,EAAImC,CAAoB,EAAER,IAAY,IAAIX,QAAQ,IAAG,EAAS,EAEvE,CAAChB,EAAKC,EAAKoC,IAAa,CACtB,MAAMzB,EAAMZ,EAAImC,CAAoB,EACpClC,EAAIkC,G,EAAAtB,M,EAAAA,KAAA,GAA2BD,CAAA,MAAK,CAACe,GAAUU,CAAA,EAAU,CAC3D,CACF,EAEAvC,SAAEW,WAAA,oBAAAtE,OAAiCuE,mBAAmBiB,CAAO,CAAC,EAEvD7B,CACT,CAAC,E,gBCfM,MAAMwC,I,EAA2B1C,KAAgB+B,GAAoB,CAC1E,MAAM7B,G,EAAIC,QAAK,KAAM,MAAOC,EAAKC,EAAKC,IAAwC,CAC5E,MAAMmC,EAAW,MAAMrC,EAAIoC,EAAiBT,CAAO,CAAC,EAC9C,CAAEE,OAAM,EAAIQ,EACZ,CAAER,MAAOU,GAAWjC,QAASkC,GAAahC,OAAQiC,EAAW,EAAIvC,EAEjEwC,GAAS,CACbb,MAAO,CAAC,GAAGA,EAAO,GAAGU,EAAS,EAC9BjC,QAASkC,GACThC,OAAQiC,EACV,EAEAxC,EAAImC,EAAiBT,CAAO,EAAGe,EAAa,CAC9C,CAAC,EAED5C,SAAEW,WAAA,4BAAAtE,OAAyCuE,mBAAmBiB,CAAO,CAAC,EAE/D7B,CACT,CAAC,E,4BCfD,MAAM6C,G,EAA2B5C,QAA+B,CAAC,CAAC,EAErD6C,G,EAAsBhD,KAAgB+B,GAAoB,CACrE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAI2C,CAAwB,EAAEhB,GAC3C,GAAI,CAACP,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAA8D,CACvE,MAAMU,EAAMZ,EAAI2C,CAAwB,EACxC1C,EAAI0C,G,EAAA9B,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACe,GAAUzB,CAAA,EACZ,CACH,CACF,EAEAJ,SAAEW,WAAA,uBAAAtE,OAAoCuE,mBAAmBiB,CAAO,CAAC,EAE1D7B,CACT,CAAC,EClCY+C,I,EAA8BjD,KAAgB+B,GAAoB,CAC7E,MAAM7B,G,EAAIC,QAAK,KAAM,MAAOC,EAAKC,EAAKC,IAA+B,CACnE,KAAM,CAAE2B,OAAM,EAAI,MAAM7B,EAAI4C,EAAoBjB,CAAO,CAAC,EAExD1B,EAAI2C,EAAoBjB,CAAO,G,EAAAd,M,EAAAA,KAAA,GAC1BX,CAAA,MACH2B,MAAO,CAAC,GAAGA,EAAO,GAAG3B,EAAM2B,KAAK,GACjC,CACH,CAAC,EAED/B,SAAEW,WAAA,+BAAAtE,OAA4CuE,mBAAmBiB,CAAO,CAAC,EAElE7B,CACT,CAAC,ECEKgD,G,EAA8B/C,QAAkC,CAAC,CAAC,EAE3DgD,I,EAAyBnD,KAAgB+B,GAAoB,CACxE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAI8C,CAA2B,EAAEnB,GAC9C,GAAI,CAACP,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAAoE,CAC7E,MAAMU,EAAMZ,EAAI8C,CAA2B,EAC3C7C,EAAI6C,G,EAAAjC,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACe,GAAUzB,CAAA,EACZ,CACH,CACF,EAEAJ,SAAEW,WAAA,0BAAAtE,OAAuCuE,mBAAmBiB,CAAO,CAAC,EAE7D7B,CACT,CAAC,EC9BKkD,G,EAA4BjD,QAAgC,CAAC,CAAC,EAEvDkD,G,EAAuBrD,KAAgB+B,GAAoB,CACtE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIgD,CAAyB,EAAErB,GAC5C,GAAI,CAACP,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAAgE,CACzE,MAAMU,EAAMZ,EAAIgD,CAAyB,EACzC/C,EAAI+C,G,EAAAnC,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACe,GAAUzB,CAAA,EACZ,CACH,CACF,EAEAJ,SAAEW,WAAA,wBAAAtE,OAAqCuE,mBAAmBiB,CAAO,CAAC,EAE3D7B,CACT,CAAC,ECjCYoD,I,EAA+BtD,KAAgB+B,GAAoB,CAC9E,MAAM7B,G,EAAIC,QAAK,KAAM,MAAOC,EAAKC,EAAKC,IAAgC,CACpE,KAAM,CAAE2B,OAAM,EAAI,MAAM7B,EAAIiD,EAAqBtB,CAAO,CAAC,EAEzD1B,EAAIgD,EAAqBtB,CAAO,G,EAAAd,M,EAAAA,KAAA,GAC3BX,CAAA,MACH2B,MAAO,CAAC,GAAGA,EAAO,GAAG3B,EAAM2B,KAAK,GACjC,CACH,CAAC,EAED/B,SAAEW,WAAA,gCAAAtE,OAA6CuE,mBAAmBiB,CAAO,CAAC,EAEnE7B,CACT,CAAC,ECbYqD,G,EAA+BpD,QAAU,CAAC,CAAC,EAE3CqD,I,EAA0BxD,KAAgB+B,GAAoB,CACzE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAImD,CAA4B,EAAExB,GAC/C,GAAI,CAACP,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkB,IAAMD,EAAQ,qCAAqC,CAAC,CAAC,EAExG,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKoD,IAAY,CACrB,MAAMzC,EAAMZ,EAAImD,CAA4B,EAC5ClD,EAAIkD,G,EAAAtC,M,EAAAA,KAAA,GAAmCD,CAAA,MAAK,CAACe,GAAU0B,CAAA,EAAS,CAClE,CACF,EAEAvD,SAAEW,WAAA,2BAAAtE,OAAwCuE,mBAAmBiB,CAAO,CAAC,EAE9D7B,CACT,CAAC,ECjBYwD,G,EAAmBvD,QAAuB,CAAC,CAAC,EAE5CwD,I,EAAc3D,KAAgB4D,GAAmB,CAC5D,MAAM1D,G,EAAIC,QAKPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIsD,CAAgB,EAAEE,GACnC,GAAI,CAACpC,EAEH,MAAM,IAAIJ,QAAeK,GAAYC,SAAkB,IAAMD,EAAQ,CAAC,CAAC,EAEzE,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKwD,IAAe,CACxB,MAAM7C,EAAMZ,EAAIsD,CAAgB,EAChCrD,EAAIqD,G,EAAAzC,M,EAAAA,KAAA,GAAuBD,CAAA,MAAK,CAAC4C,GAASC,CAAA,EAAY,CACxD,CACF,EAEA3D,SAAEW,WAAA,eAAAtE,OAA4BuE,mBAAmB8C,CAAM,CAAC,EAEjD1D,CACT,CAAC,ECzBY4D,G,EAAqB3D,QAAuB,CAAC,CAAC,EAO9C4D,I,EAAgB/D,KAAgBgE,GAA2B,CACtE,MAAM9D,G,EAAIC,QAKPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAI0D,CAAkB,EAAEE,GACrC,GAAI,CAACxC,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKwD,IAAe,CACxB,MAAM7C,EAAMZ,EAAI0D,CAAkB,EAClCzD,EAAIyD,G,EAAA7C,M,EAAAA,KAAA,GAAyBD,CAAA,MAAK,CAACgD,GAAiBH,CAAA,EAAY,CAClE,CACF,EAEA3D,SAAEW,WAAA,iBAAAtE,OAA8BuE,mBAAmBkD,CAAc,CAAC,EAE3D9D,CACT,CAAC,EC9BY+D,G,EAAiB9D,QAAK,CAAC,CAAmB,EAE1C+D,I,EAAYlE,KAAgBmE,GAAyB,CAChE,MAAMjE,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAI6D,CAAc,EAAEE,GACjC,GAAI,CAAC3C,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAAqC,CAC9C,MAAMU,EAAMZ,EAAI6D,CAAc,EAC9B5D,EAAI4D,G,EAAAhD,M,EAAAA,KAAA,GAAqBD,CAAA,MAAK,CAACmD,GAAe7D,CAAA,EAAO,CACvD,CACF,EAEAJ,SAAEW,WAAA,aAAAtE,OAA0BuE,mBAAmBqD,CAAY,CAAC,EAErDjE,CACT,CAAC,ECrBYkE,G,EAAoBjE,QAAK,CAAC,CAA0B,EAEpDkE,I,EAAmBrE,KAAgBmE,GAAyB,CACvE,MAAMjE,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIgE,CAAiB,EAAED,GACpC,GAAI,CAAC3C,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAAkB,CAC3B,MAAMU,EAAMZ,EAAIgE,CAAiB,EACjC/D,EAAI+D,G,EAAAnD,M,EAAAA,KAAA,GAAwBD,CAAA,MAAK,CAACmD,GAAe7D,CAAA,EAAO,CAC1D,CACF,EAEAJ,SAAEW,WAAA,oBAAAtE,OAAiCuE,mBAAmBqD,CAAY,CAAC,EAE5DjE,CACT,CAAC,E,gBClBM,MAAMoE,G,EAAqBnE,QAAK,CAAC,CAAuB,EAElDoE,G,EAAgBvE,KAAgBmE,GAAyB,CACpE,MAAMjE,G,EAAIC,QACPC,GACQA,EAAIkE,CAAkB,EAAEH,GAEjC,CAAC/D,EAAKC,EAAKC,IAA6B,CACtC,MAAMU,EAAMZ,EAAIkE,CAAkB,EAElCjE,EAAIiE,G,EAAArD,M,EAAAA,KAAA,GAAyBD,CAAA,MAAK,CAACmD,GAAe7D,CAAA,EAAO,CAC3D,CACF,EAEAJ,SAAEW,WAAA,iBAAAtE,OAA8BuE,mBAAmBqD,CAAY,CAAC,EAEzDjE,CACT,CAAC,EAEYsE,I,EAAwBxE,KAAgBmE,GAAyB,CAC5E,MAAMjE,G,EAAIC,QAAK,KAAM,CAACC,EAAKC,EAAKC,IAA6B,CAC3D,MAAMU,EAAMZ,EAAImE,EAAcJ,CAAY,CAAC,EAC3C9D,EAAIkE,EAAcJ,CAAY,G,EAAAlD,M,EAAAA,KAAA,GACzBX,CAAA,MACHkB,KAAM,CAAC,GAAGR,EAAIQ,KAAM,GAAGlB,EAAMkB,IAAI,GAClC,CACH,CAAC,EAEDtB,SAAEW,WAAA,yBAAAtE,OAAsCuE,mBAAmBqD,CAAY,CAAC,EAEjEjE,CACT,CAAC,EC/BYuE,G,EAAsBtE,QAAK,CAAC,CAAwB,EAEpDuE,G,EAAiB1E,KAAgBmE,GAAyB,CACrE,MAAMjE,G,EAAIC,QACPC,GACQA,EAAIqE,CAAmB,EAAEN,GAElC,CAAC/D,EAAKC,EAAKC,IAA8B,CACvC,MAAMU,EAAMZ,EAAIqE,CAAmB,EAEnCpE,EAAIoE,G,EAAAxD,M,EAAAA,KAAA,GAA0BD,CAAA,MAAK,CAACmD,GAAe7D,CAAA,EAAO,CAC5D,CACF,EAEAJ,SAAEW,WAAA,kBAAAtE,OAA+BuE,mBAAmBqD,CAAY,CAAC,EAE1DjE,CACT,CAAC,EAEYyE,I,EAAyB3E,KAAgBmE,GAAyB,CAC7E,MAAMjE,G,EAAIC,QAAK,KAAM,CAACC,EAAKC,EAAKC,IAA8B,CAC5D,MAAMU,EAAMZ,EAAIsE,EAAeP,CAAY,CAAC,EAC5C9D,EAAIqE,EAAeP,CAAY,G,EAAAlD,M,EAAAA,KAAA,GAC1BX,CAAA,MACHkB,KAAM,CAAC,GAAGR,EAAIQ,KAAM,GAAGlB,EAAMkB,IAAI,GAClC,CACH,CAAC,EAEDtB,SAAEW,WAAA,0BAAAtE,OAAuCuE,mBAAmBqD,CAAY,CAAC,EAElEjE,CACT,CAAC,EC/BY0E,G,EAA2BzE,QAAK,CAAC,CAA0B,EAE3D0E,G,EAAsB7E,KAAgBmE,GAAyB,CAC1E,MAAMjE,G,EAAIC,QACPC,GACQA,EAAIwE,CAAwB,EAAET,GAEvC,CAAC/D,EAAKC,EAAKC,IAAgC,CACzC,MAAMU,EAAMZ,EAAIwE,CAAwB,EAExCvE,EAAIuE,G,EAAA3D,M,EAAAA,KAAA,GAA+BD,CAAA,MAAK,CAACmD,GAAe7D,CAAA,EAAO,CACjE,CACF,EAEAJ,SAAEW,WAAA,uBAAAtE,OAAoCuE,mBAAmBqD,CAAY,CAAC,EAE/DjE,CACT,CAAC,EAEY4E,I,EAA2B9E,KAAgBmE,GAAyB,CAC/E,MAAMjE,G,EAAIC,QAAK,KAAM,CAACC,EAAKC,EAAKC,IAAgC,CAC9D,MAAMU,EAAMZ,EAAIyE,EAAoBV,CAAY,CAAC,EACjD9D,EAAIwE,EAAoBV,CAAY,G,EAAAlD,M,EAAAA,KAAA,GAC/BX,CAAA,MACHkB,KAAM,CAAC,GAAGR,EAAIQ,KAAM,GAAGlB,EAAMkB,IAAI,GAClC,CACH,CAAC,EAEDtB,SAAEW,WAAA,4BAAAtE,OAAyCuE,mBAAmBqD,CAAY,CAAC,EAEpEjE,CACT,CAAC,ECnCY6E,G,EAA2C5E,QAAgB,CAAC,CAAC,EAC1E4E,EAAelE,WAAa,iBAErB,MAAMmE,G,EAAYhF,KAAgBiF,GAAyB,CAChE,MAAM/E,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAI2E,CAAc,EAAEE,GACjC,GAAI,CAACzD,EAEH,MAAM,IAAIJ,QAAeK,GAAYC,SAAkB,IAAMD,EAAQ,CAAC,CAAC,EAGzE,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAK6E,IAAmD,CAC5D,MAAMlE,EAAiBZ,EAAI2E,CAAc,EAEzC1E,EAAI0E,G,EAAA9D,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACiE,GAAeC,CAAA,EACjB,EAEGA,aAA4B9D,SAC9B8D,EACGC,KAAM3D,GAAS,CACdnB,EAAI0E,G,EAAA9D,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACiE,GAAezD,CAAA,EACjB,CACH,CAAC,EACA4D,MAAM,IAAM,CACX/E,EAAI0E,G,EAAA9D,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACiE,GAAe,QACjB,CACH,CAAC,CAEP,CACF,EAEA/E,SAAEW,WAAA,aAAAtE,OAA0BuE,mBAAmBmE,CAAY,CAAC,EAErD/E,CACT,CAAC,EAEYmF,I,EAAoBrF,KAAgBiF,GAAyB,CACxE,MAAM/E,G,EAAIC,QAAK,KAAM,MAAOC,EAAKC,EAAKC,IAAoB,CACxD,KAAM,CAAEgF,eAAcrD,OAAM,EAAI,MAAM7B,EAAI4E,EAAUC,CAAY,CAAC,EAC3D,CAAEM,gBAAc7E,WAASuB,MAAOU,EAAU,EAAIrC,EAEpDD,EAAI2E,EAAUC,CAAY,EAAG,CAC3BhD,MAAO,CAAC,GAAGA,EAAO,GAAGU,EAAS,EAC9B2C,eACAC,gBACA7E,UACF,CAAC,CACH,CAAC,EAEDR,SAAEW,WAAA,qBAAAtE,OAAkCuE,mBAAmBmE,CAAY,CAAC,EAE7D/E,CACT,CAAC,ECzDYsF,G,EAAqDrF,QAAuB,CAAC,CAAC,EAC9EsF,G,EAA6DtF,QAAwB,CAAC,CAAC,EACvFuF,G,EAA4DvF,QAAwB,CAAC,CAAC,EACtFwF,G,EAA2DxF,QAA0B,CAAC,CAAC,EAGvFyF,I,EAAe5F,KAAgB6F,GAAsB,CAChE,MAAM3F,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIoF,CAAiB,EAAEK,GACpC,GAAI,CAACrE,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAAiD,CAC1D,MAAMU,EAAMZ,EAAIoF,CAAiB,EACjCnF,EAAImF,G,EAAAvE,M,EAAAA,KAAA,GAAwBD,CAAA,MAAK,CAAC6E,GAAYvF,CAAA,EAAO,CACvD,CACF,EACAJ,SAAEW,WAAA,gBAAAtE,OAA6BuE,mBAAmB+E,CAAS,CAAC,EACrD3F,CACT,CAAC,EAEY4F,I,EAAsB9F,KAAgB6F,GAAsB,CACvE,MAAM3F,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIqF,CAAwB,EAAEI,GAC3C,GAAI,CAACrE,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAAwC,CACjD,MAAMU,EAAMZ,EAAIqF,CAAwB,EACxCpF,EAAIoF,G,EAAAxE,M,EAAAA,KAAA,GAA+BD,CAAA,MAAK,CAAC6E,GAAYvF,CAAA,EAAO,CAC9D,CACF,EACAJ,SAAEW,WAAA,uBAAAtE,OAAoCuE,mBAAmB+E,CAAS,CAAC,EAC5D3F,CACT,CAAC,EAEY6F,I,EAAqB/F,KAAgB6F,GAAsB,CACtE,MAAM3F,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIsF,CAAuB,EAAEG,GAC1C,GAAI,CAACrE,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAAwC,CACjD,MAAMU,EAAMZ,EAAIsF,CAAuB,EACvCrF,EAAIqF,G,EAAAzE,M,EAAAA,KAAA,GAA8BD,CAAA,MAAK,CAAC6E,GAAYvF,CAAA,EAAO,CAC7D,CACF,EAEAJ,SAAEW,WAAA,sBAAAtE,OAAmCuE,mBAAmB+E,CAAS,CAAC,EAC3D3F,CACT,CAAC,EAEY8F,I,EAA6BhG,KAAgB6F,GAAsB,CAC9E,MAAM3F,G,EAAIC,QAAiC,KAAM,MAAOC,EAAKC,EAAKC,IAAwB,CACxF,MAAMU,EAAMZ,EAAIsF,CAAuB,EACjCO,EAAU,MAAMjF,EAAI6E,GACtBI,GACF5F,EAAIqF,G,EAAAzE,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAAC6E,GAAY,CACXnF,QAASJ,EAAMI,QACfwF,cAAe5F,EAAM4F,cACrBjE,MAAO,CAAC,GAAGgE,EAAQhE,MAAO,GAAG3B,EAAM2B,KAAK,CAC1C,EAAC,CACF,CAEL,CAAC,EAED/B,SAAEW,WAAA,8BAAAtE,OAA2CuE,mBAAmB+E,CAAS,CAAC,EACnE3F,CACT,CAAC,EAEYiG,I,EAAkBnG,KAAgB6F,GAAsB,CACnE,MAAM3F,G,EAAIC,QACPC,GAAQ,CACP,MAAMoB,EAAOpB,EAAIuF,CAAoB,EAAEE,GACvC,GAAI,CAACrE,EAEH,MAAM,IAAIJ,QAASK,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOD,CACT,EACA,CAACpB,EAAKC,EAAKC,IAA0C,CACnD,MAAMU,EAAMZ,EAAIuF,CAAoB,EACpCtF,EAAIsF,G,EAAA1E,M,EAAAA,KAAA,GAA2BD,CAAA,MAAK,CAAC6E,GAAYvF,CAAA,EAAO,CAC1D,CACF,EACAJ,SAAEW,WAAA,mBAAAtE,OAAgCuE,mBAAmB+E,CAAS,CAAC,EACxD3F,CACT,CAAC,ECxGKkG,GAA6B,CAAC,EAC9BC,GAA6B,CAAC,EAC9BC,GAAgC,CAAC,EAE1BC,G,EAA6CpG,QAAmB,CAAC,CAAC,EAClEqG,G,EAA8CrG,QAAoB,CAAC,CAAC,EACpEsG,G,EAAmDtG,QAAsB,CAAC,CAAC,EAE3EuG,I,EAAW1G,KAAgB2G,GAAkB,CACxD,MAAMzG,G,EAAIC,QACPC,GAEGA,EAAImG,CAAa,EAAEI,IACnB,IAAIvF,QAAS7D,GAAM,CACjB6I,GAAoBQ,KAAKrJ,CAAC,CAC5B,CAAC,EAGL,CAAC6C,EAAKC,EAAKsB,IAAc,CACvB,MAAMX,EAAMZ,EAAImG,CAAa,EAE7BlG,EAAIkG,G,EAAAtF,M,EAAAA,KAAA,GAAoBD,CAAA,MAAK,CAAC2F,GAAQhF,CAAA,EAAM,EAG5CyE,GAAoBS,QAAStJ,GAAMA,EAAE,CAAC,CACxC,CACF,EACA2C,SAAEW,WAAA,YAAAtE,OAAyBoK,CAAA,EACpBzG,CACT,CAAC,EAEY4G,I,EAAW9G,KAAgB2G,GAAkB,CACxD,MAAMzG,G,EAAIC,QACPC,GAEGA,EAAIoG,CAAa,EAAEG,IACnB,IAAIvF,QAAS7D,GAAM,CACjB8I,GAAoBO,KAAKrJ,CAAC,CAC5B,CAAC,EAGL,CAAC6C,EAAKC,EAAKsB,IAAc,CACvB,MAAMX,EAAMZ,EAAIoG,CAAa,EAE7BnG,EAAImG,G,EAAAvF,M,EAAAA,KAAA,GAAoBD,CAAA,MAAK,CAAC2F,GAAQhF,CAAA,EAAM,CAC9C,CACF,EACAzB,SAAEW,WAAA,YAAAtE,OAAyBoK,CAAA,EACpBzG,CACT,CAAC,EAEY6G,I,EAAmB/G,KAAgB2G,GAAkB,CAChE,MAAMzG,G,EAAIC,QAAK,KAAM,MAAOC,EAAKC,EAAKC,IAAoB,CACxD,MAAMU,EAAMZ,EAAIoG,CAAa,EACvBQ,EAAQ,MAAMhG,EAAI2F,GAEpBK,GACF3G,EAAImG,G,EAAAvF,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAAC2F,GAAQ,CACPjG,QAASJ,EAAMI,QACfwF,cAAe5F,EAAM4F,cACrBjE,MAAO,CAAC,GAAG+E,EAAM/E,MAAO,GAAG3B,EAAM2B,KAAK,CACxC,EAAC,CACF,CAEL,CAAC,EACD/B,SAAEW,WAAA,oBAAAtE,OAAiCoK,CAAA,EAC5BzG,CACT,CAAC,EAEY+G,I,EAAcjH,KAAgB2G,GAAkB,CAC3D,MAAMzG,G,EAAIC,QACPC,GAEGA,EAAIqG,CAAgB,EAAEE,IACtB,IAAIvF,QAAS7D,GAAM,CACjB+I,GAAuBM,KAAKrJ,CAAC,CAC/B,CAAC,EAGL,CAAC6C,EAAKC,EAAKsB,IAAc,CACvB,MAAMX,EAAMZ,EAAIqG,CAAgB,EAEhCpG,EAAIoG,G,EAAAxF,M,EAAAA,KAAA,GAAuBD,CAAA,MAAK,CAAC2F,GAAQhF,CAAA,EAAM,EAG/C2E,GAAuBO,QAAStJ,GAAMA,EAAE,CAAC,CAC3C,CACF,EACA2C,SAAEW,WAAA,eAAAtE,OAA4BoK,CAAA,EACvBzG,CACT,CAAC,C,2DCjGM,MAAMgH,G,EAAoB/G,QAAuB,CAAC,CAAqB,EAC9E+G,EAAkBrG,WAAa,mB,gHCExB,MAAMsG,G,EAAoBnH,KAAgBmE,GAAyB,CACxE,MAAMjE,G,EAAIC,QAAK,KAAM,MAAOC,EAAKC,EAAKC,IAAqC,CACzE,MAAM8G,EAAW,MAAMhH,G,EAAI8D,MAAUC,CAAY,CAAC,EAC5CkD,EAAe,MAAM/G,EAC3BD,G,EAAI6D,MAAUC,CAAY,G,EAAAlD,M,EAAAA,KAAA,GACrBX,CAAA,MACH2B,MAAO,CAAC,GAAGmF,EAASnF,MAAO,GAAGoF,EAAapF,KAAK,GACjD,CACH,CAAC,EAED/B,SAAEW,WAAA,qBAAAtE,OAAkCuE,mBAAmBqD,CAAY,CAAC,EAE7DjE,CACT,CAAC,C,kECnBWV,OACVA,EAAA,KAAO,OACPA,EAAA,YAAc,cACdA,EAAA,WAAa,aACbA,EAAA,QAAU,UACVA,EAAA,QAAU,UACVA,EAAA,MAAQ,QACRA,EAAA,KAAO,OACPA,EAAA,IAAM,MACNA,EAAA,SAAW,WATDA,OAAA,IAYL,MAAMD,EAAgB,CAC3B+H,wBAA0BjI,GAAuC,CAC/D,GAAIA,EAASkI,WAAW,YAAY,EAClC,MAAO,WAET,GAAIlI,EAASkI,WAAW,OAAO,EAC7B,MAAO,OAET,GAAIlI,EAASkI,WAAW,MAAM,EAC5B,MAAO,MAET,GAAIlI,EAASkI,WAAW,QAAQ,EAC9B,MAAO,UAET,GAAIlI,EAASmI,MAAM,mBAAmB,EACpC,MAAO,cAET,GAAInI,EAASmI,MAAM,kBAAkB,EACnC,MAAO,aAIT,GAAInI,EAASmI,MAAM,kBAAkB,EACnC,MAAO,UAIT,GAAInI,EAASmI,MAAM,qBAAqB,EACtC,MAAO,OAGT,MAAMC,EAAepI,EAASqI,MAAM,GAAG,EAAEC,OAAOC,OAAO,EAAEC,OACzD,OAAIJ,IAAiB,EACZ,OAELA,IAAiB,EACZ,UAEF,IACT,CACF,C,2DCpDO,MAAMK,CAAa,CAGxBC,aAAc,CAFd,KAAQC,OAAyB,CAAC,EAclC,KAAQC,YAAc,IAAY,CAC5B,KAAKD,OAAOH,SACdK,QAAQC,IAAI,uCAAwC,KAAKH,OAAOH,MAAM,EACtE,KAAKG,OAAOnB,QAASuB,GAASA,EAAK,CAAC,EACpC,KAAKJ,OAAS,CAAC,EAEnB,EAjBM,OAAOK,QAAW,aACpBA,OAAOC,YAAY,KAAKL,YAAa,EAAE,CAE3C,CAEOrB,KAAKwB,EAAoC,CAC1C,OAAOC,QAAW,aACpB,KAAKL,OAAOpB,KAAKwB,CAAI,CAEzB,CASF,CAEO,MAAM1G,EAAe,IAAIoG,C,6DCxBzB,MAAMS,CAAiB,CAG5BR,aAAc,CAFd,KAAQC,OAAyB,CAAC,EAclC,KAAQC,YAAc,IAAY,CAC5B,KAAKD,OAAOH,SACdK,QAAQC,IAAI,uCAAwC,KAAKH,OAAOH,MAAM,EACtE,KAAKG,OAAOnB,QAASuB,GAASA,EAAK,CAAC,EACpC,KAAKJ,OAAS,CAAC,EAEnB,EAjBM,OAAOK,QAAW,aACpBC,YAAY,KAAKL,YAAa,GAAG,CAErC,CAEOrB,KAAKwB,EAAoC,CAC1C,OAAOC,QAAW,aACpB,KAAKL,OAAOpB,KAAKwB,CAAI,CAEzB,CASF,CAEO,MAAMI,EAAmB,IAAID,ECnBvBvI,EAAiBA,CAC5ByI,EACAC,IACgC,CAChC,IAAIC,EAA6C,KAEjD,MAAMC,EAAyBC,GAA2B,CACxD,MAAM1I,EAAOsI,EAAeI,CAAK,EACjC,OAAI,OAAOR,QAAW,aACpBG,EAAiB,KAAK,IAAM,CAC1BG,GAAA,MAAAA,EAAQG,OAAOD,CAAA,CACjB,CAAC,EAGI1I,CACT,EAEAwI,U,EAASI,cAAWH,EAAuBF,CAAQ,EAE5CC,CACT,C,mCCzBA,IAAIK,EACJ,SAASC,GAAc,CACnB,OAAID,IAEIA,EAAwDX,OAAOa,gBAC3E,CAEO,SAASC,EAASC,EAAS,CAC9B,OAAQJ,GAAiBC,EAAY,GAAGI,OAAOD,GAASE,WAAWC,IAAI,SAAUC,EAAM,CAAE,MAAQ,CAAEC,IAAK,aAAcD,MAAW,CAAI,CAAC,CAC1I,C","file":"284-5363760e978a4d74bff8.js","sourcesContent":["import { CSSProperties, useEffect, useRef } from 'react';\nimport LOADING_GRADIENT_SHADOW from './assets/gradient_shadow.png';\nimport LOADING_GRADIENT_NO_SHADOW from './assets/gradient_no_shadow.png';\nimport LOADING_BALL from './assets/loading_ball.json';\nimport cls from 'classnames';\nimport lottie from 'lottie-web/build/player/lottie_light_canvas';\n\nimport './style.scss';\n\nexport interface LoadingProps {\n variant: 'ball' | 'gradient';\n\n /**\n * @default false\n */\n shadow?: boolean;\n\n /**\n * @default false\n */\n fitParent?: boolean;\n\n style?: CSSProperties;\n}\n\nexport const LoadingBall = (props: { fitParent: boolean; style: CSSProperties }): JSX.Element => {\n const { fitParent, style = {} } = props;\n const loadingDiv = useRef(null);\n\n useEffect(() => {\n if (loadingDiv.current) {\n lottie.loadAnimation({\n container: loadingDiv.current,\n renderer: 'canvas',\n loop: true,\n autoplay: true,\n animationData: LOADING_BALL,\n });\n }\n }, []);\n\n return (\n \n
\n
\n );\n};\n\nexport const LoadingGradient = (props: { shadow: boolean; fitParent: boolean; style: CSSProperties }): JSX.Element => {\n const { shadow, fitParent, style = {} } = props;\n return (\n \n \n \n );\n};\n\nexport const Loading = (props: LoadingProps): JSX.Element => {\n const { variant, shadow = false, fitParent = false, style = {} } = props;\n\n return (\n <>\n {variant === 'ball' && }\n {variant === 'gradient' && }\n \n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const ArticleLargeImageSkeleton = () => {\n return
;\n};\n\nexport const ArticleAuthorSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n
\n );\n};\n\nexport const ArticleTitleSkeleton: FC = () => {\n return (\n
\n \n \n \n
\n );\n};\n\nexport const ArticleContentSkeleton: FC = () => {\n return (\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n );\n};\n\nexport const ArticleCommentSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport {\n ArticleAuthorSkeleton,\n ArticleCommentSkeleton,\n ArticleContentSkeleton,\n ArticleLargeImageSkeleton,\n ArticleTitleSkeleton,\n} from '~/skeleton/article/component';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\nimport { CampaignSkeleton } from '~/skeleton/common/campaign';\n\nexport const ArticleSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const ArticleBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const ArticleRecommendSkeleton: FC = () => {\n return (\n \n \n \n \n \n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const ArticleCardSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const CampaignSkeleton: FC = () =>
;\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const SkeletonScanline: FC = () =>
;\n","import { FC, PropsWithChildren } from 'react';\nimport cls from 'classnames';\n\nimport './style.scss';\n\ninterface ISkeletonWrapperProps {\n /**\n * true - skeleton will prevent document scroll\n * @default false\n */\n fix?: boolean;\n}\n\n/**\n * wrapper for skeleton\n *\n * FIXME: move skeleton-scan-line logic into this component\n */\nexport const SkeletonWrapper: FC> = (props) => {\n const { children, fix = false } = props;\n return
{children}
;\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const DiscoverSkeletonInfo: FC = () => {\n return (\n
\n \n \n \n \n \n
\n );\n};\n\nexport const DiscoverSkeletonTitle: FC = () => {\n return (\n
\n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { DiscoverSkeletonInfo } from '~/skeleton/discover/component';\nimport { CampaignSkeleton } from '~/skeleton/common/campaign';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport {\n ArticleAuthorSkeleton,\n ArticleContentSkeleton,\n ArticleLargeImageSkeleton,\n ArticleTitleSkeleton,\n} from '~/skeleton/article/component';\n\nexport const DiscoverFullSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nexport const DiscoverBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const HashtagInfoSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\nimport { HashtagInfoSkeleton } from '~/skeleton/hashtag/component';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\n\nexport const HashtagSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const HashtagBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n \n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\n\nexport const FeedSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n );\n};\n","import { FC } from 'react';\nimport { useLocation, useNavigation } from '@remix-run/react';\nimport { EPageType, PageTypeUtils } from 'shared/models/page-type';\nimport { DiscoverFullSkeleton } from '~/skeleton/discover';\nimport { FeedSkeleton } from '~/skeleton/feed';\nimport { ArticleSkeleton } from '~/skeleton/article';\nimport { UserFullSkeleton } from '~/skeleton/user';\nimport { POIFullSkeleton } from '~/skeleton/poi';\nimport { Loading } from '~/components/loading';\nimport { HashtagSkeleton } from '~/skeleton/hashtag';\n\nimport './common/style/index.scss';\n\nexport const RootSkeleton: FC = () => {\n const { location: navigationLocation } = useNavigation();\n const currentLocation = useLocation();\n\n const { pathname } = navigationLocation || currentLocation;\n const pageType = PageTypeUtils.getPageTypeFromPathname(pathname);\n\n if (pageType === EPageType.discover) {\n return ;\n }\n\n if (pageType === EPageType.feed) {\n return ;\n }\n\n /**\n * cannot distinct page type from video and article by pathname only.\n */\n if (pageType === EPageType.article || pageType === EPageType.video) {\n return ;\n }\n\n if (pageType === EPageType.user) {\n return ;\n }\n\n if (pageType === EPageType.poi) {\n return ;\n }\n\n if (pageType === EPageType.hashtag) {\n return ;\n }\n\n return ;\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const POIInfoSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport { POIInfoSkeleton } from '~/skeleton/poi/component';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\n\nexport const POIFullSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport const POIBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n );\n};\n","import { FC } from 'react';\n\nimport './style.scss';\n\nexport const UserProfileSkeleton: FC = () => {\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n};\n","import { FC } from 'react';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\nimport { ArticleCardSkeleton } from '~/skeleton/common/article-card';\nimport { UserProfileSkeleton } from '~/skeleton/user/component';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\n\nexport const UserFullSkeleton: FC = () => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport const UserBodySkeleton: FC = () => {\n return (\n \n \n \n \n \n );\n};\n","import { atom } from 'jotai';\nimport { $ArticleCommentDetail, IArticleCommentDetail } from './article-comment-detail';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleCommentDetailLoadmore = safeAtomFamily((commentId: string) => {\n const a = atom(null, (get, set, input: IArticleCommentDetail) => {\n const commentDetail = get($ArticleCommentDetail(commentId));\n const { replies } = commentDetail;\n const { hasMore, replies: nextReplies, cursor } = input;\n\n set($ArticleCommentDetail(commentId), {\n hasMore,\n replies: [...replies, ...nextReplies],\n cursor,\n });\n });\n\n a.debugLabel = `$ArticleCommentDetailLoadmore+${encodeURIComponent(commentId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { TComment } from 'shared/models';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleCommentDetail {\n replies: TComment[];\n hasMore: boolean;\n cursor: number;\n}\n\ntype TArticleCommentDetailStore = { [key: string]: IArticleCommentDetail | undefined };\n\nconst $ArticleCommentDetailStore = atom({});\n\nexport const $ArticleCommentDetail = safeAtomFamily((commentId: string) => {\n const a = atom(\n (get) => {\n return (\n get($ArticleCommentDetailStore)[commentId] || {\n replies: [],\n hasMore: true,\n cursor: 0,\n }\n );\n },\n (get, set, input: IArticleCommentDetail) => {\n const old = get($ArticleCommentDetailStore);\n\n set($ArticleCommentDetailStore, {\n ...old,\n [commentId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleCommentDetail+${encodeURIComponent(commentId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\n\nexport interface CampaignBanner {\n /**\n * 活动 Banner 图,对齐端内官号尺寸,即 1125 * 600\n */\n bannerUrl: string;\n title: string;\n campaignId: string;\n buttonText: string;\n startTime?: number;\n endTime?: number;\n}\n\nexport const $CampaignBanner = atom([]);\n$CampaignBanner.debugLabel = '$CampaignBanner';\n","import { atom } from 'jotai';\nimport { FeedCategory } from 'shared/models/feed';\n\nexport const $CategoryList = atom>(new Promise(() => void 0));\n$CategoryList.debugLabel = '$CategoryList';\n","import { atom, PrimitiveAtom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { TDiscoverData } from 'shared/models';\n\ntype DiscoverStore = { [key: string]: Promise | undefined };\n\nconst $DiscoverDataStore: PrimitiveAtom = atom({});\n\nexport const $DiscoverData = safeAtomFamily((keyword: string) => {\n const a = atom(\n (get) => {\n const data = get($DiscoverDataStore)[keyword];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, args: any) => {\n const old = get($DiscoverDataStore);\n set($DiscoverDataStore, { ...old, [keyword]: args });\n },\n );\n\n a.debugLabel = `$DiscoverData+${encodeURIComponent(keyword)}`;\n\n return a;\n});\n","import { DiscoverBreadcrumbs } from 'shared/models';\nimport { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype DiscoverBreadCrumbsStore = { [key: string]: DiscoverBreadcrumbs | undefined };\n\nexport const $DiscoverBreadCrumbsStore = atom({});\n\nexport const $DiscoverBreadcrumbs = safeAtomFamily((keyword: string) => {\n const a = atom(\n (get) => {\n const data = get($DiscoverBreadCrumbsStore)[keyword];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: DiscoverBreadcrumbs) => {\n const old = get($DiscoverBreadCrumbsStore);\n set($DiscoverBreadCrumbsStore, { ...old, [keyword]: input });\n },\n );\n\n a.debugLabel = `$DiscoverBreadcrumbs+${encodeURIComponent(keyword)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai';\nimport { IArticleRelatedPost } from 'shared/atoms/article';\n\nexport const $DiscoverArticleRelatedPost = safeAtomFamily((groupId: string) => {\n const a = atom({\n searchId: '',\n items: [],\n cursor: 0,\n hasMore: true,\n });\n a.debugLabel = `$DiscoverArticleRelatedPost+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { DiscoverClassifyHotWords } from 'shared/models';\nimport { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype DiscoverClassifyHotWordsStore = { [key: string]: DiscoverClassifyHotWords | undefined };\n\nexport const $DiscoverClassifyHotWordsStore = atom({});\n\nexport const $DiscoverClassifyHotWords = safeAtomFamily((keyword: string) => {\n const a = atom(\n (get) => {\n const data = get($DiscoverClassifyHotWordsStore)[keyword];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: DiscoverClassifyHotWords) => {\n const old = get($DiscoverClassifyHotWordsStore);\n set($DiscoverClassifyHotWordsStore, { ...old, [keyword]: input });\n },\n );\n\n a.debugLabel = `$DiscoverClassifyHotWords+${encodeURIComponent(keyword)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IArticleDetail, IArticleUnavailableDetail } from '../../models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleDetailStore = atom({});\n\nexport const $ArticleDetail = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleDetailStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(() => resolve('$FeedData placeholder')));\n }\n return data;\n },\n (get, set, newArticle) => {\n const old = get($ArticleDetailStore);\n set($ArticleDetailStore, { ...old, [groupId]: newArticle });\n },\n );\n\n a.debugLabel = `$ArticleDetail+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IPrimaryComment } from 'shared/models/comments';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nconst $ArticleCommentStore = atom({});\n\nexport interface IArticleComments {\n items: IPrimaryComment[];\n hasMore: boolean;\n cursor: number;\n}\n\nexport const $ArticleComments = safeAtomFamily((groupId: string) => {\n const a = atom, [IArticleComments | Promise], void>(\n (get) => {\n return get($ArticleCommentStore)[groupId] || new Promise(() => void 0);\n },\n (get, set, comments) => {\n const old = get($ArticleCommentStore);\n set($ArticleCommentStore, { ...old, [groupId]: comments });\n },\n );\n\n a.debugLabel = `$ArticleComments+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IPrimaryComment } from 'shared/models';\nimport { $ArticleComments } from 'shared/atoms';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleCommentLoadmoreParam {\n items: IPrimaryComment[];\n hasMore: string;\n cursor: number;\n}\n\nexport const $ArticleCommentsLoadmore = safeAtomFamily((groupId: string) => {\n const a = atom(null, async (get, set, input: IArticleCommentLoadmoreParam) => {\n const comments = await get($ArticleComments(groupId));\n const { items } = comments;\n const { items: nextItems, hasMore: nextHasMore, cursor: nextCursor } = input;\n\n const output = {\n items: [...items, ...nextItems],\n hasMore: nextHasMore,\n cursor: nextCursor,\n };\n\n set($ArticleComments(groupId), output as any);\n });\n\n a.debugLabel = `$ArticleCommentsLoadmore+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { Article } from 'shared/models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleRelatedPost {\n searchId: string;\n items: Article[];\n cursor: number;\n hasMore: boolean;\n}\n\ntype TArticleRelatedPostStore = { [key: string]: Promise | IArticleRelatedPost | undefined };\n\nconst $ArticleRelatedPostStore = atom({});\n\nexport const $ArticleRelatedPost = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleRelatedPostStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: IArticleRelatedPost | Promise) => {\n const old = get($ArticleRelatedPostStore);\n set($ArticleRelatedPostStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleRelatedPost+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { $ArticleRelatedPost, IArticleRelatedPost } from 'shared/atoms';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleRelatedPostLoadmore = safeAtomFamily((groupId: string) => {\n const a = atom(null, async (get, set, input: IArticleRelatedPost) => {\n const { items } = await get($ArticleRelatedPost(groupId));\n\n set($ArticleRelatedPost(groupId), {\n ...input,\n items: [...items, ...input.items],\n });\n });\n\n a.debugLabel = `$ArticleRelatedPostLoadmore+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { Topic } from 'shared/models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleRelatedHashtag {\n items: Topic[];\n sugWords: string[];\n gptExtendWords: {\n highVolumeWords: string[];\n longTailWords: string[];\n relatedSEOWords: string[];\n };\n}\n\ntype TArticleRelatedHashtagStore = {\n [key: string]: Promise | IArticleRelatedHashtag | undefined;\n};\n\nconst $ArticleRelatedHashtagStore = atom({});\n\nexport const $ArticleRelatedHashtag = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleRelatedHashtagStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: IArticleRelatedHashtag | Promise) => {\n const old = get($ArticleRelatedHashtagStore);\n set($ArticleRelatedHashtagStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleRelatedHashtag+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { Article } from 'shared/models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport interface IArticleCategoryPost {\n items: Article[];\n hasMore: boolean;\n cursor: number;\n}\n\ntype TArticleCategoryPostStore = { [key: string]: Promise | IArticleCategoryPost | undefined };\n\nconst $ArticleCategoryPostStore = atom({});\n\nexport const $ArticleCategoryPost = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleCategoryPostStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: IArticleCategoryPost | Promise) => {\n const old = get($ArticleCategoryPostStore);\n set($ArticleCategoryPostStore, {\n ...old,\n [groupId]: input,\n });\n },\n );\n\n a.debugLabel = `$ArticleCategoryPost+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { $ArticleCategoryPost, IArticleCategoryPost } from 'shared/atoms';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleCategoryPostLoadmore = safeAtomFamily((groupId: string) => {\n const a = atom(null, async (get, set, input: IArticleCategoryPost) => {\n const { items } = await get($ArticleCategoryPost(groupId));\n\n set($ArticleCategoryPost(groupId), {\n ...input,\n items: [...items, ...input.items],\n });\n });\n\n a.debugLabel = `$ArticleCategoryPostLoadmore+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $ArticleGuessCardsWordsStore = atom({});\n\nexport const $ArticleGuessCardsWords = safeAtomFamily((groupId: string) => {\n const a = atom(\n (get) => {\n const data = get($ArticleGuessCardsWordsStore)[groupId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(() => resolve('$ArticleGuessCardsWords placeholder')));\n }\n return data;\n },\n (get, set, newData) => {\n const old = get($ArticleGuessCardsWordsStore);\n set($ArticleGuessCardsWordsStore, { ...old, [groupId]: newData });\n },\n );\n\n a.debugLabel = `$ArticleGuessCardsWords+${encodeURIComponent(groupId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IUserDetail, IUserUnavailableDetail } from '../../models';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TUserDetailStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $UserDetailStore = atom({});\n\nexport const $UserDetail = safeAtomFamily((userId: string) => {\n const a = atom<\n PromiseOrValue,\n [PromiseOrValue],\n void\n >(\n (get) => {\n const data = get($UserDetailStore)[userId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(() => resolve()));\n }\n return data;\n },\n (get, set, userDetail) => {\n const old = get($UserDetailStore);\n set($UserDetailStore, { ...old, [userId]: userDetail });\n },\n );\n\n a.debugLabel = `$UserDetail+${encodeURIComponent(userId)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { IUserDetail, IUserUnavailableDetail } from '../../models';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TUserDetailStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $UserDetailV2Store = atom({});\n\n/**\n * get user detail data\n *\n * use user-unique-name as key\n */\nexport const $UserDetailV2 = safeAtomFamily((userUniqueName: string) => {\n const a = atom<\n PromiseOrValue,\n [PromiseOrValue],\n void\n >(\n (get) => {\n const data = get($UserDetailV2Store)[userUniqueName];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, userDetail) => {\n const old = get($UserDetailV2Store);\n set($UserDetailV2Store, { ...old, [userUniqueName]: userDetail });\n },\n );\n\n a.debugLabel = `$UserDetailV2+${encodeURIComponent(userUniqueName)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { UserPosts } from 'shared/models';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TUserPostStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $UserPostStore = atom({} as TUserPostStore);\n\nexport const $UserPost = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n const data = get($UserPostStore)[userLinkName];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: PromiseOrValue) => {\n const old = get($UserPostStore);\n set($UserPostStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserPost+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { atom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { User } from 'shared/models/legacy';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype TUserRelatedUserStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $UserRelatedStore = atom({} as TUserRelatedUserStore);\n\nexport const $UserRelatedUser = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n const data = get($UserRelatedStore)[userLinkName];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: User[]) => {\n const old = get($UserRelatedStore);\n set($UserRelatedStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserRelatedUser+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai';\n\ninterface IUserFollowerData {\n cursor: number;\n has_more: boolean;\n data: any[];\n}\n\ntype TUserFollowerStore = { [key: string]: IUserFollowerData };\n\nexport const $UserFollowerStore = atom({} as TUserFollowerStore);\n\nexport const $UserFollower = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n return get($UserFollowerStore)[userLinkName];\n },\n (get, set, input: IUserFollowerData) => {\n const old = get($UserFollowerStore);\n\n set($UserFollowerStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserFollower+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n\nexport const $UserFollowerLoadmore = safeAtomFamily((userLinkName: string) => {\n const a = atom(null, (get, set, input: IUserFollowerData) => {\n const old = get($UserFollower(userLinkName));\n set($UserFollower(userLinkName), {\n ...input,\n data: [...old.data, ...input.data],\n });\n });\n\n a.debugLabel = `$UserFollowerLoadmore+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai/index';\n\ninterface IUserFollowingData {\n cursor: number;\n has_more: boolean;\n data: any[];\n}\n\ntype TUserFollowingStore = { [key: string]: IUserFollowingData };\n\nexport const $UserFollowingStore = atom({} as TUserFollowingStore);\n\nexport const $UserFollowing = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n return get($UserFollowingStore)[userLinkName];\n },\n (get, set, input: IUserFollowingData) => {\n const old = get($UserFollowingStore);\n\n set($UserFollowingStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserFollowing+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n\nexport const $UserFollowingLoadmore = safeAtomFamily((userLinkName: string) => {\n const a = atom(null, (get, set, input: IUserFollowingData) => {\n const old = get($UserFollowing(userLinkName));\n set($UserFollowing(userLinkName), {\n ...input,\n data: [...old.data, ...input.data],\n });\n });\n\n a.debugLabel = `$UserFollowingLoadmore+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { safeAtomFamily } from 'shared/utils/safe-atom-family';\nimport { atom } from 'jotai/index';\n\ninterface IUserFollowTopicData {\n cursor: number;\n has_more: boolean;\n data: any[];\n}\n\ntype TUserFollowTopicStore = { [key: string]: IUserFollowTopicData };\n\nexport const $UserFollowingTopicStore = atom({} as TUserFollowTopicStore);\n\nexport const $UserFollowingTopic = safeAtomFamily((userLinkName: string) => {\n const a = atom(\n (get) => {\n return get($UserFollowingTopicStore)[userLinkName];\n },\n (get, set, input: IUserFollowTopicData) => {\n const old = get($UserFollowingTopicStore);\n\n set($UserFollowingTopicStore, { ...old, [userLinkName]: input });\n },\n );\n\n a.debugLabel = `$UserFollowingTopic+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n\nexport const $UserFollowTopicLoadmore = safeAtomFamily((userLinkName: string) => {\n const a = atom(null, (get, set, input: IUserFollowTopicData) => {\n const old = get($UserFollowingTopic(userLinkName));\n set($UserFollowingTopic(userLinkName), {\n ...input,\n data: [...old.data, ...input.data],\n });\n });\n\n a.debugLabel = `$UserFollowTopicLoadmore+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","import { FeedData } from 'shared/models';\nimport { atom, PrimitiveAtom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype FeedStore = { [key: string]: Promise | FeedData | undefined };\n\nexport const $FeedDataStore: PrimitiveAtom = atom({});\n$FeedDataStore.debugLabel = '$FeedDataStore';\n\nexport const $FeedData = safeAtomFamily((categoryName: string) => {\n const a = atom(\n (get) => {\n const data = get($FeedDataStore)[categoryName];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(() => resolve()));\n }\n\n return data;\n },\n (get, set, nextCategoryData: Promise | FeedData) => {\n const old: FeedStore = get($FeedDataStore);\n\n set($FeedDataStore, {\n ...old,\n [categoryName]: nextCategoryData,\n });\n\n if (nextCategoryData instanceof Promise) {\n nextCategoryData\n .then((data) => {\n set($FeedDataStore, {\n ...old,\n [categoryName]: data,\n });\n })\n .catch(() => {\n set($FeedDataStore, {\n ...old,\n [categoryName]: void 0,\n });\n });\n }\n },\n );\n\n a.debugLabel = `$FeedData+${encodeURIComponent(categoryName)}`;\n\n return a;\n});\n\nexport const $FeedDateLoadmore = safeAtomFamily((categoryName: string) => {\n const a = atom(null, async (get, set, input: FeedData) => {\n const { minBeHotTime, items } = await get($FeedData(categoryName));\n const { maxBeHotTime, hasMore, items: nextItems } = input;\n\n set($FeedData(categoryName), {\n items: [...items, ...nextItems],\n minBeHotTime,\n maxBeHotTime,\n hasMore,\n });\n });\n\n a.debugLabel = `$FeedDateLoadmore+${encodeURIComponent(categoryName)}`;\n\n return a;\n});\n","import { HashtagInfo, HashtagPosts, HashtagRelated } from 'shared/models';\nimport { atom, PrimitiveAtom } from 'jotai';\nimport { pendingQueue } from 'shared/utils/pending-queue';\nimport { ITopicUnavailableDetail } from 'shared/models';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype HashtagInfoStore = { [key: string]: HashtagInfo | ITopicUnavailableDetail | undefined };\ntype HashtagPostsStore = { [key: string]: PromiseOrValue | undefined };\ntype HashtagRelatedStore = { [key: string]: PromiseOrValue | undefined };\n\nexport const $HashtagInfoStore: PrimitiveAtom = atom({});\nexport const $HashtagPopularPostStore: PrimitiveAtom = atom({});\nexport const $HashtagRecentPostStore: PrimitiveAtom = atom({});\nexport const $HashtagRelatedStore: PrimitiveAtom = atom({});\n\n// HashtagInfo HashtagPopularPost HashtagRecentPost HashtagRelated\nexport const $HashtagInfo = safeAtomFamily((hashtagId: string) => {\n const a = atom(\n (get) => {\n const data = get($HashtagInfoStore)[hashtagId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: HashtagInfo | ITopicUnavailableDetail) => {\n const old = get($HashtagInfoStore);\n set($HashtagInfoStore, { ...old, [hashtagId]: input });\n },\n );\n a.debugLabel = `$HashtagInfo+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n\nexport const $HashtagPopularPost = safeAtomFamily((hashtagId: string) => {\n const a = atom(\n (get) => {\n const data = get($HashtagPopularPostStore)[hashtagId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: PromiseOrValue) => {\n const old = get($HashtagPopularPostStore);\n set($HashtagPopularPostStore, { ...old, [hashtagId]: input });\n },\n );\n a.debugLabel = `$HashtagPopularPost+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n\nexport const $HashtagRecentPost = safeAtomFamily((hashtagId: string) => {\n const a = atom(\n (get) => {\n const data = get($HashtagRecentPostStore)[hashtagId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: PromiseOrValue) => {\n const old = get($HashtagRecentPostStore);\n set($HashtagRecentPostStore, { ...old, [hashtagId]: input });\n },\n );\n\n a.debugLabel = `$HashtagRecentPost+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n\nexport const $HashtagRecentPostLoadmore = safeAtomFamily((hashtagId: string) => {\n const a = atom(null, async (get, set, input: HashtagPosts) => {\n const old = get($HashtagRecentPostStore);\n const hashtag = await old[hashtagId];\n if (hashtag) {\n set($HashtagRecentPostStore, {\n ...old,\n [hashtagId]: {\n hasMore: input.hasMore,\n sessionImprId: input.sessionImprId,\n items: [...hashtag.items, ...input.items],\n },\n });\n }\n });\n\n a.debugLabel = `$HashtagRecentPostLoadmore+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n\nexport const $HashtagRelated = safeAtomFamily((hashtagId: string) => {\n const a = atom(\n (get) => {\n const data = get($HashtagRelatedStore)[hashtagId];\n if (!data) {\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw new Promise((resolve) => pendingQueue.push(resolve));\n }\n return data;\n },\n (get, set, input: PromiseOrValue) => {\n const old = get($HashtagRelatedStore);\n set($HashtagRelatedStore, { ...old, [hashtagId]: input });\n },\n );\n a.debugLabel = `$HashtagRelated+${encodeURIComponent(hashtagId)}`;\n return a;\n});\n","import { PoiInfo, PoiPosts, PoiRelated } from 'shared/models';\nimport { atom, PrimitiveAtom } from 'jotai';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\ntype PoiInfoStore = { [key: string]: Promise };\ntype PoiPostsStore = { [key: string]: Promise | PoiPosts };\ntype PoiRelatedStore = { [key: string]: Promise };\n\nconst poiInfoPendingQueue: any[] = [];\nconst poiPostPendingQueue: any[] = [];\nconst poiRelatedPendingQueue: any[] = [];\n\nexport const $PoiInfoStore: PrimitiveAtom = atom({});\nexport const $PoiPostStore: PrimitiveAtom = atom({});\nexport const $PoiRelatedStore: PrimitiveAtom = atom({});\n\nexport const $PoiInfo = safeAtomFamily((poiId: string) => {\n const a = atom(\n (get) => {\n return (\n get($PoiInfoStore)[poiId] ||\n new Promise((r) => {\n poiInfoPendingQueue.push(r);\n })\n );\n },\n (get, set, args: any) => {\n const old = get($PoiInfoStore);\n\n set($PoiInfoStore, { ...old, [poiId]: args });\n\n // required,finish all pending suspense boundary\n poiInfoPendingQueue.forEach((r) => r());\n },\n );\n a.debugLabel = `$PoiInfo+${poiId}`;\n return a;\n});\n\nexport const $PoiPost = safeAtomFamily((poiId: string) => {\n const a = atom(\n (get) => {\n return (\n get($PoiPostStore)[poiId] ||\n new Promise((r) => {\n poiPostPendingQueue.push(r);\n })\n );\n },\n (get, set, args: any) => {\n const old = get($PoiPostStore);\n\n set($PoiPostStore, { ...old, [poiId]: args });\n },\n );\n a.debugLabel = `$PoiPost+${poiId}`;\n return a;\n});\n\nexport const $PoiPostLoadmore = safeAtomFamily((poiId: string) => {\n const a = atom(null, async (get, set, input: PoiPosts) => {\n const old = get($PoiPostStore);\n const posts = await old[poiId];\n\n if (posts) {\n set($PoiPostStore, {\n ...old,\n [poiId]: {\n hasMore: input.hasMore,\n sessionImprId: input.sessionImprId,\n items: [...posts.items, ...input.items],\n } as PoiPosts,\n });\n }\n });\n a.debugLabel = `$PoiPostLoadmore+${poiId}`;\n return a;\n});\n\nexport const $PoiRelated = safeAtomFamily((poiId: string) => {\n const a = atom(\n (get) => {\n return (\n get($PoiRelatedStore)[poiId] ||\n new Promise((r) => {\n poiRelatedPendingQueue.push(r);\n })\n );\n },\n (get, set, args: any) => {\n const old = get($PoiRelatedStore);\n\n set($PoiRelatedStore, { ...old, [poiId]: args });\n\n // required,finish all pending suspense boundary\n poiRelatedPendingQueue.forEach((r) => r());\n },\n );\n a.debugLabel = `$PoiRelated+${poiId}`;\n return a;\n});\n","import { atom } from 'jotai';\nimport { PageLevelTraffic } from 'shared/models/page-level-traffic';\n\nexport const $PageLevelTraffic = atom({} as PageLevelTraffic);\n$PageLevelTraffic.debugLabel = '$PageLevelTraffic';\n","import { atom } from 'jotai';\nimport { UserPosts } from 'shared/models';\nimport { PromiseOrValue } from 'shared/utils/promise-or-value';\nimport { $UserPost } from 'shared/atoms';\nimport { safeAtomFamily } from 'shared/utils/safe-atom-family';\n\nexport const $UserPostLoadmore = safeAtomFamily((userLinkName: string) => {\n const a = atom(null, async (get, set, input: PromiseOrValue) => {\n const awaitOld = await get($UserPost(userLinkName));\n const awaitedInput = await input;\n set($UserPost(userLinkName), {\n ...input,\n items: [...awaitOld.items, ...awaitedInput.items],\n });\n });\n\n a.debugLabel = `$UserPostLoadmore+${encodeURIComponent(userLinkName)}`;\n\n return a;\n});\n","export enum EPageType {\n user = 'user',\n user_follow = 'user_follow',\n user_topic = 'user_topic',\n hashtag = 'hashtag',\n article = 'article',\n video = 'video',\n feed = 'feed',\n poi = 'poi',\n discover = 'discover',\n}\n\nexport const PageTypeUtils = {\n getPageTypeFromPathname: (pathname: string): EPageType | null => {\n if (pathname.startsWith('/discover/')) {\n return EPageType.discover;\n }\n if (pathname.startsWith('/feed')) {\n return EPageType.feed;\n }\n if (pathname.startsWith('/poi')) {\n return EPageType.poi;\n }\n if (pathname.startsWith('/topic')) {\n return EPageType.hashtag;\n }\n if (pathname.match(/^\\/[^\\/]+\\/follow/)) {\n return EPageType.user_follow;\n }\n if (pathname.match(/^\\/[^\\/]+\\/topic/)) {\n return EPageType.user_topic;\n }\n\n // legacy article-i\n if (pathname.match(/^\\/article\\/i\\d+/)) {\n return EPageType.article;\n }\n\n // legacy user-share\n if (pathname.match(/^\\/user\\/\\d+\\/share/)) {\n return EPageType.user;\n }\n\n const segmentCount = pathname.split('/').filter(Boolean).length;\n if (segmentCount === 1) {\n return EPageType.user;\n }\n if (segmentCount === 2) {\n return EPageType.article;\n }\n return null;\n },\n};\n","export class PendingQueue {\n private _tasks: (() => void)[] = [];\n\n constructor() {\n if (typeof window !== 'undefined') {\n window.setInterval(this._doInterval, 16);\n }\n }\n\n public push(task: (...args: unknown[]) => void) {\n if (typeof window !== 'undefined') {\n this._tasks.push(task);\n }\n }\n\n private _doInterval = (): void => {\n if (this._tasks.length) {\n console.log('pending tasks found, total count: %d', this._tasks.length);\n this._tasks.forEach((task) => task());\n this._tasks = [];\n }\n };\n}\n\nexport const pendingQueue = new PendingQueue();\n","export class NodePendingQueue {\n private _tasks: (() => void)[] = [];\n\n constructor() {\n if (typeof window === 'undefined') {\n setInterval(this._doInterval, 500);\n }\n }\n\n public push(task: (...args: unknown[]) => void) {\n if (typeof window === 'undefined') {\n this._tasks.push(task);\n }\n }\n\n private _doInterval = (): void => {\n if (this._tasks.length) {\n console.log('pending tasks found, total count: %d', this._tasks.length);\n this._tasks.forEach((task) => task());\n this._tasks = [];\n }\n };\n}\n\nexport const nodePendingQueue = new NodePendingQueue();\n","import { atomFamily } from 'jotai/utils';\nimport { Atom } from 'jotai/vanilla';\nimport { AtomFamily } from 'jotai/vanilla/utils/atomFamily';\nimport { nodePendingQueue } from 'shared/utils/node-pending-queue';\n\nexport const safeAtomFamily = >(\n initializeAtom: (param: Param) => AtomType,\n areEqual?: (a: Param, b: Param) => boolean,\n): AtomFamily => {\n let family: AtomFamily | null = null;\n\n const initializeAtomWrapper = (param: Param): AtomType => {\n const atom = initializeAtom(param);\n if (typeof window === 'undefined') {\n nodePendingQueue.push(() => {\n family?.remove(param);\n });\n }\n\n return atom;\n };\n\n family = atomFamily(initializeAtomWrapper, areEqual);\n\n return family;\n};\n","var manifestCache;\nfunction getManifest() {\n if (manifestCache)\n return manifestCache;\n return (manifestCache = process.env.BUILD_TARGET === 'client' ? window.__remixManifest : require('ttark').assets);\n}\n// do not pass routeId directly, webpack CSSLinksPlugin will pass the routeId\nexport function cssLinks(routeId) {\n return (manifestCache || getManifest()).routes[routeId].cssImports.map(function (href) { return ({ rel: 'stylesheet', href: href }); });\n}\n//# sourceMappingURL=index.js.map"],"sourceRoot":""}