{"version":3,"sources":["webpack://_N_E/./new/home/services/home.ts","webpack://_N_E/./lib/fetch-feed.ts","webpack://_N_E/./components/toastModal.tsx","webpack://_N_E/./pages-components/home/QRcode.tsx","webpack://_N_E/./pages-components/home/article-leaderboard.tsx","webpack://_N_E/./pages-components/home/common/header.tsx","webpack://_N_E/./components/feed.tsx","webpack://_N_E/./pages-components/home/feed.tsx","webpack://_N_E/./pages-components/home/ad/label.tsx","webpack://_N_E/./components/feed-ad.tsx","webpack://_N_E/(webpack)/buildin/module.js","webpack://_N_E/./node_modules/core-js/internals/create-html.js","webpack://_N_E/./components/links/article-link.tsx","webpack://_N_E/./node_modules/core-js/modules/es.string.link.js","webpack://_N_E/./lib/fake-webid.ts","webpack://_N_E/./components/statement.tsx","webpack://_N_E/./pages-components/home/friendship-link.tsx","webpack://_N_E/./node_modules/core-js/modules/es.number.max-safe-integer.js","webpack://_N_E/./node_modules/core-js/internals/string-html-forced.js"],"names":["PGC_CAGETORY_SROUCE","getHomeOriginal","req","a","fetch","getUrl","json","status","Error","prompts","message","data","getHomeVideo","friendshipLinkData","console","error","getPGCVideoRank","list","getPGCArticleRank","getPGCCategoryList","source","VIDEO","getLiveRoomList","cityName","live_list","getLiveTabsList","getTodayNews","Array","isArray","getFocusPic","params","extraParams","category","window","localStorage","getItem","city","city_name","selected_city_name","defaultParams","impression_info","JSON","stringify","page_id","sub_tab","product_name","car_series_id","concern_id","aid","refer","channel","device_platform","web_id","getFakeWebid","motor_feed_extra_params","max_behot_time","Object","assign","count","url","serializeObject","then","result","Modal","getContainer","props","container","document","createElement","body","appendChild","e","maskClosable","target","currentTarget","onClose","close","this","visible","className","children","title","closable","footer","width","height","clientX","clientY","price","type","dest","undefined","timeout","in","onEntered","onExited","unmountOnExit","onClick","handleMaskClick","classNames","style","src","getComponent","PureComponent","DeclareText","show","onHide","alt","memo","ArticleBoard","article","fromPage","useState","showModal","setShowModal","useEffect","sendTeaCommEvent","list_type","item_type","key_name","leftContent","rightContent","href","as","getLinkHref","icon","marginTop","slice","map","item","index","key","gid_str","gid","group_id","classnames","QRcode","Header","Feed","subCategory","feedAd","page","contentType","updateList","loading","setLoading","fetchFeed","tt_from","sub_category","get","catch","renderIdx","loadMoreHandler","lastFeedItem","length","concat","end","findAd","find","adItem","fix_position","info","id_str","unique_id_str","cover","duration","video_duration","time","publish_time","content","abstract_content","digg_count","user_digg","user_info","comment_count","HomeFeed","tabData","useRef","current","setCurrent","useFeedAd","param","ref","titles","text","stopPropagation","rank","obj_text","element","scrollingElement","documentElement","offsetTop","scrollTop","active","renderTitles","from","content_type","Label","FeedAd","label","web_url","customStat","useMemo","String","eventIds","send","click","useAdStat","handleClick","open","borderRadius","formatTime","module","exports","webpackPolyfill","deprecate","paths","defineProperty","enumerable","l","i","requireObjectCoercible","quot","string","tag","attribute","value","S","p1","replace","ArticleLink","$","createHTML","proto","forced","forcedStringHTMLMethod","link","id","storage","sessionStorage","err","min","max","Number","MAX_SAFE_INTEGER","Math","floor","random","getInt64","setItem","Statement","year","Date","getFullYear","rel","isNewVersion","PubSub","publish","dpFeedback","start","FriendshipLink","setFriendshipLinkData","getFriendshipLinkData","init","friendshipLink","name","stat","fails","METHOD_NAME","test","toLowerCase","split"],"mappings":"0eA6DYA,E,qEAfCC,EAAe,uCAAG,WAAOC,GAAP,eAAAC,EAAA,sEACVC,YACjBC,YAAO,2CAA4C,wBACnD,CACEH,QAJyB,UAQzB,aAPEI,EADuB,cAQzB,IAAMA,OAAN,EAAMA,EAAMC,QARa,sBASrBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SATP,uCAYtBJ,QAZsB,IAYtBA,OAZsB,EAYtBA,EAAMK,MAZgB,2CAAH,uD,SAehBX,O,iBAAAA,I,4BAAAA,M,KAYL,IAAMY,EAAY,uCAAG,WAAOV,GAAP,eAAAC,EAAA,sEACPC,YACjBC,YAAO,iDAEL,wBAEF,CACEH,QAPsB,UAWtB,aAVEI,EADoB,cAWtB,IAAMA,OAAN,EAAMA,EAAMC,QAXU,sBAYlBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SAZV,uCAenBJ,QAfmB,IAenBA,OAfmB,EAenBA,EAAMK,MAfa,2CAAH,sDAkBZE,EAAkB,uCAAG,WAAOX,GAAP,eAAAC,EAAA,+EAEXC,YACjBC,YAAO,4CACP,CAAEH,QAJ0B,cAExBI,EAFwB,yBAMvBA,GAAQ,IANe,uCAQ9BQ,QAAQC,MAAR,MAR8B,kBASvB,IATuB,yDAAH,sDAoBlBC,EAAe,uCAAG,WAAOd,GAAP,iBAAAC,EAAA,sEACVC,YACjBC,YACE,oEACA,wBAEF,CAAEH,QANyB,UAQzB,aAPEI,EADuB,cAQzB,IAAMA,OAAN,EAAMA,EAAMC,QARa,sBASrBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SATP,uCAWtBJ,QAXsB,IAWtBA,GAXsB,UAWtBA,EAAMK,YAXgB,aAWtB,EAAYM,MAXU,2CAAH,sDAcfC,EAAiB,uCAAG,WAAOhB,GAAP,iBAAAC,EAAA,sEACZC,YACjBC,YACE,sEACA,wBAEF,CAAEH,QAN2B,UAQ3B,aAPEI,EADyB,cAQ3B,IAAMA,OAAN,EAAMA,EAAMC,QARe,sBASvBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SATL,uCAWxBJ,QAXwB,IAWxBA,GAXwB,UAWxBA,EAAMK,YAXkB,aAWxB,EAAYM,MAXY,2CAAH,sDAcjBE,EAAkB,uCAAG,WAChCjB,GADgC,6BAAAC,EAAA,6DAEhCiB,EAFgC,+BAEfpB,EAAoBqB,MAFL,SAIbjB,YACjBC,YAAO,8CAAD,OAC0Ce,GAC9C,wBAEF,CAAElB,QAT4B,UAW5B,aAPEI,EAJ0B,cAW5B,IAAMA,OAAN,EAAMA,EAAMC,QAXgB,sBAYxBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SAZJ,uCAczBJ,QAdyB,IAczBA,OAdyB,EAczBA,EAAMK,MAdmB,2CAAH,sDA8BlBW,EAAe,uCAAG,WAC7BpB,GAD6B,+BAAAC,EAAA,6DAE7BoB,EAF6B,+BAElB,GAFkB,+BAGV,GAHU,SAKVnB,YACjBC,YAAO,uDAAD,OACmDkB,EADnD,+BACkFA,GACtF,uBAEF,CAAErB,QAVyB,UAYzB,aAPEI,EALuB,cAYzB,IAAMA,OAAN,EAAMA,EAAMC,QAZa,sBAarBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SAbP,uCAetBJ,QAfsB,IAetBA,GAfsB,UAetBA,EAAMK,YAfgB,aAetB,EAAYa,WAfU,2CAAH,sDAuBfC,EAAe,uCAAG,WAAOvB,GAAP,eAAAC,EAAA,sEACVC,YACjBC,YAAO,6BAA8B,uBACrC,CAAEH,QAHyB,UAKzB,aAJEI,EADuB,cAKzB,IAAMA,OAAN,EAAMA,EAAMC,QALa,sBAMrBC,OAAU,OAAJF,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAWH,EAAKI,SANP,uCAQtBJ,QARsB,IAQtBA,OARsB,EAQtBA,EAAMK,MARgB,2CAAH,sDAWfe,EAAY,uCAAG,WAAOxB,GAAP,iBAAAC,EAAA,+EAELC,YACjBC,YAAO,gCAAiC,uBACxC,CACEH,QALoB,cAElBI,EAFkB,OAQpBK,GAAW,OAAJL,QAAI,IAAJA,OAAA,EAAAA,EAAMK,OAAQ,GACpBgB,MAAMC,QAAQjB,KACjBA,EAAO,IAVe,kBAYjBA,GAZiB,uCAcxBG,QAAQC,MAAR,MAdwB,kBAejB,IAfiB,yDAAH,sDAmBZc,EAAW,uCAAG,WAAO3B,GAAP,eAAAC,EAAA,+EAEJC,YACjBC,YAAO,kCAAmC,uBAC1C,CACEH,QALmB,cAEjBI,EAFiB,0BAQZ,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMK,OAAQ,IARE,yDAUhB,IAVgB,yDAAH,uD,gxBC5IT,aAACmB,EAAiB5B,GAAoC,IAE/D6B,EAAc,GAClB,GAAiB,gBAFID,EAAbE,SAEwB,CAC9B,IAAMT,EAAWU,OAAOC,aAAaC,QAAQ,aAAe,GAC5DJ,EAAc,CACZK,KAAMb,EACNc,UAAWd,EACXe,mBAAoBf,GAIxB,IAAMgB,EAAgB,CACpBC,gBACEV,EAAOU,iBACPC,KAAKC,UAAU,CACbC,QAAS,kBACTC,QAASd,EAAOE,SAChBa,aAAc,MACdC,cAAehB,EAAOiB,aAE1BA,WAAYjB,EAAOiB,WACnBC,IAAK,OACLC,MAAO,EACPC,QAAS,MACTC,gBAAiB,MACjBC,OAAQC,cACRC,wBACExB,EAAOwB,yBACP,8DACFlC,OAAQ,MAENU,EAAOyB,gBACTC,OAAOC,OAAOlB,EAAe,CAC3BgB,eAAgBzB,EAAOyB,iBAGvBzB,EAAO4B,OACTF,OAAOC,OAAOlB,EAAe,CAC3BmB,MAAO5B,EAAO4B,QAIlB,IAAMC,EAAMtD,YAAO,wCAAD,OACwBuD,IACtC9B,GAFc,YAGX8B,IAAgB,EAAD,KAAMrB,GAAkBR,KAC5C,+BAEF,OAAO3B,YAAMuD,EAAK,CAAEzD,QAAO2D,MAAK,SAACC,GAC/B,IAAKA,IAAWA,EAAOnD,KACrB,MAAM,IAAIH,MAAJ,yBAA4BiC,KAAKC,UAAUoB,KAKnD,OAAOA,O,2zBCzGUC,E,4OASJ,WAAM,IACXC,EAAiB,EAAKC,MAAtBD,aACR,GAAIA,EACF,OAAOA,IAET,IAAME,EAAYC,SAASC,cAAc,OAEzC,OADAD,SAASE,KAAKC,YAAYJ,GACnBA,K,8CAGS,SAACK,GACQ,EAAKN,MAAtBO,cACYD,EAAEE,SAAWF,EAAEG,eACjC,EAAKC,QAAQJ,M,sCAIP,SAACA,GAAqC,MACnB,EAAKN,MAAxBU,EADsC,EACtCA,QAASC,EAD6B,EAC7BA,MACjBD,GAAWA,EAAQJ,GACnBK,O,wCAGU,e,uCAQD,e,6DAKI,MAeTC,KAAKZ,MAbPa,EAFW,EAEXA,QACAC,EAHW,EAGXA,UACAC,EAJW,EAIXA,SACAC,EALW,EAKXA,MACAC,EANW,EAMXA,SACAC,EAPW,EAOXA,OACAC,EARW,EAQXA,MACAC,EATW,EASXA,OACAC,EAVW,EAUXA,QACAC,EAXW,EAWXA,QACAZ,EAZW,EAYXA,QACAa,EAbW,EAaXA,MACAC,EAdW,EAcXA,KAGIC,EAAY,GAQlB,YAPcC,IAAVP,IACFM,EAAKN,MAAQA,QAEAO,IAAXN,IACFK,EAAKL,OAASA,GAId,EAAC,IAAD,CACEO,QAAS,IACTC,GAAIf,EACJgB,UAAWjB,KAAKiB,UAChBC,SAAUlB,KAAKkB,SACfC,eAAa,GAEb,SAEEC,QAASpB,KAAKqB,gBAFhB,sCAsEeX,EACCD,EAAU,QAvE1B,KACaa,IAAW,aAAcpB,IADtC,KAIE,SAAiCqB,MAAOV,EAAxC,sCAkEaH,EACCD,EAAU,QAnExB,oBACE,SACEW,QAAS,SAAA1B,GACPI,GAAWA,EAAQJ,IAFvB,sCAiEWgB,EACCD,EAAU,SA7DpB,OAAGb,OAAO,SAAV,sCA4DSc,EACCD,EAAU,SA5DlB,SAEEe,IAAI,kFAFN,sCA2DOd,EACCD,EAAU,QA5DlB,mBAMDL,GACD,+CAoDSM,EACCD,EAAU,QArDpB,iBACE,+CAmDOC,EACCD,EAAU,QApDlB,gBAA8BL,GAE5B,+CAiDKM,EACCD,EAAU,QAlDhB,oBADQ,IAATG,EACC,UAEkCD,GAEnCN,GACC,OAEEe,QAASpB,KAAKF,QAFhB,sCA4CKY,EACCD,EAAU,QA7ChB,kCAON,+CAqCWC,EACCD,EAAU,QAtCtB,eAA6BN,KAC1BG,GAAU,+CAoCFI,EACCD,EAAU,QArCT,iBAA+BH,IAlChD,gCAsEeI,EACCD,EAAU,MAvE1B,yjBAsEeC,EAtEf,mBAuEgBD,EAAU,IAvE1B,62C,+BAkJJ,OACE,EAAC,IAAD,CAAQtB,aAAca,KAAKb,cAAea,KAAKyB,oB,GAjOlBC,iB,YAAdxC,E,eACyB,CAC1CmB,UAAU,EAEVN,MAAO,aACPJ,cAAc,EACdM,SAAS,I,wBC5Bb,SAAS0B,EAAT,GAOsB,IANpBC,EAMoB,EANpBA,KACAC,EAKoB,EALpBA,OACApB,EAIoB,EAJpBA,QACAC,EAGoB,EAHpBA,QAGoB,IAFpBE,YAEoB,MAFb,EAEa,EADpBD,EACoB,EADpBA,MAEA,OACE,oBACE,EAAC,EAAD,CACEC,KAAMA,EACNL,MAAO,IACPN,QAAS2B,EACT9B,QAAS+B,EACTzB,MAAgB,IAATQ,EAAa,uCAAW,uCAC/BH,QAASA,EACTC,QAASA,EACTC,MAAOA,GAEP,mDACE,iDACE,SAEEa,IAAI,2FACJM,IAAI,SAHN,wCAbR,yrBA4DWC,qBAAKJ,G,oBC3DL,SAASK,EAAT,GAGJ,QAFTC,eAES,MAFC,GAED,MADTC,gBACS,MADE,OACF,IACyBC,oBAAS,GAApCC,EADE,KACSC,EADT,OAEqBF,mBAAS,GAAhC1B,EAFE,aAGqB0B,mBAAS,IAAhCzB,EAHE,UAYT,OARA4B,qBAAU,WACRC,YAAiB,kBAAmB,CAClCC,UAAW,EACXC,UAAW,EACXC,SAAU,4BAEX,IAGD,oBACE,wCACE,EAAC,IAAD,CACEC,YAAY,iCACZC,aAAa,GACbC,KAAK,GACLC,GAAIC,YAAY,WAChBC,KAAK,OACL5B,QAAS,WACPmB,YAAiB,sCAGrB,QAAIhB,MAAO,CAAE0B,UAAW,OAAxB,2BACGnG,MAAMC,QAAQkF,IACbA,EAAQiB,MAAM,EAAG,IAAIC,KAAI,SAACC,EAAMC,GAC9B,OACE,QAAIC,IAAKF,EAAKG,QAAd,kCACE,EAAC,IAAD,CACEC,IAAKJ,EAAKG,QACVnC,QAAS,WACU,SAAbc,GACFK,YAAiB,yBAA0B,CACzCkB,UAAc,OAAJL,QAAI,IAAJA,OAAA,EAAAA,EAAMG,UAAW,cAG/BhB,YAAiB,yBAA0B,CACzCkB,SAAUL,EAAKG,WAGnBrD,UAAU,UAEV,sCAAiBwD,IAAW,iBAAD,OAAkBL,KAA7C,KACGA,EAAQ,EACRA,EAAQ,EAAI,KAAO,KAEtB,sCACaK,IAAW,YAAa,CACjC,iBAAkBL,EAAQ,KAF9B,KAKGD,EAAKhD,QAGV,+CAA6BgD,EAAKvE,MAAlC,iCAMV,EAAC8E,EAAD,CACElD,QAASA,EACTC,QAASA,EACTkB,KAAMQ,EACNP,OAAQ,WACNQ,GAAcD,OAtDtB,64C,2LClBW,SAASwB,EAAT,GAOJ,EANTZ,KAMS,IALTL,EAKS,EALTA,YACAC,EAIS,EAJTA,aACAC,EAGS,EAHTA,KACAC,EAES,EAFTA,GACA1B,EACS,EADTA,QAEA,OACE,+CAEI,EADe,mCAAhBuB,EACC,KAEA,OAFA,mCAAuBA,GAIxBE,GAAQC,EACP,EAAC,IAAD,CAAMD,KAAMA,EAAMC,GAAIC,YAAYD,IAChC,OAAGlD,OAAO,SAAV,4BACE,UAEEwB,QAAO,8GAAE,WACPA,GAAWA,OAHf,sCAMGwB,EACD,sEAKN,gDAA6BA,GArBjC,yf,0MCgIWiB,IAxHf,YASW,IART1G,EAQS,EARTA,SAQS,IAPT2G,mBAOS,MAPK,GAOL,EANT5F,EAMS,EANTA,WACAkD,EAKS,EALTA,QACA2C,EAIS,EAJTA,OACAP,EAGS,EAHTA,IACAQ,EAES,EAFTA,KACAC,EACS,EADTA,YACS,EACkB9B,mBAAsB,IAA1C/F,EADE,KACI8H,EADJ,OAGqB/B,oBAAS,GAAhCgC,EAHE,KAGOC,EAHP,KAKT9B,qBAAU,WACR8B,GAAW,GACXF,EAAW,IACXG,YAAU,CACRC,QAAS,aACTpG,aACAf,WACAoH,aAAcT,IAEb9E,MAAK,SAAAlD,GACJoI,EAAWM,IAAI1I,EAAM,SACrBsI,GAAW,MAEZK,OAAM,WACLL,GAAW,QAEd,CAACjH,EAAUe,EAAY4F,IA2B1B,IAAIY,EAAY,EAEhB,OACE,oBACE,EAAC,IAAD,CACEP,QAASA,EACTQ,gBA9BN,WACE,IAAIC,EAAiC,KACjCxI,EAAKyI,OAAS,IAChBD,EAAexI,EAAKA,EAAKyI,OAAS,IAEpCT,GAAW,GACXC,YAAU,CACRC,QAAS,YACTC,aAAcT,EACd3G,WACA0B,MAAO,GACPX,aACAQ,eAAgB8F,IAAII,EAAc,uBAAmB9D,KAEpD9B,MAAK,SAAAlD,GACJyG,YAAiB,sBACjB2B,EAAW9H,EAAK0I,OAAON,IAAI1I,EAAM,UACjCsI,GAAW,MAEZK,OAAM,WACLL,GAAW,OAWXW,KAAK,GAEJ3I,GAAQA,EAAKyI,OACVzI,EAAK+G,KAAI,SAACC,EAAiBC,GAG3B,GAAID,EAAKxC,KAAO,KAAQwC,EAAKxC,MAAQ,KACnC,OAAO,KAGT,GADA8D,IACIX,GAAUA,EAAOc,OAAQ,CAC3B,IAAMG,EAASjB,EAAOkB,MAAK,SAAAC,GACzB,OAAOA,EAAOC,eAAiBT,KAEjC,GAAIM,EACF,OACE,EAAC,IAAD,CACEhB,KAAMA,EACN7G,SAAUA,EACVqG,IAAKA,EACL4B,KAAMJ,EACN3B,MAAOqB,EACPT,YAAaA,EACbX,IAAK0B,EAAOK,SAKpB,IAAMD,EAAOZ,IAAIpB,EAAM,OAAQ,IAC/B,OACE,EAAC,IAAD,CACEhC,QAASA,EACTc,SAAU8B,EACVpD,KAAMwC,EAAKxC,KACX0C,IAAKF,EAAKkC,cACV9B,IAAKJ,EAAKkC,cACVC,MAAOf,IAAIpB,EAAM,yBAA0B,IAC3CoC,SAAUJ,EAAKK,eACfrF,MAAOgF,EAAKhF,MACZ7D,OAAQ6I,EAAK7I,OACbmJ,KAA2B,KAAjB,OAAJN,QAAI,IAAJA,OAAA,EAAAA,EAAMO,cACZC,QAASR,EAAKS,iBACdxC,MAAOA,EACPyC,WAAYV,EAAKU,WACjBC,UAAWX,EAAKW,UAChBC,UAAWZ,EAAKY,UAChBC,cAAeb,EAAKa,mBAIxB,MAEL9B,EAAU,EAAC,IAAD,MAAc,Q,uKC0EhB+B,IApNf,YAMG,QALDhE,gBAKC,MALU,OAKV,MAJDiE,eAIC,MAJS,GAIT,EACK9G,EAAY+G,iBAAuB,MADxC,EAG6BjE,mBAAS,aAAhCkE,EAHN,KAGeC,EAHf,KAIKvC,EAASwC,YAAUF,EAASnE,IAAa,GAqL/C,OAnLAI,qBAAU,WACgB,MAApB6D,EAAQtB,OAAS,GACnByB,GAAkB,OAAPH,QAAO,IAAPA,GAAA,UAAAA,EAAU,UAAV,eAAcK,QAAS,eAEnC,CAACL,IAgLF,SAAKM,IAAKpH,EAAWa,UAAU,MA7KjC,WACE,IAAIwG,EAkBJ,OAfEA,EADe,SAAbxE,EACOiE,EAAQhD,KAAI,SAAAzD,GAAC,MAAK,CAAEiH,KAAMjH,EAAEiH,KAAMxJ,SAAUuC,EAAE8G,UAE9C,CACP,CAAEG,KAAM,eAAMxJ,SAAU,aACxB,CAAEwJ,KAAM,eAAMxJ,SAAU,yBACxB,CAAEwJ,KAAM,eAAMxJ,SAAU,iBACxB,CAAEwJ,KAAM,eAAMxJ,SAAU,uBACxB,CAAEwJ,KAAM,MAAOxJ,SAAU,iBACzB,CAAEwJ,KAAM,qBAAOxJ,SAAU,oBACzB,CAAEwJ,KAAM,qBAAOxJ,SAAU,wBACzB,CAAEwJ,KAAM,2BAAQxJ,SAAU,yBAC1B,CAAEwJ,KAAM,2BAAQxJ,SAAU,yBAK5B,qCACauG,IAAW,CACpB,iBAA+B,SAAbxB,EAClB,cAA4B,SAAbA,KAHnB,KAMGwE,EAAOvD,KACN,SAACC,EAA0CC,GAA3C,OACE,QACEC,IAAKF,EAAKuD,KAIVvF,QAAS,SAAC1B,GACRA,EAAEkH,kBACFN,EAAWlD,EAAKjG,UACC,SAAb+E,EACFK,YAAiB,sBAAuB,CACtCxE,QAASqF,EAAKuD,OAGhBpE,YAAiB,qBAAsB,CACrCsE,KAAMxD,EACNyD,SAAUJ,EAAOrD,GAAOsD,OAI5B,IAAMI,EACJzH,SAAS0H,kBAAoB1H,SAAS2H,gBACpCF,GAAW1H,EAAUgH,UACXhH,EAAUgH,QAAQa,WACnBH,EAAQI,YACjBJ,EAAQI,UAAY9H,EAAUgH,QAAQa,aAxB9C,6BAEaxD,IAAW,CACpB0D,OAAQf,IAAYjD,EAAKjG,YAH7B,KA6BE,sCAAOiG,EAAKuD,UArCpB,y3EA0JCU,GACD,EAAC,IAAD,CACErD,KAAK,OACL7G,SAAUkJ,EACVtC,OAAQA,EACRuD,KAAK,uBACLlG,QAAS,SAACqC,EAAU8D,EAAcV,GACf,SAAb3E,GACFK,YAAiB,uBAAwB,CACvCsE,OACApD,WACA8D,uB,kICzNC,SAASC,EAAT,GAMZ,QALDb,YAKC,MALM,eAKN,EAJDzG,EAIC,EAJDA,UAKA,OACE,uCAAiBA,GAAjB,KACGyG,EADH,oQ,2MCaW,SAASc,EAAT,GAA+C,IAA7BzD,EAA6B,EAA7BA,KAAMoB,EAAuB,EAAvBA,KAAM/B,EAAiB,EAAjBA,MACnCjD,EAA+BgF,EAA/BhF,MAAO7D,EAAwB6I,EAAxB7I,OAAQmJ,EAAgBN,EAAhBM,KAAMgC,EAAUtC,EAAVsC,MAEvBnC,EAAQf,IAAIY,EAAM,oBAAqB,IACvCvC,EAAOuC,EAAKuC,QAEZC,GADa7E,YAAYqC,EAAKuC,SACjBE,mBACjB,iBAAO,CACLhB,KAAMiB,OAAOzE,EAAQ,MAEvB,CAACA,KAIG0E,EACK,SAAT/D,EACI,CACAgE,KAAM,4BACNpG,KAAM,4BACNqG,MAAO,8BAEP,CACAD,KAAM,oBACNpG,KAAM,oBACNqG,MAAO,sBAxB+C,EA0B/BC,YAAUH,EAAU3C,EAAMwC,GAA/CnB,EA1BoD,EA0BpDA,IAAK0B,EA1B+C,EA0B/CA,YACb,OACE,SAEE/G,QAAS,WACP+G,IACA/K,OAAOgL,KAAKvF,EAAM,WAEpB4D,IAAKA,EANP,yCAQE,OAAG7G,OAAO,SAAV,qCACE,EAAC,IAAD,CAAO4B,IAAK+D,KAEd,0CACE,OACE3F,OAAO,SAEP2B,MAAO,CAAE8G,aAAc,OAHzB,yCAKGjI,GAEH,4CACA,OAAGR,OAAO,SAAV,iCACE,+CAA4B8H,GAC5B,6CAA0BnL,GAC1B,6CAA0B+L,YAAkB,IAAP5C,MAvB3C,+gD,mBClDJ6C,EAAOC,QAAU,SAASD,GAoBzB,OAnBKA,EAAOE,kBACXF,EAAOG,UAAY,aACnBH,EAAOI,MAAQ,GAEVJ,EAAOpI,WAAUoI,EAAOpI,SAAW,IACxCxB,OAAOiK,eAAeL,EAAQ,SAAU,CACvCM,YAAY,EACZrE,IAAK,WACJ,OAAO+D,EAAOO,KAGhBnK,OAAOiK,eAAeL,EAAQ,KAAM,CACnCM,YAAY,EACZrE,IAAK,WACJ,OAAO+D,EAAOQ,KAGhBR,EAAOE,gBAAkB,GAEnBF,I,qBCpBR,IAAIS,EAAyB,EAAQ,QAEjCC,EAAO,KAIXV,EAAOC,QAAU,SAAUU,EAAQC,EAAKC,EAAWC,GACjD,IAAIC,EAAIxB,OAAOkB,EAAuBE,IAClCK,EAAK,IAAMJ,EAEf,MADkB,KAAdC,IAAkBG,GAAM,IAAMH,EAAY,KAAOtB,OAAOuB,GAAOG,QAAQP,EAAM,UAAY,KACtFM,EAAK,IAAMD,EAAI,KAAOH,EAAM,M,oKCCtB,SAASM,EAAYrK,GAAe,IACzCoE,EAAsCpE,EAAtCoE,IAAKrD,EAAiCf,EAAjCe,SAAUD,EAAuBd,EAAvBc,UAAWkB,EAAYhC,EAAZgC,QAQlC,OACE,kBACE,EAAC,IAAD,CAAMyB,KAAI,uBAAkBW,GAAOV,GAAE,mBAAcU,IACjD,OAEEpC,QAAO,8GAAE,WACPA,GAAWA,EAAQoC,MAErB5D,OAAO,SALT,6BACaM,GADb,KAOGC,IATP,2H,kCCpBJ,IAAIuJ,EAAI,EAAQ,QACZC,EAAa,EAAQ,QAKzBD,EAAE,CAAE9J,OAAQ,SAAUgK,OAAO,EAAMC,OAJN,EAAQ,OAIMC,CAAuB,SAAW,CAC3EC,KAAM,SAAcjL,GAClB,OAAO6K,EAAW3J,KAAM,IAAK,OAAQlB,O,wFCT1B,SAASN,IACtB,IAAIwL,EAAK,GACT,IACE,IAAMC,EAAUC,eAAe5M,QAAQ,aACnC2M,IACFD,EAAKC,GAEP,MAAOE,IACJH,IACHA,EAQJ,WACE,IAAMI,EAAM,EACNC,EAAMC,OAAOC,kBAAoB,iBACvC,gBAAUC,KAAKC,MAAMD,KAAKE,UAAYL,EAAMD,EAAM,GAAKA,IAXhDO,IAEP,IACET,eAAeU,QAAQ,YAAaZ,GACpC,MAAOG,IACT,OAAOH,I,kJCXM,SAASa,IACtB,IAAMC,GAAO,IAAIC,MAAOC,cACxB,OACE,+CACE,4CAAOF,EAAP,yCACA,mCACE,OACEjI,KAAK,8EACLjD,OAAO,SACPqL,IAAI,WAHN,oFAQF,mCACE,OAAGpI,KAAK,6BAA6BjD,OAAO,SAASqL,IAAI,WAAzD,gEAIF,mCACE,OACEpI,KAAK,4DACLjD,OAAO,SACPqL,IAAI,WAHN,gIAQF,mCACE,OACEpI,KAAK,yEACLjD,OAAO,SACPqL,IAAI,WAHN,+GAQF,8IACA,6IACA,mCACE,OAAGpI,KAAK,uBAAuBjD,OAAO,SAASqL,IAAI,WAAnD,iIAIF,2HACA,mCACE,OACEpI,KAAK,wDACLjD,OAAO,SACPqL,IAAI,WAHN,0EAMK,IAPP,IAQI,IACF,OACEpI,KAAK,sDACLjD,OAAO,SACPqL,IAAI,WAHN,0EAMK,IAfP,IAgBI,IACF,OACEpI,KAAK,yEACLjD,OAAO,SACPqL,IAAI,WAHN,yDAQF,mCACE,OAEEpI,KAAK,oCACLjD,OAAO,SACPqL,IAAI,WAJN,+DAOK,IARP,IASI,IACF,UAEE7J,QAAS,WACH8J,cACFC,OAAOC,QAAQ,iBACN,eAAgBhO,QACzBA,OAAOiO,WAAWC,SANxB,gEA7EJ,sR,2LC6EWC,IAvEf,WAA0B,MAC4BpJ,mBAElD,IAFKnG,EADiB,KACGwP,EADH,KAexB,OAVAlJ,qBAAU,YACE,uCAAG,4BAAAhH,EAAA,+EAEUmQ,YAAsB,MAFhC,OAEHrP,EAFG,OAGToP,EAAsBpP,GAHb,uGAAH,qDAMVsP,KACC,IAEE1P,GAAuBA,EAAmB6I,OAG7C,+CACE,uEACA,oDACG7I,QADH,IACGA,OADH,EACGA,EAAoBmH,KAAI,SAACwI,GACxB,OACE,OAEE9I,KAAM8I,EAAe5B,KACrBzG,IAAKqI,EAAeC,KACpBX,IAAI,sBACJrL,OAAO,SALT,sCAOG+L,EAAeC,UAZ1B,0lBAH4D,O,uBC3BxD,EAAQ,OAIhBlC,CAAE,CAAE9J,OAAQ,SAAUiM,MAAM,GAAQ,CAClCtB,iBAAkB,oB,qBCLpB,IAAIuB,EAAQ,EAAQ,QAIpBvD,EAAOC,QAAU,SAAUuD,GACzB,OAAOD,GAAM,WACX,IAAIE,EAAO,GAAGD,GAAa,KAC3B,OAAOC,IAASA,EAAKC,eAAiBD,EAAKE,MAAM,KAAKrH,OAAS","file":"static/chunks/1e616dae65cf978ae3b0d97d14adc5357b4e6076.4b52f934e90276487aaf.js","sourcesContent":["import fetch from 'lib/decorated-fetch'\nimport getUrl from 'lib/url'\n\nexport interface ICommonVideoInfo {\n cover_url: string\n video_id: string\n video_watch_count: number\n video_type: number\n video_duration: number\n video_size: string\n}\n\nexport interface ICommonUserInfo {\n avatar_url: string\n name: string\n description: string\n user_id: 4661945771\n user_verified: boolean\n verified_content: string\n motor_auth_show_info: {\n auth_v_type: number\n auth_v_desc: string\n }\n}\n\nexport interface ICommonColumn {\n id: 225\n uid: number\n mid: number\n logo: string\n name: string\n description: string\n modify_time: number\n create_time: number\n episode: number\n introduction: string\n}\n\nexport interface ICommonVideoData {\n unique_id_str: string\n title: string\n publish_time: number\n video_info: ICommonVideoInfo\n column: ICommonColumn\n}\n\nexport const getHomeOriginal = async (req: any) => {\n const json = await fetch(\n getUrl(`/motor/pc/content/home_original?count=30`, 'motor.pc_content.api'),\n {\n req,\n }\n )\n\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n\n return json?.data\n}\n\nexport enum PGC_CAGETORY_SROUCE {\n VIDEO = 1,\n VIDEO_HOME = 2,\n}\n\nexport interface IHomeVideoData {\n unique_id_str: string\n video_info: ICommonVideoInfo\n user_info: ICommonUserInfo\n column: ICommonColumn\n}\n\nexport const getHomeVideo = async (req: any) => {\n const json = await fetch(\n getUrl(\n `/motor/pc/content/home_video?count=48&source=1`,\n 'motor.pc_content.api'\n ),\n {\n req,\n }\n )\n\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n\n return json?.data\n}\n\nexport const friendshipLinkData = async (req: any) => {\n try {\n const json = await fetch(\n getUrl('/cloud/api/invoke/get_pc_friendship_link'),\n { req }\n )\n return json || []\n } catch (err) {\n console.error(err)\n return []\n }\n}\n\nexport interface ICommonContentRankItem {\n title: string\n count: number\n format_count: string\n group_id: string\n}\n\nexport const getPGCVideoRank = async (req: any) => {\n const json = await fetch(\n getUrl(\n '/motor/pc/content/pgc_content_rank?rank_type=pgc_video_total_rank',\n 'motor.pc_content.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data?.list\n}\n\nexport const getPGCArticleRank = async (req: any) => {\n const json = await fetch(\n getUrl(\n '/motor/pc/content/pgc_content_rank?rank_type=pgc_article_total_rank',\n 'motor.pc_content.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data?.list\n}\n\nexport const getPGCCategoryList = async (\n req: any,\n source: number = PGC_CAGETORY_SROUCE.VIDEO\n) => {\n const json = await fetch(\n getUrl(\n `/motor/pc/content/all_category_list?source=${source}`,\n 'motor.pc_content.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data\n}\n\nexport interface ILiveRoomItem {\n type: string\n room_id: string\n popularity: number\n title: string\n cover_url: string\n user_id: string\n user_name: string\n avatar: string\n rtmp_pull_url: string\n user_verified: boolean\n city_name: string\n}\nexport const getLiveRoomList = async (\n req: any,\n cityName = '',\n selectedCityName = ''\n) => {\n const json = await fetch(\n getUrl(\n `/motor/pc/common/home_live_rooms?count=48&city_name=${cityName}&selected_city_name=${cityName}`,\n 'motor.pc_common.api'\n ),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data?.live_list\n}\n\nexport interface ILiveBrandItem {\n brand_id: string\n brand_name: string\n logo: string\n}\nexport const getLiveTabsList = async (req: any) => {\n const json = await fetch(\n getUrl('/motor/pc/common/live_tabs', 'motor.pc_common.api'),\n { req }\n )\n if (0 !== json?.status) {\n throw Error(json?.prompts || json.message)\n }\n return json?.data\n}\n\nexport const getTodayNews = async (req: any) => {\n try {\n const json = await fetch(\n getUrl('/motor/pc/common/rcm_articles', 'motor.pc_common.api'),\n {\n req,\n }\n )\n let data = json?.data || []\n if (!Array.isArray(data)) {\n data = []\n }\n return data\n } catch (err) {\n console.error(err)\n return []\n }\n}\n\nexport const getFocusPic = async (req: any) => {\n try {\n const json = await fetch(\n getUrl('/motor/pc/common/home/focus_pic', 'motor.pc_common.api'),\n {\n req,\n }\n )\n return json?.data || []\n } catch (err) {\n return []\n }\n}\n\nexport const getFeedData = async (req: any) => {\n const json = await fetch(\n getUrl(\n '/motor/stream_entrance/get_feed/v47/?tt_from=enter_auto&category=motor_car_use&sub_category=&impression_info=%7B\"page_id\"%3A\"page_car_series\"%2C\"sub_tab\"%3A\"motor_car_use\"%2C\"product_name\"%3A\"web\"%7D&aid=1839&refer=1&channel=web&device_platform=web&web_id=5999794205218462&motor_feed_extra_params=%7B\"new_feed\"%3A%20true%2C%20\"feed_type\"%3A%201%7D&source=pc',\n 'motor.stream.entrance'\n ),\n { req }\n )\n return json?.data\n}\n","// feed流接口\n\nimport fetch from 'lib/decorated-fetch'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport getUrl from './url'\nimport getFakeWebid from 'lib/fake-webid'\nimport { IUser } from 'Components/ugc/user'\nimport { IUserInfo } from './fetch-community-feed'\n\nexport interface IParams {\n // 下拉刷新时需要改变\n tt_from: 'enter_auto' | 'load_more' | ''\n // 频道\n category: string\n // 子频道\n sub_category?: string\n /* 车系id */\n concern_id?: number\n // 数量\n count?: number\n // 加载更多时最后一条数据的behot_time.\n max_behot_time?: number\n min_behot_time?: number\n motor_feed_extra_params?: string\n impression_info?: string\n}\n\n/**\n * feed流单个数据\n */\nexport interface IFeedData {\n type: number\n unique_id_str: string\n duplicate?: boolean\n info: {\n abstract_content: string\n source: string\n title: string\n group_id: string\n video_id?: string\n video_duration: number\n image_list: [\n {\n url: string\n width: number\n height: number\n url_list: { url: string }[]\n }\n ]\n repost_info?: {\n image_url?: string\n }\n read_count: number\n comment_count: number\n digg_count: number\n user_digg: boolean\n article_type: number\n behot_time: number\n display_time: number\n publish_time: number\n user_info: IUserInfo\n user_verified?: boolean\n cursor: number\n share_url: string\n video_detail_info: {\n detail_video_large_image: {\n url: string\n }\n }\n }\n}\n\n/**\n * feed流返回数据\n */\nexport interface IFeedResult {\n tips: {\n display_info: string\n }\n data: IFeedData[]\n}\n\nexport default (params: IParams, req?: any): Promise => {\n const { category } = params\n let extraParams = {}\n if (category === 'motor_local') {\n const cityName = window.localStorage.getItem('cityName') || ''\n extraParams = {\n city: cityName,\n city_name: cityName,\n selected_city_name: cityName,\n }\n }\n\n const defaultParams = {\n impression_info:\n params.impression_info ||\n JSON.stringify({\n page_id: 'page_car_series',\n sub_tab: params.category,\n product_name: 'web',\n car_series_id: params.concern_id,\n }),\n concern_id: params.concern_id,\n aid: '1839',\n refer: 1,\n channel: 'web',\n device_platform: 'web',\n web_id: getFakeWebid(),\n motor_feed_extra_params:\n params.motor_feed_extra_params ||\n '{\"new_feed\": true, \"feed_type\": 1, \"source_from\": \"web_pc\"}',\n source: 'pc',\n }\n if (params.max_behot_time) {\n Object.assign(defaultParams, {\n max_behot_time: params.max_behot_time,\n })\n }\n if (params.count) {\n Object.assign(defaultParams, {\n count: params.count,\n })\n }\n // console.log(params)\n const url = getUrl(\n `/motor/stream_entrance/get_feed/v47/?${serializeObject(\n params\n )}&${serializeObject({ ...defaultParams, ...extraParams })}`,\n 'automobile.apigateway.proxy'\n )\n return fetch(url, { req }).then((result: Partial | null) => {\n if (!result || !result.data) {\n throw new Error(`Get Feed Error ${JSON.stringify(result)}`)\n }\n // if (params.category === 'video') {\n // result.data = result.data.filter(item => item.info.video_id)\n // }\n return result as IFeedResult\n })\n}\n","import React, { PureComponent } from 'react'\nimport classNames from 'classnames'\nimport { Fade } from './animation'\nimport Portal from './portal'\n\nexport interface IModalProps {\n /** 样式类名 */\n className?: string\n title?: React.ReactNode\n children: React.ReactNode\n maskClosable: boolean\n /** 关闭后回调 */\n onClose?: (e: React.MouseEvent) => void\n /** 是否可见 */\n visible: boolean\n /** 获取挂载容器 */\n getContainer?: () => HTMLElement\n /** 底部配置 */\n footer?: React.ReactNode\n /** 是否展示关闭按钮 */\n closable: boolean\n /** 关闭函数 */\n close: () => void\n /** 内容宽度 */\n width?: number | string\n /** 内容高度 */\n height?: number | string\n clientX: number\n clientY: number\n type?: number\n price?: string\n}\n\nexport default class Modal extends PureComponent {\n static defaultProps: Partial = {\n closable: false,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n close: () => {},\n maskClosable: true,\n visible: false,\n }\n\n getContainer = () => {\n const { getContainer } = this.props\n if (getContainer) {\n return getContainer()\n }\n const container = document.createElement('div')\n document.body.appendChild(container)\n return container\n }\n\n handleMaskClick = (e: React.MouseEvent) => {\n const { maskClosable } = this.props\n if (maskClosable && e.target === e.currentTarget) {\n this.onClose(e)\n }\n }\n\n onClose = (e: React.MouseEvent) => {\n const { onClose, close } = this.props\n onClose && onClose(e)\n close()\n }\n\n onEntered = () => {\n // const clientWidthBefore = document.body.clientWidth\n // document.body.style.overflow = 'hidden'\n // const clientWidthAfter = document.body.clientWidth\n // const scrollBarWidth = clientWidthAfter - clientWidthBefore\n // document.body.style.paddingRight = `${scrollBarWidth}px`\n }\n\n onExited = () => {\n // document.body.style.overflow = ''\n // document.body.style.paddingRight = '0'\n }\n\n getComponent() {\n const {\n visible,\n className,\n children,\n title,\n closable,\n footer,\n width,\n height,\n clientX,\n clientY,\n onClose,\n price,\n type,\n } = this.props\n\n const dest: any = {}\n if (width !== undefined) {\n dest.width = width\n }\n if (height !== undefined) {\n dest.height = height\n }\n\n return (\n \n \n
\n {\n onClose && onClose(e)\n }}\n >\n \n \n \n
\n {!!title && (\n
\n
{title}
\n {type === 1 ? (\n
1元
\n ) : (\n
{price}
\n )}\n {closable && (\n \n )}\n
\n )}\n
{children}
\n {!!footer &&
{footer}
}\n \n \n \n \n )\n }\n\n render() {\n return (\n {this.getComponent()}\n )\n }\n}\n","import React, { memo } from 'react'\nimport Modal from 'Components/toastModal'\n\nexport interface IDeclareTextProps {\n show: boolean\n onHide: () => void\n clientX: number\n clientY: number\n type?: number\n price?: string\n}\nfunction DeclareText({\n show,\n onHide,\n clientX,\n clientY,\n type = 1,\n price,\n}: IDeclareTextProps) {\n return (\n <>\n \n
\n
\n \n
\n
\n \n \n \n )\n}\n\nexport default memo(DeclareText)\n","import React, { useEffect, useState } from 'react'\nimport classnames from 'classnames'\nimport ArticleLink from 'Components/links/article-link'\n\nimport Header from 'Pages/home/common/header'\nimport getLinkHref from 'lib/get-link-href'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport QRcode from './QRcode'\ninterface IProps {\n article: ArticleData[]\n fromPage?: string\n}\n\nexport interface ArticleData {\n gid: number\n gid_str: string\n title: string\n count: number\n type: number\n}\n\nexport default function ArticleBoard({\n article = [],\n fromPage = 'home',\n}: IProps) {\n const [showModal, setShowModal] = useState(false)\n const [clientX, setClientX] = useState(0)\n const [clientY, setClientY] = useState(0)\n useEffect(() => {\n sendTeaCommEvent('web_client_show', {\n list_type: 1,\n item_type: 1,\n key_name: 'home_hot_article_card',\n })\n }, [])\n\n return (\n <>\n
\n {\n sendTeaCommEvent('click_new_series_rank_list_more')\n }}\n />\n
    \n {Array.isArray(article) &&\n article.slice(0, 10).map((item, index) => {\n return (\n
  • \n {\n if (fromPage === 'feed') {\n sendTeaCommEvent('click_news_top_article', {\n group_id: item?.gid_str || 'undefined',\n })\n }\n sendTeaCommEvent('click_home_top_article', {\n group_id: item.gid_str,\n })\n }}\n className=\"line-1\"\n >\n \n {index + 1}\n {index < 3 ? null : '.'}\n \n \n {item.title}\n \n \n {item.count}万次阅读\n
  • \n )\n })}\n
