{"version":3,"sources":["webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/addChannel.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/adInfo.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/appInfo.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/close.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/confirmUploadPhoto.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/gallery.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/getSubScribedChannelList.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/isAppInstalled.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/login.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/openCommodity.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/pay.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/sendLog.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/share.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/shareResult.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/showSharePanel.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/takePhoto.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/visible.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/sendLogV3.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/tracker.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/fetch.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/openAweme.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/openSchema.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/setupStayDialog.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/takePicture.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/uploadFile.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/H5_uploadFile.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/launchWXMiniPro.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/webControl.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/closeAndOpen.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/userInfo.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/islogin.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/loginStatus.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/openHotsoon.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/app.liveFloatingWindow.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/api/app.commerceDetailBarHeight.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/utils/dom.js","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/account.css","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/close.png","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/checkbox-uncheck.png","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/checkbox-checked.png","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/circle-close.png","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/success.png","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/phone.png","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/email.png","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/core/env.config.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/core/env.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/core/env.gen.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/utils/cacheWrap.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/utils/getClientImage.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/utils/log.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/detectors/isWebpSupport.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/config/cdn.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/index.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/utils/semver.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/request/fetchConfig.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/core/link.js","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/utils.js","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/AccountTpl.js","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/class.js","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/Account.js","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/index.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/framework/tea.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/config/sendLog3Config.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/core/sendEvent.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/core/lib.legacy.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/core/error.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/core/index.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/bridge/index.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/utils/mode.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/request/metrics.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/request/handleFetch.js","webpack:///../node_modules/@byted/ecom-mobile-lib/lib/request/core.js","webpack:///../node_modules/@byted/ecom-mobile-lib/components/login/account.css?57c5"],"names":["name","supports","env","isInToutiao","isCommercialWebview","isInToutiaoProduct","isWangMengSdk","ge","appVersion","isInFlash","isInMobile","isInToutiaoLite","isInVideo","isInAweme","isInHotsoon","isInSuper","handle","naiveToutiao","naiveHuoShan","version","isIOS","isAndroid","isPassiveEventSupported","isSupported","window","addEventListener","err","coerceEventOptions","options","Boolean","capture","on","el","event","func","off","removeEventListener","exports","module","urlEscape","___CSS_LOADER_URL___0___","___CSS_LOADER_URL___1___","___CSS_LOADER_URL___2___","___CSS_LOADER_URL___3___","___CSS_LOADER_URL___4___","___CSS_LOADER_URL___5___","___CSS_LOADER_URL___6___","push","i","platforms","test","devices","apps","bType","aid","getEnv","ua","matchUA","app","device","platform","appName","deviceName","platformName","navigator","userAgent","rule","param","RegExp","find","match","pop","isInWechat","isMobile","isInDouDian","fn","cachedMap","cdns","cdnIndex","log","msgType","msg","dir","_i","arguments","length","isProductionMode","console","warn","isWebpSupport","elem","document","createElement","getContext","toDataURL","indexOf","Object","create","str","guardedStr","result","getCDNDomain","getClientImage","url","quality","size","supportWebp","webp","suffix","mat","replace","slice","compare","require","lt","a","b","eq","gt","fetchSupportConfig","isToutiaoLink","link","isSuperLink","isAwemeLink","transLink","config","newLink","encodeURIComponent","hideBar","bounceDisable","title","transToAwemeLink","transToSuperLink","transToToutiaoLink","decodeURIComponent","transToNormalLink","getCookie","key","reg","arr","cookie","unescape","hasOwn","prototype","hasOwnProperty","extend","obj","source","prop","call","formTpl","agreement","loginStr","defaultCheckedAgreement","pageTpl","hasClass","cls","trim","classList","contains","getAttribute","addClass","split","forEach","c","add","cur","setAttribute","removeClass","remove","removeAttribute","tar","LOGOUT_URL","EVENT","noop","trimReg","AccountSDK","modal","dom","countDownNote","countDownInterval","countDownInitNote","agreementHtml","loggingStr","loginChecker","e","checkPhoneRe","checkPhoneCaptchaRe","messageTimeout","urlOrigin","location","origin","customTitle","formData","defaultPhone","this","_default","_modal","_countDownNote","_countDownInterval","_countDownInitNote","_agreementHtml","_loginStr","_loggingStr","_container$","querySelector","_submitBtn$","_phoneInput$","_phoneCaptchaInput$","_imageCaptchaInput$","_phoneCaptchaBtn$","_phoneErrorNote$","_phoneCaptchaErrorNote$","_agreement$","_commonToast$","_captchaToast$","_registerNote$","_gettingPhoneCaptcha","_isLogging","_phoneNoticeTimer","_phoneCaptchaNoticeTimer","_toastTimer","_codeTimer","_defaultCheckedAgreement","_loginChecker","_checkPhoneRe","_checkPhoneCaptchaRe","_messageTimeout","_toastTimerFunc","_urlOrigin","_customTitle","_stringifyData","_defaultPhone","_needImageCaptcha","_formContainer$","_captchaImg$","_imageCaptchaContainer$","_initDOM","_initListener","eventName","detail","CustomEvent","bubbles","cancelable","dispatchEvent","params","query","setTimeout","message","innerText","clearTimeout","value","parentNode","removeChild","_phoneCaptchaContainer$","div","innerHTML","body","appendChild","children","getElementById","dataImgContent","captcha","src","_prefixDataImg","imageCaptchaTpl","insertBefore","target","className","type","userLogin","getMobileCode","_toggleAgreement","_emit","axios","get","_urlWrap","then","data","_setCaptchaImage","preventDefault","toUpperCase","checked","_getAgreementStatus","accountType","loginUrl","mobile","_getPhone","code","_getPhoneCaptcha","defineProperty","enumerable","_getGraphicCaptcha","_paramsPack","post","_formData","res","_toast","description","catch","_phoneCaptchaNotice","_phoneNotice","setCodeStatus","_captchaToast","_attachCaptchaDom","countDown","ticker","nextUrl","href","SDK","win","doc","eScript","eArchor","q","id","r","l","Number","Date","getElementsByTagName","async","uid","c_name","x","y","ARRcookies","substr","exdays","exdate","setDate","getDate","c_value","escape","toUTCString","setCookie","S4","Math","random","toString","substring","guid","collectEvent","ready","instance","setDebug","setIntranetMode","setRequiredKeys","user","header","setUser","user_unique_id","setHeader","app_id","app_name","sendFunConfigInApp","toutiao","canUse","s","JSON","stringify","webkit","messageHandlers","observe","postMessage","sendUmengV3","category","tag","extra","keys","reduce","acc","item","sendFunConfigOutApp","outApp","qs","getTag","extraParams","pathname","join","len","actually","expect","addUrlParam","args","urlParse","parse","search","name_1","val","defaultValue","undefined","addWindowParam","name_2","sendLog3","extraSendFunc","funcConfig","sendFlag","assign","_interopRequireDefault","_typeof2","_env","UTF8","d","charCodeAt","String","fromCharCode","base64encodechars","isEmptyObject","_readyMessageIframe","_setResultIframe","_sendMessageQueue","_callback_count","_callback_map","_event_hook_map","_CUSTOM_PROTOCOL_SCHEME","_handleMessageFromApp","ret","msg_type","msg_params","msg_event_id","msg_callback_id","_setResultValue","scene","g","f","charAt","base64encode","_call","callback","sdk_version","default","desc","icon","title_ele","desc_ele","apple_touch_icon_ele","rel_icon_ele","content","imgs","querySelectorAll","img","naturalWidth","_revertArgs","callbackID","_msg_string","jsbObj","_fetchQueue","messageQueueString","JSBridge","_handleMessageFromToutiao","ToutiaoJSBridge","trigger","argv","style","display","latent_keys","public_fn","all_fn","concat","sdk_match","getParams","arg","callback_success","supportList","callback_error","callback_fail","o","_initToutiao","notSupported","apiName","__assign","t","n","p","apply","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","done","__generator","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","isInited","isReady","isAvailable","apis","queue","cachedResult","bridge","register","entry","api","runtime","exec","_a","cb","_b","error","maxAttempts","settle","available","splice","host","isHostInWhitelist","auth","attempts","client_id","success","opts","cache","timeout","timeoutId_1","newCall","raw","listen","mode","getRequestMetricsParam","response","afterTime","beforeTime","st","httpSt","status","reqTime","connectType","metrics","metricsUrl","customParams","basicParam","view_type","app_version","pureAxios","sendMetrics","connect_type","duration","is_timeout","http_code","business_code","afterJsb","getTime","formatParams","API_ORIGIN","handleFetchResponse","Error","handleToutiaoJsb","_raw","handleDouyinJsb","handleHuoshanJsb","agent","needDeviceId","postList","canUseFetchOverall","processPostData","transformsData","json_form","commonParams","b_type_new","device_id","is_outside","requestQueue","getCanUseFetch","configs","fetchJsbMethod","method","needCommonParams","wrapUrl","fetchJsbMethodGet","fetchJsbMethodPost","path","checkPostData","mergeConfig","info","request","baseURL","interceptors","use","processFunc","getGetRequestMethod","getPostRequestMethod","payload","transform","locals"],"mappings":"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","file":"staticV3/js/411d1fc6.js","sourcesContent":["export var name = 'addChannel';\nexport var supports = function (env) {\n return env.isInToutiao && !env.isCommercialWebview;\n};\n","export var name = 'adInfo';\nexport var supports = function (env) {\n return env.isInToutiaoProduct || env.isWangMengSdk;\n};\n","export var name = 'appInfo';\nexport var supports = function (env) {\n return env.isInToutiaoProduct || env.isWangMengSdk;\n};\n","export var name = 'close';\nexport var supports = function (env) {\n return env.isInToutiaoProduct;\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'confirmUploadPhoto';\nexport var supports = function (env) {\n var naiveToutiao = env.isInToutiao && !env.isCommercialWebview;\n return (naiveToutiao && ge(env.appVersion, '6.4.0')) || env.isInFlash;\n};\n","export var name = 'gallery';\nexport var supports = function (env) {\n return env.isInToutiaoProduct && !env.isInMobile;\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'getSubScribedChannelList';\nexport var supports = function (env) {\n var naiveToutiao = env.isInToutiao && !env.isCommercialWebview;\n return naiveToutiao && ge(env.appVersion, '6.0.9');\n};\n","export var name = 'isAppInstalled';\nexport var supports = function (env) {\n return env.isInToutiaoProduct;\n};\n","export var name = 'login';\nexport var supports = function (env) {\n return (env.isInToutiao ||\n env.isInToutiaoLite ||\n env.isInVideo ||\n env.isInAweme ||\n env.isInMobile);\n};\n","export var name = 'openCommodity';\n","export var name = 'pay';\nexport var supports = function () {\n return true;\n};\n","export var name = 'sendLog';\nexport var supports = function (env) {\n return env.isInAweme || env.isInHotsoon || env.isInFlash || env.isInSuper;\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'share';\nexport var supports = function (env) {\n return ((env.isInToutiao && ge(env.appVersion, '6.4.0')) ||\n env.isInVideo ||\n env.isInHotsoon);\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'shareResult';\nexport var handle = 'share_result';\nexport var supports = function (env) {\n var naiveToutiao = env.isInToutiao && !env.isCommercialWebview;\n return (naiveToutiao && ge(env.appVersion, '6.4.0')) || env.isInFlash;\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'showSharePanel';\nexport var supports = function (env) {\n var naiveToutiao = env.isInToutiao && !env.isCommercialWebview;\n var naiveHuoShan = env.isInHotsoon && !env.isCommercialWebview;\n return ((naiveToutiao && ge(env.appVersion, '6.4.0')) ||\n env.isInFlash ||\n (naiveHuoShan && ge(env.appVersion, '3.8.0')));\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'takePhoto';\nexport var supports = function (env) {\n var naiveToutiao = env.isInToutiao && !env.isCommercialWebview;\n return (naiveToutiao && ge(env.appVersion, '6.4.0')) || env.isInFlash;\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'visible';\nexport var handle = function (env) {\n return env.isInHotsoon ? 'H5_visible' : 'visible';\n};\nexport var supports = function (env) {\n return env.isInToutiao || (env.isInHotsoon && ge(env.appVersion, '3.8.0'));\n};\n","export var name = 'sendLogV3';\nexport var supports = function (env) {\n return env.isInAweme || env.isInHotsoon;\n};\n","export var name = 'tracker';\nexport var supports = function (env) {\n return env.isInMobile;\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'fetch';\nexport var supports = function (env) {\n return ((env.isInToutiao && ge(env.appVersion, '7.3.0')) ||\n (env.isInAweme && ge(env.appVersion, '6.7.0')) ||\n (env.isInHotsoon && ge(env.appVersion, '3.3.0')) ||\n env.isInToutiaoLite);\n};\n","export var name = 'openAweme';\nexport var supports = function (env) {\n return env.isInAweme;\n};\n","export var name = 'openSchema';\nexport var supports = function (env) {\n return env.isInToutiaoProduct;\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'setupStayDialog';\nexport var supports = function (env) {\n var nativeToutiao = env.isInToutiao && !env.isCommercialWebview;\n if (!nativeToutiao) {\n return false;\n }\n var version = null;\n if (env.isIOS) {\n version = '6.7.0';\n }\n else {\n version = '6.7.1';\n }\n return ge(env.appVersion, version);\n};\n","export var name = 'takePicture';\nexport var supports = function (env) {\n return env.isInToutiao || env.isInToutiaoLite;\n};\n","export var name = 'uploadFile';\nexport var supports = function (env) {\n return env.isInAweme;\n};\n","export var name = 'H5_uploadFile';\nexport var supports = function (env) {\n return env.isInAweme;\n};\n","export var name = 'launchWXMiniPro';\nexport var supports = function (env) {\n return true;\n};\n","export var name = 'webviewControl';\nexport var supports = function (env) {\n return env.isInAweme && env.isIOS;\n};\n","import { ge } from '../../utils/semver';\nexport var name = 'closeAndOpen';\nexport var supports = function (env) {\n return env.isInVideo && ge(env.appVersion, '3.6.2');\n};\n","export var name = 'userInfo';\nexport var supports = function (env) {\n return env.isInHotsoon || env.isInAweme || (env.isInSuper && env.isAndroid);\n};\n","export var name = 'is_login';\nexport var supports = function (env) {\n return (env.isInToutiao ||\n env.isInToutiaoLite ||\n env.isInVideo ||\n env.isInMobile);\n};\n","export var name = 'loginStatus';\nexport var handle = function (env) {\n return 'H5_loginStatus';\n};\nexport var supports = function (env) {\n return env.isInHotsoon;\n};\n","export var name = 'openHotsoon';\nexport var supports = function (env) {\n return env.isInHotsoon;\n};\n","export var name = 'app.liveFloatingWindow';\nexport var supports = function () {\n return true;\n};\n","export var name = 'app.commerceDetailBarHeight';\nexport var supports = function () {\n return true;\n};\n","var isPassiveEventSupported = (function () {\n var isSupported = false;\n try {\n window.addEventListener('passive', function () { }, {\n get passive() {\n // eslint-disable-next-line no-return-assign\n return (isSupported = true);\n }\n });\n }\n catch (err) {\n //\n }\n return function () { return isSupported; };\n})();\n/* eslint-disable prettier/prettier */\nvar coerceEventOptions = function (options) {\n var passive = isPassiveEventSupported();\n return passive\n ? options\n : Boolean(typeof options === 'object' ? options.capture : options);\n};\nexport function on(el, event, func, options) {\n el.addEventListener(event, func, coerceEventOptions(options));\n}\nexport function off(el, event, func, options) {\n el.removeEventListener(event, func, coerceEventOptions(options));\n}\n","exports = module.exports = require(\"../../../../css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar urlEscape = require(\"../../../../css-loader/dist/runtime/url-escape.js\");\nvar ___CSS_LOADER_URL___0___ = urlEscape(require(\"./close.png\"));\nvar ___CSS_LOADER_URL___1___ = urlEscape(require(\"./checkbox-uncheck.png\"));\nvar ___CSS_LOADER_URL___2___ = urlEscape(require(\"./checkbox-checked.png\"));\nvar ___CSS_LOADER_URL___3___ = urlEscape(require(\"./circle-close.png\"));\nvar ___CSS_LOADER_URL___4___ = urlEscape(require(\"./success.png\"));\nvar ___CSS_LOADER_URL___5___ = urlEscape(require(\"./phone.png\"));\nvar ___CSS_LOADER_URL___6___ = urlEscape(require(\"./email.png\"));\n\n// Module\nexports.push([module.id, \".login-form-modal {\\n background: rgba(0,0,0,.5);\\n position: fixed;\\n z-index: 9999;\\n top: 0;\\n left: 0;\\n bottom: 0;\\n right: 0;\\n}\\n\\n.login-form-modal .login-form-body {\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n -moz-transform: translate(-50%, -50%);\\n -o-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n width: 6.533333rem /* 245/37.5 */;\\n /*height: 8.266667rem !* 310/37.5 *!;*/\\n background: #fff;\\n -webkit-border-radius: .32rem /* 12/37.5 */;\\n -moz-border-radius: .32rem /* 12/37.5 */;\\n border-radius: .32rem /* 12/37.5 */;\\n padding: 0 .48rem /* 18/37.5 */;\\n}\\n\\n.login-form-notice, .login-form-notice.hidden {\\n display: none;\\n}\\n\\n.login-form-modal .login-form-input-row.captcha {\\n margin-bottom: 1.306667rem /* 49/37.5 */;\\n}\\n\\n.login-form-modal .login-form-notice:not(.hidden) {\\n display: block;\\n color: #999;\\n font-size: .266667rem /* 10/37.5 */;\\n position: absolute;\\n bottom: -.506667rem /* 19/37.5 */;\\n left: 0;\\n right: 0;\\n text-align: center;\\n background: #fff;\\n z-index: 222;\\n}\\n\\n.login-form-modal .login-form-submit-btn {\\n -webkit-box-shadow: none;\\n -moz-box-shadow: none;\\n box-shadow: none;\\n background: #F85959;\\n -webkit-border-radius: 2.666667rem /* 100/37.5 */;\\n -moz-border-radius: 2.666667rem /* 100/37.5 */;\\n border-radius: 2.666667rem /* 100/37.5 */;\\n height: .906667rem /* 34/37.5 */;\\n}\\n\\n.login-form-modal .login-form-input-row {\\n width: 100%;\\n height: .906667rem /* 34/37.5 */;\\n margin: 0 auto .373333rem /* 14/37.5 */;\\n font-size: .293333rem /* 11/37.5 */;\\n}\\n\\n.login-form-modal .login-form-input-row input {\\n font-size: .32rem /* 12/37.5 */;\\n}\\n\\n.login-form-modal .login-form-input-row:after {\\n -webkit-border-radius: 2.666667rem /* 100/37.5 */;\\n -moz-border-radius: 2.666667rem /* 100/37.5 */;\\n border-radius: 2.666667rem /* 100/37.5 */;\\n}\\n\\n.login-form-modal .login-form-close-btn {\\n display: block;\\n position: absolute;\\n top: 0;\\n right: 0;\\n padding: .266667rem /* 10/37.5 */; \\n background: url(\" + ___CSS_LOADER_URL___0___ + \") center center no-repeat;\\n -webkit-background-size: .32rem /* 12/37.5 */;\\n -moz-background-size: .32rem /* 12/37.5 */;\\n background-size: .32rem /* 12/37.5 */;\\n width: .32rem /* 12/37.5 */;\\n height: .32rem /* 12/37.5 */;\\n opacity: .5;\\n}\\n\\n.login-form-modal .login-form-title {\\n display: block;\\n font-size: .426667rem /* 16/37.5 */;\\n color: #1F201F;\\n margin: 1.306667rem /* 49/37.5 */ auto .826667rem /* 31/37.5 */;\\n text-align: center;\\n}\\n\\n.login-form-close-btn, .login-form-title {\\n display: none;\\n}\\n\\n.login-form-body {\\n width: 7.333333rem /* 275/37.5 */;\\n color: #505050;\\n -webkit-box-sizing: border-box; \\n -moz-box-sizing: border-box; \\n box-sizing: border-box;\\n margin: 0 auto;\\n}\\n\\n.login-form-modal .login-form-agreement {\\n margin-top: .373333rem /* 14/37.5 */;\\n}\\n\\n.login-form-agreement {\\n margin-top: .986667rem /* 37/37.5 */;\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -moz-box;\\n display: flex;\\n}\\n\\n.login-form-agreement > div {\\n font-size: .266667rem /* 10/37.5 */;\\n}\\n\\n.login-form-agreement > i {\\n width: .32rem /* 12/37.5 */;\\n height: .32rem /* 12/37.5 */;\\n background: url(\" + ___CSS_LOADER_URL___1___ + \") center center no-repeat;\\n -webkit-background-size: .32rem /* 12/37.5 */;\\n -moz-background-size: .32rem /* 12/37.5 */;\\n background-size: .32rem /* 12/37.5 */;\\n padding: .266667rem /* 10/37.5 */;\\n position: relative;\\n top: -.266667rem /* 10/37.5 */;\\n}\\n\\n.login-form-agreement.checked i {\\n background: url(\" + ___CSS_LOADER_URL___2___ + \") center center no-repeat;\\n -webkit-background-size: .32rem /* 12/37.5 */;\\n -moz-background-size: .32rem /* 12/37.5 */;\\n background-size: .32rem /* 12/37.5 */;\\n}\\n\\n.login-toast, .captcha-toast {\\n position: fixed;\\n top: 50%;\\n left: 50%;\\n background: transparent;\\n -webkit-border-radius: 6px;\\n -moz-border-radius: 6px;\\n border-radius: 0.16rem;\\n padding: 0.53333rem 0.48rem;\\n background: rgba(0,0,0,.8);\\n color: white;\\n font-size: 0.45333rem;\\n line-height: 0.64rem;\\n text-align: center;\\n -webkit-transform: translate(-50%, -50%);\\n -moz-transform: translate(-50%, -50%);\\n -o-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%); \\n z-index: 999;\\n}\\n\\n.login-toast.hidden, .captcha-toast.hidden {\\n display: none;\\n}\\n\\n.login-toast {\\n width: 4.453333rem /* 167/37.5 */;\\n}\\n\\n.login-toast .img,\\n.captcha-toast .img {\\n width: .586667rem /* 22/37.5 */;\\n height: .586667rem /* 22/37.5 */;\\n display: block;\\n margin: 0 auto .24rem /* 9/37.5 */; \\n}\\n\\n.captcha-toast {\\n width: 3.813333rem /* 143/37.5 */;\\n}\\n\\n.login-toast .img {\\n background: url(\" + ___CSS_LOADER_URL___3___ + \") center center no-repeat;\\n -webkit-background-size: 100% 100%;\\n -moz-background-size: 100%;\\n background-size: 100%;\\n}\\n\\n.captcha-toast .img {\\n background: url(\" + ___CSS_LOADER_URL___4___ + \") center center no-repeat;\\n -webkit-background-size: 100% 100%;\\n -moz-background-size: 100%;\\n background-size: 100%;\\n}\\n\\n.login-form-wrapper {\\n margin-bottom: .613333rem; /* 23/37.5 */\\n}\\n\\n.login-form-input-row {\\n height: 1.333333rem /* 50/37.5 */;\\n width: 100%;\\n background: #fcfcfc;\\n position: relative;\\n margin-bottom: .8rem /* 30/37.5 */;\\n font-size: .346667rem /* 13/37.5 */;\\n}\\n\\n.login-form-input-row i {\\n margin: 0 .44rem /* 16.5/37.5 */ 0 .64rem /* 24/37.5 */;\\n}\\n\\n.login-form-input-row > div {\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -moz-box;\\n display: flex;\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n padding: 0 0.02667rem;\\n height: 100%;\\n width: 100%;\\n background: transparent;\\n position: absolute;\\n -webkit-box-align: center;\\n -webkit-align-items: center;\\n -moz-box-align: center;\\n align-items: center;\\n font-size: .346667rem /* 13/37.5 */; \\n top: 0;\\n left: 0;\\n z-index: 22;\\n}\\n\\n.login-form-modal .login-form-input-row i {\\n display: none;\\n}\\n\\n.login-form-modal .login-form-input-row input {\\n padding-left: .373333rem /* 14/37.5 */;\\n}\\n\\n.login-form-input-row.phone i {\\n width: .32rem /* 12/37.5 */;\\n height: .426667rem /* 16/37.5 */;\\n background: url(\" + ___CSS_LOADER_URL___5___ + \") center center no-repeat;\\n -webkit-background-size: 100% 100%;\\n -moz-background-size: 100%;\\n background-size: 100%;\\n}\\n\\n.login-form-input-row.captcha i {\\n width: .373333rem /* 14/37.5 */;\\n height: .32rem /* 12/37.5 */;\\n background: url(\" + ___CSS_LOADER_URL___6___ + \") center center no-repeat;\\n -webkit-background-size: 100% 100%;\\n -moz-background-size: 100%;\\n background-size: 100%; \\n}\\n\\n.login-form-modal .login-form-input-row .error-msg {\\n position: absolute;\\n white-space: nowrap;\\n bottom: -.32rem /* 12/37.5 */;\\n font-size: .213333rem /* 8/37.5 */;\\n padding-left: .346667rem /* 13/37.5 */;\\n left: 0;\\n}\\n\\n.login-form-input-row .error-msg {\\n font-size: 0.32rem;\\n color: #F85959; \\n position: absolute;\\n bottom: -0.533333rem /* 20/37.5 */;\\n padding-left: .64rem /* 24/37.5 */;\\n left: 0;\\n}\\n\\n.login-form-input-row .error-msg.hidden {\\n display: none;\\n}\\n\\n.login-form-input-row input::-webkit-input-placeholder {\\n color: rgba(123, 123, 123, .5);\\n}\\n\\n.login-form-input-row input {\\n -webkit-box-flex: 1;\\n -webkit-flex: 1;\\n -moz-box-flex: 1;\\n flex: 1 1;\\n border: none;\\n outline: none;\\n height: 80%;\\n background: transparent;\\n width: 0.53333rem;\\n font-size: .346667rem /* 13/37.5 */;\\n}\\n\\n.login-form-input-row input:-webkit-autofill {\\n -webkit-box-shadow: 0 0 0 30px #fcfcfc inset;\\n}\\n\\n.login-form-input-row:after {\\n position: absolute;\\n content: '';\\n top: -50%;\\n left: -50%;\\n right: -50%;\\n bottom: -50%;\\n border: 1px solid #DDDDDD;\\n -moz-transform: scale(0.5);\\n -o-transform: scale(0.5);\\n transform: scale(0.5);\\n -webkit-transform: scale(0.5);\\n -webkit-box-sizing: border-box;\\n -moz-box-sizing: border-box;\\n box-sizing: border-box;\\n -webkit-border-radius: .093333rem /* 3.5/37.5 */;\\n -moz-border-radius: .093333rem /* 3.5/37.5 */;\\n border-radius: .093333rem /* 3.5/37.5 */;\\n}\\n\\n[data-dpr=\\\"3\\\"] .login-form-input-row:after {\\n -webkit-transform: scale(.333333);\\n -moz-transform: scale(.333333);\\n -o-transform: scale(.333333);\\n transform: scale(.333333);\\n}\\n\\n.login-form-captcha {\\n width: 2.826667rem /* 106/37.5 */;\\n margin-left: .106667rem /* 4/37.5 */;\\n}\\n\\n\\n.login-form-modal .login-form-phonecaptcha-btn {\\n width: 2.88rem /* 108/37.5 */;\\n}\\n\\n.login-form-modal .login-form-phonecaptcha-btn::before {\\n height: .4rem /* 15/37.5 */;\\n}\\n\\n.login-form-phonecaptcha-btn {\\n width: 2.933333rem /* 110/37.5 */;\\n height: 100%;\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -moz-box;\\n display: flex;\\n -webkit-box-align: center;\\n -webkit-align-items: center;\\n -moz-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -webkit-justify-content: center;\\n -moz-box-pack: center;\\n justify-content: center;\\n position: relative;\\n cursor: pointer;\\n}\\n\\n.login-form-phonecaptcha-btn.disable {\\n color: rgba(123, 123, 123, .5);\\n cursor: not-allowed;\\n}\\n\\n.login-form-phonecaptcha-btn::before {\\n position: absolute;\\n height: .746667rem /* 28/37.5 */;\\n width: 0.02667rem;\\n -webkit-transform: scaleX(.5);\\n -moz-transform: scaleX(.5);\\n -o-transform: scaleX(.5);\\n transform: scaleX(.5);\\n content: '';\\n display: block;\\n left: 0;\\n z-index: 1;\\n opacity: .5;\\n background: rgba(123, 123, 123, .5);\\n}\\n\\n.login-form-img-captcha {\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -moz-box;\\n display: flex;\\n}\\n\\n.login-form-img-captcha__wrapper {\\n -webkit-box-flex: 2;\\n -webkit-flex: 2 0 0;\\n -moz-box-flex: 2;\\n flex: 2 0;\\n padding-right: 0.266667rem /* 10/37.5 */;\\n}\\n\\n.login-form-img-captcha__input {\\n padding-left: .64rem;\\n}\\n\\n.login-form-img-captcha-pic__wrapper {\\n -webkit-box-flex: 1;\\n -webkit-flex: 1 0 0;\\n -moz-box-flex: 1;\\n flex: 1 0;\\n cursor: pointer;\\n}\\n\\n.login-form-img-captcha-pic__img {\\n width: 100%;\\n}\\n\\n.login-form-submit-btn {\\n opacity: 0.92;\\n background-image: -webkit-linear-gradient(218deg, #FF6C6C 0%, #FF3D69 100%);\\n background-image: -moz-linear-gradient(218deg, #FF6C6C 0%, #FF3D69 100%);\\n background-image: -o-linear-gradient(218deg, #FF6C6C 0%, #FF3D69 100%);\\n background-image: linear-gradient(-128deg, #FF6C6C 0%, #FF3D69 100%);\\n -webkit-border-radius: 2.5px;\\n -moz-border-radius: 2.5px;\\n border-radius: 0.06667rem;\\n height: 1.2rem /* 45/37.5 */;\\n width: 100%;\\n color: #fff;\\n font-size: .373333rem /* 14/37.5 */;\\n display: -webkit-box;\\n display: -webkit-flex;\\n display: -moz-box;\\n display: flex;\\n -webkit-box-align: center;\\n -webkit-align-items: center;\\n -moz-box-align: center;\\n align-items: center;\\n -webkit-box-pack: center;\\n -webkit-justify-content: center;\\n -moz-box-pack: center;\\n justify-content: center;\\n -webkit-box-shadow: 0 15px 25px 0 rgba(255, 51, 51, .2);\\n -moz-box-shadow: 0 15px 25px 0 rgba(255, 51, 51, .2);\\n box-shadow: 0 15px 25px 0 rgba(255, 51, 51, .2);\\n}\", \"\"]);\n\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAmVBMVEVHcEzZ2dnZ2dnd3d3j4+PZ2dnk5OT39/fZ2dn////b29vb29vZ2dnZ2dna2trd3d3Z2dnZ2dnZ2dnZ2dnc3Nzb29vZ2dna2trZ2dnZ2dnZ2dng4ODZ2dna2trk5OTa2trZ2dna2trZ2dnc3Nza2tra2tra2trY2NjZ2dnY2NjY2NjZ2dnZ2dnZ2dnZ2dnb29vZ2dnY2NjY2NjVFRI0AAAAMnRSTlMA8usgEvoNBfYCNhx7n1wl2+DlxihBLovNa9IYrWQJT6WBsxVwdVbA1ZG+lbmF10dKmGlehiYAAAFMSURBVDjLrZPbuoIgEIXJI2qmqZWpZaV23NXevP/DbRm0DxG8am6cWfOrLGAQQkGAlJHo7PkgxLfliF0QcqRJQNo4SSn7RHtGD5Gfvfw7HYR8SO+WyDgHaGz4IhYoh73sO4MyNgbQH4gH5/PSA4SUp24gFbyhDUhZLgiC6SeIL68rj8yyuDFzkEOdKy7jbWmgsaRULbULsYVWlHRJaklPagdNjf0rMxRHvjBJH9dKeTHOPRXm6tuDSkZF3gSD3gzCqwlmhbvf4beScWefheNyktEW8DDPUmat0ebMRS4k5mKK6VOyG88OY5itJAJqKzB6NLAeLIGqhwyI+FcQyJxjvBCWWo4kNpoQ1UtiOr9yE4WQkUEpWq6YfGNMqjDcNZ50nu5SuzSsGOy047AGppEegnWhe9fOpyda5WNfEAxrrTFu1Lcn7+bBttE34h9LVkSzeQQqswAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAHlBMVEWXl5dHcEyYmJiXl5eYmJiXl5eXl5eXl5eZmZmXl5dnbyeWAAAACXRSTlOAAM3zmb1bZRkE+ytHAAAAT0lEQVQoz2MQFFeeiQSMCgUZJCJVGJCA09RGBlEzQRSQHMhQmYgqJDadQUkQDSgxmKALOTNMQBfiHBUaikJYohZLAsCSTLAkJixJDjNhAgDmdkqDvDuSTAAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAMAAADW3miqAAAAUVBMVEVHcEz///8AmN+Fye8Ak90AnOYAkt0Akt0Akt4Ald9zwexNs+cnpuOY0vHz+f0AneFCr+YIouLR6/nl8/u33vVvwOvv+P3a7vqr2fS/4vbE5PfayY0GAAAACnRSTlMA////8xn/yL1lXW5CmgAAAM9JREFUOMut1EkWwjAMA1ApLWqbztAJ7n9QFkx9ScFZoPVfWM6LAaAqcn1JXlQAgFOpnylPAAwjlUAlMxUKGxXIbZTDEqMkAzkvE42bM9Gw9rLQvDSyUMtaBnJXehloXNnKQMPCSREabtl+ZPLsIrSRzHYj89IrQk33Ue5Kdo1ipJovNa7ku3wwuH+qYSE/5cN2LUlmM8ld+WgFE5+Z9B2588Psy8fL7C9kUP5g400Xlj96ljosf/h23stGx/kjSvqcSd886WAknZ60I5ZwDu+fIh8YFpIisQAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAE4AAABOCAMAAAC5dNAvAAAAflBMVEVHcEz///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+gLKczAAAAKXRSTlMANUOAkKiw9iHh3LtNCfroEe2ZWAYOlFK1KWHCcHkeJIVs0aJBPdOgX27D3FEAAALKSURBVFjDvZjZeqowFEbDgTLIJKhga53rsN7/BXuBKEoGpPkOt8AiIfv/9yDEf74WTn3dr9f7a+0s/kaan9w4p3PlsXuaj2TVfoDkCvz6fWJYFe3rZ/9S7XbVxT+3+KIK34J9HjMAJuXs6cVwVk4AyI6fg2HTsmG5W9ndrdsQy+kw2lcOEP+on/iJAfKvIUvzAZaO/ilnCeAbF+hEQJSYP5tEQGT46iwDvHTIP0k9IJvpHvkGimTokSUF8K2+7wKHzfB42hwAV7e21Vu6XKzU65sBy/Q98aRLQPr/nAxW6btiTFeQSc53GsFhhAMtDhD148+HYjPGeTYF+D1lAck4J0uAF71Nc/DGuqwH+fN2S4jSsbg0gvLJ38Zvtd1u1/+OsPxLUlnCsWOyGTh/wTmQPWy7grj3yD5Xnk24mrx4ewzVPWcV0PfeCXwoaBHsXvwZija/1TDpv7RGwQsjCD77H68fgnDl4STjhREE/yTedpPGPICtGMqT08QWgma3J+leFTwFTYgJnNp1lmIgT0kTZfvHYoUBSnhqmpi1wZZDKAbxNDQRQi6EEAsI9HbR8nQ0IQJYNAI5iyE8PU2cG6HWEjOV8Qw04TeBfIWLMPO2Bpq4wFUIse+oV8PLDDRRwb7R5m6AfZtoYgfrgbgwQOZhMtyAzYYRoPSr582ajyKMIPgw8W5HYQyUW4R4Bt4tUExhfI83A+8WxgaRdaJXz7uJTG8BT1rQ8VoL0BrUi7I0vLtBaeyzp1M1726fanOXqF7Ju5u7MvVIPUTBe6QeVWJUOJKc90iMirSt9Dcpr5O25UVFrPQQr19udosKecmzUjuS12smuiWPvCDbrNUdcPKVagoyy+Wi7WLWcqltuxGw3KbYbqJst3iWG1Db7bHt5t32aMH24MP2WMb20Mj2SMv2wM36OND2sNL6KNX6oLchWhxD33VpbUj+/vULr2iDw4XQD50AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAMAAABiM0N1AAAAilBMVEVHcEz///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+xrdUHAAAALXRSTlMACTzIYw/5BTnyuOyxX+chv3PSQosb6uCPWc31sEuSEzJVhlttZp7Dp6swfdew1w+aAAAC60lEQVRYw6WYaZuCIBCAoUxM886r7LZja/n/f283wRtQZL6Ugu8DM8zBACCQs7bNg8TS98nOe6VZBOZIVOQW7knyKk5yFHgzMVv0n1AC4ztYIMkHTsIg38Ij4twmcBYBniDP89hyju3pe/NqG+4JwegdZulSb49dhRx318yM0wXq6S48tnZtCzjhup7mHRDTDvazmvHD51zqtXsLgRLpqh/cGffaKJlYkff4qz+uui8Vx1yNWfb0WeYGVz/VvrZyPjCwF9WzbstgLjF+dl0ZUQ3GhgxHKzXReUXPoS7PweuOSSccMg4HL9sbC2bomXLW79Y7n9p9DqetDEg8yFkpcqoFZaocSOKhp8oBN/J2ocoBZn9Brh1KcKD/+pTajcjrQz3v8O91LzSVg74B6vfrcgUxWfPl7/d5gybu61A+3f//bcp/aTOTuC+P1NePVodLq6/qBxaQBnom3uX853eSL1pfrZZ80tBekMSxiA51vINPYtl9SU/zlpGleCTm+UmpjnNW/GCT2Ocwo9omEaQf0FgkznkO6XlOyl8XjJI4HPAuXwfU+sP6qU/icahnJIBYj2HpLonLAZCcHz6oQ+JzACJpg7u1DknAAadyyOIpu0PaCTjApTpim79HEnCAQa2WCxNai8ThALsczZkuwiLxOOBKU6I2ktIoicuhkVpjhJE+6SHkoH0JOANkjeaQ8HF0+ZUgtT4j1MpJSnVdBf8YzeOguPy8YKUjKSFJBEfMBCkjXsvo8il7UKHd5hYRvQU5cHZZ04nX2FcotMhZJXuxoErp15ipXtDMYhRQf8cBUiyPbcww94yC3aCXl6PiFcKIaRhGapcam65n7apds7ZVPyFUuvit6j7FRekqmtWNirvS5dir+ySX+dd1dPCa/BTObSCgRRo34ztXvqWBTq5hX819e+w4FpunNVmCCWFwQtvH8qelipFGlOPDyQ7Jb41h8wblgk1UbAZbtDbFrM4fqtqHupUE+VYTdrH+ACos9HzSs8vuAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAwBAMAAACLacUmAAAAHlBMVEV8fHxHcEx7e3t7e3t+fn58fHyCgoKAgIB+fn6EhIQLC9czAAAACnRSTlOAAFlfXHcHFy0d/X0v8wAAAEhJREFUKM9jaGVAAxEMAehCrAzYAKsSCgDpYhZEAQ6jQqNCAySUBgbIQqWQZBuOJDQBIsSJJCRWDgaJJNmIJStgAizZCjPzAQCm0jt75DoLwwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAkCAMAAADIF1gZAAAAOVBMVEVycHB0cHBzcHBzcHB1cXFycHCHdndHcExzc3NxcXF6dHRycXFzcXF0dHRzcHBycnJ/b29ycHBzcHBp9YSMAAAAE3RSTlOAWThRRnoFACBIDnElFmYyCWxkzb3o5gAAAONJREFUOMvt1MuWgyAQRdEDCFfF9/9/bA8So4AGM++audzLkltaWM+j8paHkufwKNd8KZfQKei2wnR6JGDuqXkTgNYCzZ1sANvuVA0wX8sZ6HRQOWC4kgPgdKbBgB9LOXowIaEKG8Q+l32ELSilWtYysjDBuiin6mMRmfl0SqlGn0XWHe+fUbU+icyC/9zKqIZzZMlFQTUfLcekRUll94P0Eay+UTWvyJYpPeIVlQMjGXCq0WCg617jrFCFDd7jrFEt6z7OKlUf1/zDuaMKxZ92S8v6pzs1XbXcj+vyh1X8fMH/AenJHAY0Ls2SAAAAAElFTkSuQmCC\"","export var platforms = [\n {\n name: 'iOS',\n test: /iphone|ipad/gi\n },\n {\n name: 'android',\n test: /android/gi\n },\n {\n name: 'UNKNOWN',\n test: function () { return true; }\n }\n];\nexport var devices = [\n {\n name: 'iphone',\n test: /iphone/gi\n },\n {\n name: 'ipad',\n test: /ipad/gi\n },\n {\n name: 'android',\n test: /android/gi\n },\n {\n name: 'pc',\n test: function () { return true; }\n }\n];\nexport var apps = [\n // lite的ua也符合头条的ua,所以需要在前面\n {\n name: 'toutiaolite',\n bType: 7,\n aid: 35,\n test: /NewsLite(?:|InHouse)\\s([\\d.]+)/i\n },\n {\n name: 'toutiao',\n bType: 3,\n aid: 13,\n test: /NewsArticle\\/([\\d.]+)/i\n },\n {\n name: 'xigua',\n bType: 4,\n aid: 32,\n test: /VideoArticle\\/([\\d.]+)/i\n },\n {\n name: 'huoshan',\n bType: 1,\n aid: 1112,\n test: /live_stream_([\\d.]+)/i\n },\n {\n name: 'douyin',\n bType: 2,\n aid: 1128,\n test: /aweme_([\\d.]+)/i\n },\n {\n name: 'flash',\n bType: 6,\n aid: 0,\n test: /ecom_huimai\\/([\\d.]+)/i\n },\n {\n name: 'wechat',\n bType: 5,\n aid: 0,\n test: /MicroMessenger\\/([\\d.]+)/i\n },\n {\n name: 'automobile',\n bType: 8,\n aid: 36,\n test: /(AutoMobile|AutoMobileInHouse|AutoMobileInHouseTest)[/ ]([\\d.]+)/i\n },\n {\n name: 'super',\n bType: 9,\n aid: 1319,\n test: /Super\\s?([\\d.]+)/i\n },\n // 抖店\n {\n name: 'merchant',\n bType: 0,\n aid: 3102,\n test: /merchant(?:|.inhouse)\\/([\\d.]+)/i\n },\n {\n name: 'aweme_lite',\n bType: 11,\n aid: 2329,\n test: /aweme_lite_([\\d.]+)/i\n },\n {\n name: 'huoshan_lite',\n bType: 0,\n aid: 1350,\n test: /live_stream_lite_([\\d.]+)/i\n },\n {\n name: 'UNKNOWN',\n bType: 0,\n aid: 0,\n test: function () { return true; }\n }\n];\n","import { getEnv } from './env.gen';\nexport default getEnv(window.navigator.userAgent);\n","import { apps, devices, platforms } from './env.config';\nfunction evalTest(test, param) {\n if (typeof test === 'function') {\n return test(param);\n }\n return new RegExp(test).test(param);\n}\nexport function getEnv(ua) {\n var matchUA = function (rule) { return evalTest(rule.test, ua); };\n var app = apps.find(matchUA);\n var device = devices.find(matchUA);\n var platform = platforms.find(matchUA);\n var aid = app.aid || 0;\n /**\n * @description 当前app的名称\n * 可选值为:'toutiao' | 'toutiaolite' | 'xigua' | 'huoshan' | 'douyin' | 'flash' | 'wechat' | 'automobile' | 'super' | 'UNKNOWN'\n */\n var appName = app.name;\n /**\n * @description 当前设备名称\n * 可选值为:'iphone' | 'ipad' | 'iphone' | 'pc'\n */\n var deviceName = device.name;\n /**\n * @description 平台\n * 可选值为:'iOS' | 'android' | 'UNKNOWN'\n */\n var platformName = platform.name;\n /**\n * @description 是否是安卓平台\n */\n var isAndroid = platform.name === 'android';\n /**\n * @description 是否是iOS平台\n */\n var isIOS = platform.name === 'iOS';\n /**\n * @description 每个app有一个枚举值,不能随便修改\n * 可选值为:\n * 未知:0 |\n * 火山:1 |\n * 抖音:2 |\n * 头条:3 |\n * 西瓜:4 |\n * 微信:5 |\n * 值点:6 |\n * 懂车帝:8\n */\n var bType = app.bType;\n /**\n * @description 当前app的版本\n */\n var appVersion = bType !== 0 ? ua.match(app.test).pop() : '0.0.0';\n /**\n * @description 是否是微信内\n */\n var isInWechat = appName === 'wechat';\n /**\n * @description 是否是头条系产品\n * 只要是:火山、抖音、头条、西瓜、值点、懂车帝\n */\n // eslint-disable-next-line prettier/prettier\n var isInToutiaoProduct = /NewsArticle|VideoArticle|live_stream|aweme|automobile|ecom_huimai|Super|merchant/gi.test(ua);\n /**\n * @description 是否是移动端环境\n */\n // eslint-disable-next-line prettier/prettier\n var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua);\n /**\n * @description 是否是头条环境\n */\n var isInToutiao = appName === 'toutiao';\n /**\n * @description 是否是头条lite版\n */\n var isInToutiaoLite = appName === 'toutiaolite';\n /**\n * @description 是否是火山环境\n */\n var isInHotsoon = appName === 'huoshan';\n /**\n * @description 是否是抖音环境\n */\n var isInAweme = appName === 'douyin';\n /**\n * @description 是否是西瓜环境\n */\n var isInVideo = appName === 'xigua';\n /**\n * @description 是否是值点环境\n */\n var isInFlash = appName === 'flash';\n /**\n * @description 是否是懂车帝环境\n */\n var isInMobile = appName === 'automobile';\n /**\n * @description 是否是皮皮虾\n */\n var isInSuper = appName === 'super';\n /**\n * @description 是否是商业化的独立webview\n */\n var isCommercialWebview = /(TTAD)(\\s|\\/|_)(\\S)/i.test(ua);\n /**\n * @description 是否是网盟的sdk\n */\n var isWangMengSdk = /open_news/i.test(ua);\n /**\n * @description 是否是抖店环境\n */\n var isInDouDian = /merchant/gi.test(ua);\n return {\n appName: appName,\n deviceName: deviceName,\n platformName: platformName,\n isAndroid: isAndroid,\n isIOS: isIOS,\n bType: bType,\n appVersion: appVersion,\n isInWechat: isInWechat,\n isInToutiaoProduct: isInToutiaoProduct,\n isMobile: isMobile,\n isInToutiao: isInToutiao,\n isInToutiaoLite: isInToutiaoLite,\n isInHotsoon: isInHotsoon,\n isInAweme: isInAweme,\n isInVideo: isInVideo,\n isInFlash: isInFlash,\n isInMobile: isInMobile,\n isInSuper: isInSuper,\n isCommercialWebview: isCommercialWebview,\n isWangMengSdk: isWangMengSdk,\n isInDouDian: isInDouDian,\n aid: aid\n };\n}\n","/*\n * Developed by HuMingZhi on 12/29/18 5:43 PM\n * Copyright (c) 2018. All right reserved.\n */\nimport { log } from './log';\n/**\n * @param {Function} fn 支持第一个参数作为key缓存结果\n * @return {Function} 返回函数缓存计算结果\n */\nexport var cacheWrap = function (fn) {\n var cachedMap = Object.create(null);\n return function (str) {\n if (!str) {\n log('warning', 'missing function param', 'utils', 'cacheWrap.js', 'cacheWrap');\n }\n var guardedStr = str || 'unknown';\n var result = cachedMap[guardedStr];\n if (result) {\n return result;\n }\n cachedMap[guardedStr] = fn(guardedStr);\n return cachedMap[guardedStr];\n };\n};\n","/*\n * Developed by HuMingZhi on 12/24/18 8:46 PM\n * Copyright (c) 2018. All right reserved.\n */\nimport { cdn } from '../config/cdn';\nimport { isWebpSupport } from '../detectors/isWebpSupport';\nimport { log } from './log';\nexport var getCDNDomain = (function (cdns) {\n var cdnIndex = 0;\n return function () { return cdns[cdnIndex++ % cdns.length]; };\n})(cdn);\n/**\n * @param {string} url 原始图片地址\n * @param {number} quality 压缩比\n * @param {string} size 图片的尺寸\n * @param {boolean} supportWebp 是否支持webp\n * @return {string} 获取压缩之后的图片\n */\nexport var getClientImage = function (url, quality, size, supportWebp) {\n if (quality === void 0) { quality = 50; }\n if (size === void 0) { size = '360x360'; }\n if (!url) {\n log('error', 'image url missing', 'getClientImage.ts', 'getClientImage');\n }\n if (quality <= 0 || quality > 100) {\n log('error', 'quality between 1 to 100 required', 'getClientImage.ts', 'getClientImage');\n }\n var webp = typeof supportWebp === 'boolean'\n ? supportWebp\n : isWebpSupport('isWebpSupport');\n var suffix = \"~\" + size + \"_q\" + quality + \".\" + (webp ? 'webp' : 'jpeg');\n var mat = url.match(/p3a.pstatp.com\\/(large|origin)\\/(.*)/);\n if (mat && mat[1] && mat[2]) {\n if (mat[2].indexOf('temai') === 0) {\n return \"https://\" + getCDNDomain() + \"/img/\" + mat[2] + suffix;\n }\n return \"https://\" + getCDNDomain() + \"/img/mosaic-legacy/\" + mat[2] + suffix;\n }\n if (url.indexOf('ttcdn-tos.pstatp.com/obj/temai/') > 0) {\n return (url.replace('ttcdn-tos.pstatp.com/obj/temai/', 'ttcdn-tos.pstatp.com/img/temai/') + suffix);\n }\n mat = url.match(/ttcdn-tos\\.pstatp\\.com\\/img\\/temai\\/(.*)~/);\n if (mat && mat[1]) {\n return \"https://\" + getCDNDomain() + \"/img/temai/\" + mat[1] + suffix;\n }\n if (webp &&\n /ttcdn-tos\\.pstatp\\.com\\/img\\/mosaic-legacy\\/.+\\.image$/.test(url)) {\n return url.slice(0, -5) + \"webp\";\n }\n return url;\n};\n/**\n * @param {string} tosKey 原始图片tos的key\n * @param {number} quality 压缩比\n * @param {string} size 图片的尺寸\n * @param {boolean} supportWebp 是否支持webp\n * @return {string} 获取压缩之后的图片\n */\nexport var getClientImageWithKey = function (tosKey, quality, size, supportWebp) {\n if (quality === void 0) { quality = 50; }\n if (size === void 0) { size = '360x360'; }\n if (!tosKey) {\n log('error', 'image key missing', 'getClientImage.ts', 'getClientImageWithKey');\n }\n if (quality <= 0 || quality > 100) {\n log('error', 'quality between 1 to 100 required', 'getClientImage.ts', 'getClientImageWithKey');\n }\n var webp = typeof supportWebp === 'boolean'\n ? supportWebp\n : isWebpSupport('isWebpSupport');\n var suffix = \"~\" + size + \"_q\" + quality + \".\" + (webp ? 'webp' : 'jpeg');\n var hasBucket = tosKey.indexOf('/') !== -1;\n return \"https://\" + getCDNDomain() + \"/img/\" + (hasBucket ? '' : 'temai/') + tosKey + suffix;\n};\n","/*\n * Developed by HuMingZhi on 6/11/19 11:34 AM\n * Copyright (c) 2019. All right reserved.\n */\nimport { isProductionMode } from './mode';\n/**\n * @description 用于格式化信息展示\n * @param {'warning'|'error'|'fatal'} msgType 日志类型\n * @param {string} msg 信息内容\n * @param {string} dir 具体位置信息\n * @todo 具体区分日志类型,尽量在开发阶段给出足够提示\n */\nexport var log = function (msgType, msg) {\n var dir = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n dir[_i - 2] = arguments[_i];\n }\n if (!isProductionMode) {\n console.warn('【fe-mobile-lib】: ', dir, msgType, msg);\n }\n};\n","/*\n * Developed by HuMingZhi on 12/29/18 5:56 PM\n * Copyright (c) 2018. All right reserved.\n */\n/* eslint-disable no-unused-vars, eqeqeq */\nimport { cacheWrap } from '../utils/cacheWrap';\n/**\n * @returns {boolean} webp格式图片是否支持\n */\nexport var isWebpSupport = cacheWrap(function cachedFunction() {\n var elem = document.createElement('canvas');\n if (elem.getContext && elem.getContext('2d')) {\n // was able or not to get WebP representation\n return elem.toDataURL('image/webp').indexOf('data:image/webp') == 0;\n }\n // very old browser like IE 8, canvas not supported\n return false;\n});\n","/*\n * Developed by HuMingZhi on 1/20/19 3:51 PM\n * Copyright (c) 2019. All right reserved.\n *\n * cdn域名列表\n */\nexport var cdn = [\n 'sf1-ttcdn-tos.pstatp.com',\n 'sf3-ttcdn-tos.pstatp.com',\n 'sf6-ttcdn-tos.pstatp.com'\n];\n","import env from './core/env';\nimport * as link from './core/link';\nimport * as sendEvent from './core/sendEvent';\nimport * as bridge from './bridge/index';\nexport { env, bridge, link, sendEvent };\n","// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar compare = require('semver-compare');\n/**\n * @description 是否大于某个版本\n */\nexport function gt(a, b) {\n return compare(a, b) === 1;\n}\n/**\n * @description 是否低于某个版本\n */\nexport function lt(a, b) {\n return compare(a, b) === -1;\n}\n/**\n * @description 是否等于某个版本\n */\nexport function eq(a, b) {\n return compare(a, b) === 0;\n}\n/**\n * @description 是否大于等于某个版本\n */\nexport function ge(a, b) {\n return gt(a, b) || eq(a, b);\n}\n/**\n * @description 是否低于等于某个版本\n */\nexport function le(a, b) {\n return lt(a, b) || eq(a, b);\n}\n","/**\n * fetch支持的配置参数\n */\nexport var fetchSupportConfig = [\n 'methods',\n 'url',\n 'params',\n 'data',\n 'withCredentials',\n 'baseURL',\n 'timeout',\n 'postList',\n 'needDeviceId',\n 'commonParams',\n 'metrics',\n 'processPostData'\n];\n","import env from './env';\nexport var isToutiaoLink = function (link) {\n return /^(sslocal|snssdk)/.test(link);\n};\nexport var isSuperLink = function (link) {\n return /^(bds)/.test(link);\n};\nexport var isAwemeLink = function (link) {\n return /^(aweme)/.test(link);\n};\nexport var transToNormalLink = function (link) {\n if (isToutiaoLink(link)) {\n return decodeURIComponent(link.match(/url=([^&]+)/)[1]);\n }\n return link;\n};\nexport var transToToutiaoLink = function (link, config) {\n var newLink = link;\n if (!isToutiaoLink(link)) {\n newLink = \"sslocal://webview?url=\" + encodeURIComponent(link);\n if (config && config.hideBar) {\n newLink +=\n '&hide_bar=1&hide_back_close=1&hide_back_button=1&hide_nav_bar=1';\n if (env.isInMobile) {\n // 懂车帝无法隐藏回退箭头,将其改为白色并放在右上角\n // 懂车帝无法控制右滑返回,禁用\n newLink +=\n '&hide_close_btn=1&hide_back_buttonView=1&back_button_color=white&back_button_position=top_right&bounce_disable=1&swipe_mode=1';\n }\n }\n if (config && config.bounceDisable) {\n newLink += '&bounce_disable=1&disable_bounce=1&disable_bounces=1';\n }\n }\n if (config && config.title) {\n newLink = newLink + \"&title=\" + config.title;\n }\n return newLink;\n};\nexport var transToAwemeLink = function (link, config) {\n var newLink = link;\n if (!isAwemeLink(link)) {\n newLink = \"aweme://webview?url=\" + encodeURIComponent(link);\n if (config && config.hideBar) {\n newLink += '&hide_nav_bar=1';\n }\n if (config && config.bounceDisable) {\n newLink += '&bounce_disable=1&disable_bounce=1&disable_bounces=1';\n }\n }\n if (config && config.title) {\n newLink = newLink + \"&title=\" + config.title;\n }\n return newLink;\n};\nexport var transToSuperLink = function (link, config) {\n var newLink = link;\n if (!isSuperLink(link)) {\n newLink = 'bds://webview?url=' + encodeURIComponent(link);\n if (config && config.hideBar) {\n newLink += '&hide_bar=1&transparent_bg_back_icon=false';\n if (env.isIOS) {\n newLink += '&need_safe_area=1';\n }\n }\n if (config && config.bounceDisable) {\n newLink += '&bounce_disable=1';\n }\n }\n if (config && config.title) {\n newLink = newLink + \"&title=\" + config.title;\n }\n if (env.isIOS) {\n newLink += '&allow_form=1';\n }\n return newLink;\n};\n/**\n * @description 转换链接\n * @param {string} link 链接\n * @param {Object} config 配置\n * @returns {string} 转化为可实际使用的链接\n */\nexport function transLink(link, config) {\n if (env.isInAweme) {\n return transToAwemeLink(link, config);\n }\n if (env.isInSuper) {\n return transToSuperLink(link, config);\n }\n if (env.isInToutiaoProduct) {\n return transToToutiaoLink(link, config);\n }\n return transToNormalLink(link);\n}\n","/**\n * cookie获取\n */\nexport function getCookie(key) {\n const reg = new RegExp('(^| )' + key + '=([^;]*)(;|$)');\n const arr = document.cookie.match(reg);\n return arr ? unescape(arr[2]) : null;\n}\n\n/**\n * 对象扩展\n */\nconst hasOwn = Object.prototype.hasOwnProperty;\nexport function extend(obj) {\n let source;\n let prop;\n\n for (let i = 1, length = arguments.length; i < length; i++) {\n source = arguments[i];\n /* eslint no-restricted-syntax:off */\n for (prop in source) {\n if (hasOwn.call(source, prop)) {\n /* eslint no-param-reassign: off */\n obj[prop] = source[prop];\n }\n }\n }\n return obj;\n}\n","export const imageCaptchaTpl = (captcha) => `\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \"验证码\"/\n
\n
\n
\n
\n`;\n\nconst formTpl = (agreement, loginStr, defaultCheckedAgreement, title) => `\n
\n
\n
${title}
\n
\n
\n
\n \n \n
获取验证码
\n
手机号错误
\n
\n
\n
\n
\n \n \n
验证码错误
\n
未注册手机验证后自动登录
\n
\n
\n
\n
${loginStr}
\n ${agreement ? ('
' + agreement + '
') : ''}\n
尚未同意协议
\n
已发送验证码
\n
\n`;\n\nexport const modalTpl = (agreement, loginStr, defaultCheckedAgreement, title) => `\n
\n ${formTpl(agreement, loginStr, defaultCheckedAgreement, title)}\n
\n`;\n\nexport const pageTpl = formTpl;\n","export const hasClass = function hasClass(el, cls) {\n if (!cls || !(cls = cls.trim())) {\n return false;\n }\n\n if (el.classList) {\n return el.classList.contains(cls);\n } \n var cur = ' ' + (el.getAttribute('class') || '') + ' ';\n return cur.indexOf(' ' + cls + ' ') !== -1;\n};\n\nexport const toggleClass = function toggleClass(el, cls) {\n hasClass(el, cls) ? removeClass(el, cls) : addClass(el, cls);\n}\n\nexport const addClass = function addClass(el, cls) {\n if (!cls || !(cls = cls.trim())) {\n return;\n }\n\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = ' ' + (el.getAttribute('class') || '') + ' ';\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n};\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nexport const removeClass = function removeClass(el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return;\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = ' ' + (el.getAttribute('class') || '') + ' ';\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n};\n\n","import axios from 'axios';\nimport './account.css';\nimport { extend, getCookie } from './utils';\nimport { modalTpl, pageTpl, imageCaptchaTpl } from './AccountTpl';\nimport { addClass, removeClass, hasClass, toggleClass } from './class';\n\n/* eslint vars-on-top: off */\n// 手机+验证码登录\nconst MOBILE_CODE_LOGIN_URL = '/passport/web/sms_login/?account_sdk_source=web';\n// 手机/邮箱 + 密码登录\nconst ACCOUNT_PWD_LOGIN_URL = '/passport/web/user/login/?account_sdk_source=web';\n// 密码设置\nconst PWD_SET_URL = '/passport/web/password/set/?account_sdk_source=web';\n// 密码修改\nconst PWD_CHANGE_URL = '/passport/web/password/change/?account_sdk_source=web';\n// 密码重置\nconst PWD_RESET_URL = '/passport/web/password/reset/?account_sdk_source=web';\n// 手机验证码\nconst MOBILE_CODE_URL = '/passport/web/send_code/?account_sdk_source=web';\n// 手机绑定\nconst MOBILE_BIND_URL = '/passport/web/mobile/bind/?account_sdk_source=web';\n// 图片验证码\nconst CAPTCHA_CODE_URL = '/passport/web/refresh_captcha/?account_sdk_source=web';\n// 登出\nconst LOGOUT_URL = '/passport/web/logout/?account_sdk_source=web';\n// 图形验证码最大长度\nconst MAX_IMG_CAPTCHA_LEN = 4;\n\n// 网络请求出错\nconst NET_ERROR = {\n status: 'fail',\n message: '网络请求失败,请重试',\n error_code: -1\n};\n\n// 重复请求接口\nconst BUSY_ERROR = {\n status: 'fail',\n mesage: '请勿重复请求接口',\n error_code: -2\n};\n\n// 结果出错\nconst rejectError = (data, needCaptchaWhenReject) => extend({\n status: 'fail',\n message: data.description || '',\n error_code: data.error_code\n}, needCaptchaWhenReject ? { captcha: data.captcha || '' } : {});\n\n// event enum\nconst EVENT = {\n loginSuccess: 'loginSuccess', // 登录成功\n loginFailure: 'loginFailure', // 登录失败\n beforeLogin: 'beforeLogin', // 登录之前\n beforeSendPhoneCaptcha: 'beforeSendingPhoneCaptcha', // 发送验证码之前\n sendPhoneCaptchaSuccess: 'sendPhoneCaptchaSuccess', // 发送验证码成功\n sendPhoneCaptchaFailure: 'sendPhoneCaptchaFailure', // 发送验证码失败\n toggleAgreement: 'toggleAgreement', // 同意或者不同意政策\n dismissModal: 'dismissModal' // 模态框消失\n};\n\nconst noop = () => {};\nconst trimReg = /^\\s*|\\s*$/g;\n\n/**\n * 登录类\n * opts { aid }\n * modal: boolean modal or page\n */\n/* eslint no-underscore-dangle: off */\n/* eslint no-param-reassign: off */\n/* eslint prefer-promise-reject-errors: off */\n/* eslint class-methods-use-this: off */\nclass AccountSDK {\n constructor({\n aid,\n modal = false,\n dom = 'body',\n countDownNote = '%nums重新获取',\n countDownInterval = 60,\n countDownInitNote = '获取验证码',\n agreementHtml = '',\n loginStr = '登录',\n loggingStr = '登录中...',\n defaultCheckedAgreement = true,\n loginChecker = e => true,\n checkPhoneRe = /^1\\d{10}$/,\n checkPhoneCaptchaRe = /\\d{4}/,\n messageTimeout = 2000,\n urlOrigin = location.origin,\n customTitle = '登录你的头条,精彩不丢失',\n formData = true,\n defaultPhone = ''\n } = {}) {\n this._default = {\n aid: aid || 13\n };\n this._modal = modal;\n this._countDownNote = countDownNote;\n this._countDownInterval = countDownInterval;\n this._countDownInitNote = countDownInitNote;\n this._agreementHtml = agreementHtml;\n this._loginStr = loginStr;\n this._loggingStr = loggingStr;\n this._container$ = modal ? null : document.querySelector(dom);\n this._submitBtn$ = null;\n this._phoneInput$ = null;\n this._phoneCaptchaInput$ = null;\n this._imageCaptchaInput$ = null;\n this._phoneCaptchaBtn$ = null;\n this._phoneErrorNote$ = null;\n this._phoneCaptchaErrorNote$ = null;\n this._agreement$ = null;\n this._commonToast$ = null;\n this._captchaToast$ = null;\n this._registerNote$ = null;\n this._gettingPhoneCaptcha = false;\n this._isLogging = false;\n this._phoneNoticeTimer = 0;\n this._phoneCaptchaNoticeTimer = 0;\n this._toastTimer = 0;\n this._codeTimer = 0;\n this._defaultCheckedAgreement = defaultCheckedAgreement;\n this._loginChecker = loginChecker;\n this._checkPhoneRe = checkPhoneRe;\n this._checkPhoneCaptchaRe = checkPhoneCaptchaRe;\n this._messageTimeout = messageTimeout;\n this._toastTimerFunc = noop;\n this._urlOrigin = urlOrigin;\n this._customTitle = customTitle;\n this._stringifyData = formData;\n this._defaultPhone = defaultPhone;\n // whether or not user need to input image captcha to login\n this._needImageCaptcha = false;\n this._formContainer$ = null;\n // img element with src set to captcha\n // used to replace captcha when user click image\n this._captchaImg$ = null;\n // container of image captcha\n this._imageCaptchaContainer$ = null;\n this._initDOM();\n this._initListener();\n }\n\n _emit(eventName, detail = {}) {\n const e = new CustomEvent(eventName, {\n detail,\n bubbles: true,\n cancelable: false\n });\n this._container$.dispatchEvent(e);\n }\n\n _urlWrap(url) {\n return this._urlOrigin + url;\n }\n\n _formData(params) {\n if (typeof params !== 'object' || !this._stringifyData) return params;\n let query = '';\n for (let key in params) {\n if (!params.hasOwnProperty(key)) continue;\n if (query) query += '&';\n query += `${key}=${encodeURIComponent(params[key])}`;\n }\n return query;\n }\n\n // 发送手机号验证码\n _captchaToast() {\n removeClass(this._captchaToast$, 'hidden');\n this._toastTimerFunc = () => {\n this._toastTimer = 0;\n addClass(this._captchaToast$, 'hidden');\n this._toastTimerFunc = noop;\n };\n this._toastTimer = setTimeout(this._toastTimerFunc, this._messageTimeout);\n }\n\n // 发送toast提示\n _toast(message) {\n this._commonToast$.innerText = message;\n removeClass(this._commonToast$, 'hidden');\n this._toastTimerFunc = () => {\n this._toastTimer = 0;\n this._commonToast$.innerText = '';\n addClass(this._commonToast$, 'hidden');\n this._toastTimerFunc = noop;\n };\n this._toastTimer = setTimeout(this._toastTimerFunc, this._messageTimeout);\n }\n\n // 展示页面表单的错误提示\n _phoneNotice(message) {\n clearTimeout(this._phoneNoticeTimer);\n removeClass(this._phoneErrorNote$, 'hidden');\n this._phoneErrorNote$.innerText = message;\n this._phoneNoticeTimer = setTimeout(() => {\n addClass(this._phoneErrorNote$, 'hidden');\n this._phoneNoticeTimer = 0;\n }, this._messageTimeout);\n }\n\n _phoneCaptchaNotice(message) {\n clearTimeout(this._phoneCaptchaNoticeTimer);\n removeClass(this._phoneCaptchaErrorNote$, 'hidden');\n this._modal && addClass(this._registerNote$, 'hidden');\n this._phoneCaptchaErrorNote$.innerText = message;\n this._phoneCaptchaNoticeTimer = setTimeout(() => {\n addClass(this._phoneCaptchaErrorNote$, 'hidden');\n this._modal && removeClass(this._registerNote$, 'hidden');\n this._phoneCaptchaNoticeTimer = 0;\n }, this._messageTimeout);\n }\n\n // 参数打包\n _paramsPack(params) {\n if (typeof params !== 'object') {\n params = {};\n }\n params = params || {};\n return extend(params, this._default);\n }\n\n _getPhone() {\n return this._phoneInput$.value.replace(trimReg, '');\n }\n\n _getPhoneCaptcha() {\n return this._phoneCaptchaInput$.value.replace(trimReg, '');\n }\n\n _getGraphicCaptcha() {\n return this._imageCaptchaInput$ && this._imageCaptchaInput$.value.replace(trimReg, '');\n }\n\n _getAgreementStatus() {\n return this._agreementHtml ? hasClass(this._agreement$, 'checked') : true;\n }\n\n done() {\n this._container$.removeEventListener('click', this);\n clearTimeout(this._codeTimer);\n clearTimeout(this._toastTimer);\n clearTimeout(this._phoneNoticeTimer);\n clearTimeout(this._phoneCaptchaNoticeTimer);\n if (this._modal) this._container$.parentNode.removeChild(this._container$);\n this._container$ = null;\n this._submitBtn$ = null;\n this._phoneInput$ = null;\n this._phoneCaptchaInput$ = null;\n this._phoneCaptchaBtn$ = null;\n this._phoneErrorNote$ = null;\n this._phoneCaptchaErrorNote$ = null;\n this._agreement$ = null;\n this._commonToast$ = null;\n this._captchaToast$ = null;\n this._registerNote$ = null;\n this._phoneCaptchaContainer$ = null;\n this._formContainer$ = null;\n }\n\n // 渲染dom\n _initDOM() {\n if (this._modal) {\n const div = document.createElement('div');\n div.innerHTML = modalTpl(this._agreementHtml, this._loginStr, this._defaultCheckedAgreement, this._customTitle);\n document.body.appendChild(div.children[0]);\n this._container$ = document.body.querySelector('.login-form-modal');\n } else {\n this._container$.innerHTML = pageTpl(this._agreementHtml, this._loginStr, this._defaultCheckedAgreement, this._customTitle);\n }\n this._submitBtn$ = this._container$.querySelector('.login-form-submit-btn');\n this._phoneInput$ = this._container$.querySelector('input[name=phone]');\n this._phoneCaptchaInput$ = this._container$.querySelector('input[name=phonecaptcha]');\n this._phoneCaptchaContainer$ = document.getElementById('login-form-phone-captcha');\n this._phoneCaptchaBtn$ = this._container$.querySelector('.login-form-phonecaptcha-btn');\n this._phoneErrorNote$ = this._container$.querySelector('.login-form-input-row.phone .error-msg');\n this._phoneCaptchaErrorNote$ = this._container$.querySelector('.login-form-input-row.captcha .error-msg');\n this._commonToast$ = this._container$.querySelector('.login-toast');\n this._captchaToast$ = this._container$.querySelector('.captcha-toast');\n this._registerNote$ = this._container$.querySelector('.login-form-notice');\n this._formContainer$ = this._container$.querySelector('.login-form-wrapper');\n this._agreementHtml && (this._agreement$ = this._container$.querySelector('.login-form-agreement'));\n\n // put default value\n this._defaultPhone && (this._phoneInput$.value = this._defaultPhone);\n }\n\n /**\n * prefix data image string with type\n * @param {string} dataImgContent - raw data image string\n * @return {string} full data image string\n */\n _prefixDataImg(dataImgContent) {\n return `data:image/png;base64, ${dataImgContent}`;\n }\n\n /**\n * set captcha image source\n * @param {string} captcha - image captcha data image\n * @return {void} None\n */\n _setCaptchaImage(captcha) {\n captcha && this._captchaImg$ && (this._captchaImg$.src = this._prefixDataImg(captcha));\n }\n\n /**\n * @param {string} captcha image data uri\n * create captcha DOM Component and append it to $container\n * @returns {void} None\n */\n _attachCaptchaDom(captcha) {\n this._imageCaptchaContainer$ = document.createElement('div');\n this._imageCaptchaContainer$.innerHTML = imageCaptchaTpl(captcha);\n this._formContainer$.insertBefore(this._imageCaptchaContainer$, this._phoneCaptchaContainer$);\n // this._formContainer$.appendChild(this._imageCaptchaContainer$);\n this._captchaImg$ = this._formContainer$.querySelector('.login-form-img-captcha-pic__img');\n this._imageCaptchaInput$ = this._formContainer$.querySelector('.login-form-img-captcha__input');\n this._needImageCaptcha = true;\n }\n\n // event handler\n handleEvent(e) {\n if (this._isLogging) return;\n if (this._toastTimer) {\n clearTimeout(this._toastTimer);\n this._toastTimerFunc();\n return;\n }\n const target = e.target;\n const className = target.className;\n switch (e.type) {\n case 'click':\n if (target === this._submitBtn$) {\n this.userLogin();\n } else if (target === this._phoneCaptchaBtn$) {\n this.getMobileCode();\n } else if (target === this._agreement$ || target === this._agreement$.querySelector('i') || target === this._agreement$.querySelector('div')) {\n this._toggleAgreement(e);\n } else if (className === 'login-form-close-btn') {\n this._emit(EVENT.dismissModal);\n } else if (\n className === 'login-form-img-captcha-pic__img-wrapper'\n || className === 'login-form-img-captcha-pic__img'\n ) {\n axios.get(this._urlWrap(CAPTCHA_CODE_URL)).then(({ data }) => {\n const { data: { captcha } = {} } = data;\n this._setCaptchaImage(captcha);\n });\n }\n break;\n case 'touchmove':\n if (this._modal) {\n e.preventDefault();\n }\n break;\n case 'input':\n if (target === this._imageCaptchaInput$) {\n if (this._needImageCaptcha) {\n const { value } = this._imageCaptchaInput$;\n if (value.length > MAX_IMG_CAPTCHA_LEN) {\n this._imageCaptchaInput$.value = value.slice(0, MAX_IMG_CAPTCHA_LEN);\n }\n this._imageCaptchaInput$.value = this._imageCaptchaInput$.value.toUpperCase();\n }\n }\n break;\n default:\n break;\n }\n }\n\n _toggleAgreement(e) {\n toggleClass(this._agreement$, 'checked');\n this._emit(EVENT.toggleAgreement, { checked: this._getAgreementStatus() });\n }\n\n // 监听事件\n _initListener() {\n this._container$.addEventListener('click', this, true);\n this._container$.addEventListener('touchmove', this, true);\n this._container$.addEventListener('input', this, true);\n }\n\n /**\n * 用户登录\n * accountType === false, params: { mobile, code, captcha, mix_mode }\n * accountType === true, params: { account, password, captcha, mix_mode }\n */\n userLogin(accountType = false) {\n if (this._isLogging) return;\n const loginUrl = accountType ? this._urlWrap(ACCOUNT_PWD_LOGIN_URL) : this._urlWrap(MOBILE_CODE_LOGIN_URL);\n let params = {\n mobile: this._getPhone(),\n code: this._getPhoneCaptcha()\n };\n if (!params.mobile) {\n this._phoneNotice('手机号码不为空');\n return;\n }\n if (!this._checkPhoneRe.test(params.mobile)) {\n this._phoneNotice('手机号错误');\n return;\n }\n if (!params.code) {\n this._phoneCaptchaNotice('请输入验证码');\n return;\n }\n if (!this._checkPhoneCaptchaRe.test(params.code)) {\n this._phoneCaptchaNotice('验证码错误');\n return;\n }\n if (!this._getAgreementStatus()) {\n this._toast('尚未同意协议');\n return;\n }\n if (this._needImageCaptcha) {\n Object.defineProperty(params, 'captcha', {\n enumerable: true,\n value: this._getGraphicCaptcha()\n });\n }\n this._paramsPack(params);\n this._emit(EVENT.beforeLogin, params);\n if (!this._loginChecker(params)) return;\n this._isLogging = true;\n this._submitBtn$.innerText = this._loggingStr;\n addClass(this._submitBtn$, 'disable');\n axios.post(loginUrl, this._formData(params), {\n 'X-CSRFToken': getCookie('csrftoken')\n }).then(res => {\n this._isLogging = false;\n this._submitBtn$.innerText = this._loginStr;\n removeClass(this._submitBtn$, 'disable');\n res = res.data;\n const data = res.data || {};\n if (res.message === 'success') {\n this._emit(EVENT.loginSuccess, { data, params });\n } else {\n this._emit(EVENT.loginFailure, { data, params });\n this._toast(data.description || '登录失败');\n }\n }).catch(err => {\n this._isLogging = false;\n this._submitBtn$.innerText = this._loginStr;\n removeClass(this._submitBtn$, 'disable');\n this._emit(EVENT.loginFailure, { params, data: {} });\n this._toast('登录失败');\n });\n }\n\n /**\n * 获取手机验证码\n * params { mobile, captcha, type }\n */\n getMobileCode() {\n if (this._gettingPhoneCaptcha) return;\n let params = {\n mobile: this._getPhone(),\n type: 24\n };\n if (!params.mobile) {\n this._toast('手机号码不为空');\n return;\n }\n if (!this._checkPhoneRe.test(params.mobile)) {\n this._toast('请填写正确的手机号码');\n return;\n }\n if (this._needImageCaptcha) {\n Object.defineProperty(params, 'captcha', {\n enumerable: true,\n value: this._getGraphicCaptcha()\n });\n }\n this._gettingPhoneCaptcha = true;\n this._paramsPack(params);\n this._emit(EVENT.beforeSendPhoneCaptcha, params);\n axios.get(this._urlWrap(MOBILE_CODE_URL), { params }).then(res => {\n res = res.data;\n const data = res.data || {};\n if (res.message === 'success') {\n this.setCodeStatus();\n this._captchaToast();\n this._emit(EVENT.sendPhoneCaptchaSuccess, { mobile: params.mobile });\n } else {\n this._toast(data.description || '发送验证码失败');\n if (data.captcha) {\n if (!this._needImageCaptcha) {\n this._attachCaptchaDom(this._prefixDataImg(data.captcha));\n // caveat: 经测试发现验证码错误后,之前的验证码已经不合法,需要将图片刷新为返回值里的captcha\n } else {\n this._setCaptchaImage(data.captcha);\n }\n } else {\n this._emit(EVENT.sendPhoneCaptchaFailure, { mobile: params.mobile });\n }\n this._gettingPhoneCaptcha = false;\n }\n }).catch(err => {\n this._gettingPhoneCaptcha = false;\n this._toast('发送验证码失败');\n this._emit(EVENT.sendPhoneCaptchaFailure, { mobile: params.mobile });\n this._gettingPhoneCaptcha = false;\n });\n }\n\n /**\n * 设置按钮倒计时状态文字\n */\n setCodeStatus() {\n let countDown = this._countDownInterval;\n this._codeTimer = 0;\n addClass(this._phoneCaptchaBtn$, 'disable');\n const ticker = () => {\n if (countDown === 0) {\n this._phoneCaptchaBtn$.innerText = this._countDownInitNote;\n removeClass(this._phoneCaptchaBtn$, 'disable');\n this._gettingPhoneCaptcha = false;\n return;\n }\n this._phoneCaptchaBtn$.innerText = this._countDownNote.replace('%num', countDown);\n countDown -= 1;\n this._codeTimer = setTimeout(ticker, 1000);\n };\n ticker();\n }\n\n /**\n * 登出\n */\n /* eslint no-restricted-globals: off */\n logout(nextUrl = '/') {\n nextUrl = encodeURIComponent(nextUrl);\n location.href = `${LOGOUT_URL}&next=${nextUrl}`;\n }\n}\n\nexport default AccountSDK;\n","import './account.css';\nimport SDK from './Account';\n\nexport default SDK;","/*\n * Developed by HuMingZhi on 7/28/19 5:56 PM\n * Copyright (c) 2019. All right reserved.\n */\nimport { isProductionMode } from '../utils/mode';\n/* eslint-disable no-param-reassign */\n(function () {\n (function (win, doc, tag, url, name, appId, \n // TODO: 有待补充\n requiredKey, eScript, eArchor\n // eslint-disable-next-line max-params\n ) {\n win['MarioJSSDKObject'] = name;\n // @ts-ignore\n win[name] =\n win[name] ||\n function () {\n // eslint-disable-next-line function-paren-newline\n (win[name].q = win[name].q || []).push(arguments\n // eslint-disable-next-line function-paren-newline\n );\n };\n win[name].id = appId;\n win[name].r = requiredKey;\n win[name].l = Number(new Date());\n eScript = doc.createElement(tag);\n eArchor = doc.getElementsByTagName(tag)[0];\n eScript.async = 1;\n eScript.src = url;\n eArchor.parentNode.insertBefore(eScript, eArchor);\n })(window, document, 'script', 'https://tms3.bytecdn.cn/s/assets/js/eventCollector_e6f797e.js', 'collectEvent');\n /*\n ** user参数为必传参数,非登录页面使用需生成一个唯一ID\n */\n function setCookie(c_name, value, exdays) {\n var exdate = new Date();\n exdate.setDate(exdate.getDate() + exdays);\n try {\n var c_value = escape(value) +\n (exdays == null ? '' : '; expires=' + exdate.toUTCString());\n document.cookie = c_name + '=' + c_value;\n }\n catch (e) { }\n }\n function getCookie(c_name) {\n var i;\n var x;\n var y;\n var ARRcookies = document.cookie.split(';');\n for (i = 0; i < ARRcookies.length; i++) {\n x = ARRcookies[i].substr(0, ARRcookies[i].indexOf('='));\n y = ARRcookies[i].substr(ARRcookies[i].indexOf('=') + 1);\n x = x.replace(/^\\s+|\\s+$/g, '');\n if (x === c_name) {\n return unescape(y);\n }\n }\n return null;\n }\n function guid() {\n function S4() {\n return (((1 + Math.random()) * 0x10000) | 0)\n .toString(16)\n .substring(1);\n }\n return ('TEA-' +\n S4() +\n S4() +\n '-' +\n S4() +\n '-' +\n S4() +\n '-' +\n S4() +\n '-' +\n S4() +\n S4() +\n S4());\n }\n var uid = getCookie('_tea');\n if (uid == null) {\n uid = guid();\n setCookie('_tea', uid, 365);\n }\n /*\n **设置相关参数\n */\n window.collectEvent.ready = function (instance) {\n instance.setDebug(isProductionMode); // 开发测试时一定要使用debug模式,以免影响统计数据\n instance.setIntranetMode(false);\n instance.setRequiredKeys({\n user: ['user_unique_id'],\n header: ['app_id', 'app_name']\n });\n instance.setUser({\n user_unique_id: uid\n });\n instance.setHeader({\n app_id: 1215,\n app_name: 'fangxingou'\n });\n };\n})();\n","import '../framework/tea';\nfunction sendV3ByToutiao(env, event, params) {\n var UMENG_EVENT_TYPE = 'log_event_v3';\n var s = 'bytedance://' + UMENG_EVENT_TYPE + '?event=' + event;\n if (params) {\n try {\n s += '¶ms=' + encodeURIComponent(JSON.stringify(params));\n }\n catch (e) {\n console.log(e);\n }\n }\n try {\n window.webkit.messageHandlers.observe.postMessage(s);\n }\n catch (err) {\n console.log(s);\n }\n}\nfunction sendLogV3ByUmeng(env, event, params) {\n var obj = {\n category: 'event_v3',\n tag: event,\n extra: ''\n };\n try {\n obj.extra = JSON.stringify(params);\n }\n catch (e) {\n console.log(e);\n }\n var s = 'bytedance://' + (env.isAndroid ? 'log_event?' : 'custom_event?');\n if (obj) {\n s += Object.keys(obj).reduce(function (acc, item) {\n var prefix = !acc ? '' : acc + '&';\n return (prefix +\n encodeURIComponent(item) +\n '=' +\n encodeURIComponent(obj[item]));\n }, '');\n }\n try {\n window.webkit.messageHandlers.observe.postMessage(s);\n }\n catch (err) {\n console.log(s);\n }\n}\nfunction sendLogByTea(env, event, params) {\n window.collectEvent(event, params);\n}\nexport var sendFunConfigInApp = {\n toutiao: {\n canUse: function (env) { return env.isInToutiao || env.isInToutiaoLite; },\n func: sendV3ByToutiao\n },\n // sendLogByJsb: {\n // canUse: (env: IEnv) => logV3Support(env),\n // func: sendLogV3ByJsb\n // },\n sendUmengV3: {\n canUse: function (env) { return true; },\n func: sendLogV3ByUmeng\n }\n};\nexport var sendFunConfigOutApp = {\n outApp: {\n canUse: function (env) { return !!window.collectEvent; },\n func: sendLogByTea\n }\n};\n","import { sendFunConfigInApp, sendFunConfigOutApp } from '../config/sendLog3Config';\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nvar qs = require('qs');\nexport var getTag = function (extraParams) {\n var tag = window.location.pathname\n .replace(/\\.html$/, '')\n .split('/')\n .slice(1, 4)\n .join('_');\n if (extraParams) {\n var len = extraParams.length;\n for (var i = 0; i < len; i++) {\n if (extraParams[i].actually === tag) {\n return extraParams[i].expect;\n }\n }\n }\n return tag;\n};\nexport var addUrlParam = function (args) {\n var urlParse = qs.parse(window.location.search.slice(1) || '');\n var data = {};\n if (!args)\n return data;\n // eslint-disable-next-line guard-for-in\n for (var key in args) {\n var name_1 = args[key].name;\n var val = void 0;\n if (Object.prototype.hasOwnProperty.call(urlParse, name_1)) {\n val = urlParse[name_1];\n }\n else if (Object.prototype.hasOwnProperty.call(args[key], 'defaultValue')) {\n val = args[key].defaultValue;\n }\n // eslint-disable-next-line no-undefined\n if (val !== undefined) {\n data[key] = val;\n }\n }\n return data;\n};\nexport var addWindowParam = function (args) {\n var data = {};\n if (!args)\n return data;\n // eslint-disable-next-line guard-for-in\n for (var key in args) {\n var name_2 = args[key].name;\n var val = void 0;\n if (Object.prototype.hasOwnProperty.call(window, name_2)) {\n val = window[name_2];\n }\n else if (Object.prototype.hasOwnProperty.call(args[key], 'defaultValue')) {\n val = args[key].defaultValue;\n }\n // eslint-disable-next-line no-undefined\n if (val !== undefined) {\n data[key] = val;\n }\n }\n return data;\n};\nexport var sendLog3 = function (env, event, params, extraSendFunc) {\n if (env.isInToutiaoProduct) {\n var funcConfig = {};\n var sendFlag = false;\n funcConfig = Object.assign(extraSendFunc || {}, sendFunConfigInApp);\n for (var key in funcConfig) {\n if (!sendFlag &&\n key !== 'sendUmengV3' &&\n funcConfig[key].canUse(env)) {\n sendFlag = true;\n funcConfig[key].func(env, event, params);\n break;\n }\n }\n if (!sendFlag) {\n funcConfig.sendUmengV3.func(env, event, params);\n }\n }\n else if (sendFunConfigOutApp.outApp.canUse(env)) {\n sendFunConfigOutApp.outApp.func(env, event, params);\n }\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _env = _interopRequireDefault(require(\"../../core/env\"));\n\n/*\nJSBridge大致流程:\nweb调用_call,\n_call将函数push到队列_sendMessageQueue, 通知app执行_fetchQueue\napp取到任务队列,使用_handleMessageFromToutiao()执行每个任务\n_handleMessageFromToutiao会把执行结果用_setResultIframe的方式返回客户端\n*/\n(function () {\n var UTF8 = {\n encode: function encode(b) {\n b = b || \"\";\n b = b.replace(/\\r\\n/g, \"\\n\");\n var a = \"\";\n\n for (var e = 0; e < b.length; e++) {\n var d = b.charCodeAt(e);\n\n if (d < 128) {\n a += String.fromCharCode(d);\n } else {\n if (d > 127 && d < 2048) {\n a += String.fromCharCode(d >> 6 | 192);\n a += String.fromCharCode(d & 63 | 128);\n } else {\n a += String.fromCharCode(d >> 12 | 224);\n a += String.fromCharCode(d >> 6 & 63 | 128);\n a += String.fromCharCode(d & 63 | 128);\n }\n }\n }\n\n return a;\n },\n decode: function decode(a) {\n var b = \"\";\n var d = 0;\n var e = c1 = c2 = 0;\n\n while (d < a.length) {\n e = a.charCodeAt(d);\n\n if (e < 128) {\n b += String.fromCharCode(e);\n d++;\n } else {\n if (e > 191 && e < 224) {\n c2 = a.charCodeAt(d + 1);\n b += String.fromCharCode((e & 31) << 6 | c2 & 63);\n d += 2;\n } else {\n c2 = a.charCodeAt(d + 1);\n c3 = a.charCodeAt(d + 2);\n b += String.fromCharCode((e & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\n d += 3;\n }\n }\n }\n\n return b;\n }\n };\n var base64encodechars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\n function base64encode(g) {\n if (g === undefined) {\n return g;\n }\n\n var c, e, a;\n var f, d, b;\n a = g.length;\n e = 0;\n c = \"\";\n\n while (e < a) {\n f = g.charCodeAt(e++) & 255;\n\n if (e == a) {\n c += base64encodechars.charAt(f >> 2);\n c += base64encodechars.charAt((f & 3) << 4);\n c += \"==\";\n break;\n }\n\n d = g.charCodeAt(e++);\n\n if (e == a) {\n c += base64encodechars.charAt(f >> 2);\n c += base64encodechars.charAt((f & 3) << 4 | (d & 240) >> 4);\n c += base64encodechars.charAt((d & 15) << 2);\n c += \"=\";\n break;\n }\n\n b = g.charCodeAt(e++);\n c += base64encodechars.charAt(f >> 2);\n c += base64encodechars.charAt((f & 3) << 4 | (d & 240) >> 4);\n c += base64encodechars.charAt((d & 15) << 2 | (b & 192) >> 6);\n c += base64encodechars.charAt(b & 63);\n }\n\n return c;\n }\n\n function isEmptyObject(b) {\n for (var a in b) {\n return false;\n }\n\n return true;\n }\n\n ; //工具函数结束\n\n function _revertArgs(key, params) {\n var min_image_size = 100;\n\n if (key == \"share\") {\n if (params && !isEmptyObject(params)) return params;\n var title = \"\",\n desc = \"\",\n icon = \"\",\n title_ele = document.querySelector(\"title\"),\n desc_ele = document.querySelector(\"meta[name=description]\"),\n apple_touch_icon_ele = document.querySelector(\"link[rel*=apple-touch-icon]\"),\n rel_icon_ele = document.querySelector(\"link[rel*=shortcut]\");\n if (title_ele) title = title_ele.innerText;\n if (desc_ele) desc = desc_ele.content;\n if (rel_icon_ele) icon = rel_icon_ele.href;\n if (apple_touch_icon_ele) icon = apple_touch_icon_ele.href;\n\n if (!icon) {\n var imgs = document.querySelectorAll(\"body img\");\n\n for (var i = 0; i < imgs.length; i++) {\n var img = imgs[i];\n\n if (img.naturalWidth > min_image_size && img.naturalWidth > min_image_size) {\n icon = img.src;\n break;\n }\n\n ;\n }\n }\n\n ;\n return {\n \"platform\": \"weixin_moments\",\n \"url\": location.href,\n \"title\": title,\n \"desc\": desc,\n \"image\": icon\n };\n }\n\n ;\n return params;\n }\n\n ;\n\n var _sendMessageQueue = [],\n _receiveMessageQueue = [],\n _callback_count = 1000,\n _callback_map = {},\n _event_hook_map = {},\n _readyMessageIframe,\n //call方法被调用时,会修改其src 为 bytedance://dispatch_message/, 告知app执行_fetchQueue\n _setResultIframe,\n //返回值通过修改该iframe src实现\n _CUSTOM_PROTOCOL_SCHEME = 'bytedance://';\n\n if (_env.default.isInSuper) {\n _CUSTOM_PROTOCOL_SCHEME = 'bds://';\n } //web: 创建iframe的准备队列\n\n\n function _createQueueReadyIframe() {\n _setResultIframe = document.createElement('iframe');\n _setResultIframe.id = '__ToutiaoJSBridgeIframe_SetResult';\n _setResultIframe.style.display = 'none';\n document.body.appendChild(_setResultIframe);\n _readyMessageIframe = document.createElement('iframe');\n _readyMessageIframe.id = '__ToutiaoJSBridgeIframe';\n _readyMessageIframe.style.display = 'none';\n document.body.appendChild(_readyMessageIframe);\n }\n\n ; //app->web:取出队列中的消息,并清空接收队列\n\n function _fetchQueue() {\n var messageQueueString = JSON.stringify(_sendMessageQueue);\n _sendMessageQueue = [];\n\n _setResultValue('SCENE_FETCHQUEUE', messageQueueString);\n\n return messageQueueString;\n }\n\n ; //app->web:执行JS函数,并将结果返回客户端\n\n function _handleMessageFromApp(message) {\n var msg_type = message['__msg_type'],\n msg_params = message['__params'],\n msg_event_id = message['__event_id'],\n msg_callback_id = message['__callback_id'],\n ret;\n\n if (msg_type == 'callback') {\n ret = {\n '__err_code': 'cb404'\n };\n\n if (typeof msg_callback_id === 'string' && typeof _callback_map[msg_callback_id] === 'function') {\n ret = _callback_map[msg_callback_id](msg_params);\n delete _callback_map[msg_callback_id];\n }\n\n ;\n } else if (msg_type == 'event') {\n ret = {\n '__err_code': 'ev404'\n };\n\n if (typeof msg_event_id === 'string' && typeof _event_hook_map[msg_event_id] === 'function') {\n ret = _event_hook_map[msg_event_id](msg_params);\n }\n }\n\n ;\n\n _setResultValue('SCENE_HANDLEMSGFROMTT', JSON.stringify(ret));\n\n return JSON.stringify(ret);\n }\n\n ;\n\n function _setResultValue(scene, result) {\n //+result id待添加\n setTimeout(function () {\n _setResultIframe.src = _CUSTOM_PROTOCOL_SCHEME + 'private/setresult/' + scene + '&' + base64encode(UTF8.encode(result));\n }, 0);\n }\n\n ; //web->app: 将客户端功能push到队列,告诉客户端有新任务,等待客户端 _fetchQueue\n\n function _call(func, params, callback, sdk_version) {\n sdk_version = sdk_version || 2;\n if (!func || typeof func !== 'string') return;\n if ((0, _typeof2.default)(params) !== 'object') params = {};\n params = _revertArgs(func, params);\n var callbackID = (_callback_count++).toString();\n if (typeof callback === 'function') _callback_map[callbackID] = callback;\n var _msg_string = {\n 'JSSDK': sdk_version,\n 'func': func,\n 'params': params,\n '__msg_type': 'call',\n '__callback_id': callbackID\n }; //将消息添加到发送队列,iframe的准备队列为bytedance://dispatch_message/\n\n _sendMessageQueue.push(_msg_string);\n\n _readyMessageIframe.src = _CUSTOM_PROTOCOL_SCHEME + 'dispatch_message/';\n }\n\n ; //web: 自定义事件和回调\n\n function _on(event, callback) {\n if (!event || typeof event !== 'string' || typeof callback !== 'function') return;\n _event_hook_map[event] = callback;\n\n _call(\"addEventListener\", {\n name: event\n }, null);\n }\n\n ;\n\n function _trigger(event, argv) {\n if (typeof _event_hook_map[event] !== 'function') return;\n\n _event_hook_map[event](argv);\n }\n\n ;\n var jsbObj = {\n call: _call,\n on: _on,\n _fetchQueue: _fetchQueue\n };\n\n if (_env.default.isInSuper) {\n jsbObj._handleMessageFromApp = _handleMessageFromApp;\n window.JSBridge = jsbObj;\n } else {\n jsbObj._handleMessageFromToutiao = _handleMessageFromApp;\n window.ToutiaoJSBridge = jsbObj;\n } //对外暴露toutiao, 隐藏ToutiaoJSBridge\n\n\n window.toutiao = {\n trigger: _trigger\n };\n\n function _initToutiao() {\n var latent_keys = {\n \"pageStateChange\": \"page_state_change\",\n \"isVisible\": \"is_visible\",\n \"isLogin\": \"is_login\",\n \"uploadImage\": \"upload_image\"\n },\n public_fn = [\"appInfo\", \"login\", \"comment\", \"close\", \"isVisible\", \"isLogin\", \"playVideo\"],\n private_fn = [\"isAppInstalled\", \"open\", \"share\", \"systemShare\", \"pay\", \"pageStateChange\", \"downloadApp\", \"openThirdApp\", \"uploadImage\", \"addChannel\", \"gallery\", \"copyToClipboard\"],\n protected_fn = [],\n all_fn = public_fn.concat(private_fn),\n sdk_match = navigator.userAgent.match(/JSSDK\\/([\\d.]+)/i),\n sdk_version = sdk_match ? sdk_match[1] : 1;\n\n if (sdk_match) {\n all_fn = all_fn.concat([\"config\"]);\n } else {\n //旧版app, 不支持config.直接返回支持列表\n toutiao['config'] = function (arg) {\n var callback_success = getParams(arg, \"success\");\n\n if (callback_success) {\n return callback_success({\n code: 1,\n supportList: {\n call: public_fn\n }\n });\n }\n };\n }\n\n ;\n\n function getParams(arg, key) {\n return key == \"params\" ? arg : arg[key];\n }\n\n ;\n all_fn.forEach(function (key) {\n toutiao[key] = function (arg) {\n arg = arg || {};\n var params = getParams(arg, \"params\"),\n callback_error = getParams(arg, \"error\"),\n callback_success = getParams(arg, \"success\"),\n callback_fail = getParams(arg, \"fail\"); //params['clientID'] =\"xxxx\";\n\n key = latent_keys[key] || key;\n\n _call(key, params, function (o) {\n o = o || {};\n var code = o.code; //delete o.code;\n //没有返回值, 认为成功\n\n if (isEmptyObject(o)) {\n code = 1;\n } else if (code == undefined) {\n //返回值不为空,且忘了传code,认为成功\n code = 1;\n }\n\n ;\n if (code == -1 && callback_error) callback_error(o);\n if (code == 0 && callback_fail) callback_fail(o);\n if (code == 1 && callback_success) callback_success(o);\n }, sdk_version);\n };\n });\n }\n\n _createQueueReadyIframe();\n\n _initToutiao();\n})();","export var notAvailable = function () { return ({\n code: 0,\n msg: 'JSBridge is not available'\n}); };\nexport var notExist = function (apiName) { return ({\n code: 1,\n msg: \"JSBridge: \" + apiName + \" not exist.\"\n}); };\nexport var notSupported = function (apiName) { return ({\n code: 2,\n msg: \"JSBridge: \" + apiName + \" not supported.\"\n}); };\nexport var timeout = function (apiName) { return ({\n code: 3,\n msg: \"JSBridge: \" + apiName + \" timeout.\"\n}); };\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nimport './lib.legacy';\nimport * as error from './error';\nimport env from '../../core/env';\nimport { ge } from '../../utils/semver';\n// @ts-ignore\nimport { call as newCall } from '@bridge/byted-bridge-jssdk';\n// 桥是否初始化\nvar isInited = false;\n// 桥是否就绪\nvar isReady = false;\n// 桥在当前环境是否可用\nvar isAvailable = true;\n// 已注册的api集合\nvar apis = {};\nvar queue = [];\n// api调用结果缓存\nvar cachedResult = {};\n// 桥的底层实现,主要包含iframe消息逻辑\nvar bridge = window.ToutiaoJSBridge;\nif (env.isInSuper) {\n bridge = window.JSBridge;\n}\n/**\n * 注册/添加 api\n * @param {string} api.name api的名称\n * @param {string|function} api.handle 传递给客户端的api句柄名称(或者转换函数), 缺省为 api.name\n * @oaram {function|any} api.options 传递给客户端的参数(或者转换函数)\n * @param {function} api.supports 当前api是否可用, 默认true\n */\nexport function register(entry) {\n var api = (apis[entry.name] = __assign({}, entry));\n // eslint-disable-next-line no-shadow\n var handle = api.handle, options = api.options, supports = api.supports;\n if (typeof handle !== 'function') {\n api.handle = function () { return handle || api.name; };\n }\n if (typeof options !== 'function') {\n api.options = function (runtime) { return options || runtime; };\n }\n if (typeof supports !== 'function') {\n api.supports = function () { return supports !== false; };\n }\n}\n/**\n * 判断当前环境中桥功能以及该api是否可用,\n * 可用则执行对应的api处理函数,不可用则reject对应的错误\n */\nexport function exec(_a) {\n var api = _a.api, cb = _a.cb, resolve = _a.resolve, reject = _a.reject;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n if (!isAvailable) {\n reject(error.notAvailable());\n return [2 /*return*/];\n }\n try {\n // eslint-disable-next-line no-use-before-define\n if (api.supports(env)) {\n cb(api, resolve, reject);\n }\n else {\n reject(error.notSupported(api.name));\n }\n }\n catch (e) {\n reject(error.notSupported(api.name));\n }\n return [2 /*return*/];\n });\n });\n}\nfunction isHostInWhitelist() {\n var host = window.location.host;\n if (/(toutiao|snssdk)\\.com/i.test(host)) {\n return true;\n }\n if (/jinritemai\\.com/i.test(host)) {\n if (env.isInAweme && ge(env.appVersion, '2.6.0')) {\n return true;\n }\n if (env.isInToutiao) {\n return true;\n }\n }\n return false;\n}\n/**\n * 配置桥\n */\n// eslint-disable-next-line prettier/prettier\nexport function config(options) {\n if (options === void 0) { options = {}; }\n if (isInited)\n return;\n isInited = true;\n var _a = options.maxAttempts, maxAttempts = _a === void 0 ? 3 : _a;\n var settle = function (available) {\n isReady = true;\n isAvailable = available;\n queue.splice(0).forEach(exec);\n };\n var auth = function (attempts) {\n if (attempts > maxAttempts) {\n settle(false);\n }\n else {\n window.toutiao.config({\n client_id: '79de2e25923597ec',\n success: function () { return settle(true); },\n error: function () { return auth(attempts + 1); }\n });\n }\n };\n if (!env.isInToutiaoProduct) {\n settle(false);\n }\n else if (typeof options.supports === 'function') {\n settle(options.supports(env));\n }\n else if (isHostInWhitelist()) {\n settle(true);\n }\n else {\n auth(1);\n }\n}\n/**\n * 所有api调用都通过ready进行调度,\n * 如果api不存在则 默认支持调用\n * 如果桥未ready则入队列, 否则通过exec执行回调\n *\n * @param {string} apiName api名称\n * @param {Object} params 传递给api调用的参数\n * @param {function} cb 回调,负责api的实际调用\n */\nexport function ready(apiName, params, cb) {\n if (!isInited)\n config();\n return new Promise(function (resolve, reject) {\n // 给未注册的api一个默认值\n if (!apis[apiName]) {\n register({\n name: apiName,\n handle: apiName,\n supports: function () { return true; }\n });\n // reject(error.notExist(apiName));\n }\n var api = apis[apiName];\n if (!isReady) {\n queue.push({ api: api, params: params, cb: cb, resolve: resolve, reject: reject });\n }\n else {\n exec({ api: api, params: params, cb: cb, resolve: resolve, reject: reject });\n }\n });\n}\n/**\n * @returns {boolean} 判断jsbridge是否可用\n */\nexport function supports(apiName) {\n var api = apis[apiName];\n // eslint-disable-next-line no-use-before-define\n return api && api.supports(env);\n}\n/**\n * 调用api\n * @param {string} apiName api的名称\n * @param {Object} params api调用参数\n * @param {Object} opts 配置选项\n * @param {boolean} opts.cache=false 是否缓存结果\n * @param {number} opts.timeout 超时时间\n * @return {Promise} 调用结果\n */\nexport function call(apiName, params, opts) {\n if (opts === void 0) { opts = {}; }\n var _a = opts.cache, cache = _a === void 0 ? false : _a, _b = opts.timeout, timeout = _b === void 0 ? 0 : _b;\n return ready(apiName, params, function (api, resolve, reject) {\n if (cache && cachedResult[apiName]) {\n resolve(cachedResult[apiName]);\n }\n else {\n var handle = api.handle(env);\n var options = api.options(params);\n var onTimeout = function () { return reject(error.timeout(apiName)); };\n var timeoutId_1 = timeout > 0 ? setTimeout(onTimeout, timeout) : 0;\n var callFn = opts.version === 2 ? newCall : bridge.call;\n callFn(handle, options, function (raw) {\n var result = raw;\n if (typeof raw === 'string') {\n try {\n result = JSON.parse(raw);\n }\n catch (e) {\n //\n }\n }\n // 由于桥回调结果格式不统一,\n // 这里不对客户端返回的结果做校验,全部resolve\n // 具体业务上是成功还是失败,需要业务自己判断\n resolve(result);\n if (timeoutId_1)\n clearTimeout(timeoutId_1);\n if (cache)\n cachedResult[apiName] = result;\n });\n }\n });\n}\n// 监听客户端事件,如 visible\nexport function listen(apiName, cb) {\n // eslint-disable-next-line no-undefined\n return ready(apiName, undefined, function (api) {\n bridge.on(api.handle(env), cb);\n });\n}\n","import * as bridge from './core/index';\nvar apis = [\n require('./api/addChannel'),\n require('./api/adInfo'),\n require('./api/appInfo'),\n require('./api/close'),\n require('./api/confirmUploadPhoto'),\n require('./api/gallery'),\n require('./api/getSubScribedChannelList'),\n require('./api/isAppInstalled'),\n require('./api/login'),\n require('./api/openCommodity'),\n require('./api/pay'),\n require('./api/sendLog'),\n require('./api/share'),\n require('./api/shareResult'),\n require('./api/showSharePanel'),\n require('./api/takePhoto'),\n require('./api/visible'),\n require('./api/sendLogV3'),\n require('./api/tracker'),\n require('./api/fetch'),\n require('./api/openAweme'),\n require('./api/openSchema'),\n require('./api/setupStayDialog'),\n require('./api/takePicture'),\n require('./api/uploadFile'),\n require('./api/H5_uploadFile'),\n require('./api/launchWXMiniPro'),\n require('./api/webControl'),\n require('./api/closeAndOpen'),\n require('./api/userInfo'),\n require('./api/islogin'),\n require('./api/loginStatus'),\n require('./api/openHotsoon'),\n require('./api/app.liveFloatingWindow'),\n require('./api/app.commerceDetailBarHeight')\n];\napis.forEach(bridge.register);\nexport default bridge;\n","/*\n * Developed by HuMingZhi on 1/20/19 3:04 PM\n * Copyright (c) 2019. All right reserved.\n *\n * 判断是否是生产环境、非生产环境\n */\nvar mode = process.env.NODE_ENV;\nexport var isProductionMode = mode === 'production';\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport env from '../core/env';\nimport { pureAxios } from './core';\n/**\n * 参数处理,拼接通用参数\n * @param url\n * @param params\n */\nfunction sendMetrics(url, params) {\n var appName = env.bType;\n var appVersion = env.appVersion;\n var basicParam = {\n view_type: 'h5',\n app_name: appName,\n app_version: appVersion,\n platform: env.isAndroid ? 'android' : 'ios'\n };\n pureAxios.get(url, {\n params: __assign({}, basicParam, params)\n });\n}\n/* eslint-disable complexity */\n/**\n * 发送metrics请求\n * @param response\n * @param afterTime\n * @param type\n */\nexport function getRequestMetricsParam(response, afterTime, type) {\n var beforeTime = response.config && response.config.beforeTime;\n var url = response.config &&\n response.config.url &&\n response.config.url.split('?')[0];\n var st = response.data && response.data.st;\n var httpSt = response.status || (response.response && response.response.status);\n var reqTime = afterTime - beforeTime;\n var connectType = type || (response.config && response.config.connectType) || 'h5_req';\n var metrics = response && response.config && response.config.metrics;\n var metricsUrl = (metrics && metrics.url) ||\n 'https://femetrics.jinritemai.com/metrics/report';\n var customParams = {};\n if (metrics) {\n if (typeof metrics.params === 'function') {\n customParams = metrics.params();\n }\n else if (typeof metrics.params === 'object') {\n customParams = metrics.params;\n }\n }\n var params = __assign({ connect_type: connectType, duration: reqTime, is_timeout: reqTime > 1000 ? 1 : -1, url: url, http_code: httpSt || -1, business_code: Number(st) === 0 || st ? st : '' }, customParams);\n sendMetrics(metricsUrl, params);\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport env from '../core/env';\nimport { getRequestMetricsParam } from './metrics';\n/**\n * 规范上报参数\n * @param {string} url 链接\n * @param {object} response 请求\n * @param {number} beforeTime 发送前\n * @returns {*} 规范后\n */\nfunction formatParams(response, url, beforeTime) {\n var res = {\n data: {}\n };\n if (typeof response === 'string') {\n try {\n res.data = JSON.parse(response);\n }\n catch (e) {\n res.data = {};\n res.data.st = -1;\n }\n }\n else {\n res = __assign({}, response);\n }\n res.config = res.config || {};\n res.config.beforeTime = beforeTime;\n res.config.url = url;\n return res;\n}\n/**\n * jsb回调后的钩子\n * @param {string} url 链接\n * @param {object} response response\n * @param {number} beforeTime 时间\n * @returns {undefined} 无\n */\nfunction afterJsb(response, url, beforeTime) {\n var afterTime = new Date().getTime();\n setTimeout(function () {\n var params = formatParams(url, response, beforeTime);\n getRequestMetricsParam(params, afterTime, 'jsb');\n }, 0);\n}\n/**\n * 头条调用fetch后请求处理\n * @param response\n * @param url\n * @param beforeTime\n */\nfunction handleToutiaoJsb(response, url, beforeTime) {\n if (response && Number(response.code) === 1) {\n afterJsb(url, response, beforeTime);\n if (Number(response.status) === 200) {\n try {\n response.data = JSON.parse(response.response);\n return response;\n }\n catch (e) {\n return e;\n }\n }\n else {\n return response;\n }\n }\n else {\n throw new Error('jsb failed');\n }\n}\n/**\n * 抖音调用fetch后请求处理\n * @param response\n * @param url\n * @param beforeTime\n */\nfunction handleDouyinJsb(response, url, beforeTime) {\n try {\n afterJsb(url, response._raw, beforeTime);\n response.data = JSON.parse(response._raw);\n return response;\n }\n catch (e) {\n return e;\n }\n}\n/**\n * 火山调用fetch后请求处理\n * @param response\n * @param url\n * @param beforeTime\n */\nfunction handleHuoshanJsb(response, url, beforeTime) {\n if (response && Number(response.code) === 1) {\n afterJsb(url, response, beforeTime);\n try {\n response.data = response.raw;\n return response;\n }\n catch (e) {\n return e;\n }\n }\n else {\n throw new Error('jsb failed');\n }\n}\n/**\n * 处理fetch返回参数\n * @param response\n * @param url\n * @param beforeTime\n */\nexport var handleFetchResponse = function (response, url, beforeTime) {\n if (env.isInToutiao || env.isInToutiaoLite) {\n return handleToutiaoJsb(response, url, beforeTime);\n }\n else if (env.isInAweme) {\n return handleDouyinJsb(response, url, beforeTime);\n }\n else if (env.isInHotsoon) {\n return handleHuoshanJsb(response, url, beforeTime);\n }\n else {\n throw new Error('env failed');\n }\n};\n/**\n * 默认处理复杂post数据结构方式\n * @param data\n */\nexport var processFetchData = function (data) {\n var transformsData = {};\n try {\n transformsData = {\n json_form: JSON.stringify(data)\n };\n }\n catch (e) {\n transformsData = {\n json_form: data\n };\n }\n return transformsData;\n};\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n/**\n * 请求发送函数,融合axios和fetch\n * 1、可以通过create函数创建请求实例,fetch只支持'./fetchConfig'里标明的配置选项,如果配置其他选项,只能发axios请求\n * 2、可以直接导出get、post请求,但是直接导出的只支持发axios,但是会带上device id\n * 3、通过create函数创建的请求实例支持接入metrics监控,支持自定义配置参数和请求url\n */\nimport axios from 'axios';\nimport env from '../core/env';\nimport bridge from '../bridge/index';\nimport { handleFetchResponse, processFetchData } from './handleFetch';\nimport { getRequestMetricsParam } from './metrics';\nimport { fetchSupportConfig } from './fetchConfig';\nimport qs from 'qs';\nvar agent = axios.create();\nvar API_ORIGIN; // 请求默认域名\nvar needDeviceId = true; // 是否需要device id\nvar isReady; // 是否可以发送请求\nvar postList = []; // 后端已经处理过的复杂结构post请求(fetch需要)\nvar canUseFetchOverall = false; // 是否可以使用fetch发送请求\nvar processPostData = processFetchData;\n/**\n * 通用参数,默认都带上b_Type 和 device_id\n */\nvar commonParams = {\n b_type_new: env.bType,\n device_id: 0\n};\n// 如果不可以使用 JSBFetch 方法,则在 commonParams 添加 is_outside 标示\nif (!env.isInToutiaoProduct) {\n commonParams.is_outside = 1;\n}\nvar requestQueue = [];\nisReady = true;\nif (env.isInToutiaoProduct && needDeviceId) {\n isReady = false;\n bridge\n .call('appInfo', {}, { timeout: 3000 })\n .then(function (info) {\n if (info && info.device_id) {\n commonParams.device_id = info.device_id;\n }\n commonParams.aid = (info && info.aid) || env.aid;\n isReady = true;\n requestQueue.splice(0).forEach(function (request) { return request(); });\n })\n .catch(function () {\n isReady = true;\n requestQueue.splice(0).forEach(function (request) { return request(); });\n });\n}\n/**\n * 判断是否存在fetch不支持的配置参数,如果有则用axios\n * @param config\n */\nfunction getCanUseFetch(config) {\n if (!config)\n return true;\n var configs = Object.keys(config);\n var len = configs.length;\n for (var i = 0; i < len; i++) {\n if (fetchSupportConfig.indexOf(configs[i]) < 0) {\n return false;\n }\n }\n return true;\n}\n/**\n * 确定某一请求的具体发送方式 get\n * @param config\n */\nfunction getGetRequestMethod(config) {\n if (canUseFetchOverall &&\n bridge.supports('fetch') &&\n getCanUseFetch(config)) {\n return fetchJsbMethodGet;\n }\n else {\n return agent.get;\n }\n}\n/**\n * 确定某一请求具体发送方式 post\n * @param config\n */\nfunction getPostRequestMethod(config) {\n if (canUseFetchOverall &&\n bridge.supports('fetch') &&\n getCanUseFetch(config)) {\n return fetchJsbMethodPost;\n }\n else {\n return agent.post;\n }\n}\n/**\n * fetch发送请求\n * @param method 发送方法\n * @param data post data\n * @param url\n * @param config\n */\n/* eslint-disable no-param-reassign */\nfunction fetchJsbMethod(method, data, url, config) {\n if (data === void 0) { data = {}; }\n if (config === void 0) { config = {}; }\n var beforeTime = new Date().getTime();\n if (method === 'POST' && config.params) {\n if (url.indexOf('?') !== -1) {\n url = url + \"&\";\n }\n else {\n url = url + \"?\";\n }\n Object.keys(config.params).forEach(function (key) {\n url = \"\" + url + key + \"=\" + config.params[key] + \"&\";\n });\n }\n /* eslint-disable no-undefined */\n return bridge\n .call('fetch', {\n url: url,\n method: method,\n params: method === 'POST' ? {} : config.params,\n data: data,\n header: {},\n needCommonParams: true // 是否拼接通用参数, 默认false\n }, {\n timeout: method === 'GET' ? (config.timeout || 10000) / 2 : undefined\n })\n .then(function (response) {\n return handleFetchResponse(response, url, beforeTime);\n })\n .catch(function () {\n config.connectType = 'jsb_h5_req';\n return method === 'GET'\n ? agent.get(url, config)\n : agent.post(url, qs.stringify(data), config);\n });\n}\n/**\n * 检查post接口数据是否有复杂结构,且后端没有开发支持,如果有则进行报错\n * @param data\n * @param url\n */\nfunction checkPostData(data, url) {\n var keys = Object.keys(data);\n var len = keys.length;\n for (var i = 0; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(data, keys[i]) &&\n typeof data[keys[i]] === 'object') {\n var dom = document.createElement('a');\n dom.href = url;\n var path = dom.pathname;\n if (postList && postList.indexOf(path) > -1) {\n data = processPostData(data);\n }\n else {\n throw new Error('backend need develop');\n }\n break;\n }\n }\n return data;\n}\n/**\n * 如果链接本身没有携带域名则会带上默认域名\n * @param url\n */\nfunction wrapUrl(url) {\n if (!/^https?:\\/\\//i.test(url) && API_ORIGIN) {\n return API_ORIGIN + url;\n }\n return url;\n}\n/**\n * 用fetch发送get请求\n * @param url\n * @param config\n */\nfunction fetchJsbMethodGet(url, config) {\n if (config === void 0) { config = {}; }\n url = wrapUrl(url);\n return fetchJsbMethod('GET', {}, url, config);\n}\n/**\n * 用fetch发送post请求\n * @param url\n * @param data\n * @param config\n */\nfunction fetchJsbMethodPost(url, data, config) {\n if (config === void 0) { config = {}; }\n url = wrapUrl(url);\n data = checkPostData(data, url);\n return fetchJsbMethod('POST', data, url, config);\n}\n/**\n * 参数处理\n * @param config\n */\nfunction mergeConfig(config) {\n var params = __assign({}, commonParams);\n var result = __assign({}, config);\n result.params = Object.assign(params, result.params);\n return result;\n}\nexport var pureAxios = axios.create();\n/**\n * 创建请求实例\n * @param config\n */\nexport var create = function (config) {\n if (config === void 0) { config = {}; }\n agent = axios.create(config);\n canUseFetchOverall = getCanUseFetch(config);\n if (config) {\n API_ORIGIN = config.baseURL;\n postList = config.postList || [];\n if (config.commonParams) {\n commonParams = Object.assign(commonParams, config.commonParams);\n }\n if (Object.prototype.hasOwnProperty.call(config, 'needDeviceId')) {\n needDeviceId = config.needDeviceId;\n }\n if (Object.prototype.hasOwnProperty.call(config, 'processPostData') &&\n typeof config.processPostData === 'function') {\n processPostData = config.processPostData;\n }\n }\n // 请求发送前处理\n agent.interceptors.request.use(function (config) {\n config.beforeTime = new Date().getTime();\n return config;\n }, function (error) {\n return Promise.reject(error);\n });\n // 请求返回后处理\n agent.interceptors.response.use(function (response) {\n var afterTime = new Date().getTime();\n setTimeout(function () { return getRequestMetricsParam(response, afterTime); }, 0);\n return response;\n }, function (error) {\n var afterTime = new Date().getTime();\n setTimeout(function () { return getRequestMetricsParam(error, afterTime); }, 0);\n return Promise.reject(error);\n });\n};\n/**\n * 如果没有creat,直接导出get和post会默认加上DeviceId,调用axios,不会走fetch\n * @param url\n * @param config\n */\nexport var get = function (url, config) {\n var processFunc = getGetRequestMethod(config);\n if (isReady) {\n return processFunc(url, mergeConfig(config));\n }\n return new Promise(function (resolve, reject) {\n requestQueue.push(function () {\n processFunc(url, mergeConfig(config)).then(resolve, reject);\n });\n });\n};\nexport var post = function (url, data, config) {\n var processFunc = getPostRequestMethod(config);\n var payload = typeof data === 'string' || processFunc === fetchJsbMethodPost\n ? data\n : qs.stringify(data);\n if (isReady) {\n return processFunc(url, payload, mergeConfig(config));\n }\n return new Promise(function (resolve, reject) {\n requestQueue.push(function () {\n processFunc(url, payload, mergeConfig(config)).then(resolve, reject);\n });\n });\n};\n","\nvar content = require(\"!!../../../../css-loader/dist/cjs.js??ref--6-1!../../../../postcss-loader/src/index.js!./account.css\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../css-loader/dist/cjs.js??ref--6-1!../../../../postcss-loader/src/index.js!./account.css\", function() {\n\t\tvar newContent = require(\"!!../../../../css-loader/dist/cjs.js??ref--6-1!../../../../postcss-loader/src/index.js!./account.css\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}"],"sourceRoot":""}