{"version":3,"sources":["webpack://_N_E/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://_N_E/./lib/ugc-interact.ts","webpack://_N_E/./node_modules/querystring/encode.js","webpack://_N_E/./components/button.tsx","webpack://_N_E/./public/static/close-icon.png","webpack://_N_E/./constants/index.ts","webpack://_N_E/./node_modules/core-js/internals/string-repeat.js","webpack://_N_E/./node_modules/core-js/internals/this-number-value.js","webpack://_N_E/./public/static/close-icon-hover.png","webpack://_N_E/./constants/emoji/index.ts","webpack://_N_E/./node_modules/querystring/decode.js","webpack://_N_E/./components/hooks/use-fetch-collected.ts","webpack://_N_E/./node_modules/core-js/modules/es.array.splice.js","webpack://_N_E/./node_modules/core-js/modules/es.array.every.js","webpack://_N_E/./node_modules/querystring/index.js","webpack://_N_E/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://_N_E/./components/usePortal.tsx","webpack://_N_E/./components/modal-report.tsx"],"names":["defineWellKnownSymbol","focus","params","user_id","to_user_id","fetch","method","headers","window","localStorage","getItem","body","serializeObject","then","res","data","message","is_following","Promise","resolve","reject","catch","err","console","log","digg","group_id","action","like_type","thread_id","digg_action","getUrl","err_no","err_tips","stringifyPrimitive","v","isFinite","module","exports","obj","sep","eq","name","undefined","Object","keys","map","k","ks","encodeURIComponent","Array","isArray","join","Button","event","props","loading","disabled","onClick","preventDefault","stopPropagation","this","type","style","children","className","role","classnames","React","DEFAULT_VIDEO_KEYWORDS","DEFAULT_VIDEO_DESCRIPTION","DEFAULT_ARTICLE_KEYWORDS","DEFAULT_ARTICLE_DESCRIPTION","ICON_VIDEO_PLAYER_LOADING","aid","appName","toInteger","requireObjectCoercible","repeat","count","str","String","result","n","Infinity","RangeError","classof","value","TypeError","emojiResourceList","index","image","key","width","height","emoji","string","reUnescapedHtml","reHasUnescapedHtml","RegExp","source","test","replace","chr","hasOwnProperty","prop","prototype","call","qs","options","length","regexp","split","maxKeys","len","i","kstr","vstr","x","idx","indexOf","substr","decodeURIComponent","push","useFetchCollected","id","collected","useState","curCollected","setCurCollected","userId","useContext","GlobalStoreContext","state","userData","useEffect","status","is_collect","$","toAbsoluteIndex","toLength","toObject","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","0","1","max","Math","min","target","proto","forced","splice","start","deleteCount","insertCount","actualDeleteCount","A","from","to","O","actualStart","argumentsLength","arguments","$every","every","arrayMethodIsStrict","STRICT_METHOD","callbackfn","decode","parse","encode","stringify","thisNumberValue","fails","nativeToFixed","toFixed","floor","pow","acc","fractionDigits","e","z","j","number","fractDigits","sign","multiply","c","c2","divide","dataToString","s","t","x2","slice","usePortal","parentElemRef","useRef","rootElem","oldElem","document","getElementById","parentElem","container","createElement","setAttribute","createRootElement","appendChild","current","childNodes","remove","ModalReport","visible","onButtonClick","config","reportConfig","checkedValue","setCheckedValue","description","setDescription","handleConfirmClick","handleCancelClick","handleResultChange","currentTarget","handleResultExtraChange","createPortal","in","timeout","unmountOnExit","reportItem","reportIndex","checked","onChange","htmlFor"],"mappings":"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","file":"static/chunks/143e3ab58b446892eb5ffa16cea290bee8fb9f64.51fd1ebee6834096d0e2.js","sourcesContent":["var defineWellKnownSymbol = require('../internals/define-well-known-symbol');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.github.io/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","import { useContext } from 'react'\nimport fetch from 'lib/decorated-fetch'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport getUrl from 'lib/url'\nconst apiMap = {\n 1: '/ugc/video/v1/digg/digg/',\n 4: '/motor/discuss_ugc/digg/digg/',\n}\n\nconst methodMap = {\n 1: 'POST',\n 4: 'POST',\n}\n\ninterface FocusParams {\n user_id: number | string\n to_user_id: number | string\n}\n\ninterface DiggParams {\n user_id: number\n group_id: string\n action: 'digg' | 'cancel_digg'\n like_type?: 'digg_thread' | 'digg_ugc_video'\n}\n\ninterface DiggCommentParams {\n comment_id: string\n group_id: string\n}\n\nexport const focus = ({ user_id, to_user_id }: FocusParams) => {\n const params = {\n user_id,\n to_user_id,\n }\n return fetch('/motor/user/relation/like', {\n method: 'POST',\n headers: {\n 'tt-anti-token': window.localStorage.getItem('tt-anti-token') || '',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: serializeObject(params),\n })\n .then((res) => {\n const { message, is_following } = res.data\n if (message === 'success' && is_following) {\n return Promise.resolve()\n } else {\n return Promise.reject('关注失败')\n }\n })\n .catch((err) => {\n console.log(err)\n return Promise.reject('关注失败')\n })\n}\n\nexport const digg = ({\n user_id,\n group_id,\n action,\n like_type = 'digg_thread',\n}: DiggParams) => {\n const params = {\n user_id,\n thread_id: group_id,\n digg_action: action,\n like_type,\n group_id,\n }\n let request = null\n request = fetch(getUrl(`/motor/community/digg_like`), {\n method: 'POST',\n headers: {\n 'tt-anti-token': window.localStorage.getItem('tt-anti-token') || '',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: serializeObject(params),\n })\n return request\n .then((res) => {\n const { err_no, err_tips } = res\n if (err_no) {\n return Promise.reject(err_tips)\n } else {\n return Promise.resolve()\n }\n })\n .catch((err) => {\n console.log(err)\n return Promise.reject('点赞失败')\n })\n}\n\nexport const diggComment = ({ comment_id, group_id }: DiggCommentParams) => {\n const params = {\n aid: 36,\n user_id: 64194007718,\n comment_id,\n group_id,\n device_id: 69983831301,\n aggr_type: 0,\n action: 'digg',\n }\n return fetch('/browser/2/data/comment_action/', {\n method: 'POST',\n headers: {\n 'tt-anti-token': window.localStorage.getItem('tt-anti-token') || '',\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: serializeObject(params),\n })\n .then((res) => {\n const { digg_count } = res.data\n if (digg_count === 1) {\n return Promise.resolve()\n } else {\n return Promise.reject('点赞失败')\n }\n })\n .catch((err) => {\n console.log(err)\n return Promise.reject('点赞失败')\n })\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","import * as React from 'react'\nimport classnames from 'classnames'\n\ninterface Props {\n /**\n * primary: 黄色底部,常用语询底价\n * default: 带边框\n * highlight: 带边框,颜色为橘色\n */\n type?: 'primary' | 'default' | 'highlight' | 'new_primary'\n style?: React.CSSProperties\n loading?: boolean\n disabled?: boolean\n className?: string\n onClick?: React.MouseEventHandler\n}\n\nexport default class Button extends React.PureComponent {\n static defaultProps = {\n type: 'default',\n loading: false,\n disabled: false,\n }\n\n onClick = (event: React.MouseEvent) => {\n // event.preventDefault()\n // event.stopPropagation()\n const { loading, disabled, onClick } = this.props\n if (loading || disabled) {\n event.preventDefault()\n event.stopPropagation()\n return\n }\n if (typeof onClick === 'function') {\n onClick(event)\n }\n }\n\n render() {\n const { type, style, loading, disabled, children, className } = this.props\n return (\n \n {loading ? : children}\n \n \n )\n }\n}\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAACN0lEQVRoBe2ZQU7DMBBFPWFZIcQRuAgnQF1SRLZAy40KdEkk2iVCHICLcASEUHfQIRPXyATHtTPjSEjOJqGO5/83444ro1S+cgZyBnIGcgaGyEBVPR0OoUMaMVpFiKn5Ynn8sV6/zu9Wk5D3Oe+QRqNVa4bE2QlA5hXiMyo8UAqrlBA6NlaNVq3ZaO+gAN84lZKyoc3rNwHgSykoZ5enS9/c2LHbxcPZBuEeEffMXFDwvj8aHZXlyZv5rH33VqCZCDDVpvVULSBbCcr8H/N1oooCZz7z5MhbAUP7U1o7O0KV4MYOAiAQrpBJhn2XiBkMIA0hYZ48RQFIQUiZ7wXAhZA0T168XYhecF26hUIZ252oVdJe8qtVMptB9BKygWKy6ezzTPPkhQVAAUIgUpkXAdgFUcAGXJuU1G7OrgAB0NVdiXrVJ9gAtarAEjKBuiDs8RS/o8QqYIy6KkFjKcxT3F5tlCZ2XbTmu8ZSfC4q5uo2tukUVRCrgNs8fMZudjZwyLMIgMv81nhJ7TIlBHsJdZlHVOfXV5MVZdH1xZZaTiyAEPNmGaSC6A3QZd63w6aA6AXAMcKZa6pp36MBJAxIxDAQUQCSwlKxggGkBE3m6C4RMwhAQsg2bj9zY+8E4ArYZrueORpegCGPFp0QIkeLhRoDqDVlT2r3dFWifVDQaNbaMkeLdEK9UY81wVT6ULcN01QC8ab+oT+eXUxe2uO9/475p0Nvke3EIbW4XvP8nIGcgZyBf56Bb9zeSD3n641kAAAAAElFTkSuQmCC\"","export const DEFAULT_VIDEO_KEYWORDS =\n '懂车帝,汽车,汽车网站,评测,视频,试驾,试乘,汽车视频,新车试驾视频,新车评测,汽车视频车评视频,帝造计划,懂车帝出品'\nexport const DEFAULT_VIDEO_DESCRIPTION =\n '懂车帝为您提供最新最全的汽车视频信息,包括汽车评测、新车试驾、热点事件评测、汽车保养、车展视频、美女车模视频、汽车碰撞视频、维修视频、漂移视频等精彩内容,看车选车买车就上懂车帝'\nexport const DEFAULT_ARTICLE_KEYWORDS =\n '最新汽车资讯,最新汽车,汽车资讯,汽车文章,文章,图文,试驾,试乘,帝造计划,懂车帝出品'\nexport const DEFAULT_ARTICLE_DESCRIPTION =\n '懂车帝是一个汽车资讯平台,懂车更懂你。它会聪明地分析你的兴趣爱好,自动为你推荐喜欢的内容,看车选车买车就上懂车帝。懂车帝为您提供最新汽车视频,汽车碰撞视频,汽车评测视频,车展视频,美女车模视频,车祸视频,维修视频,漂移视频等'\n\n// 视频播放器loading 懂车帝logo\nexport const ICON_VIDEO_PLAYER_LOADING =\n 'https://sf1-ttcdn-tos.pstatp.com/obj/motor-img/f18f575471aab5f997767e7a9292405c'\n\n// 侧边栏资讯阅读器的id\nexport const NAV_FEED_ID = 'nav-feed-reader'\n\nexport const aid = 1839\nexport const appName = 'auto_web_pc'\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.github.io/ecma262/#sec-string.prototype.repeat\nmodule.exports = ''.repeat || function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","var classof = require('../internals/classof-raw');\n\n// `thisNumberValue` abstract operation\n// https://tc39.github.io/ecma262/#sec-thisnumbervalue\nmodule.exports = function (value) {\n if (typeof value != 'number' && classof(value) != 'Number') {\n throw TypeError('Incorrect invocation');\n }\n return +value;\n};\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAACfElEQVRoBe2Zv07DMBDG7ZQNISiIvYAYKtRX4AEYkJhAsPFsMMAD8ADMbIXyX2WukAChSgylxp8SlxTFzsU5d8GWqqTJ5e77nV3buQoRW8xAzEDMQMzALDLQ6XSas4iDGFViJRRRa5vt7c/hqN/aaO9T7OvYIAZiISbFjywzgqPxSF4Ioea17bdMxNHL8+1Z2XM+9yFejcWpfrYhhBwmc2qn/3h76fLlBEBXIhtKicWckyAQrY2tAzUen6Ti02hSio+F+bm1brf7los/dapJ7W0wGHwtLa/2hRJ72soMtwTfmyur9+9vrzf2p+l30syrLPOT53SikuOHu+uryZWCEycA7CESYkNBTA+bicKsl3ulQ7UUICSEWzztd0YCCAHBIR66yACcEFziKwNwQHCK9wKoA5FOlUWzjf/aUmkIQbxpVWenonle+6q9pngDAIQKEUo8NDhXYhhQmmtc6/VP/l1htc/amTe6WADgzAaRBcr3NJt4+M47zmL5HazD6XcLAses4uGQDQDOLBC4hcYuHk7NBg3nTC1hG5YUQaw9YJltjA72XSwcswEUipdypGMo/TE9zQ5hHAPGuxWK12M+0W9veIPTjr9zzht468KslbvmfVq7B6ziG/Kw/9Q7t/yw2XqiFkCZeJPWkBDeADbx2Uv/uRFvjqEgvADSVbf6rjIERGUA25aBWm7hhqgEUFd8iOFEBuASzw1BAuAWzwlRChBKPBeEc+M129Jivi6a4lFKi86tBGqSsiF2UWjNMhZkSwzfKBhPbzvkELFdddFMU/kBFerWevsdw6ncup4FYiAWtbxOjlblTweyU4vhLGNZJMTLMQMxAzED/yUDP/tcG7+bCcI9AAAAAElFTkSuQmCC\"","/* eslint-disable */\n\nconst emojiResourceList = {\n '[微笑]': {\n index: 1,\n name: '[微笑]',\n image: 'emoji_1_smile@3x.png',\n key: 'emoji_1_smile@3x.png',\n width: 96,\n height: 96,\n },\n '[爱慕]': {\n index: 2,\n name: '[爱慕]',\n image: 'emoji_2_kiss@3x.png',\n key: 'emoji_2_kiss@3x.png',\n width: 96,\n height: 96,\n },\n '[惊呆]': {\n index: 3,\n name: '[惊呆]',\n image: 'emoji_3_daze@3x.png',\n key: 'emoji_3_daze@3x.png',\n width: 96,\n height: 96,\n },\n '[酷拽]': {\n index: 4,\n name: '[酷拽]',\n image: 'emoji_4_smoke@3x.png',\n key: 'emoji_4_smoke@3x.png',\n width: 96,\n height: 96,\n },\n '[抠鼻]': {\n index: 5,\n name: '[抠鼻]',\n image: 'emoji_5_pick_nose@3x.png',\n key: 'emoji_5_pick_nose@3x.png',\n width: 96,\n height: 96,\n },\n '[流泪]': {\n index: 6,\n name: '[流泪]',\n image: 'emoji_6_cry@3x.png',\n key: 'emoji_6_cry@3x.png',\n width: 96,\n height: 96,\n },\n '[发怒]': {\n index: 7,\n name: '[发怒]',\n image: 'emoji_7_anger@3x.png',\n key: 'emoji_7_anger@3x.png',\n width: 96,\n height: 96,\n },\n '[呲牙]': {\n index: 8,\n name: '[呲牙]',\n image: 'emoji_8_laugh@3x.png',\n key: 'emoji_8_laugh@3x.png',\n width: 96,\n height: 96,\n },\n '[鼾睡]': {\n index: 9,\n name: '[鼾睡]',\n image: 'emoji_9_sleep@3x.png',\n key: 'emoji_9_sleep@3x.png',\n width: 96,\n height: 96,\n },\n '[害羞]': {\n index: 10,\n name: '[害羞]',\n image: 'emoji_10_shy@3x.png',\n key: 'emoji_10_shy@3x.png',\n width: 96,\n height: 96,\n },\n '[可爱]': {\n index: 11,\n name: '[可爱]',\n image: 'emoji_11_naughty@3x.png',\n key: 'emoji_11_naughty@3x.png',\n width: 102,\n height: 96,\n },\n '[晕]': {\n index: 12,\n name: '[晕]',\n image: 'emoji_12_dizzy@3x.png',\n key: 'emoji_12_dizzy@3x.png',\n width: 96,\n height: 96,\n },\n '[衰]': {\n index: 13,\n name: '[衰]',\n image: 'emoji_13_stunned@3x.png',\n key: 'emoji_13_stunned@3x.png',\n width: 96,\n height: 96,\n },\n '[闭嘴]': {\n index: 14,\n name: '[闭嘴]',\n image: 'emoji_14_shut_up@3x.png',\n key: 'emoji_14_shut_up@3x.png',\n width: 96,\n height: 96,\n },\n '[机智]': {\n index: 15,\n name: '[机智]',\n image: 'emoji_15_wit@3x.png',\n key: 'emoji_15_wit@3x.png',\n width: 96,\n height: 96,\n },\n '[来看我]': {\n index: 16,\n name: '[来看我]',\n image: 'emoji_16_attention@3x.png',\n key: 'emoji_16_attention@3x.png',\n width: 108,\n height: 96,\n },\n '[灵光一闪]': {\n index: 17,\n name: '[灵光一闪]',\n image: 'emoji_17_hand_sample@3x.png',\n key: 'emoji_17_hand_sample@3x.png',\n width: 102,\n height: 96,\n },\n '[耶]': {\n index: 18,\n name: '[耶]',\n image: 'emoji_18_ye@3x.png',\n key: 'emoji_18_ye@3x.png',\n width: 99,\n height: 96,\n },\n '[捂脸]': {\n index: 19,\n name: '[捂脸]',\n image: 'emoji_19_distress_situation@3x.png',\n key: 'emoji_19_distress_situation@3x.png',\n width: 96,\n height: 96,\n },\n '[打脸]': {\n index: 20,\n name: '[打脸]',\n image: 'emoji_20_play_face@3x.png',\n key: 'emoji_20_play_face@3x.png',\n width: 102,\n height: 96,\n },\n '[大笑]': {\n index: 21,\n name: '[大笑]',\n image: 'emoji_21_smile@3x.png',\n key: 'emoji_21_smile@3x.png',\n width: 96,\n height: 96,\n },\n '[哈欠]': {\n index: 22,\n name: '[哈欠]',\n image: 'emoji_22_yawn@3x.png',\n key: 'emoji_22_yawn@3x.png',\n width: 96,\n height: 96,\n },\n '[震惊]': {\n index: 23,\n name: '[震惊]',\n image: 'emoji_23_surprise@3x.png',\n key: 'emoji_23_surprise@3x.png',\n width: 96,\n height: 96,\n },\n '[送心]': {\n index: 24,\n name: '[送心]',\n image: 'emoji_24_take_heart@3x.png',\n key: 'emoji_24_take_heart@3x.png',\n width: 96,\n height: 96,\n },\n '[困]': {\n index: 25,\n name: '[困]',\n image: 'emoji_25_sleepy@3x.png',\n key: 'emoji_25_sleepy@3x.png',\n width: 96,\n height: 96,\n },\n '[what]': {\n index: 26,\n name: '[what]',\n image: 'emoji_26_what@3x.png',\n key: 'emoji_26_what@3x.png',\n width: 105,\n height: 96,\n },\n '[泣不成声]': {\n index: 27,\n name: '[泣不成声]',\n image: 'emoji_27_sobbing@3x.png',\n key: 'emoji_27_sobbing@3x.png',\n width: 96,\n height: 96,\n },\n '[小鼓掌]': {\n index: 28,\n name: '[小鼓掌]',\n image: 'emoji_28_handclap@3x.png',\n key: 'emoji_28_handclap@3x.png',\n width: 96,\n height: 96,\n },\n '[酷]': {\n index: 29,\n name: '[酷]',\n image: 'emoji_29_cool@3x.png',\n key: 'emoji_29_cool@3x.png',\n width: 96,\n height: 96,\n },\n '[大金牙]': {\n index: 29,\n name: '[大金牙]',\n image: 'emoji_29_cool@3x.png',\n key: 'emoji_29_cool@3x.png',\n width: 96,\n height: 96,\n },\n '[偷笑]': {\n index: 30,\n name: '[偷笑]',\n image: 'emoji_30_titter@3x.png',\n key: 'emoji_30_titter@3x.png',\n width: 96,\n height: 96,\n },\n '[石化]': {\n index: 31,\n name: '[石化]',\n image: 'emoji_31_lightning_strike@3x.png',\n key: 'emoji_31_lightning_strike@3x.png',\n width: 96,\n height: 96,\n },\n '[思考]': {\n index: 32,\n name: '[思考]',\n image: 'emoji_32_meditation@3x.png',\n key: 'emoji_32_meditation@3x.png',\n width: 96,\n height: 96,\n },\n '[吐血]': {\n index: 33,\n name: '[吐血]',\n image: 'emoji_33_vomiting_blood@3x.png',\n key: 'emoji_33_vomiting_blood@3x.png',\n width: 96,\n height: 96,\n },\n '[可怜]': {\n index: 34,\n name: '[可怜]',\n image: 'emoji_34_acting_cute@3x.png',\n key: 'emoji_34_acting_cute@3x.png',\n width: 96,\n height: 96,\n },\n '[嘘]': {\n index: 35,\n name: '[嘘]',\n image: 'emoji_35_quietly@3x.png',\n key: 'emoji_35_quietly@3x.png',\n width: 96,\n height: 96,\n },\n '[撇嘴]': {\n index: 36,\n name: '[撇嘴]',\n image: 'emoji_36_hum@3x.png',\n key: 'emoji_36_hum@3x.png',\n width: 96,\n height: 96,\n },\n '[黑线]': {\n index: 37,\n name: '[黑线]',\n image: 'emoji_37_khan@3x.png',\n key: 'emoji_37_khan@3x.png',\n width: 96,\n height: 96,\n },\n '[笑哭]': {\n index: 38,\n name: '[笑哭]',\n image: 'emoji_38_forced_smile@3x.png',\n key: 'emoji_38_forced_smile@3x.png',\n width: 111,\n height: 96,\n },\n '[雾霾]': {\n index: 39,\n name: '[雾霾]',\n image: 'emoji_39_haze@3x.png',\n key: 'emoji_39_haze@3x.png',\n width: 96,\n height: 96,\n },\n '[奸笑]': {\n index: 40,\n name: '[奸笑]',\n image: 'emoji_40_smirk@3x.png',\n key: 'emoji_40_smirk@3x.png',\n width: 96,\n height: 96,\n },\n '[得意]': {\n index: 41,\n name: '[得意]',\n image: 'emoji_41_cool@3x.png',\n key: 'emoji_41_cool@3x.png',\n width: 96,\n height: 96,\n },\n '[憨笑]': {\n index: 42,\n name: '[憨笑]',\n image: 'emoji_42_bad_smile@3x.png',\n key: 'emoji_42_bad_smile@3x.png',\n width: 96,\n height: 96,\n },\n '[抓狂]': {\n index: 43,\n name: '[抓狂]',\n image: 'emoji_43_crazy@3x.png',\n key: 'emoji_43_crazy@3x.png',\n width: 96,\n height: 96,\n },\n '[泪奔]': {\n index: 44,\n name: '[泪奔]',\n image: 'emoji_44_tears@3x.png',\n key: 'emoji_44_tears@3x.png',\n width: 96,\n height: 96,\n },\n '[钱]': {\n index: 45,\n name: '[钱]',\n image: 'emoji_45_money@3x.png',\n key: 'emoji_45_money@3x.png',\n width: 96,\n height: 96,\n },\n '[吻]': {\n index: 46,\n name: '[吻]',\n image: 'emoji_46_kiss@3x.png',\n key: 'emoji_46_kiss@3x.png',\n width: 96,\n height: 96,\n },\n '[恐惧]': {\n index: 47,\n name: '[恐惧]',\n image: 'emoji_47_fear@3x.png',\n key: 'emoji_47_fear@3x.png',\n width: 96,\n height: 96,\n },\n '[笑]': {\n index: 48,\n name: '[笑]',\n image: 'emoji_48_smile@3x.png',\n key: 'emoji_48_smile@3x.png',\n width: 96,\n height: 96,\n },\n '[快哭了]': {\n index: 49,\n name: '[快哭了]',\n image: 'emoji_49_injustice@3x.png',\n key: 'emoji_49_injustice@3x.png',\n width: 96,\n height: 96,\n },\n '[翻白眼]': {\n index: 50,\n name: '[翻白眼]',\n image: 'emoji_50_their@3x.png',\n key: 'emoji_50_their@3x.png',\n width: 96,\n height: 96,\n },\n '[互粉]': {\n index: 51,\n name: '[互粉]',\n image: 'emoji_51_focus@3x.png',\n key: 'emoji_51_focus@3x.png',\n width: 96,\n height: 96,\n },\n '[赞]': {\n index: 52,\n name: '[赞]',\n image: 'emoji_52_like@3x.png',\n key: 'emoji_52_like@3x.png',\n width: 96,\n height: 96,\n },\n '[鼓掌]': {\n index: 53,\n name: '[鼓掌]',\n image: 'emoji_53_handclap@3x.png',\n key: 'emoji_53_handclap@3x.png',\n width: 96,\n height: 96,\n },\n '[谢谢]': {\n index: 54,\n name: '[谢谢]',\n image: 'emoji_54_3Q@3x.png',\n key: 'emoji_54_3Q@3x.png',\n width: 96,\n height: 96,\n },\n '[祈祷]': {\n index: 54,\n name: '[祈祷]',\n image: 'emoji_54_3Q@3x.png',\n key: 'emoji_54_3Q@3x.png',\n width: 96,\n height: 96,\n },\n '[kiss]': {\n index: 55,\n name: '[kiss]',\n image: 'emoji_55_kiss@3x.png',\n key: 'emoji_55_kiss@3x.png',\n width: 96,\n height: 96,\n },\n '[去污粉]': {\n index: 56,\n name: '[去污粉]',\n image: 'emoji_56_household_cleanser@3x.png',\n key: 'emoji_56_household_cleanser@3x.png',\n width: 96,\n height: 96,\n },\n '[666]': {\n index: 57,\n name: '[666]',\n image: 'emoji_57_666@3x.png',\n key: 'emoji_57_666@3x.png',\n width: 96,\n height: 96,\n },\n '[玫瑰]': {\n index: 58,\n name: '[玫瑰]',\n image: 'emoji_58_rose@3x.png',\n key: 'emoji_58_rose@3x.png',\n width: 96,\n height: 96,\n },\n '[胡瓜]': {\n index: 59,\n name: '[胡瓜]',\n image: 'emoji_59_cucumber@3x.png',\n key: 'emoji_59_cucumber@3x.png',\n width: 96,\n height: 96,\n },\n '[啤酒]': {\n index: 60,\n name: '[啤酒]',\n image: 'emoji_60_beer@3x.png',\n key: 'emoji_60_beer@3x.png',\n width: 96,\n height: 96,\n },\n '[我想静静]': {\n index: 61,\n name: '[我想静静]',\n image: 'emoji_61_distress_situation@3x.png',\n key: 'emoji_61_distress_situation@3x.png',\n width: 105,\n height: 96,\n },\n '[委屈]': {\n index: 62,\n name: '[委屈]',\n image: 'emoji_62_injustice@3x.png',\n key: 'emoji_62_injustice@3x.png',\n width: 96,\n height: 96,\n },\n '[舔屏]': {\n index: 63,\n name: '[舔屏]',\n image: 'emoji_63_lick_screen@3x.png',\n key: 'emoji_63_lick_screen@3x.png',\n width: 96,\n height: 96,\n },\n '[鄙视]': {\n index: 64,\n name: '[鄙视]',\n image: 'emoji_64_despise@3x.png',\n key: 'emoji_64_despise@3x.png',\n width: 96,\n height: 96,\n },\n '[飞吻]': {\n index: 65,\n name: '[飞吻]',\n image: 'emoji_65_kiss@3x.png',\n key: 'emoji_65_kiss@3x.png',\n width: 96,\n height: 96,\n },\n '[再见]': {\n index: 66,\n name: '[再见]',\n image: 'emoji_66_bye@3x.png',\n key: 'emoji_66_bye@3x.png',\n width: 96,\n height: 96,\n },\n '[紫薇别走]': {\n index: 67,\n name: '[紫薇别走]',\n image: 'emoji_67_erkang@3x.png',\n key: 'emoji_67_erkang@3x.png',\n width: 108,\n height: 96,\n },\n '[求抱抱]': {\n index: 68,\n name: '[求抱抱]',\n image: 'emoji_68_hug@3x.png',\n key: 'emoji_68_hug@3x.png',\n width: 108,\n height: 96,\n },\n '[听歌]': {\n index: 69,\n name: '[听歌]',\n image: 'emoji_69_hitler@3x.png',\n key: 'emoji_69_hitler@3x.png',\n width: 96,\n height: 96,\n },\n '[周冬雨的凝视]': {\n index: 70,\n name: '[周冬雨的凝视]',\n image: 'emoji_70_zhoudongyu_gaze@3x.png',\n key: 'emoji_70_zhoudongyu_gaze@3x.png',\n width: 96,\n height: 96,\n },\n '[马思纯的微笑]': {\n index: 71,\n name: '[马思纯的微笑]',\n image: 'emoji_71_masichun_smile@3x.png',\n key: 'emoji_71_masichun_smile@3x.png',\n width: 96,\n height: 96,\n },\n '[吐舌]': {\n index: 72,\n name: '[吐舌]',\n image: 'emoji_72_dogo@3x.png',\n key: 'emoji_72_dogo@3x.png',\n width: 96,\n height: 96,\n },\n '[呆无辜]': {\n index: 73,\n name: '[呆无辜]',\n image: 'emoji_73_cat@3x.png',\n key: 'emoji_73_cat@3x.png',\n width: 96,\n height: 96,\n },\n '[看]': {\n index: 74,\n name: '[看]',\n image: 'emoji_74_2ha@3x.png',\n key: 'emoji_74_2ha@3x.png',\n width: 96,\n height: 96,\n },\n '[白眼]': {\n index: 75,\n name: '[白眼]',\n image: 'emoji_75_dogo@3x.png',\n key: 'emoji_75_dogo@3x.png',\n width: 96,\n height: 96,\n },\n '[熊吉]': {\n index: 76,\n name: '[熊吉]',\n image: 'emoji_76_bear@3x.png',\n key: 'emoji_76_bear@3x.png',\n width: 96,\n height: 96,\n },\n '[骷髅]': {\n index: 77,\n name: '[骷髅]',\n image: 'emoji_77_skeleton@3x.png',\n key: 'emoji_77_skeleton@3x.png',\n width: 96,\n height: 96,\n },\n '[黑脸]': {\n index: 78,\n name: '[黑脸]',\n image: 'emoji_78_black_face@3x.png',\n key: 'emoji_78_black_face@3x.png',\n width: 96,\n height: 96,\n },\n '[吃瓜群众]': {\n index: 79,\n name: '[吃瓜群众]',\n image: 'emoji_79_eat_melon@3x.png',\n key: 'emoji_79_eat_melon@3x.png',\n width: 96,\n height: 96,\n },\n '[绿帽子]': {\n index: 80,\n name: '[绿帽子]',\n image: 'emoji_80_green_hat@3x.png',\n key: 'emoji_80_green_hat@3x.png',\n width: 96,\n height: 96,\n },\n '[汗]': {\n index: 81,\n name: '[汗]',\n image: 'emoji_81_sweat@3x.png',\n key: 'emoji_81_sweat@3x.png',\n width: 96,\n height: 96,\n },\n '[摸头]': {\n index: 82,\n name: '[摸头]',\n image: 'emoji_82_lear_ropes@3x.png',\n key: 'emoji_82_lear_ropes@3x.png',\n width: 96,\n height: 96,\n },\n '[皱眉]': {\n index: 83,\n name: '[皱眉]',\n image: 'emoji_83_frown@3x.png',\n key: 'emoji_83_frown@3x.png',\n width: 96,\n height: 96,\n },\n '[擦汗]': {\n index: 84,\n name: '[擦汗]',\n image: 'emoji_84_wipe_sweat@3x.png',\n key: 'emoji_84_wipe_sweat@3x.png',\n width: 96,\n height: 96,\n },\n '[红脸]': {\n index: 85,\n name: '[红脸]',\n image: 'emoji_85_redface@3x.png',\n key: 'emoji_85_redface@3x.png',\n width: 96,\n height: 96,\n },\n '[尬笑]': {\n index: 86,\n name: '[尬笑]',\n image: 'emoji_86_orz@3x.png',\n key: 'emoji_86_orz@3x.png',\n width: 96,\n height: 96,\n },\n '[做鬼脸]': {\n index: 87,\n name: '[做鬼脸]',\n image: 'emoji_87_makeface@3x.png',\n key: 'emoji_87_makeface@3x.png',\n width: 96,\n height: 96,\n },\n '[强]': {\n index: 88,\n name: '[强]',\n image: 'emoji_88_intensity@3x.png',\n key: 'emoji_88_intensity@3x.png',\n width: 96,\n height: 96,\n },\n '[如花]': {\n index: 89,\n name: '[如花]',\n image: 'emoji_89_ruhua@3x.png',\n key: 'emoji_89_ruhua@3x.png',\n width: 96,\n height: 96,\n },\n '[吐]': {\n index: 90,\n name: '[吐]',\n image: 'emoji_90_spit@3x.png',\n key: 'emoji_90_spit@3x.png',\n width: 96,\n height: 96,\n },\n '[惊喜]': {\n index: 91,\n name: '[惊喜]',\n image: 'emoji_91_surprise@3x.png',\n key: 'emoji_91_surprise@3x.png',\n width: 96,\n height: 96,\n },\n '[敲打]': {\n index: 92,\n name: '[敲打]',\n image: 'emoji_92_knock@3x.png',\n key: 'emoji_92_knock@3x.png',\n width: 96,\n height: 96,\n },\n '[奋斗]': {\n index: 93,\n name: '[奋斗]',\n image: 'emoji_93_refuel@3x.png',\n key: 'emoji_93_refuel@3x.png',\n width: 96,\n height: 96,\n },\n '[吐彩虹]': {\n index: 94,\n name: '[吐彩虹]',\n image: 'emoji_94_rainbow@3x.png',\n key: 'emoji_94_rainbow@3x.png',\n width: 96,\n height: 96,\n },\n '[大哭]': {\n index: 95,\n name: '[大哭]',\n image: 'emoji_95_bigcry@3x.png',\n key: 'emoji_95_bigcry@3x.png',\n width: 96,\n height: 96,\n },\n '[比心]': {\n index: 96,\n name: '[比心]',\n image: 'emoji_96_fingerheart@3x.png',\n key: 'emoji_96_fingerheart@3x.png',\n width: 96,\n height: 96,\n },\n '[加油]': {\n index: 97,\n name: '[加油]',\n image: 'emoji_97_refuel@3x.png',\n key: 'emoji_97_refuel@3x.png',\n width: 96,\n height: 96,\n },\n '[碰拳]': {\n index: 98,\n name: '[碰拳]',\n image: 'emoji_98_fist@3x.png',\n key: 'emoji_98_fist@3x.png',\n width: 96,\n height: 96,\n },\n '[ok]': {\n index: 99,\n name: '[ok]',\n image: 'emoji_99_OK@3x.png',\n key: 'emoji_99_OK@3x.png',\n width: 96,\n height: 96,\n },\n '[击掌]': {\n index: 100,\n name: '[击掌]',\n image: 'emoji_100_highfive@3x.png',\n key: 'emoji_100_highfive@3x.png',\n width: 96,\n height: 96,\n },\n '[左上]': {\n index: 101,\n name: '[左上]',\n image: 'emoji_101_left@3x.png',\n key: 'emoji_101_left@3x.png',\n width: 96,\n height: 96,\n },\n '[握手]': {\n index: 102,\n name: '[握手]',\n image: 'emoji_102_shakehand@3x.png',\n key: 'emoji_102_shakehand@3x.png',\n width: 96,\n height: 96,\n },\n '[18禁]': {\n index: 103,\n name: '[18禁]',\n image: 'emoji_103_18@3x.png',\n key: 'emoji_103_18@3x.png',\n width: 96,\n height: 96,\n },\n '[刀]': {\n index: 104,\n name: '[刀]',\n image: 'emoji_104_knife@3x.png',\n key: 'emoji_104_knife@3x.png',\n width: 96,\n height: 96,\n },\n '[V5]': {\n index: 105,\n name: '[V5]',\n image: 'emoji_105_V5@3x.png',\n key: 'emoji_105_V5@3x.png',\n width: 96,\n height: 96,\n },\n '[给力]': {\n index: 106,\n name: '[给力]',\n image: 'emoji_106_awesome@3x.png',\n key: 'emoji_106_awesome@3x.png',\n width: 96,\n height: 96,\n },\n '[心]': {\n index: 107,\n name: '[心]',\n image: 'emoji_107_heart@3x.png',\n key: 'emoji_107_heart@3x.png',\n width: 96,\n height: 96,\n },\n '[伤心]': {\n index: 108,\n name: '[伤心]',\n image: 'emoji_108_broken_heart@3x.png',\n key: 'emoji_108_broken_heart@3x.png',\n width: 96,\n height: 96,\n },\n '[屎]': {\n index: 109,\n name: '[屎]',\n image: 'emoji_109_shit@3x.png',\n key: 'emoji_109_shit@3x.png',\n width: 96,\n height: 96,\n },\n '[礼物]': {\n index: 110,\n name: '[礼物]',\n image: 'emoji_110_gifts@3x.png',\n key: 'emoji_110_gifts@3x.png',\n width: 96,\n height: 96,\n },\n '[蛋糕]': {\n index: 111,\n name: '[蛋糕]',\n image: 'emoji_111_cake@3x.png',\n key: 'emoji_111_cake@3x.png',\n width: 96,\n height: 96,\n },\n '[撒花]': {\n index: 112,\n name: '[撒花]',\n image: 'emoji_112_flower@3x.png',\n key: 'emoji_112_flower@3x.png',\n width: 96,\n height: 96,\n },\n '[不看]': {\n index: 113,\n name: '[不看]',\n image: 'emoji_113_lookat@3x.png',\n key: 'emoji_113_lookat@3x.png',\n width: 96,\n height: 96,\n },\n '[炸弹]': {\n index: 114,\n name: '[炸弹]',\n image: 'emoji_114_bomb@3x.png',\n key: 'emoji_114_bomb@3x.png',\n width: 96,\n height: 96,\n },\n} as {\n [key: string]: {\n index: number\n name: string\n image: string\n key: string\n width: number\n height: number\n }\n}\n\nexport const emoji = (string: string) => {\n const reUnescapedHtml = /(\\[[^\\]]+[\\]])+?/g\n const reHasUnescapedHtml = RegExp(reUnescapedHtml.source)\n return string && reHasUnescapedHtml.test(string)\n ? string.replace(reUnescapedHtml, chr => {\n if (emojiResourceList[chr]) {\n return ``\n }\n return chr\n })\n : string\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","import { useContext, useEffect, useState } from 'react'\nimport fetch from 'lib/decorated-fetch'\nimport getUrl from 'lib/url'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport { GlobalStoreContext } from 'Components/store'\n\nfunction useFetchCollected({\n id,\n collected,\n}: {\n id?: number | string\n collected?: boolean\n}) {\n const [curCollected, setCurCollected] = useState(collected)\n\n const { state } = useContext(GlobalStoreContext)\n\n const userId = state.userData?.user_id\n\n useEffect(() => {\n if (!userId) {\n return\n }\n fetch(\n getUrl(\n `/motor/pc/common/article/is_collect?${serializeObject({\n user_id: userId,\n group_id: id,\n })}`\n )\n ).then((res) => {\n if (res?.status === 0) {\n setCurCollected(res.data?.is_collect)\n }\n })\n }, [id, userId])\n\n return curCollected\n}\n\nexport default useFetchCollected\n","'use strict';\nvar $ = require('../internals/export');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toObject = require('../internals/to-object');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar createProperty = require('../internals/create-property');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('splice');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('splice', { ACCESSORS: true, 0: 0, 1: 2 });\n\nvar max = Math.max;\nvar min = Math.min;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;\nvar MAXIMUM_ALLOWED_LENGTH_EXCEEDED = 'Maximum allowed length exceeded';\n\n// `Array.prototype.splice` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.splice\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT || !USES_TO_LENGTH }, {\n splice: function splice(start, deleteCount /* , ...items */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var insertCount, actualDeleteCount, A, k, from, to;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toInteger(deleteCount), 0), len - actualStart);\n }\n if (len + insertCount - actualDeleteCount > MAX_SAFE_INTEGER) {\n throw TypeError(MAXIMUM_ALLOWED_LENGTH_EXCEEDED);\n }\n A = arraySpeciesCreate(O, actualDeleteCount);\n for (k = 0; k < actualDeleteCount; k++) {\n from = actualStart + k;\n if (from in O) createProperty(A, k, O[from]);\n }\n A.length = actualDeleteCount;\n if (insertCount < actualDeleteCount) {\n for (k = actualStart; k < len - actualDeleteCount; k++) {\n from = k + actualDeleteCount;\n to = k + insertCount;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n for (k = len; k > len - actualDeleteCount + insertCount; k--) delete O[k - 1];\n } else if (insertCount > actualDeleteCount) {\n for (k = len - actualDeleteCount; k > actualStart; k--) {\n from = k + actualDeleteCount - 1;\n to = k + insertCount - 1;\n if (from in O) O[to] = O[from];\n else delete O[to];\n }\n }\n for (k = 0; k < insertCount; k++) {\n O[k + actualStart] = arguments[k + 2];\n }\n O.length = len - actualDeleteCount + insertCount;\n return A;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('every');\n\n// `Array.prototype.every` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","'use strict';\nvar $ = require('../internals/export');\nvar toInteger = require('../internals/to-integer');\nvar thisNumberValue = require('../internals/this-number-value');\nvar repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar nativeToFixed = 1.0.toFixed;\nvar floor = Math.floor;\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar FORCED = nativeToFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed.call({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.github.io/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n // eslint-disable-next-line max-statements\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toInteger(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n var multiply = function (n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n };\n\n var divide = function (n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n };\n\n var dataToString = function () {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = String(data[index]);\n s = s === '' ? t : s + repeat.call('0', 7 - t.length) + t;\n }\n } return s;\n };\n\n if (fractDigits < 0 || fractDigits > 20) throw RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n result = dataToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n result = dataToString() + repeat.call('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat.call('0', fractDigits - k) + result\n : result.slice(0, k - fractDigits) + '.' + result.slice(k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","import React, { useRef, useEffect } from 'react'\n\nconst createRootElement = (id: string) => {\n const container = document.createElement('div')\n container.setAttribute('id', id)\n return container\n}\n\nconst addRootElement = (rootElem: HTMLElement) => {\n document.body.appendChild(rootElem)\n}\n\nconst usePortal = (id: string) => {\n const parentElemRef = useRef(null)\n\n useEffect(() => {\n const oldElem = document.getElementById(id)\n const parentElem = oldElem || createRootElement(id)\n\n if (!oldElem) {\n addRootElement(parentElem)\n }\n\n parentElemRef.current = parentElem\n\n return () => {\n if (parentElem.childNodes.length === -1) {\n parentElem.remove()\n }\n }\n }, [])\n\n const getParentElem = () => {\n if (!parentElemRef.current) {\n parentElemRef.current = document.createElement('div')\n }\n\n return parentElemRef.current\n }\n\n return getParentElem()\n}\n\nexport default usePortal\n","import React, { ReactNode, useState } from 'react'\nimport usePortal from './usePortal'\nimport { createPortal } from 'react-dom'\nimport { Fade } from './animation'\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\ninterface IModalConfirmConfig {}\n\ninterface IResult {\n name: string\n value: string\n description?: string\n}\n\nexport interface IReportData {\n type: 'confirm' | 'cancel'\n data: IResult[]\n}\n\ninterface IProps {\n visible: boolean\n config?: IModalConfirmConfig\n onButtonClick?: (data: IReportData) => void\n}\n\n/**\n * 评论举报弹框\n */\nconst ModalReport = ({ visible, config, onButtonClick }: IProps) => {\n const target = usePortal('__modal-report')\n const reportConfig = [\n {\n name: '淫秽色情',\n value: '304',\n },\n {\n name: '营销广告',\n value: '302',\n },\n {\n name: '恶意谩骂攻击',\n value: '312',\n },\n {\n name: '我有话说',\n value: '315',\n },\n ]\n\n const [checkedValue, setCheckedValue] = useState({\n name: '淫秽色情',\n value: '304',\n })\n const [description, setDescription] = useState('')\n\n const handleConfirmClick = () => {\n onButtonClick &&\n onButtonClick({\n type: 'confirm',\n data: [\n {\n name: checkedValue.name,\n value: checkedValue.value,\n description,\n },\n ],\n })\n }\n\n const handleCancelClick = () => {\n onButtonClick &&\n onButtonClick({\n type: 'cancel',\n data: [],\n })\n }\n\n const handleResultChange = (e: any) => {\n setCheckedValue({\n name: e.currentTarget.id,\n value: e.currentTarget.value,\n })\n }\n\n const handleResultExtraChange = (e: any) => {\n setDescription(e.currentTarget.value)\n }\n\n const stopPropagation = (e: any) => {\n e.stopPropagation()\n }\n\n const render = (): ReactNode => {\n return (\n <>\n \n
\n
\n
举报此人
\n
\n {reportConfig.map((reportItem, reportIndex) => {\n return (\n \n \n \n
\n )\n })}\n
\n\n {checkedValue.value === '315' ? (\n
\n \n
\n ) : null}\n\n
\n
\n {'取消'}\n
\n
\n {'确认'}\n
\n
\n
\n \n
\n \n \n )\n }\n\n if (!visible) {\n return null\n }\n\n return createPortal(render(), target)\n}\n\nexport default ModalReport\n"],"sourceRoot":""}