{"version":3,"sources":["webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/nonIterableSpread.js","webpack://_N_E/./components/loading.tsx","webpack://_N_E/./components/button.tsx","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.array.is-array.js","webpack://_N_E/./components/modal.tsx","webpack://_N_E/./node_modules/@arsenal/arsenal/node_modules/core-js/modules/es6.regexp.replace.js","webpack://_N_E/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?8796","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/toConsumableArray.js","webpack://_N_E/./node_modules/core-js/modules/es.array.sort.js","webpack://_N_E/./node_modules/@arsenal/arsenal/modules/safeGet.js","webpack://_N_E/./lib/request.ts","webpack://_N_E/./components/countdown.tsx","webpack://_N_E/./components/city-picker.tsx","webpack://_N_E/./components/checkbox.tsx","webpack://_N_E/./pages-components/dealer/components/dealer-list.tsx","webpack://_N_E/./pages-components/dealer/components/declare.tsx","webpack://_N_E/./pages-components/dealer/home.tsx","webpack://_N_E/./pages/dealer.tsx","webpack://_N_E/./node_modules/@babel/runtime-corejs2/helpers/arrayWithoutHoles.js","webpack://_N_E/./node_modules/core-js/modules/es.number.is-nan.js","webpack://_N_E/./lib/utils.ts","webpack://_N_E/./components/city.tsx","webpack://_N_E/./node_modules/core-js/modules/es.promise.finally.js","webpack://_N_E/./node_modules/core-js/modules/es.array.splice.js"],"names":["module","exports","TypeError","Loading","Button","event","props","loading","disabled","onClick","this","type","style","children","className","role","classnames","React","$export","S","isArray","Modal","getContainer","container","document","createElement","body","appendChild","e","maskClosable","target","currentTarget","onClose","close","clientWidthBefore","clientWidth","overflow","scrollBarWidth","paddingRight","visible","title","closable","CloseIcon","footer","width","height","dest","undefined","timeout","in","onEntered","onExited","unmountOnExit","handleMaskClick","classNames","getComponent","PureComponent","anObject","toObject","toLength","toInteger","advanceStringIndex","regExpExec","max","Math","min","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","defined","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","O","fn","call","String","regexp","res","done","value","rx","functionalReplace","global","fullUnicode","unicode","lastIndex","results","result","push","it","accumulatedResult","nextSourcePosition","i","length","matched","position","index","captures","j","namedCaptures","groups","replacerArgs","concat","replacement","apply","getSubstitution","slice","str","tailPos","m","symbols","match","ch","capture","charAt","n","f","window","__NEXT_P","arrayWithoutHoles","iterableToArray","nonIterableSpread","arr","$","aFunction","fails","arrayMethodIsStrict","test","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","proto","forced","comparefn","_interopRequireDefault","Object","defineProperty","default","_toConsumableArray2","_isArray","nomarlize","keys","reduce","prev","key","replace","split","safeGet","_len","arguments","Array","_key","every","_default","request","url","options","Promise","resolve","reject","newOptions","credentials","method","FormData","headers","Accept","fetch","then","response","ok","json","catch","get","data","newUrl","getUrl","indexOf","serializeObject","post","CountDown","count","interval","onStop","useState","current","setCurrent","useEffect","setTimeout","clearTimeout","CityPicker","onChange","setVisible","cityName","useCityName","togglePicker","stopPropagation","CheckBox","checked","setState","defaultChecked","state","nextProps","name","classString","handleChange","DealerList","sortTypeIndex","item","dealer_id","newValue","errMsg","splice","triggerChange","defaultValue","list","tips","dealerLimitCount","prevProps","carId","sortType","car_id","city_name","sort_type","forEach","info","map","defaultDealerList","err","filter","_","toggleCheck","dealer_type","dealer_name","sale_region","price","address","dealer_phone","error","sortTypeLastIndex","sortTypeList","onChangeSortType","_renderDealerList","DeclareText","show","onHide","memo","DealerHome","option","dealerIds","indexList","checkedDealerIds","dealerRankList","dealerError","newState","showModal","phone","validatePhone","posting","status","isCounter","alert","prompts","finally","phoneError","seriesName","seriesId","showVercode","vercode","vercodeError","hasError","need_vercode","dealer_ids","join","data_from","extra","JSON","stringify","sys_location","zt","getZT","from","isSuccess","sendTeaCommEvent","car_series_name","car_series_id","car_style_id","selected_city","dealer_id_list","dealer_rank_list","submit_status","default_select_dealer","need_verify","fail_reason","Toast","success","description","LandingPageUrl","location","href","AppId","EventName","EventTs","Date","now","AdPlatformId","growth_deepevent","carList","context","getCarList","getQuery","Number","activeCarId","getActiveCar","series_id","req_type","text","year","a","b","temp","label","coverUrl","as","src","applyHttpsImage","alt","onChangeCar","onChangeCity","maxLength","onChangeInput","placeholder","onGetVercode","onStopCounter","onSubmit","toggleModal","onChangeDealer","query","series_ids","seriesInfo","series_name","cover_url","GlobalStoreContext","Dealer","_Array$isArray","arr2","stat","isNaN","number","unicodeToChar","fromCharCode","parseInt","getBoundingClientRect","element","rect","rectTop","navigator","userAgent","tagName","scrollTop","top","left","right","bottom","City","useContext","globalStore","dispatch","cities","ref","useRef","useScrollSpy","node","querySelectorAll","currIndex","setCurrIndex","cityRef","fetchCities","useCallback","unshift","initials","city","payload","handleDocumentClick","contains","on","off","data-letter","active","toLocaleUpperCase","IS_PURE","NativePromise","getBuiltIn","speciesConstructor","promiseResolve","redefine","real","prototype","onFinally","C","isFunction","x","toAbsoluteIndex","arraySpeciesCreate","createProperty","arrayMethodHasSpeciesSupport","arrayMethodUsesToLength","HAS_SPECIES_SUPPORT","USES_TO_LENGTH","ACCESSORS","0","1","start","deleteCount","insertCount","actualDeleteCount","A","k","to","len","actualStart","argumentsLength"],"mappings":"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","file":"static/chunks/pages/dealer-9a87960a1ad4ada3625c.js","sourcesContent":["function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nmodule.exports = _nonIterableSpread;","import * as React from 'react'\n\nconst Loading = () => (\n
\n
\n
\n
\n
\n 加载中…\n
\n \n
\n)\n\nexport default Loading\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 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","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\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 CloseIcon?: (x: any) => JSX.Element\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\n const scrollBarWidth = clientWidthAfter - clientWidthBefore\n\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 CloseIcon,\n footer,\n width,\n height,\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 {!!title && (\n
\n
{title}
\n
\n )}\n {closable &&\n (CloseIcon ? (\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","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/dealer\",\n function () {\n return require(\"private-next-pages/dealer.tsx\");\n }\n ]);\n ","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar test = [];\nvar nativeSort = test.sort;\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD;\n\n// `Array.prototype.sort` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? nativeSort.call(toObject(this))\n : nativeSort.call(toObject(this), aFunction(comparefn));\n }\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime-corejs2/helpers/interopRequireDefault\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime-corejs2/helpers/toConsumableArray\"));\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nvar _isArray = _interopRequireDefault(require(\"@babel/runtime-corejs2/core-js/array/is-array\"));\n\nvar nomarlize = function nomarlize(keys) {\n var keyList;\n\n if ((0, _isArray.default)(keys[0])) {\n keyList = keys[0];\n } else {\n keyList = keys;\n }\n\n return keyList.reduce(function (prev, key) {\n return (0, _toConsumableArray2.default)(prev).concat((0, _toConsumableArray2.default)((key + '').replace(/\\[['\"]/g, '[').replace(/\\]|['\"](?=\\])/g, '').split(/[.[]/)));\n }, []);\n};\n\nfunction safeGet(target) {\n for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n keys[_key - 1] = arguments[_key];\n }\n\n var value = target;\n\n if (!value || keys.length === 0) {\n return value;\n }\n\n keys = nomarlize(keys);\n keys.every(function (key) {\n value = value[key];\n return value !== void 0 && value !== null;\n });\n return value;\n}\n\nsafeGet.default = safeGet;\nvar _default = safeGet;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","import fetch from 'isomorphic-unfetch'\nimport serializeObject from '@arsenal/arsenal/modules/serializeObject'\nimport getUrl from './url'\n\nexport default function request(url: RequestInfo, options?: RequestInit) {\n return new Promise((resolve, reject) => {\n const newOptions: RequestInit = {\n credentials: 'include',\n ...options,\n }\n if (newOptions.method === 'POST' || newOptions.method === 'PUT') {\n if (newOptions.body instanceof FormData) {\n newOptions.headers = {\n Accept: 'application/json',\n ...newOptions.headers,\n }\n } else {\n newOptions.headers = {\n Accept: 'application/json',\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',\n ...newOptions.headers,\n }\n }\n }\n fetch(url, newOptions)\n .then(response => {\n if (response.ok) {\n return response\n } else {\n reject(response)\n throw response\n }\n })\n .then(response => response.json())\n .then(response => resolve(response))\n .catch(reject)\n })\n}\n\nrequest.get = (url: string, data?: object, options?: RequestInit) => {\n let newUrl = getUrl(url)\n if (data) {\n newUrl += `${url.indexOf('?') === -1 ? '?' : '&'}${serializeObject(data)}`\n }\n return request(newUrl, options)\n}\n\nrequest.post = (url: string, data?: object, options?: RequestInit) => {\n const newOptions: Partial = {\n method: 'POST',\n ...options,\n }\n if (data) {\n newOptions.body = serializeObject(data)\n }\n return request(getUrl(url), newOptions)\n}\n","import React, { useEffect, useState } from 'react'\n\ninterface ICountDownProps {\n count: number // 秒\n interval?: number // 多少秒刷新一次\n onStop?: () => void\n}\n\nexport default function CountDown({\n count,\n interval = 1,\n onStop,\n}: ICountDownProps) {\n const [current, setCurrent] = useState(count)\n\n useEffect(() => {\n if (current <= 0) {\n onStop && onStop()\n return\n }\n\n const timeout = setTimeout(() => setCurrent(current - 1), interval * 1000)\n\n return () => clearTimeout(timeout)\n }, [current])\n\n return {current}\n}\n","import React, { useContext, useState, useEffect } from 'react'\nimport City from './city'\nimport { useCityName } from './hooks'\n\nexport interface ICityPickerProps {\n onChange?: (value: string) => void\n}\n\nexport default function CityPicker({ onChange }: ICityPickerProps) {\n const [visible, setVisible] = useState(false)\n const cityName = useCityName()\n const togglePicker = (e: any) => {\n if (e !== undefined && typeof e !== 'string') {\n e.stopPropagation()\n }\n setVisible(!visible)\n typeof e === 'string' && cityName !== e && onChange && onChange(e)\n }\n return (\n
\n
{cityName}
\n \n {visible && }\n \n
\n )\n}\n","import React, { PureComponent, ChangeEvent, Fragment } from 'react'\nimport classNames from 'classnames'\n\nexport interface ICheckboxProps {\n name?: string\n className?: string\n checked?: boolean\n defaultChecked: boolean\n style?: React.CSSProperties\n disabled?: boolean\n onChange?: (e: ChangeEvent) => void\n value?: any\n children?: React.ReactNode\n}\n\nexport interface ICheckboxState {\n checked: boolean\n}\n\nexport default class CheckBox extends PureComponent<\n ICheckboxProps,\n ICheckboxState\n> {\n static defaultProps: Partial = {\n defaultChecked: false,\n className: '',\n }\n\n static getDerivedStateFromProps(nextProps: ICheckboxProps) {\n if (nextProps.checked !== undefined) {\n return {\n checked: nextProps.checked,\n }\n }\n return null\n }\n\n constructor(props: ICheckboxProps) {\n super(props)\n\n const checked =\n props.checked !== undefined ? props.checked : props.defaultChecked\n this.state = {\n checked,\n }\n }\n\n handleChange = (e: ChangeEvent) => {\n const { disabled, onChange, checked } = this.props\n if (disabled) {\n return\n }\n if (checked === undefined) {\n this.setState({\n checked: e.target.checked,\n })\n }\n onChange && onChange(e)\n }\n\n render() {\n const { className, style, name, disabled, value, children } = this.props\n const { checked } = this.state\n\n const classString = classNames(className, {\n 'checkbox-checked': checked,\n 'checkbox-disabled': disabled,\n })\n return (\n \n \n \n \n )\n }\n}\n","import React, { PureComponent, Fragment } from 'react'\n\nimport request from 'lib/request'\nimport Checkbox from 'Components/checkbox'\nimport safeGet from '@arsenal/arsenal/modules/safeGet'\nimport Loading from 'Components/loading'\n\nexport interface IDealerListProps {\n cityName: string\n carId: number\n defaultValue?: string[]\n error: number // 错误类型 0:无错误,后期根据需要是否需要展示不同的错误信息\n value?: string[]\n dealerLimitCount?: number // 可选经销商数量\n onChange?: (\n checkedValue: string[],\n indexValue: number[],\n err?: string\n ) => void\n}\n\nexport interface IDealerListState {\n value: string[]\n sortTypeIndex: number\n list: IDealerListItem[]\n tips: string\n loading: boolean\n}\n\nexport interface IDealerListItem {\n price: string // 价格:10.99万\n address: string\n dealer_full_name: string\n dealer_id: string\n dealer_name: string\n dealer_phone: string\n dealer_type: string // 经销商类型:4s店\n dealer_price: number // 经销商报价:10.99\n lati: number // 经度\n longi: number // 纬度\n official_price: number // 官方指导价:11.59\n sale_region: string // 销售范围:售本市\n show_phone_number: number\n [key: string]: string | number | boolean | Record\n}\n\nexport type TDealerList = IDealerListItem[]\n\nexport default class DealerList extends PureComponent<\n IDealerListProps,\n IDealerListState\n> {\n static defaultProps: Partial = {\n error: 0,\n }\n\n static getDerivedStateFromProps(nextProps: IDealerListProps) {\n if ('value' in nextProps) {\n return {\n value: nextProps.value || [],\n }\n }\n return null\n }\n\n sortTypeList = ['智能推荐', '价格最低']\n\n defaultDealerList: TDealerList = []\n\n dealerLimitCount: number\n\n constructor(props: IDealerListProps) {\n super(props)\n this.state = {\n value: props.value || props.defaultValue || [],\n sortTypeIndex: 0,\n list: [],\n tips: '',\n loading: true,\n }\n\n this.dealerLimitCount = props.dealerLimitCount ? props.dealerLimitCount : 5\n }\n\n componentDidMount() {\n this.fetch()\n }\n\n componentDidUpdate(prevProps: IDealerListProps) {\n const { carId, cityName } = this.props\n if (carId !== prevProps.carId || cityName !== prevProps.cityName) {\n this.fetch()\n }\n }\n\n fetch() {\n const { carId, cityName } = this.props\n\n // 数据不合法时不再发起请求,否则会影响loading状态\n if (!carId || !cityName) {\n this.setState({\n loading: false,\n })\n return\n }\n\n const { sortTypeIndex } = this.state\n const sortType = sortTypeIndex === 0 ? 3 : 1\n\n this.setState({\n loading: true,\n })\n\n return request\n .get('/motor/dealer/m/v1/get_dealers_car_info/', {\n car_id: carId,\n city_name: cityName,\n sort_type: sortType, // 3智能推荐 1价格最近 2距离最近\n })\n .then((res: any) => {\n const list: TDealerList = []\n let tips = ''\n res.data.forEach((item: any) => {\n if (item.type === 1035) {\n list.push(item.info)\n } else if (item.type === 1034) {\n tips = safeGet(item, 'info.tips')\n }\n })\n this.setState({\n list,\n tips,\n loading: false,\n })\n this.triggerChange(list.slice(0, 3).map(item => item.dealer_id))\n this.defaultDealerList = list.slice()\n })\n }\n\n onChangeSortType = (sortTypeIndex: number) => {\n this.setState(\n {\n sortTypeIndex,\n },\n this.fetch\n )\n }\n\n toggleCheck = (item: IDealerListItem) => {\n const { value } = this.state\n const index = value.indexOf(item.dealer_id)\n const newValue = value.slice()\n let errMsg = ''\n if (index === -1) {\n if (newValue.length < 5) {\n newValue.push(item.dealer_id)\n } else {\n errMsg = 'over_count_limit'\n }\n } else {\n newValue.splice(index, 1)\n }\n this.triggerChange(newValue, errMsg)\n }\n\n triggerChange(value: string[], err = '') {\n if (!('value' in this.props)) {\n this.setState({ value })\n }\n const { onChange } = this.props\n onChange &&\n onChange(\n value,\n this.defaultDealerList\n .filter(item => value.indexOf(item.dealer_id) > -1)\n .map((_, index) => index),\n err\n )\n }\n\n _renderDealerList() {\n const { list, value, tips } = this.state\n\n return (\n <>\n {tips ?
{tips}
: null}\n\n {list.length > 0 ? (\n list.map(item => (\n this.toggleCheck(item)}\n >\n
\n \n
\n
\n

\n {item.dealer_type ? <>[{item.dealer_type}]  : null}\n {item.dealer_name}\n {item.sale_region}\n

\n

\n 经销商报价:{item.price}\n

\n

\n \n {item.address}\n

\n {item.dealer_phone ? (\n

\n 经销商电话:{item.dealer_phone}\n

\n ) : null}\n
\n
\n ))\n ) : (\n

当前城市暂无经销商报价

\n )}\n\n \n \n )\n }\n\n render() {\n const { error } = this.props\n const { sortTypeIndex, loading } = this.state\n const sortTypeLastIndex = this.sortTypeList.length - 1\n return (\n
\n
\n 经销商\n \n \n 选择经销商(最多5家)\n \n \n
\n {this.sortTypeList.map((item, index) => (\n \n this.onChangeSortType(index)}\n >\n {item}\n \n {index !== sortTypeLastIndex && }\n \n ))}\n
\n
\n\n {loading ? : this._renderDealerList()}\n\n \n
\n )\n }\n}\n","import React, { memo } from 'react'\nimport Modal from 'Components/modal'\n\nexport interface IDeclareTextProps {\n show: boolean\n onHide: () => void\n}\n\nfunction DeclareText({ show, onHide }: IDeclareTextProps) {\n return (\n <>\n \n 我知道了\n \n )}\n >\n
\n

