{"version":3,"sources":["webpack://_N_E/./lib/fake-webid.ts","webpack://_N_E/./lib/fetch-feed.ts","webpack://_N_E/./public/static sync ^\\.\\/.*_img@3x\\.png$","webpack://_N_E/./public/static/dcd-code@3x.png","webpack://_N_E/./pages-components/home/old-components/car-list.tsx","webpack://_N_E/./pages-components/home/old-components/popular-leaderboard.tsx","webpack://_N_E/./components/breadcrumb.tsx","webpack://_N_E/./public/static/1_img@3x.png","webpack://_N_E/./components/feed-ad.tsx","webpack://_N_E/./components/feed.tsx","webpack://_N_E/./public/static/3_img@3x.png","webpack://_N_E/./pages-components/article/related-video.tsx","webpack://_N_E/./components/qr-code.tsx","webpack://_N_E/./public/static/2_img@3x.png","webpack://_N_E/./node_modules/core-js/modules/es.number.max-safe-integer.js"],"names":["getFakeWebid","id","storage","sessionStorage","getItem","err","min","max","Number","MAX_SAFE_INTEGER","Math","floor","random","getInt64","setItem","params","req","extraParams","category","cityName","window","localStorage","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","motor_feed_extra_params","source","url","getUrl","serializeObject","fetch","then","result","data","Error","map","webpackContext","webpackContextResolve","__webpack_require__","o","e","code","keys","Object","resolve","module","exports","CarList","list","from","index","hasIcon","isOrigin","require","online_date","slice","href","series_id","as","target","title","series_name","onClick","sendTeaCommEvent","car_series_name","rank","className","src","image","cover_url","price","min_price","max_price","count","PopularLeaderboard","React","useState","setData","useCityName","useEffect","encodeURIComponent","res","json","get","Array","isArray","leftContent","rightContent","getLinkHref","item","key","Breadcrumb","path","hideLine","style","classnames","text","name","icon","length","FeedAd","page","info","time","label","cover","web_url","customStat","useMemo","String","eventIds","send","show","click","useAdStat","ref","handleClick","open","borderRadius","formatTime","Feed","subCategory","feedAd","gid","contentType","updateList","loading","setLoading","fetchFeed","tt_from","sub_category","renderIdx","loadMoreHandler","lastFeedItem","max_behot_time","undefined","concat","end","type","findAd","find","adItem","fix_position","id_str","fromPage","unique_id_str","duration","video_duration","cursor","content","abstract_content","Video","videos","group_id","formatDuration","QRCode","$","stat"],"mappings":"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","file":"static/chunks/665eb05f6ebdda56750abacf1a6131041df73018.c5bdaa015b4dd8f279a0.js","sourcesContent":["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","// 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'\n\ninterface 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}\n\n/**\n * feed流单个数据\n */\nexport interface IFeedData {\n type: number\n unique_id_str: string\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 read_count: number\n comment_count: number\n article_type: number\n behot_time: number\n display_time: number\n user_info: {\n user_id: number\n name: string\n verified_content: string\n avatar_url: string\n user_verified: boolean\n }\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: 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 aid: '1839',\n refer: 1,\n channel: 'web',\n device_platform: 'web',\n // iid: Cookies('tt_webid', {}),\n web_id: getFakeWebid(),\n motor_feed_extra_params: '{\"new_feed\": true, \"feed_type\": 1}',\n source: 'pc',\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","var map = {\n\t\"./1_img@3x.png\": \"PtpI\",\n\t\"./2_img@3x.png\": \"mTdr\",\n\t\"./3_img@3x.png\": \"dHmk\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"58Uh\";","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/dcd-code@3x-7798dc19b4c261272684645a11a3b1dd.png\";","import React, { Fragment } from 'react'\nimport Link from 'next/link'\n\nimport getLinkHref from 'lib/url'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport Image from 'Components/image'\n\nimport { ICarList } from '../interface'\n\ninterface IProps {\n /* 汽车详细数据 */\n list: ICarList\n /* 显示的月份还是第几的icon */\n hasIcon?: boolean\n /* 显示的是价格还是销量 */\n isOrigin?: boolean\n /* 显示第几的icon */\n index?: number\n // 用于统计,表明来自哪个组件\n from?: string\n}\n\nexport default function CarList({\n list,\n from = '',\n index = 1,\n hasIcon = true,\n isOrigin = true,\n}: IProps) {\n // background: url(${require(`static/${index}_img@3x.png`)}) no-repeat\n // center / 36px 36px;\n return (\n
\n {hasIcon ? (\n \n ) : (\n {list.online_date.slice(0, 2)}\n )}\n \n {\n sendTeaCommEvent(from, {\n car_series_name: list.series_name,\n car_series_id: list.series_id,\n rank: index,\n })\n }}\n >\n \n {list.series_name}\n {isOrigin ? (\n \n {`${\n list.price\n ? list.price\n : `${list.min_price}-${list.max_price}万`\n } `}\n \n ) : (\n 总销量 {list.count}\n )}\n \n \n \n
\n )\n}\n","/* 热门排行榜 */\nimport React from 'react'\nimport get from 'lodash/get'\nimport fetch from 'isomorphic-unfetch'\n\nimport getUrl from 'lib/url'\nimport getLinkHref from 'lib/get-link-href'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport { useCityName } from 'Components/hooks'\n\nimport Header from './header'\nimport CarList from './car-list'\n\nimport { ICarList } from '../interface'\n\n// getUrl('/motor/car_show/v1/get_rank/?offset=0&limit=3')\n\nexport default function PopularLeaderboard() {\n const [data, setData] = React.useState([])\n const cityName = useCityName()\n React.useEffect(() => {\n if (typeof cityName === 'undefined') {\n return\n }\n fetch(\n getUrl(\n `/motor/car_show/v1/get_rank/?rank_type=100&offset=0&limit=3&city_name=${encodeURIComponent(\n cityName\n )}`\n )\n )\n .then(res => res.json())\n .then(json => {\n const data = get(json, 'data', [])\n setData(Array.isArray(data) ? data : [])\n })\n }, [cityName])\n return (\n
\n {\n sendTeaCommEvent('click_hot_series_rank_list_more')\n }}\n />\n
\n {data.map((item: ICarList, index: number) => (\n \n ))}\n
\n \n
\n )\n}\n","/* 当前位置路径 */\nimport React from 'react'\nimport classnames from 'classnames'\nimport Link from 'next/link'\n\nimport getLinkHref from 'lib/get-link-href'\n\ninterface IPath {\n [prop: string]: string\n}\n\ninterface IProps {\n /* 当前页面路径 */\n path: IPath[]\n hideLine?: boolean\n style?: React.CSSProperties\n className?: string\n}\n\nexport default function Breadcrumb({\n path,\n hideLine = false,\n style,\n className,\n}: IProps) {\n return (\n
\n \n 当前位置:\n {path.map((text: IPath, index: number) => (\n \n {text.href && text.as ? (\n \n {text.name}\n \n ) : (\n text.name\n )}\n \n ))}\n

\n \n
\n )\n}\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/1_img@3x-0d97d274098e4709a3dccc8a640cadbd.png\";","/* 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 {title}\n \n \n \n {label}\n {source}\n {formatTime(time * 1000)}\n \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 }).then(data => {\n setLoading(false)\n updateList(get(data, 'data'))\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 }).then(data => {\n setLoading(false)\n sendTeaCommEvent('loadmore_home_news')\n updateList(list.concat(get(data, 'data')))\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","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/3_img@3x-94c5586526b8e81ff065add35481ef56.png\";","/* 相关视频 */\nimport React from 'react'\nimport get from 'lodash/get'\n\nimport { IFeedData } from 'lib/fetch-feed'\nimport formatDuration from 'lib/format-duration'\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\n\nimport ArticleLink from 'Components/links/article-link'\nimport Image from 'Components/image'\n\ninterface IProps {\n videos: IFeedData[]\n}\n\nexport default function Video({ videos }: IProps) {\n /* 渲染视频列表 */\n function renderVideoList() {\n return (\n
\n {videos.slice(0, 4).map((item: IFeedData, index) => (\n {\n sendTeaCommEvent('click_related_video', {\n rank: index,\n group_id: item.unique_id_str,\n })\n }}\n key={item.unique_id_str}\n gid={item.unique_id_str}\n >\n
\n
\n \n {formatDuration(item.info.video_duration)}\n
\n

{item.info.title}

\n
\n \n ))}\n \n
\n )\n }\n return (\n
\n

热门视频

\n {renderVideoList()}\n \n
\n )\n}\n","import React from 'react'\n\nexport default function QRCode() {\n return (\n
\n

扫码下载懂车帝APP

\n
\n \n
\n )\n}\n","module.exports = \"https://sf6-scmcdn2-tos.pstatp.com/motor/pc/_next/static/images/2_img@3x-6f53f700e97c75f5571679a680f31bd4.png\";","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"],"sourceRoot":""}