\n\n {\n setShowModal(!showModal)\n }}\n />\n
\n \n \n )\n}\n","import React from 'react'\nimport Link from 'next/link'\n\nimport getLinkHref from 'lib/get-link-href'\n\ninterface IProps {\n /* icon图片路径 */\n icon?: string\n /* 左边的文本内容 */\n leftContent: string\n /* 右边的文本内容 */\n rightContent: string\n /* link前端路径 */\n href?: string\n /* link后端路径 */\n as?: string\n onClick?(): void\n}\n\nexport default function Header({\n icon,\n leftContent,\n rightContent,\n href,\n as,\n onClick,\n}: IProps) {\n return (\n
\n {leftContent === '热门排行榜' ? (\n

{leftContent}

\n ) : (\n {leftContent}\n )}\n {href && as ? (\n \n \n {\n onClick && onClick()\n }}\n >\n {rightContent}\n \n \n \n \n ) : (\n {rightContent}\n )}\n \n
\n )\n}\n","/* 渲染feed流 */\n\nimport React, { useState, useEffect, useRef } from 'react'\nimport ScrollLoader from 'Components/scroll-loader'\nimport get from 'lodash/get'\n\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport fetchFeed, { IFeedData } from 'lib/fetch-feed'\n\nimport Loading from 'Components/loading'\nimport Article from 'Components/article'\nimport FeedAd from 'Components/feed-ad'\nimport { IFeedAdData } from './hooks'\n\ninterface IProps {\n category: string\n subCategory?: string\n /**\n * 来自哪个页面,目前取值\n * * home 首页\n * * article 文章页\n * * series_home 车系详情\n */\n page: 'home' | 'article' | 'series_home' | 'feed'\n concern_id?: number\n onClick?: (\n group_id: string | number,\n content_type: number,\n index?: number\n ) => void\n feedAd?: IFeedAdData[]\n gid?: string\n contentType?: string\n from?: string\n}\n\nfunction Feed({\n category,\n subCategory = '',\n concern_id,\n onClick,\n feedAd,\n gid,\n page,\n contentType,\n}: IProps) {\n const [list, updateList] = useState([])\n // 是否在加载中\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n setLoading(true)\n updateList([])\n fetchFeed({\n tt_from: 'enter_auto',\n concern_id,\n category,\n sub_category: subCategory,\n })\n .then(data => {\n updateList(get(data, 'data'))\n setLoading(false)\n })\n .catch(() => {\n setLoading(false)\n })\n }, [category, concern_id, subCategory])\n\n /* 懒加载 */\n function loadMoreHandler() {\n let lastFeedItem: IFeedData | null = null\n if (list.length > 0) {\n lastFeedItem = list[list.length - 1]\n }\n setLoading(true)\n fetchFeed({\n tt_from: 'load_more',\n sub_category: subCategory,\n category,\n count: 20,\n concern_id,\n max_behot_time: get(lastFeedItem, 'info.behot_time', undefined),\n })\n .then(data => {\n sendTeaCommEvent('loadmore_home_news')\n updateList(list.concat(get(data, 'data')))\n setLoading(false)\n })\n .catch(() => {\n setLoading(false)\n })\n }\n\n let renderIdx = 0\n\n return (\n <>\n \n {list && list.length\n ? list.map((item: IFeedData, index) => {\n // 过滤非图文视频(不准确) // TODO: 确认这里过滤掉的类型具体有哪些\n // https://ee.byted.org/madeira/browse/service_rpc/idl/blob/master/motor/cell.thrift/\n if (item.type < 2000 || item.type >= 2300) {\n return null\n }\n renderIdx++\n if (feedAd && feedAd.length) {\n const findAd = feedAd.find(adItem => {\n return adItem.fix_position === renderIdx\n })\n if (findAd) {\n return (\n \n )\n }\n }\n const info = get(item, 'info', {}) as IFeedData['info']\n return (\n \n )\n })\n : null}\n \n {loading ? : null}\n \n )\n}\nexport default Feed\n","/* 渲染feed流 */\n\nimport React, { useState, useRef, useEffect } from 'react'\nimport classnames from 'classnames'\n\nimport Feed from 'Components/feed'\nimport { useFeedAd } from 'Components/hooks'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\n\nexport interface TabData {\n text: string\n param: string\n}\n\nfunction HomeFeed({\n fromPage = 'home',\n tabData = [],\n}: {\n fromPage?: string\n tabData?: TabData[]\n}) {\n const container = useRef(null)\n /* 当前所在文章的栏目 */\n const [current, setCurrent] = useState('motor_car')\n const feedAd = useFeedAd(current, fromPage) || []\n\n useEffect(() => {\n if (tabData.length > 0) {\n setCurrent(tabData?.[0]?.param || 'motor_car')\n }\n }, [tabData])\n\n /* 渲染feed流都有哪些文章栏目 */\n function renderTitles() {\n let titles: { text: string; category: string }[]\n\n if (fromPage === 'feed') {\n titles = tabData.map(e => ({ text: e.text, category: e.param }))\n } else {\n titles = [\n { text: '推荐', category: 'motor_car' },\n { text: '新车', category: 'motor_car_new_arrival' },\n { text: '用车', category: 'motor_car_use' },\n { text: '导购', category: 'motor_car_new_guide' },\n { text: 'SUV', category: 'motor_car_suv' },\n { text: '自驾游', category: 'motor_car_travel' },\n { text: '新能源', category: 'motor_car_new_energy' },\n { text: '提车作业', category: 'motor_car_trail_diary' },\n { text: '试驾评测', category: 'motor_car_evaluating' },\n ]\n }\n\n return (\n \n {titles.map(\n (item: { text: string; category: string }, index: number) => (\n ) => {\n e.stopPropagation()\n setCurrent(item.category)\n if (fromPage !== 'feed') {\n sendTeaCommEvent('click_home_news_tab', {\n sub_tab: item.text,\n })\n } else {\n sendTeaCommEvent('click_news_top_tab', {\n rank: index,\n obj_text: titles[index].text,\n })\n }\n\n const element =\n document.scrollingElement || document.documentElement\n if (element && container.current) {\n const top = container.current.offsetTop\n if (top <= element.scrollTop) {\n element.scrollTop = container.current.offsetTop\n }\n }\n }}\n >\n {item.text}\n \n )\n )}\n \n \n )\n }\n\n return (\n
\n {renderTitles()}\n {\n if (fromPage === 'feed') {\n sendTeaCommEvent('click_news_feed_item', {\n rank,\n group_id,\n content_type,\n })\n }\n }}\n />\n
\n )\n}\nexport default HomeFeed\n","import React from 'react'\nexport default function Label({\n text = '广告',\n className,\n}: {\ntext: string\nclassName?: string\n}) {\n return (\n \n {text}\n \n \n )\n}\n","/* feed流/相关推荐的文章 */\nimport React, { useEffect, useMemo } from 'react'\nimport Link from 'next/link'\nimport get from 'lodash/get'\n\nimport formatTime from 'lib/format-time'\nimport getLinkHref from 'lib/get-link-href'\nimport { useAdStat } from 'Components/ad/'\n\nimport Image from 'Components/image'\n\nimport { IFeedAdData } from 'Components/hooks'\n\ninterface IProps {\n category: string\n page: string\n info: IFeedAdData\n index: number\n gid: string | undefined\n contentType?: string\n}\n\nexport default function FeedAd({ page, info, index }: IProps) {\n const { title, source, time, label } = info\n\n const cover = get(info, 'image_list[0].url', '')\n const href = info.web_url\n const as: string = getLinkHref(info.web_url)\n const customStat = useMemo(\n () => ({\n rank: String(index - 1),\n }),\n [index]\n )\n\n // 区分资讯页固定位广告和首页固定位广告的埋点信息\n const eventIds =\n page === 'feed'\n ? {\n send: 'ad_send_article_feed_cell',\n show: 'ad_show_article_feed_cell',\n click: 'ad_click_article_feed_cell',\n }\n : {\n send: 'ad_send_feed_cell',\n show: 'ad_show_feed_cell',\n click: 'ad_click_feed_cell',\n }\n const { ref, handleClick } = useAdStat(eventIds, info, customStat)\n return (\n {\n handleClick()\n window.open(href, '_blank')\n }}\n ref={ref}\n >\n \n \n \n \n \n \n )\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.github.io/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","import * as React from 'react'\nimport Link from 'next/link'\n\ninterface IProps {\n gid: string\n className?: string\n isVideo?: boolean\n children: React.ReactNode\n onClick?(gid: string): void\n}\n\nexport default function ArticleLink(props: IProps) {\n const { gid, children, className, onClick } = props\n // if (isVideo) {\n // return (\n // \n // {children}\n // \n // )\n // }\n return (\n <>\n \n {\n onClick && onClick(gid)\n }}\n target=\"_blank\"\n >\n {children}\n \n \n \n \n )\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.link` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.link\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('link') }, {\n link: function link(url) {\n return createHTML(this, 'a', 'href', url);\n }\n});\n","export default function getFakeWebid(): string {\n let id = ''\n try {\n const storage = sessionStorage.getItem('fakeWebid')\n if (storage) {\n id = storage\n }\n } catch (err) {}\n if (!id) {\n id = getInt64()\n }\n try {\n sessionStorage.setItem('fakeWebid', id)\n } catch (err) {}\n return id\n}\n\nfunction getInt64(): string {\n const min = 0\n const max = Number.MAX_SAFE_INTEGER || 9007199254740991\n return `${Math.floor(Math.random() * (max - min + 1) + min)}`\n}\n","/* 声明文件 */\nimport React from 'react'\nimport { isNewVersion } from 'lib/version'\nexport default function Statement() {\n const year = new Date().getFullYear()\n return (\n
\n

© {year} 懂车帝 www.dongchedi.com

\n

\n \n 京公网安备 11010802026035号\n \n

\n

\n \n 京ICP备17027026号-3\n \n

\n

\n \n 增值电信业务经营许可证(京B2-20180202)\n \n

\n

\n \n 广播电视节目制作经营许可证\n \n

\n

网络文化经营许可证-京网文(2019)4715-493号

\n

公司名称:北京空间变换科技有限公司

\n

\n \n 中央网信办违法和不良信息举报中心\n \n

\n

违法和不良信息举报电话:400-140-2108

\n

\n \n 懂车帝用户协议\n {' '}\n |{' '}\n \n 懂车帝隐私政策\n {' '}\n |{' '}\n \n 营业执照\n \n

\n

\n \n 侵权投诉\n {' '}\n |{' '}\n {\n if (isNewVersion()) {\n PubSub.publish('OPEN_FEEDBACK')\n } else if ('dpFeedback' in window) {\n window.dpFeedback.start()\n }\n }}\n >\n 我要反馈\n \n

