{"version":3,"sources":["webpack://@lemon8/webapp-seo/./shared/atoms/article/article-comment-detail-loadmore.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-comment-detail.ts","webpack://@lemon8/webapp-seo/./shared/atoms/common/seo-secret.ts","webpack://@lemon8/webapp-seo/./shared/atoms/discover/data.ts","webpack://@lemon8/webapp-seo/./shared/atoms/discover/breadcrumbs.ts","webpack://@lemon8/webapp-seo/./shared/atoms/discover/discover-article-related-post.ts","webpack://@lemon8/webapp-seo/./shared/atoms/discover/hot-words.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-detail.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-comments.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-comments-loadmore.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-related-post.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-related-post-loadmore.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-related-hashtag.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-category-post.ts","webpack://@lemon8/webapp-seo/./shared/atoms/article/article-category-post-loadmore.ts","webpack://@lemon8/webapp-seo/./shared/atoms/user/user-detail.ts","webpack://@lemon8/webapp-seo/./shared/atoms/user/user-detail-v2.ts","webpack://@lemon8/webapp-seo/./shared/atoms/user/user-posts.ts","webpack://@lemon8/webapp-seo/./shared/atoms/user/user-related-user.ts","webpack://@lemon8/webapp-seo/./shared/atoms/user-follow/user-follower.ts","webpack://@lemon8/webapp-seo/./shared/atoms/user-follow/user-following.ts","webpack://@lemon8/webapp-seo/./shared/atoms/user-follow/user-follow-topic.ts","webpack://@lemon8/webapp-seo/./shared/atoms/feed/index.ts","webpack://@lemon8/webapp-seo/./shared/atoms/topic/index.ts","webpack://@lemon8/webapp-seo/./shared/atoms/page-traffic/index.ts","webpack://@lemon8/webapp-seo/./shared/atoms/user/user-posts-loadmore.ts","webpack://@lemon8/webapp-seo/./shared/models/page-type.ts","webpack://@lemon8/webapp-seo/./shared/utils/pending-queue.ts","webpack://@lemon8/webapp-seo/./shared/utils/node-pending-queue.ts","webpack://@lemon8/webapp-seo/./shared/utils/safe-atom-family.ts","webpack://@lemon8/webapp-seo/./src/components/loading/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/article/component/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/article/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/common/article-card/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/common/campaign/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/common/skeleton-scanline/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/common/skeleton-wrapper/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/discover/component/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/discover/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/hashtag/component/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/hashtag/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/feed/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/poi/component/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/poi/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/user/component/index.tsx","webpack://@lemon8/webapp-seo/./src/skeleton/user/index.tsx","webpack://@lemon8/webapp-seo/../libs/ark-css-links/dist/es/index.js"],"names":["$ArticleCommentDetailLoadmore","safeAtomFamily","commentId","a","atom","get","set","input","commentDetail","$ArticleCommentDetail","replies","hasMore","nextReplies","cursor","debugLabel","concat","encodeURIComponent","$ArticleCommentDetailStore","old","_objectSpread","$SEOSecret","$DiscoverDataStore","$DiscoverData","keyword","data","Promise","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","$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","$HashtagRelated","$PageLevelTraffic","$UserPostLoadmore","awaitOld","awaitedInput","EPageType","PageTypeUtils","getPageTypeFromPathname","pathname","startsWith","match","segmentCount","split","filter","Boolean","length","PendingQueue","constructor","_tasks","_doInterval","console","log","forEach","task","window","setInterval","push","NodePendingQueue","nodePendingQueue","initializeAtom","areEqual","family","initializeAtomWrapper","param","remove","atomFamily","LoadingBall","props","fitParent","style","loadingDiv","useRef","useEffect","current","lottie","container","renderer","loop","autoplay","animationData","LOADING_BALL","jsx","className","cls","children","ref","LoadingGradient","shadow","backgroundImage","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","pageType","UserFullSkeleton","POIFullSkeleton","POIInfoSkeleton","POIBodySkeleton","UserProfileSkeleton","UserBodySkeleton","manifestCache","getManifest","__remixManifest","cssLinks","routeId","routes","cssImports","map","href","rel"],"mappings":"0IAIO,MAAMA,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,EAAAV,SAAAW,WAAA,IAEDX,EAAEW,WAAA,iCAAAC,OAA8CC,mBAAmBd,CAAS,CAAC,EAEtEC,CACT,CAAC,C,iFCRD,MAAMc,G,EAA6Bb,QAAiC,CAAC,CAAC,EAAAa,EAAAH,WAAA,6BAE/D,MAAML,G,EAAwBR,KAAgBC,GAAsB,CACzE,MAAMC,G,EAAIC,QACPC,GAEGA,EAAIY,CAA0B,EAAEf,IAAc,CAC5CQ,QAAS,CAAC,EACVC,QAAS,GACTE,OAAQ,CACV,EAGJ,CAACR,EAAKC,EAAKC,IAAiC,CAC1C,MAAMW,EAAMb,EAAIY,CAA0B,EAE1CX,EAAIW,G,EAAAE,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAAChB,GAAYK,CAAA,EACd,CACH,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,yBAAAC,OAAsCC,mBAAmBd,CAAS,CAAC,EAE9DC,CACT,CAAC,C,yUCpCM,MAAMiB,G,EAAahB,QAA8B,CAAC,CAAC,EAAAgB,EAAAN,WAAA,a,gDCK1D,MAAMO,G,EAAmDjB,QAAoB,CAAC,CAAC,EAAAiB,EAAAP,WAAA,qBAExE,MAAMQ,G,EAAgBrB,KAAgBsB,GAAoB,CAC/D,MAAMpB,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIgB,CAAkB,EAAEE,GACrC,GAAI,CAACC,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKsB,IAAc,CACvB,MAAMV,EAAMb,EAAIgB,CAAkB,EAClCf,EAAIe,G,EAAAF,M,EAAAA,KAAA,GAAyBD,CAAA,MAAK,CAACK,GAAUK,CAAA,EAAM,CACrD,CACF,EAAAzB,SAAAW,WAAA,IAEAX,EAAEW,WAAA,iBAAAC,OAA8BC,mBAAmBO,CAAO,CAAC,EAEpDpB,CACT,CAAC,ECrBY0B,G,EAA4BzB,QAA+B,CAAC,CAAC,EAAAyB,EAAAf,WAAA,4BAEnE,MAAMgB,G,EAAuB7B,KAAgBsB,GAAoB,CACtE,MAAMpB,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIwB,CAAyB,EAAEN,GAC5C,GAAI,CAACC,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAA+B,CACxC,MAAMW,EAAMb,EAAIwB,CAAyB,EACzCvB,EAAIuB,G,EAAAV,M,EAAAA,KAAA,GAAgCD,CAAA,MAAK,CAACK,GAAUhB,CAAA,EAAO,CAC7D,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,wBAAAC,OAAqCC,mBAAmBO,CAAO,CAAC,EAE3DpB,CACT,CAAC,ECxBY4B,G,EAA8B9B,KAAgB+B,GAAoB,CAC7E,MAAM7B,G,EAAIC,QAA0B,CAClC6B,SAAU,GACVC,MAAO,CAAC,EACRrB,OAAQ,EACRF,QAAS,EACX,CAAC,EAAAR,SAAAW,WAAA,IACDX,EAAEW,WAAA,+BAAAC,OAA4CC,mBAAmBgB,CAAO,CAAC,EAElE7B,CACT,CAAC,ECPYgC,G,EAAiC/B,QAAoC,CAAC,CAAC,EAAA+B,EAAArB,WAAA,iCAE7E,MAAMsB,G,EAA4BnC,KAAgBsB,GAAoB,CAC3E,MAAMpB,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAI8B,CAA8B,EAAEZ,GACjD,GAAI,CAACC,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAAoC,CAC7C,MAAMW,EAAMb,EAAI8B,CAA8B,EAC9C7B,EAAI6B,G,EAAAhB,M,EAAAA,KAAA,GAAqCD,CAAA,MAAK,CAACK,GAAUhB,CAAA,EAAO,CAClE,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,6BAAAC,OAA0CC,mBAAmBO,CAAO,CAAC,EAEhEpB,CACT,CAAC,ECvBYkC,G,EAAsBjC,QAAU,CAAC,CAAC,EAAAiC,EAAAvB,WAAA,sBAExC,MAAMwB,G,EAAiBrC,KAAgB+B,GAAoB,CAChE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIgC,CAAmB,EAAEL,GACtC,GAAI,CAACR,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkB,IAAMD,EAAQ,uBAAuB,CAAC,CAAC,EAE1F,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKiC,IAAe,CACxB,MAAMrB,EAAMb,EAAIgC,CAAmB,EACnC/B,EAAI+B,G,EAAAlB,M,EAAAA,KAAA,GAA0BD,CAAA,MAAK,CAACc,GAAUO,CAAA,EAAY,CAC5D,CACF,EAAApC,SAAAW,WAAA,IAEAX,EAAEW,WAAA,kBAAAC,OAA+BC,mBAAmBgB,CAAO,CAAC,EAErD7B,CACT,CAAC,ECtBKqC,G,EAAuBpC,QAAU,CAAC,CAAC,EAAAoC,EAAA1B,WAAA,uBAQlC,MAAM2B,G,EAAmBxC,KAAgB+B,GAAoB,CAClE,MAAM7B,G,EAAIC,QACPC,GACQA,EAAImC,CAAoB,EAAER,IAAY,IAAIP,QAAQ,IAAG,EAAS,EAEvE,CAACpB,EAAKC,EAAKoC,IAAa,CACtB,MAAMxB,EAAMb,EAAImC,CAAoB,EACpClC,EAAIkC,G,EAAArB,M,EAAAA,KAAA,GAA2BD,CAAA,MAAK,CAACc,GAAUU,CAAA,EAAU,CAC3D,CACF,EAAAvC,SAAAW,WAAA,IAEAX,EAAEW,WAAA,oBAAAC,OAAiCC,mBAAmBgB,CAAO,CAAC,EAEvD7B,CACT,CAAC,E,gBCfM,MAAMwC,G,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,EAAWjC,QAASkC,EAAahC,OAAQiC,CAAW,EAAIvC,EAEjEwC,GAAS,CACbb,MAAO,CAAC,GAAGA,EAAO,GAAGU,CAAS,EAC9BjC,QAASkC,EACThC,OAAQiC,CACV,EAEAxC,EAAImC,EAAiBT,CAAO,EAAGe,EAAa,CAC9C,CAAC,EAAA5C,SAAAW,WAAA,IAEDX,EAAEW,WAAA,4BAAAC,OAAyCC,mBAAmBgB,CAAO,CAAC,EAE/D7B,CACT,CAAC,E,4BCfD,MAAM6C,G,EAA2B5C,QAA+B,CAAC,CAAC,EAAA4C,EAAAlC,WAAA,2BAE3D,MAAMmC,G,EAAsBhD,KAAgB+B,GAAoB,CACrE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAI2C,CAAwB,EAAEhB,GAC3C,GAAI,CAACR,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAA8D,CACvE,MAAMW,EAAMb,EAAI2C,CAAwB,EACxC1C,EAAI0C,G,EAAA7B,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACc,GAAUzB,CAAA,EACZ,CACH,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,uBAAAC,OAAoCC,mBAAmBgB,CAAO,CAAC,EAE1D7B,CACT,CAAC,EClCY+C,G,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,EAAAb,M,EAAAA,KAAA,GAC1BZ,CAAA,MACH2B,MAAO,CAAC,GAAGA,EAAO,GAAG3B,EAAM2B,KAAK,GACjC,CACH,CAAC,EAAA/B,SAAAW,WAAA,IAEDX,EAAEW,WAAA,+BAAAC,OAA4CC,mBAAmBgB,CAAO,CAAC,EAElE7B,CACT,CAAC,ECEKgD,G,EAA8B/C,QAAkC,CAAC,CAAC,EAAA+C,EAAArC,WAAA,8BAEjE,MAAMsC,I,EAAyBnD,KAAgB+B,GAAoB,CACxE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAI8C,CAA2B,EAAEnB,GAC9C,GAAI,CAACR,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAAoE,CAC7E,MAAMW,EAAMb,EAAI8C,CAA2B,EAC3C7C,EAAI6C,G,EAAAhC,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACc,GAAUzB,CAAA,EACZ,CACH,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,0BAAAC,OAAuCC,mBAAmBgB,CAAO,CAAC,EAE7D7B,CACT,CAAC,EC9BKkD,G,EAA4BjD,QAAgC,CAAC,CAAC,EAAAiD,EAAAvC,WAAA,4BAE7D,MAAMwC,G,EAAuBrD,KAAgB+B,GAAoB,CACtE,MAAM7B,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIgD,CAAyB,EAAErB,GAC5C,GAAI,CAACR,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAAgE,CACzE,MAAMW,EAAMb,EAAIgD,CAAyB,EACzC/C,EAAI+C,G,EAAAlC,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAACc,GAAUzB,CAAA,EACZ,CACH,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,wBAAAC,OAAqCC,mBAAmBgB,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,EAAAb,M,EAAAA,KAAA,GAC3BZ,CAAA,MACH2B,MAAO,CAAC,GAAGA,EAAO,GAAG3B,EAAM2B,KAAK,GACjC,CACH,CAAC,EAAA/B,SAAAW,WAAA,IAEDX,EAAEW,WAAA,gCAAAC,OAA6CC,mBAAmBgB,CAAO,CAAC,EAEnE7B,CACT,CAAC,ECTYqD,G,EAAmBpD,QAAuB,CAAC,CAAC,EAAAoD,EAAA1C,WAAA,mBAElD,MAAM2C,I,EAAcxD,KAAgByD,GAAmB,CAC5D,MAAMvD,G,EAAIC,QAKPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAImD,CAAgB,EAAEE,GACnC,GAAI,CAAClC,EAEH,MAAM,IAAIC,QAAeC,GAAYC,SAAkB,IAAMD,EAAQ,CAAC,CAAC,EAEzE,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKqD,IAAe,CACxB,MAAMzC,EAAMb,EAAImD,CAAgB,EAChClD,EAAIkD,G,EAAArC,M,EAAAA,KAAA,GAAuBD,CAAA,MAAK,CAACwC,GAASC,CAAA,EAAY,CACxD,CACF,EAAAxD,SAAAW,WAAA,IAEAX,EAAEW,WAAA,eAAAC,OAA4BC,mBAAmB0C,CAAM,CAAC,EAEjDvD,CACT,CAAC,ECzBYyD,G,EAAqBxD,QAAuB,CAAC,CAAC,EAAAwD,EAAA9C,WAAA,qBAOpD,MAAM+C,I,EAAgB5D,KAAgB6D,GAA2B,CACtE,MAAM3D,G,EAAIC,QAKPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIuD,CAAkB,EAAEE,GACrC,GAAI,CAACtC,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKqD,IAAe,CACxB,MAAMzC,EAAMb,EAAIuD,CAAkB,EAClCtD,EAAIsD,G,EAAAzC,M,EAAAA,KAAA,GAAyBD,CAAA,MAAK,CAAC4C,GAAiBH,CAAA,EAAY,CAClE,CACF,EAAAxD,SAAAW,WAAA,IAEAX,EAAEW,WAAA,iBAAAC,OAA8BC,mBAAmB8C,CAAc,CAAC,EAE3D3D,CACT,CAAC,EC9BY4D,G,EAAiB3D,QAAK,CAAC,CAAmB,EAAA2D,EAAAjD,WAAA,iBAEhD,MAAMkD,I,EAAY/D,KAAgBgE,GAAyB,CAChE,MAAM9D,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAI0D,CAAc,EAAEE,GACjC,GAAI,CAACzC,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAAqC,CAC9C,MAAMW,EAAMb,EAAI0D,CAAc,EAC9BzD,EAAIyD,G,EAAA5C,M,EAAAA,KAAA,GAAqBD,CAAA,MAAK,CAAC+C,GAAe1D,CAAA,EAAO,CACvD,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,aAAAC,OAA0BC,mBAAmBiD,CAAY,CAAC,EAErD9D,CACT,CAAC,ECrBY+D,G,EAAoB9D,QAAK,CAAC,CAA0B,EAAA8D,EAAApD,WAAA,oBAE1D,MAAMqD,I,EAAmBlE,KAAgBgE,GAAyB,CACvE,MAAM9D,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAI6D,CAAiB,EAAED,GACpC,GAAI,CAACzC,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAAkB,CAC3B,MAAMW,EAAMb,EAAI6D,CAAiB,EACjC5D,EAAI4D,G,EAAA/C,M,EAAAA,KAAA,GAAwBD,CAAA,MAAK,CAAC+C,GAAe1D,CAAA,EAAO,CAC1D,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,oBAAAC,OAAiCC,mBAAmBiD,CAAY,CAAC,EAE5D9D,CACT,CAAC,E,gBCjBM,MAAMiE,G,EAAqBhE,QAAK,CAAC,CAAuB,EAAAgE,EAAAtD,WAAA,qBAExD,MAAMuD,G,EAAgBpE,KAAgBgE,GAAyB,CACpE,MAAM9D,G,EAAIC,QACPC,GACQA,EAAI+D,CAAkB,EAAEH,GAEjC,CAAC5D,EAAKC,EAAKC,IAA6B,CACtC,MAAMW,EAAMb,EAAI+D,CAAkB,EAElC9D,EAAI8D,G,EAAAjD,M,EAAAA,KAAA,GAAyBD,CAAA,MAAK,CAAC+C,GAAe1D,CAAA,EAAO,CAC3D,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,iBAAAC,OAA8BC,mBAAmBiD,CAAY,CAAC,EAEzD9D,CACT,CAAC,EAEYmE,I,EAAwBrE,KAAgBgE,GAAyB,CAC5E,MAAM9D,G,EAAIC,QAAK,KAAM,CAACC,EAAKC,EAAKC,IAA6B,CAC3D,MAAMW,EAAMb,EAAIgE,EAAcJ,CAAY,CAAC,EAC3C3D,EAAI+D,EAAcJ,CAAY,G,EAAA9C,M,EAAAA,KAAA,GACzBZ,CAAA,MACHiB,KAAM,CAAC,GAAGN,EAAIM,KAAM,GAAGjB,EAAMiB,IAAI,GAClC,CACH,CAAC,EAAArB,SAAAW,WAAA,IAEDX,EAAEW,WAAA,yBAAAC,OAAsCC,mBAAmBiD,CAAY,CAAC,EAEjE9D,CACT,CAAC,EChCYoE,G,EAAsBnE,QAAK,CAAC,CAAwB,EAAAmE,EAAAzD,WAAA,sBAE1D,MAAM0D,G,EAAiBvE,KAAgBgE,GAAyB,CACrE,MAAM9D,G,EAAIC,QACPC,GACQA,EAAIkE,CAAmB,EAAEN,GAElC,CAAC5D,EAAKC,EAAKC,IAA8B,CACvC,MAAMW,EAAMb,EAAIkE,CAAmB,EAEnCjE,EAAIiE,G,EAAApD,M,EAAAA,KAAA,GAA0BD,CAAA,MAAK,CAAC+C,GAAe1D,CAAA,EAAO,CAC5D,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,kBAAAC,OAA+BC,mBAAmBiD,CAAY,CAAC,EAE1D9D,CACT,CAAC,EAEYsE,I,EAAyBxE,KAAgBgE,GAAyB,CAC7E,MAAM9D,G,EAAIC,QAAK,KAAM,CAACC,EAAKC,EAAKC,IAA8B,CAC5D,MAAMW,EAAMb,EAAImE,EAAeP,CAAY,CAAC,EAC5C3D,EAAIkE,EAAeP,CAAY,G,EAAA9C,M,EAAAA,KAAA,GAC1BZ,CAAA,MACHiB,KAAM,CAAC,GAAGN,EAAIM,KAAM,GAAGjB,EAAMiB,IAAI,GAClC,CACH,CAAC,EAAArB,SAAAW,WAAA,IAEDX,EAAEW,WAAA,0BAAAC,OAAuCC,mBAAmBiD,CAAY,CAAC,EAElE9D,CACT,CAAC,EC/BYuE,G,EAA2BtE,QAAK,CAAC,CAA0B,EAAAsE,EAAA5D,WAAA,2BAEjE,MAAM6D,G,EAAsB1E,KAAgBgE,GAAyB,CAC1E,MAAM9D,G,EAAIC,QACPC,GACQA,EAAIqE,CAAwB,EAAET,GAEvC,CAAC5D,EAAKC,EAAKC,IAAgC,CACzC,MAAMW,EAAMb,EAAIqE,CAAwB,EAExCpE,EAAIoE,G,EAAAvD,M,EAAAA,KAAA,GAA+BD,CAAA,MAAK,CAAC+C,GAAe1D,CAAA,EAAO,CACjE,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,uBAAAC,OAAoCC,mBAAmBiD,CAAY,CAAC,EAE/D9D,CACT,CAAC,EAEYyE,I,EAA2B3E,KAAgBgE,GAAyB,CAC/E,MAAM9D,G,EAAIC,QAAK,KAAM,CAACC,EAAKC,EAAKC,IAAgC,CAC9D,MAAMW,EAAMb,EAAIsE,EAAoBV,CAAY,CAAC,EACjD3D,EAAIqE,EAAoBV,CAAY,G,EAAA9C,M,EAAAA,KAAA,GAC/BZ,CAAA,MACHiB,KAAM,CAAC,GAAGN,EAAIM,KAAM,GAAGjB,EAAMiB,IAAI,GAClC,CACH,CAAC,EAAArB,SAAAW,WAAA,IAEDX,EAAEW,WAAA,4BAAAC,OAAyCC,mBAAmBiD,CAAY,CAAC,EAEpE9D,CACT,CAAC,ECnCY0E,G,EAA2CzE,QAAgB,CAAC,CAAC,EAAAyE,EAAA/D,WAAA,iBAC1E+D,EAAe/D,WAAa,iBAErB,MAAMgE,G,EAAY7E,KAAgB8E,GAAyB,CAChE,MAAM5E,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIwE,CAAc,EAAEE,GACjC,GAAI,CAACvD,EAEH,MAAM,IAAIC,QAAeC,GAAYC,SAAkB,IAAMD,EAAQ,CAAC,CAAC,EAGzE,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAK0E,IAAmD,CAC5D,MAAM9D,EAAiBb,EAAIwE,CAAc,EAEzCvE,EAAIuE,G,EAAA1D,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAAC6D,GAAeC,CAAA,EACjB,EAEGA,aAA4BvD,SAC9BuD,EACGC,KAAMzD,GAAS,CACdlB,EAAIuE,G,EAAA1D,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAAC6D,GAAevD,CAAA,EACjB,CACH,CAAC,EACA0D,MAAM,IAAM,CACX5E,EAAIuE,G,EAAA1D,M,EAAAA,KAAA,GACCD,CAAA,MACH,CAAC6D,GAAe,QACjB,CACH,CAAC,CAEP,CACF,EAAA5E,SAAAW,WAAA,IAEAX,EAAEW,WAAA,aAAAC,OAA0BC,mBAAmB+D,CAAY,CAAC,EAErD5E,CACT,CAAC,EAEYgF,I,EAAoBlF,KAAgB8E,GAAyB,CACxE,MAAM5E,G,EAAIC,QAAK,KAAM,MAAOC,EAAKC,EAAKC,IAAoB,CACxD,KAAM,CAAE6E,eAAclD,OAAM,EAAI,MAAM7B,EAAIyE,EAAUC,CAAY,CAAC,EAC3D,CAAEM,eAAc1E,UAASuB,MAAOU,CAAU,EAAIrC,EAEpDD,EAAIwE,EAAUC,CAAY,EAAG,CAC3B7C,MAAO,CAAC,GAAGA,EAAO,GAAGU,CAAS,EAC9BwC,eACAC,eACA1E,SACF,CAAC,CACH,CAAC,EAAAR,SAAAW,WAAA,IAEDX,EAAEW,WAAA,qBAAAC,OAAkCC,mBAAmB+D,CAAY,CAAC,EAE7D5E,CACT,CAAC,ECzDYmF,G,EAAqDlF,QAAuB,CAAC,CAAC,EAAAkF,EAAAxE,WAAA,oBACpF,MAAMyE,G,EAA6DnF,QAAwB,CAAC,CAAC,EAAAmF,EAAAzE,WAAA,2BAC7F,MAAM0E,G,EAA4DpF,QAAwB,CAAC,CAAC,EAAAoF,EAAA1E,WAAA,0BAC5F,MAAM2E,G,EAA2DrF,QAA0B,CAAC,CAAC,EAAAqF,EAAA3E,WAAA,uBAG7F,MAAM4E,I,EAAezF,KAAgB0F,GAAsB,CAChE,MAAMxF,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIiF,CAAiB,EAAEK,GACpC,GAAI,CAACnE,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAAiD,CAC1D,MAAMW,EAAMb,EAAIiF,CAAiB,EACjChF,EAAIgF,G,EAAAnE,M,EAAAA,KAAA,GAAwBD,CAAA,MAAK,CAACyE,GAAYpF,CAAA,EAAO,CACvD,CACF,EAAAJ,SAAAW,WAAA,IACAX,EAAEW,WAAA,gBAAAC,OAA6BC,mBAAmB2E,CAAS,CAAC,EACrDxF,CACT,CAAC,EAEYyF,I,EAAsB3F,KAAgB0F,GAAsB,CACvE,MAAMxF,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIkF,CAAwB,EAAEI,GAC3C,GAAI,CAACnE,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAAwC,CACjD,MAAMW,EAAMb,EAAIkF,CAAwB,EACxCjF,EAAIiF,G,EAAApE,M,EAAAA,KAAA,GAA+BD,CAAA,MAAK,CAACyE,GAAYpF,CAAA,EAAO,CAC9D,CACF,EAAAJ,SAAAW,WAAA,IACAX,EAAEW,WAAA,uBAAAC,OAAoCC,mBAAmB2E,CAAS,CAAC,EAC5DxF,CACT,CAAC,EAEY0F,I,EAAqB5F,KAAgB0F,GAAsB,CACtE,MAAMxF,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAImF,CAAuB,EAAEG,GAC1C,GAAI,CAACnE,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAAwC,CACjD,MAAMW,EAAMb,EAAImF,CAAuB,EACvClF,EAAIkF,G,EAAArE,M,EAAAA,KAAA,GAA8BD,CAAA,MAAK,CAACyE,GAAYpF,CAAA,EAAO,CAC7D,CACF,EAAAJ,SAAAW,WAAA,IAEAX,EAAEW,WAAA,sBAAAC,OAAmCC,mBAAmB2E,CAAS,CAAC,EAC3DxF,CACT,CAAC,EAEY2F,I,EAAkB7F,KAAgB0F,GAAsB,CACnE,MAAMxF,G,EAAIC,QACPC,GAAQ,CACP,MAAMmB,EAAOnB,EAAIoF,CAAoB,EAAEE,GACvC,GAAI,CAACnE,EAEH,MAAM,IAAIC,QAASC,GAAYC,SAAkBD,CAAO,CAAC,EAE3D,OAAOF,CACT,EACA,CAACnB,EAAKC,EAAKC,IAA0C,CACnD,MAAMW,EAAMb,EAAIoF,CAAoB,EACpCnF,EAAImF,G,EAAAtE,M,EAAAA,KAAA,GAA2BD,CAAA,MAAK,CAACyE,GAAYpF,CAAA,EAAO,CAC1D,CACF,EAAAJ,SAAAW,WAAA,IACAX,EAAEW,WAAA,mBAAAC,OAAgCC,mBAAmB2E,CAAS,CAAC,EACxDxF,CACT,CAAC,C,2DCzFM,MAAM4F,G,EAAoB3F,QAAuB,CAAC,CAAqB,EAAA2F,EAAAjF,WAAA,oBAC9EiF,EAAkBjF,WAAa,mB,gHCExB,MAAMkF,G,EAAoB/F,KAAgBgE,GAAyB,CACxE,MAAM9D,G,EAAIC,QAAK,KAAM,MAAOC,EAAKC,EAAKC,IAAqC,CACzE,MAAM0F,EAAW,MAAM5F,G,EAAI2D,MAAUC,CAAY,CAAC,EAC5CiC,EAAe,MAAM3F,EAC3BD,G,EAAI0D,MAAUC,CAAY,G,EAAA9C,M,EAAAA,KAAA,GACrB8E,CAAA,MACH/D,MAAO,CAAC,GAAG+D,EAAS/D,MAAO,GAAGgE,EAAahE,KAAK,GACjD,CACH,CAAC,EAAA/B,SAAAW,WAAA,IAEDX,EAAEW,WAAA,qBAAAC,OAAkCC,mBAAmBiD,CAAY,CAAC,EAE7D9D,CACT,CAAC,C,kECnBWgG,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,MAAMC,EAAgB,CAC3BC,wBAA0BC,GAAuC,CAC/D,GAAIA,EAASC,WAAW,YAAY,EAClC,MAAO,WAET,GAAID,EAASC,WAAW,OAAO,EAC7B,MAAO,OAET,GAAID,EAASC,WAAW,MAAM,EAC5B,MAAO,MAET,GAAID,EAASC,WAAW,QAAQ,EAC9B,MAAO,UAET,GAAID,EAASE,MAAM,mBAAmB,EACpC,MAAO,cAET,GAAIF,EAASE,MAAM,kBAAkB,EACnC,MAAO,aAIT,GAAIF,EAASE,MAAM,kBAAkB,EACnC,MAAO,UAIT,GAAIF,EAASE,MAAM,qBAAqB,EACtC,MAAO,OAGT,MAAMC,EAAeH,EAASI,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,OAAOI,QAASC,GAASA,EAAK,CAAC,EACpC,KAAKL,OAAS,CAAC,EAEnB,EAjBM,OAAOM,QAAW,aACpBA,OAAOC,YAAY,KAAKN,YAAa,EAAE,CAE3C,CAEOO,KAAKH,EAAoC,CAC1C,OAAOC,QAAW,aACpB,KAAKN,OAAOQ,KAAKH,CAAI,CAEzB,CASF,CAEO,MAAM1F,EAAe,IAAImF,C,6DCxBzB,MAAMW,CAAiB,CAG5BV,aAAc,CAFd,KAAQC,OAAyB,CAAC,EAclC,KAAQC,YAAc,IAAY,CAC5B,KAAKD,OAAOH,SACdK,QAAQC,IAAI,uCAAwC,KAAKH,OAAOH,MAAM,EACtE,KAAKG,OAAOI,QAASC,GAASA,EAAK,CAAC,EACpC,KAAKL,OAAS,CAAC,EAEnB,EAjBM,OAAOM,QAAW,aACpBC,YAAY,KAAKN,YAAa,GAAG,CAErC,CAEOO,KAAKH,EAAoC,CAC1C,OAAOC,QAAW,aACpB,KAAKN,OAAOQ,KAAKH,CAAI,CAEzB,CASF,CAEO,MAAMK,EAAmB,IAAID,ECnBvBxH,EAAiBA,CAC5B0H,EACAC,IACgC,CAChC,IAAIC,EAA6C,KAEjD,MAAMC,EAAyBC,GAA2B,CACxD,MAAM3H,EAAOuH,EAAeI,CAAK,EACjC,OAAI,OAAOT,QAAW,aACpBI,EAAiB,KAAK,IAAM,CAC1BG,GAAA,MAAAA,EAAQG,OAAOD,CAAA,CACjB,CAAC,EAGI3H,CACT,EAEAyH,U,EAASI,cAAWH,EAAuBF,CAAQ,EAE5CC,CACT,C,ogKCAO,MAAMK,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,OAAAzI,OAAwBwI,EAASE,EAA0BC,EAAA,IAC7D,EACF,EACF,CAEJ,EAEaC,EAAWxB,GAAqC,CAC3D,KAAM,CAAEyB,UAASL,SAAS,GAAOnB,YAAY,GAAOC,QAAQ,CAAC,CAAE,EAAIF,EAEnE,O,EACE0B,QAAAC,WAAA,CACGV,SAAA,CAAAQ,IAAY,S,EAAUX,OAACf,EAAA,CAAYE,YAAsBC,OAAA,CAAc,EACvEuB,IAAY,a,EAAcX,OAACK,EAAA,CAAgBC,SAAgBnB,YAAsBC,OAAA,CAAc,GAClG,CAEJ,C,uFC7EO,MAAM0B,EAA4BA,K,EAChCd,OAAC,OAAIC,UAAU,+BAA+B,EAG1Cc,EAA4BA,K,EAErCf,OAAC,OAAIC,UAAU,uCACbE,U,EAAAS,QAAC,OAAII,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFjB,SAAA,E,EAAAH,OAAC,UAAOqB,GAAG,KAAKC,GAAG,OAAOC,EAAE,KAAKH,KAAK,UAAU,G,EAChDpB,OAAC,QAAKwB,EAAE,KAAKC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACnEpB,OAAC,QAAKwB,EAAE,MAAMC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GACtE,EACF,EAISO,EAA2BA,K,EAEpC3B,OAAC,OAAIC,UAAU,sCACbE,U,EAAAH,OAAC,OAAIgB,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFjB,U,EAAAH,OAAC,QAAKiB,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EACtD,EACF,EAISQ,EAA6BA,K,EAEtChB,QAAC,OAAIX,UAAU,wCACbE,SAAA,E,EAAAH,OAAC,OAAyCC,UAAU,6CAClDE,U,EAAAH,OAAC,OAAIgB,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFjB,U,EAAAH,OAAC,QAAKiB,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EACtD,GAHO,gCAIT,G,EACApB,OAAC,OAAyCC,UAAU,6CAClDE,U,EAAAH,OAAC,OAAIgB,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFjB,U,EAAAH,OAAC,QAAKiB,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EACtD,GAHO,gCAIT,G,EACApB,OAAC,OAAyCC,UAAU,6CAClDE,U,EAAAH,OAAC,OAAIgB,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OACxFjB,U,EAAAH,OAAC,QAAKiB,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EACtD,GAHO,gCAIT,GACF,EAISS,EAA6BA,K,EAEtC7B,OAAC,OAAIC,UAAU,wCACbE,U,EAAAS,QAAC,OAAII,MAAM,6BAA6BC,MAAM,MAAMC,OAAO,MAAMC,QAAQ,cAAcC,KAAK,OAC1FjB,SAAA,E,EAAAH,OAAC,QAAKwB,EAAE,KAAKP,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC1DpB,OAAC,QAAKiB,MAAM,MAAMC,OAAO,KAAKY,UAAU,kBAAkBV,KAAK,QAAQ,G,EACvEpB,OAAC,UAAOqB,GAAG,KAAKC,GAAG,KAAKC,EAAE,KAAKH,KAAK,UAAU,G,EAC9CpB,OAAC,QAAKwB,EAAE,KAAKC,EAAE,KAAKR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACjEpB,OAAC,QAAKwB,EAAE,KAAKC,EAAE,KAAKR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAClEpB,OAAC,QAAKiB,MAAM,MAAMC,OAAO,KAAKY,UAAU,mBAAmBV,KAAK,QAAQ,G,EACxEpB,OAAC,UAAOqB,GAAG,KAAKC,GAAG,MAAMC,EAAE,KAAKH,KAAK,UAAU,G,EAC/CpB,OAAC,QAAKwB,EAAE,KAAKC,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACnEpB,OAAC,QAAKwB,EAAE,KAAKC,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GACrE,EACF,C,2HCrDG,MAAMW,EAAsBA,K,EAE/BnB,QAACoB,IAAA,CAAgBC,IAAG,GAClB9B,SAAA,E,EAAAH,OAACe,KAAA,EAAsB,G,EACvBf,OAACc,KAAA,EAA0B,G,EAC3Bd,OAAC2B,KAAA,EAAqB,G,EACtB3B,OAAC4B,KAAA,EAAuB,G,EACxB5B,OAAC6B,KAAA,EAAuB,G,EACxB7B,OAACkC,IAAA,EAAiB,G,EAClBlC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,EAISC,EAA0BA,K,EAEnCzB,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAAC6B,KAAA,EAAuB,G,EACxB7B,OAACkC,IAAA,EAAiB,G,EAClBlC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,EAISE,EAA+BA,K,EAExC1B,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,C,iDC3CG,MAAMD,EAA0BA,K,EAEnCnC,OAAC,OAAIC,UAAU,qCACbE,U,EAAAS,QAAC,OAAIK,MAAM,MAAMC,OAAO,MAAMC,QAAQ,cAAcC,KAAK,OAAOJ,MAAM,6BACpEb,SAAA,E,EAAAH,OAAC,QAAKyB,EAAE,MAAMR,MAAM,MAAMC,OAAO,MAAMQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DpB,OAAC,QAAKwB,EAAE,MAAMC,EAAE,MAAMR,MAAM,MAAMC,OAAO,MAAMQ,GAAG,IAAIN,KAAK,UAAU,G,EACrEpB,OAAC,QAAKwB,EAAE,MAAMC,EAAE,MAAMR,MAAM,MAAMC,OAAO,MAAMQ,GAAG,IAAIN,KAAK,UAAU,G,EACrEpB,OAAC,QAAKyB,EAAE,QAAQR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC9DpB,OAAC,QAAKyB,EAAE,QAAQR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC9DpB,OAAC,QAAKyB,EAAE,QAAQR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC9DpB,OAAC,QAAKyB,EAAE,QAAQR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,C,kDCZG,MAAMc,EAAuBA,K,EAAMlC,OAAC,OAAIC,UAAU,oBAAoB,C,kDCAtE,MAAMmC,EAAuBA,K,EAAMpC,OAAC,OAAIC,UAAU,oBAAoB,C,sECctE,MAAM+B,EAAiE9C,GAAU,CACtF,KAAM,CAAEiB,WAAU8B,MAAM,EAAM,EAAI/C,EAClC,O,EAAOc,OAAC,OAAIC,UAAWC,IAAI,mBAAoB,CAAE+B,KAAI,CAAC,EAAI9B,UAAA,CAAS,CACrE,C,oECjBO,MAAMoC,EAA2BA,K,EAEpCvC,OAAC,OAAIC,UAAU,sCACbE,U,EAAAS,QAAC,OAAIK,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OAAOJ,MAAM,6BAClEb,SAAA,E,EAAAH,OAAC,QAAKyB,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC5DpB,OAAC,QAAKyB,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DpB,OAAC,QAAKyB,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,EAISoB,EAA4BA,K,EAErCxC,OAAC,OAAIC,UAAU,uCACbE,U,EAAAH,OAAC,OAAIiB,MAAM,KAAKC,OAAO,KAAKC,QAAQ,YAAYC,KAAK,OAAOJ,MAAM,6BAChEb,U,EAAAH,OAAC,QAAKyB,EAAE,MAAMR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,EAC7D,EACF,E,qCCfG,MAAMqB,EAA2BA,K,EAEpC7B,QAACoB,IAAA,CAAgBC,IAAG,GAClB9B,SAAA,E,EAAAH,OAACkC,IAAA,EAAiB,G,EAClBlC,OAACuC,EAAA,EAAqB,G,EACtBvC,OAACwC,EAAA,EAAsB,G,EACvBxC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,EAISM,EAA2BA,K,EAEpC9B,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAACuC,EAAA,EAAqB,G,EACtBvC,OAACwC,EAAA,EAAsB,G,EACvBxC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,C,+EC1BG,MAAMO,EAA0BA,K,EAEnC3C,OAAC,OAAIC,UAAU,qCACbE,U,EAAAS,QAAC,OAAIK,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OAAOJ,MAAM,6BAClEb,SAAA,E,EAAAH,OAAC,QAAKyB,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC5DpB,OAAC,QAAKyB,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DpB,OAAC,QAAKyB,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,E,cCNG,MAAMwB,EAAsBA,K,EAE/BhC,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAAC2C,EAAA,EAAoB,G,EACrB3C,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,EAISS,EAA0BA,K,EAEnCjC,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,C,wGCrBG,MAAMU,EAAmBA,K,EAE5BlC,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,GACvB,E,0DCEG,MAAMY,EAAmBA,IAAM,CACpC,KAAM,CAAEC,SAAUC,CAAmB,G,EAAIC,MAAc,EACjDC,G,EAAkBC,MAAY,EAE9B,CAAE/F,UAAS,EAAI4F,GAAsBE,EACrCE,EAAWlG,4BAAsCE,CAAQ,EAE/D,OAAIgG,IAAanG,c,EACR8C,OAACyC,IAAA,EAAqB,EAG3BY,IAAanG,U,EACR8C,OAAC8C,EAAA,EAAa,EAMnBO,IAAanG,aAAqBmG,IAAanG,W,EAC1C8C,OAAC+B,KAAA,EAAgB,EAGtBsB,IAAanG,U,EACR8C,OAACsD,IAAA,EAAiB,EAGvBD,IAAanG,S,EACR8C,OAACuD,IAAA,EAAgB,EAGtBF,IAAanG,a,EACR8C,OAAC4C,IAAA,EAAgB,G,EAGnB5C,OAACU,KAAA,CAAQC,QAAQ,OAAO,CACjC,C,qEC5CO,MAAM6C,EAAsBA,K,EAE/BxD,OAAC,OAAIC,UAAU,iCACbE,U,EAAAS,QAAC,OAAIK,MAAM,MAAMC,OAAO,KAAKC,QAAQ,aAAaC,KAAK,OAAOJ,MAAM,6BAClEb,SAAA,E,EAAAH,OAAC,QAAKyB,EAAE,MAAMR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC5DpB,OAAC,QAAKyB,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DpB,OAAC,QAAKyB,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,E,yBCNG,MAAMmC,EAAsBA,K,EAE/B3C,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAACwD,EAAA,EAAgB,G,EACjBxD,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,EAISqB,EAAsBA,K,EAE/B7C,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,C,+ECnBG,MAAMsB,EAA0BA,K,EAEnC1D,OAAC,OAAIC,UAAU,qCACbE,U,EAAAS,QAAC,OAAIK,MAAM,MAAMC,OAAO,MAAMC,QAAQ,cAAcC,KAAK,OAAOJ,MAAM,6BACpEb,SAAA,E,EAAAH,OAAC,UAAOqB,GAAG,KAAKC,GAAG,OAAOC,EAAE,KAAKH,KAAK,UAAU,G,EAChDpB,OAAC,QAAKwB,EAAE,MAAMC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACpEpB,OAAC,QAAKwB,EAAE,QAAQC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACtEpB,OAAC,QAAKwB,EAAE,MAAMC,EAAE,OAAOR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EACpEpB,OAAC,QAAKyB,EAAE,OAAOR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC7DpB,OAAC,QAAKyB,EAAE,QAAQR,MAAM,MAAMC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,G,EAC9DpB,OAAC,QAAKyB,EAAE,QAAQR,MAAM,KAAKC,OAAO,KAAKQ,GAAG,IAAIN,KAAK,UAAU,GAC/D,EACF,E,eCVG,MAAMkC,EAAuBA,K,EAEhC1C,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAAC0D,EAAA,EAAoB,G,EACrB1D,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,EAISuB,EAAuBA,K,EAEhC/C,QAACoB,IAAA,CACC7B,SAAA,E,EAAAH,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACmC,IAAA,EAAoB,G,EACrBnC,OAACoC,IAAA,EAAiB,GACpB,C,mCCvBJ,IAAIwB,EACJ,SAASC,GAAc,CACnB,OAAID,IAEIA,EAAwDvF,OAAOyF,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":"478-9219f0c340ffe96c6517.js","sourcesContent":["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 const $SEOSecret = atom<{ signSecret?: string }>({});\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 '@lemon8/webapp-seo-shared';\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 '@lemon8/webapp-seo-shared';\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 '@lemon8/webapp-seo-shared';\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 '@lemon8/webapp-seo-shared';\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 '@lemon8/webapp-seo-shared';\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 { 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 '@lemon8/webapp-seo-shared';\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 '@lemon8/webapp-seo-shared';\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, PrimitiveAtom } from 'jotai/index';\nimport { $UserFollowing } from 'shared/atoms';\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 '@lemon8/webapp-seo-shared';\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 '@lemon8/webapp-seo-shared';\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 $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 { 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 '@lemon8/webapp-seo-shared';\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 ...awaitOld,\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","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 { ArticleCardSkeleton } from '../common/article-card';\nimport { DiscoverSkeletonInfo, DiscoverSkeletonTitle } from '~/skeleton/discover/component';\nimport { CampaignSkeleton } from '~/skeleton/common/campaign';\nimport { SkeletonScanline } from '~/skeleton/common/skeleton-scanline';\nimport { SkeletonWrapper } from '~/skeleton/common/skeleton-wrapper';\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","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":""}