用户个人信息保护法律声明

\n
\n
\n

\n 北京空间变换科技有限公司(以下称“我们”或“空间变换”公司)非常重视用户信息的保护。您在使用我们的“懂车帝”软件时,我们可能会收集和使用您的相关信息。我们希望通过本声明向您说明,在使用我们的服务时,我们如何收集、使用、存储、保护这些信息。在使用“懂车帝”软件及服务或在相应页面填写个人信息前,请您务必仔细阅读本声明。您一旦选择使用我们的服务(包括但不限于主动在相应页面填写您的个人信息),即意味着您同意我们按照本声明收集、使用、储存您的相关信息。\n

\n

一、信息可能收集的范围与方式

\n
\n

\n 1、我们提供服务时,可能会收集、储存和使用下列与您有关的信息,这些信息包括但不限于:\n

\n

①姓名

\n

②移动电话

\n

③您在网站的表格上输入的其他信息(电子邮箱、车牌号、住址等)

\n

④在您上传到懂车帝客户端或网站的内容中包含的其他个人信息

\n

\n 2、您需要注意的是,以上个人信息均是您自愿提供。您有权拒绝提供,但如果您不提供相关信息,可能无法注册成为懂车帝的用户或无法享受空间变换公司提供的某些服务,或者无法达到相关服务拟达到的效果。\n