\n \n
\n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { friendshipLinkData as getFriendshipLinkData } from '../../new/home/services/home'\n\ninterface IFriendshipLink {\n friendshipLinkData: IFriendshipLinkData[]\n}\n\nexport interface IFriendshipLinkData {\n name: string\n link: string\n}\n\nfunction FriendshipLink() {\n const [friendshipLinkData, setFriendshipLinkData] = useState<\n IFriendshipLinkData[]\n >([]!)\n\n useEffect(() => {\n const init = async () => {\n try {\n const list = await getFriendshipLinkData(null)\n setFriendshipLinkData(list)\n } catch (e) {}\n }\n init()\n }, [])\n\n if (!friendshipLinkData || !friendshipLinkData.length) return null\n\n return (\n
\n
友情链接
\n
\n {friendshipLinkData?.map((friendshipLink: IFriendshipLinkData) => {\n return (\n \n {friendshipLink.name}\n \n )\n })}\n
\n \n
\n )\n}\n\nexport default FriendshipLink\n","var $ = require('../internals/export');\n\n// `Number.MAX_SAFE_INTEGER` constant\n// https://tc39.github.io/ecma262/#sec-number.max_safe_integer\n$({ target: 'Number', stat: true }, {\n MAX_SAFE_INTEGER: 0x1FFFFFFFFFFFFF\n});\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n"],"sourceRoot":""}