{"version":3,"sources":["webpack:///./node_modules/core-js/internals/get-substitution.js","webpack:///./src/assets/js/ym.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./src/assets/js/appInfo.js","webpack:///./node_modules/core-js/modules/es.string.replace.js"],"names":["toObject","floor","Math","replace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","module","exports","matched","str","position","captures","namedCaptures","replacement","tailPos","length","m","symbols","undefined","call","match","ch","capture","charAt","slice","n","f","WEB_CALLBACK","onSuccessCache","Object","create","onFailCache","window","onSuccess","params","callbackParams","console","info","onFail","callbackProxy","callbackName","middlewareCallback","callback","json","JSON","parse","timeStr","Date","getTime","push","ym","type","this","openurl","url","data","indexOf","goods","search","location","href","error","encodeURI","goback","closeWebPage","warn","text","showNotify","showTips","openApp","appInfo","platform","Android","stringify","pkg","encodeURIComponent","imageUrl","openImageBroswer","imgUrl","startX","startY","imgWidth","imgHeight","options","videoId","test","exec","category","videoName","key","prototype","hasOwnProperty","float","stockids","stockid","codeIndex","openstocks","goodsids","index","option","isGoodsAddedZxg","controlZxg","showTipsDialog","menuItems","forEach","item","showMenuItems","showSharePop","param","isSharePopEnable","fixRegExpWellKnownSymbolLogic","isRegExp","anObject","requireObjectCoercible","speciesConstructor","advanceStringIndex","toLength","callRegExpExec","regexpExec","fails","arrayPush","min","MAX_UINT32","SUPPORTS_Y","RegExp","SPLIT","nativeSplit","maybeCallNative","internalSplit","split","separator","limit","string","String","lim","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","source","apply","O","splitter","regexp","res","done","value","rx","S","C","unicodeMatching","p","q","A","e","z","i","parseToInt","num","parseInt","isNaN","u","navigator","userAgent","iOS","Weixin","getQueryStringArgs","qs","substring","args","items","name","len","regx","decodeURIComponent","s","refreshAppInfoCallbacks","getClientInfo","result","callbackMiddleware","WEB_CALLBACK_APPINFO","updateAppInfo","loadAppinfo","getAppInfo","err","target","app","element","toLowerCase","getParam","toLocaleLowerCase","loginType","isPhoneNum","isBindPhone","isLogin","isPhone","bindPhone","login","token","currentMv","compareMv","targetMv","isIncludeEqual","isSupport","mv","targetMvArr","currentMvArr","ar","css","toInteger","getSubstitution","regExpExec","max","maybeToString","it","REPLACE","nativeReplace","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","replacer","functionalReplace","global","fullUnicode","results","matchStr","accumulatedResult","nextSourcePosition","j","groups","replacerArgs","concat"],"mappings":"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","file":"js/chunk-71254c8a.1dba20b7.js","sourcesContent":["var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","import appInfo from './appInfo'\r\n\r\n// 声明全局回调\r\nconst WEB_CALLBACK = []\r\nconst onSuccessCache = Object.create(null)\r\nconst onFailCache = Object.create(null)\r\n\r\nwindow.WEB_CALLBACK = WEB_CALLBACK\r\n\r\nwindow.onSuccess = function (params, callbackParams) {\r\n console.info('onSuccess', params, callbackParams)\r\n if (onSuccessCache[callbackParams]) {\r\n onSuccessCache[callbackParams](params)\r\n }\r\n}\r\n\r\nwindow.onFail = function (params, callbackParams) {\r\n console.info('onFail', params, callbackParams)\r\n if (onFailCache[callbackParams]) {\r\n onFailCache[callbackParams](params)\r\n }\r\n}\r\n\r\n/**\r\n * 回调函数代理\r\n */\r\nconst callbackProxy = (params = {}, callbackName = 'callback') => {\r\n const middlewareCallback = params.callback || function () { }\r\n\r\n const callback = json => {\r\n if (typeof json === 'string') {\r\n json = JSON.parse(json)\r\n }\r\n\r\n if (middlewareCallback) {\r\n middlewareCallback(json)\r\n }\r\n }\r\n\r\n if (params.onSuccess || params.onFail) {\r\n const timeStr = new Date().getTime() + ''\r\n params.callbackParams = timeStr\r\n onSuccessCache[timeStr] = params.onSuccess || function () { }\r\n onFailCache[timeStr] = params.onFail || function () { }\r\n } else {\r\n params[callbackName] = `WEB_CALLBACK[${WEB_CALLBACK.push(callback) - 1}]`\r\n }\r\n\r\n if (params.onSuccess) {\r\n delete params.onSuccess\r\n }\r\n\r\n if (params.onFail) {\r\n delete params.onFail\r\n }\r\n\r\n return params\r\n}\r\n\r\n/**\r\n * 和客户端的通用交互方法\r\n *\r\n * @param {string} name - 交互方法的名称\r\n * @param {object} [params={}] - 所传参数\r\n * @returns\r\n */\r\n/* eslint-disable no-unused-vars */\r\nconst EMJSBridge = (name, params = {}) => {\r\n return new Promise((resolve, reject) => {\r\n // 超时\r\n let timeout = null\r\n\r\n const executeNative = () => {\r\n clearTimeout(timeout)\r\n\r\n const middlewareCallback = params.callback || function () { }\r\n\r\n const callback = json => {\r\n let result = json\r\n\r\n if (typeof params === 'string') {\r\n result = JSON.parse(params)\r\n }\r\n\r\n if (middlewareCallback) {\r\n middlewareCallback(result)\r\n }\r\n resolve(result)\r\n }\r\n\r\n params.callback = `WEB_CALLBACK[${WEB_CALLBACK.push(callback) - 1}]`\r\n\r\n window.goods[name](JSON.stringify(params))\r\n }\r\n\r\n if (typeof goods !== 'undefined' && window.goods[name]) {\r\n executeNative()\r\n } else {\r\n const errorMsg = 'goods or goods.' + name + ' is undefined!'\r\n\r\n console.warn(errorMsg)\r\n\r\n const waitTime =\r\n typeof params.timeOut === 'undefined' ? 1000 : params.timeOut\r\n // 如果1s内未触发 goodsReady 事件,则视为失败\r\n timeout = setTimeout(() => {\r\n reject(errorMsg)\r\n }, waitTime)\r\n\r\n // 监听ios goodsReady事件\r\n document.addEventListener('goodsReady', executeNative)\r\n }\r\n })\r\n}\r\n\r\n/**\r\n * 与客户端的交互方法集合\r\n *\r\n * @class ym\r\n */\r\nclass ym {\r\n /**\r\n * 调用客户端的登录\r\n * @param {string} [url=location.href] - 登录成功后跳转的地址\r\n */\r\n static login(type = 2) {\r\n console.info('匿名用户跳转登录页面')\r\n this.openurl(`ycstock://login?type=${type}`)\r\n }\r\n\r\n /**\r\n * 调用客户端的绑定手机号\r\n */\r\n static bindPhone() {\r\n console.info('实名未绑定手机号跳转绑定手机号页面')\r\n this.openurl('ycstock://phonebind')\r\n }\r\n\r\n /**\r\n * 保留当前页面,在新的webview中打开页面\r\n * @param {string} url 要打开的页面地址\r\n */\r\n static openurl(url, data) {\r\n if (!url) {\r\n console.error('请传入要打开的页面地址')\r\n return\r\n }\r\n\r\n if (url.indexOf('http://') === -1 && url.indexOf('https://') === -1) {\r\n location.href = url\r\n return\r\n }\r\n\r\n if (typeof window.goods !== 'undefined' && window.goods.openurl) {\r\n if (data) {\r\n window.goods.openurl(url, data)\r\n } else {\r\n window.goods.openurl(url)\r\n }\r\n } else {\r\n const search = location.search\r\n // let url = params.url;\r\n if (url.indexOf('?') > -1) {\r\n url = url + search.replace('?', '&')\r\n } else {\r\n url = url + search\r\n }\r\n // 使用原生打开失败时,尝试使用location直接跳转\r\n location.href = url\r\n }\r\n }\r\n\r\n /**\r\n * 使用系统或第三方浏览器打开网页\r\n * @param {String} url 网页地址\r\n */\r\n static openBrowser(url) {\r\n location.href = `ycstock://browser?thirdapp=true&url=${encodeURI(url)}`\r\n }\r\n\r\n /**\r\n * 关闭当前页面(webview)\r\n */\r\n static goback() {\r\n if (window.goods) {\r\n if (window.goods.goback) {\r\n window.goods.goback()\r\n } else if (window.goods.closeWebPage) {\r\n window.goods.closeWebPage()\r\n } else {\r\n console.info('goods.goback and goods.closeWebPage are undefined')\r\n }\r\n } else {\r\n console.warn('goods or goods.goback is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * 轻提示(弹出类似于toast的提示框)\r\n * @param {string} text - 提示的内容\r\n */\r\n static showNotify(text) {\r\n if (window.goods) {\r\n if (window.goods.showNotify) {\r\n window.goods.showNotify(text)\r\n } else if (window.goods.showTips) {\r\n window.goods.showTips(text)\r\n } else {\r\n console.info('goods.showNotify and goods.showTips are undefined')\r\n }\r\n } else {\r\n console.info('goods or goods.showNotify is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * 打开微信\r\n */\r\n static openWechat() {\r\n if (window.goods && window.goods.openApp && appInfo.platform.Android) {\r\n window.goods.openApp(\r\n JSON.stringify({ pkg: 'com.tencent.mm', url: 'weixin://' })\r\n )\r\n } else {\r\n location.href = `ycstock://browser?thirdapp=true&url=${encodeURIComponent(\r\n 'https://appstatic.emoney.cn/html/open-wechat/index.html'\r\n )}`\r\n }\r\n }\r\n\r\n /**\r\n * 打开大图\r\n * @param {string} imageUrl 图片地址\r\n */\r\n static openImageBrowser(imageUrl) {\r\n if (imageUrl) {\r\n // 小图换成大图\r\n imageUrl = imageUrl.replace('_small.', '_big.')\r\n }\r\n\r\n console.info('[ym.openImageBrowser]: 打开大图', imageUrl)\r\n\r\n if (window.goods && window.goods.openImageBroswer) {\r\n window.goods.openImageBroswer(\r\n JSON.stringify({\r\n imgUrl: imageUrl,\r\n startX: 0,\r\n startY: 0,\r\n imgWidth: 100,\r\n imgHeight: 100\r\n })\r\n )\r\n } else {\r\n console.info('goods or goods.openImageBroswer is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * @typedef PlayVideoOptions\r\n * @property { string } videoId 视频id,如果为url,则会尝试自动从url中截取\r\n * @property { number } [type=0] 视屏类型(0:竖屏,1:横屏)\r\n * @property { string } [videoName] 视频名称,即视频播放页面的标题\r\n * @property { string } [category] 视频分类,用于识别并显示视频下面的网页url\r\n * @property { boolean } [float] 是否启用窗口播放\r\n */\r\n\r\n /**\r\n * 播放视频,使用原生播放器\r\n * @param { PlayVideoOptions } options\r\n * @param { Object } [params] 自定义参数\r\n */\r\n static playVideo(options, params) {\r\n let videoId = options.videoId\r\n\r\n if (/^http/.test(options.videoId)) {\r\n videoId = /-([a-z0-9]+)$/i.exec(options.videoId)[1]\r\n }\r\n\r\n if (options.category) {\r\n videoId += `,category:${options.category}`\r\n }\r\n\r\n if (options.videoName) {\r\n videoId += `,VideoName:${encodeURIComponent(options.videoName || '视频')}`\r\n }\r\n\r\n if (params) {\r\n for (const key in params) {\r\n if (Object.prototype.hasOwnProperty.call(params, key)) {\r\n videoId += `,${key}:${params[key]}`\r\n }\r\n }\r\n }\r\n\r\n const url = `ycstock://playvideo?id=${videoId}&float=${!!options.float}&type=${options.type ||\r\n 0}`\r\n\r\n console.info('[native] 播放视频:', url)\r\n\r\n location.href = url\r\n }\r\n\r\n /**\r\n * 打开多个个股的行情\r\n * @param {Array} stockids 股票代码列表\r\n * @param {string|number} stockid 当前股票代码\r\n */\r\n static openstocks(stockids, stockid) {\r\n let codeIndex = stockids.indexOf(stockid)\r\n if (codeIndex < 0 || codeIndex > stockids.length - 1) {\r\n codeIndex = 0\r\n }\r\n\r\n const url = `ycstock://stock?codes=${stockids}&index=${codeIndex}`\r\n console.info('[native] 打开股票:', url)\r\n\r\n location.href = url\r\n }\r\n\r\n /**\r\n * 打开个股行情\r\n * @param {string|number} stockid 股票代码\r\n */\r\n static openstock(stockid) {\r\n this.openstocks([stockid])\r\n }\r\n\r\n /**\r\n * 打开个股龙虎榜\r\n * @param {Array} goodsids 股票id列表\r\n * @param {string|number} index 当前显示股票索引,默认为0\r\n */\r\n static openLongHuStocks(goodsids, index = 0) {\r\n const url = `ycstock://stock-longhu?goodsids=${goodsids}&index=${index}`\r\n\r\n console.info('[native] 打开个股龙虎榜:', url)\r\n\r\n location.href = url\r\n }\r\n\r\n /**\r\n * @callback isGoodsAddedZxgCallback\r\n * @param {Array} goodsIds 加入自选股的股票代码jsonArray\r\n */\r\n\r\n /**\r\n * @typedef isGoodsAddedZxgOption\r\n * @property {Array} goodsIds 需要判断是否加入自选股的股票id,[600600, 600100, 600300]\r\n * @property {isGoodsAddedZxgCallback} callback 客户端判别之后的回调\r\n */\r\n\r\n /**\r\n * 是否已添加到自选股\r\n * @param {isGoodsAddedZxgOption} option\r\n */\r\n static isGoodsAddedZxg(option) {\r\n if (window.goods && window.goods.isGoodsAddedZxg) {\r\n window.goods.isGoodsAddedZxg(JSON.stringify(callbackProxy(option)))\r\n } else {\r\n console.info('goods or goods.isGoodsAddedZxg is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * @typedef controlZxgOption\r\n * @property {number} type 操作类型(1:增加, 2:删除)\r\n * @property {Array} goodsIds 股票id列表[600600, 600100, 600300]\r\n * @property {Function} onSuccess 成功回调\r\n * @property {Function} onFail 失败回调\r\n */\r\n\r\n /**\r\n * 添加/删除 自选股\r\n * @param {controlZxgOption} option\r\n */\r\n static controlZxg(option) {\r\n if (window.goods && window.goods.controlZxg) {\r\n window.goods.controlZxg(JSON.stringify(callbackProxy(option)))\r\n } else {\r\n console.info('goods or goods.controlZxg is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * 显示提示对话框\r\n * @param {Object} option 参数\r\n * @param {string} option.title 标题(可选参数,默认无标题)\r\n * @param {string} option.content 对话框内容文本\r\n * @param {number} option['align-content'] 对话框内容文本对齐方式,0:左对齐 1:水平居中对齐, 默认为0\r\n * @param {string} option.button 按钮文字\r\n */\r\n static showTipsDialog(option) {\r\n if (window.goods && window.goods.showTipsDialog) {\r\n window.goods.showTipsDialog(JSON.stringify(option))\r\n } else {\r\n console.info('goods or goods.showTipsDialog is undefined')\r\n }\r\n }\r\n\r\n /**\r\n * 右上角菜单配置\r\n * @typedef MenuItem\r\n * @property {string} title 标题\r\n * @property {string} tintColor 颜色\r\n * @property {Function} callback 点击回调\r\n */\r\n\r\n /**\r\n * 显示右上角菜单\r\n * @param {{menuItems:Array}} options 菜单配置\r\n */\r\n static showMenuItems(options) {\r\n const menuItems = []\r\n options.menuItems.forEach(item => menuItems.push(callbackProxy(item)))\r\n\r\n if (window.goods && window.goods.showMenuItems) {\r\n console.info(\r\n '[native] goods.showMenuItems',\r\n JSON.stringify({ menuItems })\r\n )\r\n window.goods.showMenuItems(JSON.stringify({ menuItems }))\r\n } else {\r\n console.info('goods.showMenuItems are undefined', { menuItems })\r\n }\r\n }\r\n\r\n /**\r\n * 微信分享弹窗是否可用\r\n */\r\n static isSharePopEnable() {\r\n return window.goods && window.goods.showMenuItems && window.goods.showSharePop\r\n }\r\n\r\n /**\r\n * 微信分享弹窗\r\n */\r\n static showSharePop(param) {\r\n if (this.isSharePopEnable()) {\r\n window.goods.showSharePop(JSON.stringify(param))\r\n }\r\n }\r\n}\r\n\r\nif (typeof window !== 'undefined') {\r\n window.ym = ym\r\n}\r\n\r\nexport default ym\r\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar isRegExp = require('../internals/is-regexp');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\n\nvar arrayPush = [].push;\nvar min = Math.min;\nvar MAX_UINT32 = 0xFFFFFFFF;\n\n// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { return !RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', 2, function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return nativeSplit.call(string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) arrayPush.apply(output, match.slice(1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output.length > lim ? output.slice(0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : nativeSplit.call(this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== nativeSplit);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n}, !SUPPORTS_Y);\n","import ym from './ym'\r\n\r\n/* eslint-disable no-inner-declarations */\r\nlet appInfo = Object.create(null)\r\n\r\n/**\r\n * 转化为int类型\r\n * 如果不是无法转换为有效的int类型,则返回空字符串\r\n */\r\nfunction parseToInt(num) {\r\n if (!num) return ''\r\n num = parseInt(num, 10)\r\n return isNaN(num) ? '' : num\r\n}\r\n\r\nconst platform = (() => {\r\n if (typeof window === 'undefined') {\r\n return {}\r\n }\r\n\r\n const u = navigator.userAgent\r\n return {\r\n iOS: /ipad|iphone|mac/i.test(u),\r\n Android: /android/i.test(u),\r\n Weixin: /micromessenger/i.test(u)\r\n }\r\n})()\r\n\r\n/**\r\n * 解析url param\r\n */\r\nfunction getQueryStringArgs() {\r\n if (typeof window === 'undefined') {\r\n return {}\r\n }\r\n\r\n const qs = location.search.length > 0 ? location.search.substring(1) : ''\r\n const args = {}\r\n const items = qs.length ? qs.split('&') : []\r\n let item = null\r\n let name = null\r\n let value = null\r\n let i = 0\r\n const len = items.length\r\n const regx = new RegExp('(.*)=([^$].*)$', 'i')\r\n\r\n for (i = 0; i < len; i++) {\r\n item = items[i].match(regx)\r\n if (!item) {\r\n continue\r\n }\r\n // decodeURIComponent解码\r\n name = decodeURIComponent(item[1])\r\n // 移除某些版本的意外字符(换行符)\r\n const s = item[2].replace(/%0A/g, '')\r\n value = decodeURIComponent(s)\r\n if (name.length && !args[name]) {\r\n args[name] = value\r\n }\r\n }\r\n\r\n return args\r\n}\r\n\r\nconst refreshAppInfoCallbacks = []\r\n\r\n/**\r\n * 调用客户端的goods.getClientInfo方法,获取用户基础的信息\r\n * @param callback {Function} 用户信息刷新后的回调\r\n */\r\nfunction getClientInfo(callback = () => {}) {\r\n if (typeof window === 'undefined') {\r\n return\r\n }\r\n\r\n refreshAppInfoCallbacks.push(callback)\r\n\r\n if (refreshAppInfoCallbacks.length > 1) {\r\n return\r\n }\r\n\r\n const callbackMiddleware = result => {\r\n refreshAppInfoCallbacks.forEach(callback => callback(result))\r\n refreshAppInfoCallbacks.length = 0\r\n }\r\n\r\n window.WEB_CALLBACK_APPINFO = json => {\r\n let result = json\r\n if (typeof json === 'string') {\r\n result = JSON.parse(json)\r\n }\r\n\r\n updateAppInfo(result)\r\n\r\n callbackMiddleware(result)\r\n }\r\n\r\n let result\r\n\r\n const loadAppinfo = () => {\r\n if (window.goods.getAppInfo || window.goods.getClientInfo) {\r\n try {\r\n if (window.goods.getClientInfo) {\r\n window.goods.getClientInfo('WEB_CALLBACK_APPINFO')\r\n } else {\r\n result = window.goods.getAppInfo(\r\n JSON.stringify({\r\n callback: 'WEB_CALLBACK_APPINFO'\r\n })\r\n )\r\n }\r\n } catch (err) {\r\n result = window.goods.getAppInfo()\r\n }\r\n if (result) {\r\n result = typeof result === 'string' ? JSON.parse(result) : result\r\n updateAppInfo(result)\r\n callbackMiddleware(result)\r\n }\r\n }\r\n }\r\n\r\n if (window.goods) {\r\n loadAppinfo()\r\n } else {\r\n callbackMiddleware(result)\r\n }\r\n}\r\n\r\n/**\r\n * 更新app信息\r\n *\r\n * @param {object} target\r\n *\r\n * @memberOf appInfo\r\n */\r\nfunction updateAppInfo(target) {\r\n const app = {}\r\n\r\n for (const key in target) {\r\n if (Object.hasOwnProperty.call(target, key)) {\r\n const element = target[key]\r\n if (element !== null && element !== '') {\r\n // 键值全部转换为小写,防止部分参数小写部分大写的异常情况\r\n app[key.toLowerCase()] = target[key]\r\n }\r\n }\r\n }\r\n\r\n appInfo = { ...appInfo, ...app }\r\n}\r\n\r\nfunction getParam(name) {\r\n // 键值全部转换为小写,防止部分参数小写部分大写的异常情况\r\n const result = appInfo[name.toLocaleLowerCase()]\r\n return result !== undefined ? result : ''\r\n}\r\n\r\n// 初始化参数\r\nupdateAppInfo(getQueryStringArgs())\r\n\r\nexport default {\r\n /**\r\n * 是否为手机号实名登陆\r\n *\r\n * @memberOf appInfo\r\n */\r\n get isPhone() {\r\n const loginType = parseInt(getParam('loginType'), 10)\r\n const isPhoneNum = getParam('isPhoneNum')\r\n\r\n return loginType === 2 && (isPhoneNum || isPhoneNum === '')\r\n },\r\n /**\r\n * 是否为实名登录\r\n */\r\n get isLogin() {\r\n const loginType = this.loginType\r\n return !(loginType === '' || loginType === 4)\r\n },\r\n /**\r\n * 是否已绑定手机号\r\n */\r\n get isBindPhone() {\r\n return this.loginType === 2 || getParam('hasBindPhone')\r\n },\r\n /**\r\n * 检查是否为手机号登录或者第三方绑定手机号,如果不是则自动跳转登录\r\n */\r\n get checkBindPhone() {\r\n let isBindPhone = true\r\n if (!this.isLogin) {\r\n ym.login()\r\n isBindPhone = false\r\n } else if (!this.isPhone && !getParam('hasBindPhone')) {\r\n ym.bindPhone()\r\n isBindPhone = false\r\n }\r\n return isBindPhone\r\n },\r\n /**\r\n * 是否为益盟号登录\r\n */\r\n get isEmLogin() {\r\n return this.loginType === 0\r\n },\r\n\r\n /**\r\n * 老版token\r\n */\r\n get webAuthToken() {\r\n let token = getParam('webAuthToken')\r\n\r\n if (!token) {\r\n return ''\r\n }\r\n\r\n if (platform.Android) {\r\n token = decodeURIComponent(token)\r\n }\r\n\r\n return token\r\n },\r\n\r\n /**\r\n * 新版token\r\n */\r\n get emoneyToken() {\r\n return getParam('emoneyToken') || getParam('token')\r\n },\r\n\r\n /**\r\n * 益盟股票token\r\n */\r\n get token() {\r\n const token = getParam('token') || getParam('emoneyToken')\r\n\r\n return token || ''\r\n },\r\n\r\n /**\r\n * 版本\r\n */\r\n get mv() {\r\n const currentMv = getParam('mv') || getParam('appVersion')\r\n\r\n return currentMv\r\n },\r\n\r\n /**\r\n * 比较当前版本是否大于或等于目标版本\r\n * @param {string} targetMv - 目标版本\r\n * @param {string} [currentMv] - 当前版本\r\n * @param {boolean} [isIncludeEqual] - 是否包含等于\r\n */\r\n compareMv(targetMv, currentMv, isIncludeEqual = true) {\r\n if (!targetMv) {\r\n console.warn('版本比对异常:请传入要比对的版本')\r\n return\r\n }\r\n\r\n if (typeof currentMv === 'boolean') {\r\n isIncludeEqual = currentMv\r\n currentMv = undefined\r\n }\r\n\r\n let isSupport = false\r\n currentMv = currentMv || this.mv\r\n\r\n if (targetMv === currentMv) {\r\n isSupport = isIncludeEqual\r\n } else {\r\n const targetMvArr = targetMv.split('.')\r\n const currentMvArr = currentMv.split('.')\r\n if (currentMvArr.length === targetMvArr.length) {\r\n for (let i = 0; i < currentMvArr.length; i++) {\r\n if (currentMvArr[i] !== targetMvArr[i]) {\r\n isSupport = +currentMvArr[i] > +targetMvArr[i]\r\n break\r\n }\r\n }\r\n } else {\r\n isSupport = currentMvArr.length > targetMvArr.length\r\n }\r\n }\r\n\r\n return isSupport\r\n },\r\n\r\n /**\r\n * 平台\r\n * 2 - 益盟经典版\r\n * 4 - 益盟股票\r\n * 15 - 益盟加强版\r\n */\r\n get pd() {\r\n return (\r\n parseToInt(getParam('pd') || getParam('pid') || getParam('appId')) || 4\r\n )\r\n },\r\n\r\n /**\r\n * 平台号\r\n * 9 - 安卓\r\n * 10 - 苹果\r\n */\r\n get ar() {\r\n let ar = getParam('ar')\r\n const platform = getParam('platform')\r\n\r\n if (!ar && platform) {\r\n ar = platform === 'android' ? '10' : '9'\r\n }\r\n\r\n return parseToInt(ar)\r\n },\r\n\r\n /**\r\n * 渠道号\r\n */\r\n get vd() {\r\n return parseToInt(getParam('vd') || getParam('channelId'))\r\n },\r\n\r\n /**\r\n * 登录类型\r\n * 2 - 手机号登录\r\n * 0 - 匿名登录\r\n */\r\n get loginType() {\r\n return parseToInt(getParam('loginType'))\r\n },\r\n\r\n /**\r\n * 是否为夜间模式\r\n * @returns {boolean} true-夜间模式\r\n */\r\n get isNight() {\r\n const css = getParam('css')\r\n return css === 'b' || css === 'night'\r\n },\r\n\r\n platform,\r\n getParam,\r\n updateAppInfo,\r\n getClientInfo\r\n}\r\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n"],"sourceRoot":""}