\n

\n 3、对于不满 18\n 岁的用户,须在其法定监护人已经阅读本声明并且许可的情况下,通过网站提交个人信息。\n

\n

二、个人信息的使用和披露

\n
\n

\n 1、您同意,我们可以通过以下方式对个人信息进行使用和披露(包含对于个人信息的存储和处理):\n

\n

①我们和关联公司使用;

\n

\n ②我们向相关汽车经销商、厂商及集团分享并由其在合法正当的范围内使用(包括但不限于您主动选择的经销商以及我们为了更好地匹配您的需求,结合您选择的品牌/车型向您推荐的您所在区域同品牌的其他优质经销商);\n

\n

\n ③经过您的自主选择,我们可能会与我们的业务合作伙伴(比如二手车平台、汽车融资租赁平台、汽车相关服务及资讯平台)分享并由其在合法正当的范围内使用;\n

\n

\n ④我们和关联公司、相关汽车经销商、厂商、集团及其他业务合作伙伴为满足您的需求,可能通过您提供的信息与您联系;\n

\n

\n ⑤我们和关联公司、相关汽车经销商、厂商、集团及其他业务合作伙伴可能定期或不定期向您发送有关产品、服务或相关活动的信息,您同意接收上述信息。\n

\n

\n 如您拟撤回授权/删除您提交的个人信息的,您可以通过“懂车帝”客户端“我的”-“用户反馈”入口与我们联系,我们将尽快配合处理。\n

\n

\n 2、我们将严格保护您的个人信息安全。我们将采用适当制度、安全技术和程序等措施来保护您的个人信息不被未经授权的访问、使用或泄漏。我们亦将促使本法律声明所述各接收和使用方尽力保护和不予泄露您的个人信息。\n

\n

\n 3、您同意免除上述个人信息的接收和/或使用方在按照本法律声明所述情形下进行信息披露和使用而导致的或可能导致的所有索赔、责任和损失。\n

\n

三、适用法律

\n
\n

1、本声明适用中华人民共和国法律。

\n

\n 2、如果您需要查询、修改或更正您的个人信息,或对个人信息保护问题有任何疑问或投诉,您可以在“用户反馈”中联系我们。\n

\n

四、变更

\n
\n

\n 1、我们会适时对本声明进行修订,该等修订构成本声明的一部分。“空间变换”公司会将修改后的声明予以发布。在该种情况下,若您继续使用我们的服务,即表示同意接受经修订的声明的约束。\n

\n

\n 2、本声明构成《懂车帝隐私政策》的有效组成部分,未尽事宜,以《懂车帝隐私政策》约定为准。\n

\n
\n \n \n \n )\n}\n\nexport default memo(DeclareText)\n","import React, { PureComponent } from 'react'\nimport get from 'lodash/get'\nimport Link from 'next/link'\nimport getQuery from '@arsenal/arsenal/modules/getQuery'\n\nimport request from 'lib/request'\nimport { validatePhone, toNumber } from 'lib/utils'\nimport { getZT } from 'lib/zt-util'\nimport Toast from 'Components/toast'\nimport Button from 'Components/button'\nimport Select from 'Components/select'\nimport Statement from 'Components/footer-statement'\nimport CountDown from 'Components/countdown'\nimport CityPicker from 'Components/city-picker'\nimport { GlobalStoreContext } from 'Components/store'\n\nimport DealerList from './components/dealer-list'\nimport DeclareModal from './components/declare'\n\nimport { sendTeaCommEvent } from 'lib/tea-analyze'\nimport applyHttpsImage from 'lib/apply-https-img'\n\nexport interface IDealerHomeProps {\n seriesId: string | number\n // carId: number\n seriesName: string\n coverUrl: string\n}\n\nexport interface IDealerHomeState {\n carId?: number\n cityName?: string\n carList: any[]\n phone: string\n vercode: string\n showVercode: boolean\n phoneError: boolean\n vercodeError: boolean\n dealerError: number\n isCounter: boolean\n showModal: boolean\n}\n\nexport interface IDealerHomeCarOption {\n text: string\n value: number\n year: number\n [key: string]: number | string | boolean | Record\n}\n\nexport interface IDealerHomeCarOptionGroup {\n year: number\n label: string\n options: IDealerHomeCarOption[]\n}\n\nexport default class DealerHome extends PureComponent<\n IDealerHomeProps,\n IDealerHomeState\n> {\n static getInitialProps = async ({ query }: any) => {\n const { seriesId } = query\n\n const seriesInfo = await request.get(\n '/motor/car_page/v3/series_base_info/',\n {\n series_ids: seriesId,\n }\n )\n const info = get(seriesInfo, `data.${seriesId}`, {})\n return {\n seriesId,\n seriesName: info.series_name,\n coverUrl: info.cover_url,\n }\n }\n\n static contextType = GlobalStoreContext\n\n checkedDealerIds: string[] = []\n\n dealerRankList: number[] = []\n\n constructor(props: IDealerHomeProps) {\n super(props)\n\n this.state = {\n carList: [],\n // carId: props.carId,\n phone: '',\n vercode: '', // 验证码\n showVercode: false,\n phoneError: false, // 手机号错误\n vercodeError: false, // 验证码错误\n dealerError: 0, // 未选择经销商\n isCounter: false, // 验证码倒计时\n showModal: false, // 个人信息保护声明\n }\n }\n\n posting = false // 是否正在提交中\n\n componentDidUpdate() {\n const { state } = this.context\n const { cityName, carList } = this.state\n if (state.cityName && cityName !== state.cityName) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n cityName: state.cityName,\n })\n if (!carList || !carList.length) {\n this.getCarList(state.cityName)\n }\n }\n }\n\n componentDidMount() {\n const { state } = this.context\n const carId = getQuery('carId') as string\n if (carId) {\n this.setState({\n carId: Number(carId),\n })\n }\n this.getCarList(state.cityName)\n }\n\n async getCarList(cityName: string) {\n const { seriesId } = this.props\n const { carId } = this.state\n let activeCarId = carId || (getQuery('carId') as string)\n if (!activeCarId) {\n activeCarId = await this.getActiveCar(cityName)\n }\n // 车系列表\n return request\n .get('/motor/car_page/m/v2/series_all_json/', {\n series_id: seriesId,\n city_name: cityName,\n req_type: 'online',\n })\n .then((res: any) => {\n if (res.data && res.data.length) {\n const list: IDealerHomeCarOption[] = []\n res.data.forEach((item: any) => {\n if (item.type === '1037') {\n const { info } = item\n list.push({\n text: `${info.year}款 ${info.name}`,\n value: info.car_id,\n year: info.year,\n })\n }\n })\n list.sort((a, b) => b.year - a.year)\n let temp: IDealerHomeCarOptionGroup = {\n options: [],\n year: 0,\n label: '',\n }\n const carList: IDealerHomeCarOptionGroup[] = []\n list.forEach((item: IDealerHomeCarOption) => {\n if (temp.year !== item.year) {\n temp = {\n year: item.year,\n label: `${item.year}款`,\n options: [item],\n }\n carList.push(temp)\n } else {\n temp.options.push(item)\n }\n })\n\n const state: {\n carList: any[]\n carId?: number\n } = {\n carList,\n }\n\n state.carId = Number(activeCarId) || carList[0].options[0].value\n this.setState(state)\n }\n })\n }\n\n getActiveCar(cityName: string) {\n const { seriesId } = this.props\n return request\n .get('/motor/car_page/m/v3/dealer_car_info/', {\n series_id: seriesId,\n city_name: cityName,\n })\n .then((res: any) => {\n return get(res, 'data.id') || ''\n })\n .catch(() => {\n return ''\n })\n }\n\n onChangeCar = (option: IDealerHomeCarOption) => {\n const carId = option.value\n this.setState({\n carId,\n })\n }\n\n onChangeCity = (cityName: string) => {\n this.setState({\n cityName,\n })\n }\n\n onChangeDealer = (dealerIds: string[], indexList: number[]) => {\n this.checkedDealerIds = dealerIds\n this.dealerRankList = indexList\n this.setState({\n dealerError: 0,\n })\n }\n\n onChangeInput = (\n type: 'vercode' | 'phone',\n e: React.ChangeEvent\n ) => {\n const newState: any = {\n [type]: e.target.value,\n [`${type}Error`]: false,\n }\n this.setState(newState)\n }\n\n toggleModal = () => {\n const { showModal } = this.state\n this.setState({\n showModal: !showModal,\n })\n }\n\n onGetVercode = () => {\n const { phone } = this.state\n if (!validatePhone(phone)) {\n this.setState({\n phoneError: true,\n })\n } else if (!this.posting) {\n this.posting = true\n request\n .post('/motor/dealer/m/v2/send_vercode/', {\n phone,\n })\n .then((res: any) => {\n if (res.status === 0) {\n this.setState({\n isCounter: true,\n })\n } else {\n alert(res.prompts || '验证码发送失败,请稍后重试')\n }\n })\n .finally(() => {\n this.posting = false\n })\n }\n }\n\n onStopCounter = () => {\n this.setState({\n isCounter: false,\n })\n }\n\n onSubmit = () => {\n const { seriesName, seriesId } = this.props\n const { phone, showVercode, vercode, carId, cityName } = this.state\n const state = {\n phoneError: false,\n vercodeError: false,\n dealerError: 0,\n }\n let hasError = false\n\n if (!validatePhone(phone)) {\n hasError = true\n state.phoneError = true\n }\n\n if (showVercode && !/^\\d+$/.test(vercode)) {\n hasError = true\n state.vercodeError = true\n }\n\n if (!this.checkedDealerIds.length) {\n hasError = true\n state.dealerError = 1\n }\n\n if (hasError) {\n this.setState(state)\n } else if (!this.posting) {\n this.posting = true\n request\n .post('/motor/dealer/m/v1/pc_commit_inquiry_info/', {\n phone,\n vercode,\n need_vercode: 1,\n car_id: carId,\n city_name: cityName,\n dealer_ids: this.checkedDealerIds.join(','),\n data_from: 'pc', // 2019-10-17 修改成pc 为了跟m站来源线索做区分\n extra: JSON.stringify({\n sys_location: cityName || '',\n zt: getZT(),\n from: 'pc',\n }),\n })\n .then(res => {\n const isSuccess = get(res, 'data.result', 'false') === 'true'\n sendTeaCommEvent('submit_inquiry_order', {\n car_series_name: seriesName,\n car_series_id: seriesId,\n car_style_id: carId,\n selected_city: cityName,\n dealer_id_list: this.checkedDealerIds.join(','),\n dealer_rank_list: this.dealerRankList.join(','),\n submit_status: isSuccess ? '成功' : '失败',\n default_select_dealer: 1,\n need_verify: 0,\n fail_reason: isSuccess ? '' : '询价失败,请重新尝试',\n })\n if (isSuccess) {\n Toast.success({\n title: '询价成功',\n description: '经销商将及时为您回电',\n })\n if (/^ad_ug_bdpc/.test(getZT())) {\n // 根据zt进行回传\n sendTeaCommEvent('pc_xunjia_click_submit', {\n LandingPageUrl: window.location.href,\n AppId: 3356,\n EventName: 'pc_xunjia_click_submit',\n EventTs: Math.floor(Date.now() / 1000),\n AdPlatformId: 'toutiao',\n growth_deepevent: '4',\n })\n }\n } else {\n const status = get(res, 'data.vercode_status', 0)\n if (status === 1) {\n this.setState({\n showVercode: true,\n })\n } else if (status === 2) {\n this.setState({\n vercodeError: true,\n })\n } else {\n alert('询价失败,请重新尝试')\n }\n }\n })\n .finally(() => {\n this.posting = false\n })\n }\n }\n\n render() {\n const { seriesName, coverUrl, seriesId } = this.props\n const {\n carId,\n carList,\n showVercode,\n phone,\n vercode,\n dealerError,\n phoneError,\n vercodeError,\n isCounter,\n showModal,\n cityName,\n } = this.state\n\n return (\n <>\n
\n

询底价

\n
\n
\n \n \n \n
\n

{seriesName}

\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n this.onChangeInput('phone', e)}\n type=\"text\"\n placeholder=\"输入11位手机号\"\n className=\"phone\"\n />\n {phoneError && (\n

输入正确的手机号

\n )}\n
\n
\n {showVercode && (\n
\n \n
\n this.onChangeInput('vercode', e)}\n type=\"text\"\n placeholder=\"输入验证码\"\n />\n \n {isCounter ? (\n <>\n 重发(\n \n s)\n \n ) : (\n '获取验证码'\n )}\n \n {vercodeError && (\n

输入正确的验证码

\n )}\n
\n
\n )}\n
\n \n 询底价\n \n

\n 点击获取底价即视为同意\n 《个人信息保护声明》\n

\n
\n
\n \n
\n \n \n \n \n )\n }\n}\n","import Dealer from 'Pages/dealer/home'\n\nexport default Dealer\n","var _Array$isArray = require(\"../core-js/array/is-array\");\n\nfunction _arrayWithoutHoles(arr) {\n if (_Array$isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n}\n\nmodule.exports = _arrayWithoutHoles;","var $ = require('../internals/export');\n\n// `Number.isNaN` method\n// https://tc39.github.io/ecma262/#sec-number.isnan\n$({ target: 'Number', stat: true }, {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","export function validatePhone(phone: string | number): boolean {\n return /^\\d{11}$/.test(`${phone}`)\n}\n\nexport function toNumber(value: string | number): number {\n const numberValue = Number(value)\n return Number.isNaN(numberValue) ? 0 : numberValue\n}\n\nexport function unicodeToChar(text: string) {\n return text.replace(/\\\\u[\\dA-F]{4}/gi, function(match) {\n return String.fromCharCode(parseInt(match.replace(/\\\\u/g, ''), 16))\n })\n}\n\nexport function getBoundingClientRect(element: HTMLElement | Element) {\n const rect = element.getBoundingClientRect()\n // whether the IE version is lower than 11\n const isIE = navigator.userAgent.indexOf('MSIE') !== -1\n\n // fix ie document bounding top always 0 bug\n const rectTop =\n isIE && element.tagName === 'HTML' ? -element.scrollTop : rect.top\n\n return {\n left: rect.left,\n top: rectTop,\n right: rect.right,\n bottom: rect.bottom,\n width: rect.right - rect.left,\n height: rect.bottom - rectTop,\n }\n}\n","import React, {\n useState,\n useContext,\n useEffect,\n useRef,\n useCallback,\n} from 'react'\nimport get from 'lodash/get'\nimport fetch from 'isomorphic-unfetch'\nimport classnames from 'classnames'\nimport { on, off } from '@arsenal/arsenal/modules/event'\n\nimport getUrl from 'lib/url'\nimport { useScrollSpy } from 'Components/hooks'\nimport { GlobalStoreContext } from 'Components/store'\n\nexport interface ICity {\n /* 城市首字母 */\n initials: string\n /* 城市列表 */\n city: [\n {\n city_name: string\n }\n ]\n}\n\ninterface IProps {\n onChange?(cityName?: string): void\n}\n\nexport default function City(props: IProps) {\n const { onChange } = props\n // 设置全局的城市\n const { state: globalStore, dispatch } = useContext(GlobalStoreContext)\n const { cities } = globalStore\n\n // 整体dom\n const ref = useRef(null)\n\n const [currIndex, setCurrIndex, cityRef] = useScrollSpy<\n HTMLElement,\n HTMLDivElement\n >(node => {\n return node.querySelectorAll('.cities')\n }, false)\n /* 获取城市列表 */\n const fetchCities = useCallback(() => {\n return fetch(getUrl('/motor/dealer/m/v1/get_dealer_city_list/'))\n .then(res => res.json())\n .then(json => {\n const data = get(json, 'data', [])\n if (data.length) {\n data.unshift({\n initials: '热门城市',\n city: [\n { city_name: '北京', initials: '热门城市' },\n { city_name: '上海', initials: '热门城市' },\n { city_name: '广州', initials: '热门城市' },\n { city_name: '深圳', initials: '热门城市' },\n { city_name: '重庆', initials: '热门城市' },\n { city_name: '天津', initials: '热门城市' },\n { city_name: '成都', initials: '热门城市' },\n { city_name: '杭州', initials: '热门城市' },\n { city_name: '武汉', initials: '热门城市' },\n { city_name: '苏州', initials: '热门城市' },\n { city_name: '西安', initials: '热门城市' },\n { city_name: '南京', initials: '热门城市' },\n ],\n })\n }\n dispatch({\n type: 'setCities',\n payload: data,\n })\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n useEffect(() => {\n if (!cities || !cities.length) {\n fetchCities()\n }\n }, [cities, fetchCities])\n useEffect(() => {\n function handleDocumentClick(e: Event) {\n if (!ref.current || ref.current.contains(e.target as Node)) {\n return\n }\n onChange && onChange()\n // setCity(Object.assign({}, city, { show: false }))\n }\n on(window, 'click', handleDocumentClick)\n return () => {\n off(window, 'click', handleDocumentClick)\n }\n }, [onChange])\n\n /* 渲染城市首字母 */\n function renderLetter() {\n if (!cities) {\n return null\n }\n return (\n
\n {cities.map((item, index) => (\n {\n setCurrIndex(index)\n // scrollView(item.initials)\n }}\n >\n {item.initials.slice(0, 1).toLocaleUpperCase()}\n \n ))}\n \n
\n )\n }\n\n /* 渲染城市列表 */\n function renderCities() {\n if (!cities) {\n return null\n }\n return (\n
\n {cities.map(city => {\n return (\n \n

{city.initials.toLocaleUpperCase()}

\n {city.city.map((item: ICity['city'][0]) => (\n {\n // setCity({ show: false, name: item.city_name })\n dispatch({\n type: 'setCityName',\n payload: item.city_name,\n })\n if (onChange) {\n onChange(item.city_name)\n }\n }}\n >\n {item.city_name}\n \n ))}\n
\n )\n })}\n \n \n )\n }\n if (!cities || !cities.length) {\n return null\n }\n return (\n ) => {\n e.stopPropagation()\n }}\n >\n {renderLetter()}\n {renderCities()}\n \n \n )\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\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"],"sourceRoot":""}