{"version":3,"file":"js/index.f3c3b323.js","mappings":"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","sources":["webpack://soda-c-i18n/./node_modules/@didi/rich-ui/lib/locale/lang/ ../node_modules/@didi/rich-ui/lib/locale/lang/ ./node_modules/@didi/rich-ui/lib/locale/lang/ sync ^\\.\\/.*$","webpack://soda-c-i18n/./node_modules/@didi/soda-c-coupon/src/locale/lang/ ../node_modules/@didi/soda-c-coupon/src/locale/lang/ ./node_modules/@didi/soda-c-coupon/src/locale/lang/ sync ^\\.\\/.*$","webpack://soda-c-i18n/./src/api/common.js","webpack://soda-c-i18n/./src/api/bd/index.js","webpack://soda-c-i18n/./src/api/sidebar/coupon.js","webpack://soda-c-i18n/./src/api/sidebar/rcoupon.js","webpack://soda-c-i18n/./src/api/sidebar/membership.js","webpack://soda-c-i18n/./src/api/cart/coupon.js","webpack://soda-c-i18n/./src/api/cart/rcoupon.js","webpack://soda-c-i18n/./src/api/cancel-order/index.js","webpack://soda-c-i18n/./src/api/evaluation/index.js","webpack://soda-c-i18n/./src/api/abnormal/index.js","webpack://soda-c-i18n/./src/api/question/index.js","webpack://soda-c-i18n/./src/api/other/index.js","webpack://soda-c-i18n/./src/api/feedback/index.js","webpack://soda-c-i18n/./src/api/miss-order/index.js","webpack://soda-c-i18n/./src/api/entrega/index.js","webpack://soda-c-i18n/./src/api/merchants/couponInfo.js","webpack://soda-c-i18n/./src/api/vfm/index.js","webpack://soda-c-i18n/./src/api/deeplink/index.js","webpack://soda-c-i18n/./src/api/user/coupon.js","webpack://soda-c-i18n/./src/api/soloDining/index.js","webpack://soda-c-i18n/./src/api/topic/index.js","webpack://soda-c-i18n/./src/api/bill/index.js","webpack://soda-c-i18n/./src/api/index.js","webpack://soda-c-i18n/./src/common/bridge/api.js","webpack://soda-c-i18n/./src/common/bridge/emitter.js","webpack://soda-c-i18n/./src/common/bridge/utils.js","webpack://soda-c-i18n/./src/common/bridge/core.js","webpack://soda-c-i18n/./src/common/config/country-config/list/brand-text.js","webpack://soda-c-i18n/./src/common/config/country-config/list/download-url.js","webpack://soda-c-i18n/./src/common/config/country-config/list/order-pic.js","webpack://soda-c-i18n/./src/common/config/country-config/list/entrega-rules-head.js","webpack://soda-c-i18n/./src/common/config/country-config/list/entrega-rules-valuation.js","webpack://soda-c-i18n/./src/common/config/country-config/list/product-id.js","webpack://soda-c-i18n/./src/common/config/country-config/list/service.js","webpack://soda-c-i18n/./src/common/config/country-config/list/wallet-payment-type.js","webpack://soda-c-i18n/./src/common/config/country-config/list/entrega.js","webpack://soda-c-i18n/./src/common/config/country-config/index.js","webpack://soda-c-i18n/./src/common/config/host/dev.js","webpack://soda-c-i18n/./src/common/config/host/index.js","webpack://soda-c-i18n/./src/common/config/host/prod.js","webpack://soda-c-i18n/./src/common/config/host/test.js","webpack://soda-c-i18n/./src/common/config/sim.js","webpack://soda-c-i18n/./src/common/js/i18n.js","webpack://soda-c-i18n/./src/common/js/rem.js","webpack://soda-c-i18n/./src/common/js/tools.js","webpack://soda-c-i18n/./src/common/js/track.js","webpack://soda-c-i18n/./src/common/js/trackApiError.js","webpack://soda-c-i18n/./src/common/js/utils.js","webpack://soda-c-i18n/./src/App.vue?6e9a","webpack://soda-c-i18n/./src/mixin/message.js","webpack://soda-c-i18n/src/App.vue","webpack://soda-c-i18n/./src/App.vue?7548","webpack://soda-c-i18n/./src/App.vue","webpack://soda-c-i18n/./src/router/bd.js","webpack://soda-c-i18n/./src/router/sidebar.js","webpack://soda-c-i18n/./src/router/cart.js","webpack://soda-c-i18n/./src/router/user-guide.js","webpack://soda-c-i18n/./src/router/order.js","webpack://soda-c-i18n/./src/router/deeplink.js","webpack://soda-c-i18n/./src/router/delivery.js","webpack://soda-c-i18n/./src/router/abnormal.js","webpack://soda-c-i18n/./src/router/simple.js","webpack://soda-c-i18n/./src/router/entrega.js","webpack://soda-c-i18n/./src/common/js/getUrlParams.js","webpack://soda-c-i18n/./src/router/merchants.js","webpack://soda-c-i18n/./src/router/vfm.js","webpack://soda-c-i18n/./src/router/soloDining.js","webpack://soda-c-i18n/./src/router/topic.js","webpack://soda-c-i18n/./src/router/user.js","webpack://soda-c-i18n/./src/common/js/router.js","webpack://soda-c-i18n/./src/router/bill.js","webpack://soda-c-i18n/./src/router/index.js","webpack://soda-c-i18n/./src/init.js","webpack://soda-c-i18n/./src/common/lib/wsgchallenge.js","webpack://soda-c-i18n/./src/filter/index.js","webpack://soda-c-i18n/./src/plugin/DDBridge.js","webpack://soda-c-i18n/./src/directives/logs/config/index.js","webpack://soda-c-i18n/./src/directives/logs/tools.js","webpack://soda-c-i18n/./src/directives/logs/logStrategy.js","webpack://soda-c-i18n/./src/directives/logs/index.js","webpack://soda-c-i18n/./src/main.js","webpack://soda-c-i18n/./src/store/modules/order/state.js","webpack://soda-c-i18n/./src/store/modules/order/mutations.js","webpack://soda-c-i18n/./src/store/modules/order/index.js","webpack://soda-c-i18n/./src/store/modules.js","webpack://soda-c-i18n/./src/common/const/api-require-param.js","webpack://soda-c-i18n/./src/store/modules/common.js","webpack://soda-c-i18n/./src/store/index.js","webpack://soda-c-i18n/webpack/bootstrap","webpack://soda-c-i18n/webpack/runtime/amd options","webpack://soda-c-i18n/webpack/runtime/chunk loaded","webpack://soda-c-i18n/webpack/runtime/compat get default export","webpack://soda-c-i18n/webpack/runtime/create fake namespace object","webpack://soda-c-i18n/webpack/runtime/define property getters","webpack://soda-c-i18n/webpack/runtime/ensure chunk","webpack://soda-c-i18n/webpack/runtime/get javascript chunk filename","webpack://soda-c-i18n/webpack/runtime/get mini-css chunk filename","webpack://soda-c-i18n/webpack/runtime/global","webpack://soda-c-i18n/webpack/runtime/hasOwnProperty shorthand","webpack://soda-c-i18n/webpack/runtime/load script","webpack://soda-c-i18n/webpack/runtime/make namespace object","webpack://soda-c-i18n/webpack/runtime/node module decorator","webpack://soda-c-i18n/webpack/runtime/runtimeId","webpack://soda-c-i18n/webpack/runtime/publicPath","webpack://soda-c-i18n/webpack/runtime/css loading","webpack://soda-c-i18n/webpack/runtime/jsonp chunk loading","webpack://soda-c-i18n/webpack/startup"],"sourcesContent":["var map = {\n\t\"./en-US\": 75327,\n\t\"./en-US.js\": 75327,\n\t\"./es-419\": 63692,\n\t\"./es-419.js\": 63692,\n\t\"./es-MX\": 2986,\n\t\"./es-MX.js\": 2986,\n\t\"./ja-JP\": 83312,\n\t\"./ja-JP.js\": 83312,\n\t\"./pt-BR\": 83694,\n\t\"./pt-BR.js\": 83694,\n\t\"./zh-CN\": 51316,\n\t\"./zh-CN.js\": 51316\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 59604;","var map = {\n\t\"./en-US\": 91527,\n\t\"./en-US.js\": 91527,\n\t\"./es-419\": 70152,\n\t\"./es-419.js\": 70152,\n\t\"./es-MX\": 87892,\n\t\"./es-MX.js\": 87892,\n\t\"./i18n-index\": 90646,\n\t\"./i18n-index.js\": 90646,\n\t\"./i18n-info\": 40108,\n\t\"./i18n-info.js\": 40108,\n\t\"./i18n-keys.txt\": 90999,\n\t\"./ja-JP\": 77764,\n\t\"./ja-JP.js\": 77764,\n\t\"./pt-BR\": 92413,\n\t\"./pt-BR.js\": 92413,\n\t\"./zh-CN\": 66179,\n\t\"./zh-CN.js\": 66179\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 29382;","import store from '@/store'\nimport { getLocale } from '@didi/gettext'\nimport didiaxios from '@didi/dajax/dist/dajax'\nimport i18n from '@/common/js/i18n'\nimport getCountryConfig from '@/common/config/country-config'\nimport { util } from '@didi/soda-common'\nimport { apiErrnoError } from '@/common/js/trackApiError'\nconst { env } = util\n\n// 添加一些公共参数\nexport async function getCommonParams () {\n // 端内请求从bridge获取公共参数\n let globalParams = {}\n\n if (env.inNative) {\n // 检查getGlobalParam是否可用,在旧版嵌入端是不可用的\n if (Soda.getGlobalParams && env.inSoda) {\n const globalParamsRes = await SodaBridge('getGlobalParams', 'badcase') || {}\n globalParams = globalParamsRes.data\n }\n }\n const locale = getLocale()\n return {\n ...globalParams,\n locale\n }\n}\n\nfunction setRequest (method, config) {\n if (typeof config === 'string') {\n config = Object.assign({\n method,\n url: config\n }, arguments[2])\n }\n return new Promise(async (resolve, reject) => {\n let params = config.params || {}\n let data = config.data || {}\n let commonParams = await getCommonParams()\n let targetParams = Object.assign(commonParams, params, data)\n if (config.method === 'post') {\n config.data = targetParams\n } else {\n config.params = targetParams\n }\n didiaxios.request({\n url: config.url,\n method: config.method,\n emulateJSON: true, // 是否使用application/x-www-form-urlencoded来提交\n needEncrypt: true, // 是否加签名\n headers: config.headers || {}, // 自定义header\n params: config.params,\n body: targetParams\n }).then(response => {\n if (response.status !== 200) {\n reject(response)\n }\n return response\n }).then(data => {\n if (!data || data.errno) {\n reject(data)\n }\n resolve(data)\n }).catch(error => {\n reject(error)\n })\n })\n}\n\nfunction setBffRequest (method, config) {\n if (typeof config === 'string') {\n config = Object.assign({\n method,\n url: config\n }, arguments[2])\n }\n return new Promise(async (resolve, reject) => {\n let data = config.data || {}\n let globalParams = await getCommonParams()\n let countryCode = globalParams.countryCode || globalParams.poiCountryCode\n let targetParams = {\n common: {\n lng: globalParams.lng,\n lat: globalParams.lat,\n ticket: globalParams.token,\n terminal_id: Number(globalParams.terminalId),\n app_version: globalParams.appVersion,\n product_id: getCountryConfig.productId.PRODUCT_ID(countryCode),\n biz_type: Number(globalParams.bizId),\n lang: globalParams.locale,\n city_id: Number(globalParams.poicityid),\n location_cityid: Number(globalParams.poiCityId),\n location_country: countryCode,\n networkType: globalParams.networkType,\n client_type: globalParams.clientType,\n datatype: '' + globalParams.dataType,\n data_type: '' + globalParams.dataType,\n mobileType: globalParams.deviceType,\n platform_type: env.isIOS ? 1 : 2,\n device_info: {\n suuid: globalParams.suuid,\n imei: globalParams.imei,\n deviceid: globalParams.deviceId,\n osType: '' + globalParams.osType,\n osVersion: '' + globalParams.osVersion\n }\n },\n ...data\n }\n // bff要求取不到的参数直接不传\n Object.entries(targetParams.common).forEach(entry => {\n let [key, value] = entry\n if (!value) delete targetParams.common[key]\n })\n didiaxios.request({\n url: config.url,\n method: config.method,\n emulateJSON: false, // 是否使用application/x-www-form-urlencoded来提交\n needEncrypt: true, // 是否加签名\n headers: config.headers || {}, // 自定义header\n params: config.params,\n body: targetParams\n }).then(response => {\n if (response.status !== 200) {\n reject(response)\n }\n return response\n }).then(data => {\n if (!data || data.errno) {\n reject(data)\n }\n resolve(data)\n }).catch(error => {\n reject(error)\n })\n })\n}\n\n// 封装 axios,添加一系列公共参数与公共请求头\nexport const request = ['get', 'post'].reduce((api, method) => {\n api[method] = setRequest.bind(null, method)\n return api\n}, {})\n\n// bff只接受post请求\nexport const bffRequest = ['post'].reduce((api, method) => {\n api[method] = setBffRequest.bind(null, method)\n return api\n}, {})\n\nexport async function requestHelper (request, ...args) {\n try {\n const result = await request.apply(null, args)\n const data = result && result.data ? result.data : result\n if (data && !data.errno) {\n return data\n } else {\n apiErrnoError({\n page_url: window.location.href,\n trace: data\n })\n return data || {}\n }\n } catch (err) {\n apiErrnoError({\n page_url: window.location.href,\n trace: err\n })\n store.commit('SHOW_MSG', {\n type: 'error',\n txt: i18n._('网络不佳,请检查您的网络')\n })\n }\n}\n","import didiaxios from '@didi/dajax/dist/dajax'\n\nconst BASE_URL = '//c.didi-food.com'\n\nconst MOCK_LOGIN = BASE_URL + '/mock/login'\nconst MOCK_GET_SHOP_LIST = BASE_URL + '/mock/shoplist'\nconst MOCK_ORDER_CREATE = BASE_URL + '/mock/create'\nconst MOCK_ORDER_SHOPPAYED = BASE_URL + '/mock/shoppayed'\nconst MOCK_ORDER_RIDERUPDATE = BASE_URL + '/mock/riderupdate'\n\nexport const mockLogin = function (data) {\n return requestPOST(MOCK_LOGIN, data)\n}\nexport const mockGetShopList = function (data) {\n return requestGET(MOCK_GET_SHOP_LIST, data)\n}\nexport const mockOrderCreate = function (data) {\n return requestPOST(MOCK_ORDER_CREATE, data)\n}\nexport const mockOrderShopPayed = function (data) {\n return requestPOST(MOCK_ORDER_SHOPPAYED, data)\n}\nexport const mockOrderRideUpdate = function (data) {\n return requestPOST(MOCK_ORDER_RIDERUPDATE, data)\n}\n\nfunction requestPOST (url, data) {\n return didiaxios.request({\n url: url,\n method: 'POST',\n emulateJSON: true,\n needEncrypt: true,\n params: '',\n body: data\n }).then(res => (res.data)).catch((err) => console.log(err))\n}\n\nfunction requestGET (url, data) {\n return didiaxios.request({\n url: url,\n method: 'GET',\n emulateJSON: true,\n needEncrypt: true,\n params: data\n }).then(res => (res.data)).catch((err) => console.log(err))\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_WALLET_COUPONS = apis.actApiDomain + '/act-api/api/sidebar/validCouponsV2'\n// const GET_WALLET_COUPONS = PAY_MIS_URL + '/foundation/coupon/v1/walletinterface/getwalletcoupons'\nconst SIDEBAR_EXCHANGE_COUPONS = apis.actApiDomain + '/act-api/api/code/sidebarRedeem'\nconst SIDEBAR_EXCHANGE_RESULT = apis.actApiDomain + '/act-api/api/code/redeemResult'\nconst APOLLO_AB_CONFIG = apis.actApiDomain + '/act-api/api/sidebar/route'\n\nexport const getAllCoupons = function (data) {\n return request.post(GET_WALLET_COUPONS, data)\n}\n\nexport const sidebarExchangeCoupons = function (data) {\n return request.post(SIDEBAR_EXCHANGE_COUPONS, data)\n}\n\nexport const getCouponSuccessInfo = function (data) {\n return request.post(SIDEBAR_EXCHANGE_RESULT, data)\n}\n\nexport const getApolloABConfig = function (data) {\n return request.post(APOLLO_AB_CONFIG, data)\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_WALLET_R_COUPONS = apis.actApiDomain + '/act-api/api/sidebar/validRCoupons'\n\nexport const getAllRCoupons = function (data) {\n return request.post(GET_WALLET_R_COUPONS, data)\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_MEMBERSHIP = apis.cApiDomain + '/user/getMembership'\n\nexport const getMembership = function (data) {\n return request.post(GET_MEMBERSHIP, data)\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_COUPON_LIST = apis.cApiDomain + '/coupon/fetchCouponList'\n// 闪送提单页优惠券接口\nconst ENTREGA_COUPON_LIST = apis.cApiDomain + '/entrega/couponList'\n\nconst EXCHANGE_COUPON = apis.actApiDomain + '/act-api/api/code/cartRedeem'\n\nexport const getCoupons = function (data) {\n return request.post(GET_COUPON_LIST, data)\n}\nexport const entregaCouponList = function (data) {\n return request.post(ENTREGA_COUPON_LIST, data)\n}\nexport const exchangeCoupon = function (data) {\n return request.post(EXCHANGE_COUPON, data)\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_R_COUPON_LIST = apis.cApiDomain + '/coupon/rCouponList' // 等接口\n\nexport const getRCoupons = function (data) {\n return request.post(GET_R_COUPON_LIST, data)\n}\n","import { request } from '@/api/common'\nimport i18n from '@/common/js/i18n'\nimport store from '@/store'\nimport apis from '@/common/config/host'\nconst cancelDutyUrl = apis.cApiDomain + '/order/cancelDutyV2'\nconst cancelUrl = apis.cApiDomain + '/order/cancelV2'\nconst getCancelReasonUrl = apis.cApiDomain + '/order/getCancelReason'\nconst cancelOrderUrl = apis.cApiDomain + '/order/cancelReason'\nconst getCancelFlowUrl = apis.cApiDomain + '/cancel/applyFlow'\nconst applyCancelUrl = apis.cApiDomain + '/cancel/apply'\n\n// 取消订单预判责\nexport function cancelDuty (params = {}) {\n return cancelRequest({\n url: cancelDutyUrl,\n params\n })\n}\n// 取消订单\nexport function cancelOrder (params = {}) {\n return cancelRequest({\n url: cancelUrl,\n params\n })\n}\n// 获取关闭原因\nexport function getCancelReason (params = {}) {\n return cancelRequest({\n url: getCancelReasonUrl,\n params\n })\n}\n// 发送取消原因\nexport function cancelReason (params = {}) {\n return cancelRequest({\n url: cancelOrderUrl,\n params\n })\n}\n// 提交申请取消\nexport function applyCancel (params = {}) {\n return cancelRequest({\n url: applyCancelUrl,\n params\n })\n}\n// 获取取消进度\nexport function getCancelFlow (params = {}) {\n return cancelRequest({\n url: getCancelFlowUrl,\n params\n })\n}\n// 包装公共request\nfunction cancelRequest (option = {}) {\n const { params } = option\n return request.post(option.url, {\n data: params.data\n })\n .then((res) => {\n const resData = res.data\n if (resData.errno === 0) {\n return Promise.resolve(resData.data)\n } else if (resData.errno === 40000) {\n // 状态码为40000的时候,后端的errmsg为系统内部错误,需要映射一下文案\n store.commit('SHOW_MSG', {\n type: 'error',\n txt: i18n._('网络不佳,请检查您的网络')\n })\n return Promise.reject(resData.errno)\n } else if (resData.errno === 41202) {\n // 信息发生变化,请重新确认 刷新页面\n setTimeout(() => {\n params.refreshCallback && params.refreshCallback()\n }, 0)\n return Promise.reject(resData.errno)\n } else if (resData.errno === 41203) {\n // 订单状态发生变化,请重新确认 处理:返回订单详情页\n setTimeout(() => {\n params.backCallback && params.backCallback()\n }, 1500)\n return Promise.reject(resData.errno)\n } else {\n store.commit('SHOW_MSG', {\n type: 'error',\n txt: i18n._('网络不佳,请检查您的网络')\n })\n return Promise.reject(resData.errno)\n }\n })\n .catch((err) => {\n console.error(`API cancelRequest error`, err)\n if (typeof err === 'number' || typeof err === 'string') {\n return Promise.reject(err)\n }\n })\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_TAG_LIST = apis.cApiDomain + '/evaluation/tagList'\nconst SUBMIT_EVALUATION = apis.cApiDomain + '/evaluation/evaluate'\nconst GET_EVALUATION_INFO = apis.cApiDomain + '/evaluation/evaluationInfo'\n\nexport const getTags = function (data) {\n return request.post(GET_TAG_LIST, data)\n}\n\nexport const submitEvaluation = function (data) {\n return request.post(SUBMIT_EVALUATION, data)\n}\n\nexport const getEvaluationInfo = function (data) {\n return request.post(GET_EVALUATION_INFO, data)\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst FEED_NOSHOP = apis.cApiDomain + '/feed/noShop'\nconst FEED_UNOPENED = apis.cApiDomain + '/feed/unopened'\nconst ENTREGA_CITYLIST = apis.cApiDomain + '/entrega/cityList'\nconst ADDRESS_REVERSEPOI = apis.cApiDomain + '/address/reversePoi'\nconst GET_RIDER_AREA = apis.cApiDomain + '/zone/getRiderArea'\nconst GET_CLUSTER_LIST = apis.cApiDomain + '/zone/getClusterList'\n\nexport const feedNoShop = function (data = {}) {\n return request.post(FEED_NOSHOP, data)\n}\n\nexport const feedUnOpened = function (data = {}) {\n return request.post(FEED_UNOPENED, data)\n}\n\nexport const entregaCityList = function (data = {}) {\n return request.post(ENTREGA_CITYLIST, data)\n}\n\nexport const addressReversePoi = function (data = {}) {\n return request.post(ADDRESS_REVERSEPOI, data)\n}\n\nexport const getRiderArea = function (data = {}) {\n return request.post(GET_RIDER_AREA, data)\n // return request.get(GET_RIDER_AREA, data)\n}\n\nexport const getClusterList = function (data = {}) {\n return request.post(GET_CLUSTER_LIST, data)\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_QUESTION_LIST = apis.cApiDomain + '/appeal/questionList'\nconst GET_QUESTION_DETAIL = apis.cApiDomain + '/appeal/questionDetail'\nconst SUBMIT_NOT_RECEIVE_FOOD = apis.cApiDomain + '/complaint/missFood'\n\nexport const getQuestionList = function (data) {\n return request.post(GET_QUESTION_LIST, data)\n}\n\nexport const getQuestionDetail = function (data) {\n return request.post(GET_QUESTION_DETAIL, data)\n}\n\nexport const submitNotReceiveFood = function (data) {\n return request.post(SUBMIT_NOT_RECEIVE_FOOD, data)\n}\n","import didiaxios from '@didi/dajax/dist/dajax'\n\nconst BASE_URL = '//c.didi-food.com'\n\nconst COMMON_CONFIG = BASE_URL + '/common/config' // 根据经纬度反解country接口\n\nexport const getAddress = function (data) {\n return requestPOST(COMMON_CONFIG, data)\n}\n\nfunction requestPOST (url, data) {\n return didiaxios.request({\n url: url,\n method: 'POST',\n emulateJSON: true,\n needEncrypt: true,\n params: '',\n body: data\n }).then(res => (res.data)).catch((err) => console.log(err))\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n// import { requireParams } from '@/common/const/api-require-param'\nconst GET_FEEDBACK_INFO = apis.cApiDomain + '/complaint/missItemInfo'\nconst POST_FEEDBACK_DATA = apis.cApiDomain + '/complaint/missItem'\nconst UPLOAD_BASE64_IMAGE = apis.cApiDomain + '/common/uploadbase64'\nconst GET_APPEAL_PROGRESS = apis.cApiDomain + '/complaint/process'\nconst GET_REFUND_REE = apis.cApiDomain + '/complaint/getRefundFee'\nconst POST_APPEAL_DATA = apis.cApiDomain + '/complaint/missItemsAppeal'\nconst GET_FEEDBACK_CONFIGS = apis.cApiDomain + '/complaint/getMissItemConfigs'\nconst SET_DEF_REFUND_CHANNEL = apis.cApiDomain + '/complaint/setDefRefundChannel'\n\nexport const getFeedbackInfo = function (data) {\n return request.post(GET_FEEDBACK_INFO, data)\n}\n\nexport const postFeedbackData = function (data) {\n return request.post(POST_FEEDBACK_DATA, data)\n}\n\nexport const uploadBase64Image = function (data) {\n return request.post(UPLOAD_BASE64_IMAGE, data)\n}\n\n// 获取售后申诉进度\nexport const getAppealProgress = function (data) {\n // 桌面浏览器请求使用的默认参数\n // data.data = {...requireParams, ...data.data}\n return request.post(GET_APPEAL_PROGRESS, data)\n}\n\n// 实时获取退款金额\nexport const getRefundFee = function (data) {\n // 桌面浏览器请求使用的默认参数\n // data.data = {...requireParams, ...data.data}\n return request.post(GET_REFUND_REE, data)\n}\n\nexport const appealToService = function (data) {\n // 桌面浏览器请求使用的默认参数\n // data.data = {...requireParams, ...data.data}\n return request.post(POST_APPEAL_DATA, data)\n}\n\nexport const getMissItemConfigs = function (data) {\n // 桌面浏览器请求使用的默认参数\n return request.post(GET_FEEDBACK_CONFIGS, data)\n}\n\n// 设置默认退款渠道\nexport const setDefrefundChannel = function (data) {\n // 桌面浏览器请求使用的默认参数\n return request.post(SET_DEF_REFUND_CHANNEL, data)\n}\n","import { request } from '@/api/common'\n// import { requireParams } from '@/common/const/api-require-param'\nimport apis from '@/common/config/host'\n\nconst GET_FEEDBACK_INFO = apis.cApiDomain + '/complaint/missFoodInfo'\nconst POST_MISS_FOOD_DATA = apis.cApiDomain + '/complaint/missFoodV2'\nconst POST_NOTIFY_RIDER = apis.cApiDomain + '/complaint/notifyRider'\n\n// http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=410319684\nexport const getMissFoodInfo = function (data) {\n return request.post(GET_FEEDBACK_INFO, data)\n}\n// http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=411047990\nexport const postMissFoodData = function (data) {\n return request.post(POST_MISS_FOOD_DATA, data)\n}\n// http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=413981976\nexport const notifyRiderMissFood = function (data) {\n return request.post(POST_NOTIFY_RIDER, data)\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\nconst CentregaRules = apis.cApiDomain + '/entrega/serviceDesc'\nconst CentregaOrderPreCancel = apis.entregaApiDomain + '/entrega/orderPreCancel'\nconst CentregaOrderCancel = apis.entregaApiDomain + '/entrega/orderCancel'\n\n// 获取闪送服务规则信息\nexport const getCentregaRules = function (data) {\n return request.post(CentregaRules, data)\n}\n\n// 获取闪送预判则信息\nexport const getCentregaOrderPreCancel = function (data) {\n return request.post(CentregaOrderPreCancel, data)\n}\n\n// 获取闪送确定取消\nexport const getCentregaOrderCancel = function (data) {\n return request.post(CentregaOrderCancel, data)\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_MARKETING_INFO = apis.cApiDomain + '/shop/marketingInfo' // 等接口\n\nexport const getMarketingInfo = function (data) {\n return request.post(GET_MARKETING_INFO, {data: {...data}})\n}\n","import { request } from \"@/api/common\";\nimport apis from \"@/common/config/host\";\nconst BENEFITS_INFO =\n apis.actApiDomain + \"/act-api/api/benefitgrowth/getBenefitsInfo\";\n\nexport const userDiscountStat = function (params) {\n // return request.post(\n // \"https://mock.xiaojukeji.com/mock/12440/common/userDiscountStat\",\n // params\n // );\n return request.post(apis.cApiDomain + \"/common/userDiscountStat\", params);\n};\nexport const getBenefitsInfo = function () {\n // return request.post(\n // \"https://mock.xiaojukeji.com/mock/12448/api/benefitgrowth/getBenefitsInfo\"\n // );\n return request.post(BENEFITS_INFO);\n};\n","import { request } from \"@/api/common\";\nimport apis from \"@/common/config/host\";\nconst DEEPLINK_OUT =\n apis.actApiDomain + \"/act-api/Api/Activitypage/getUrlList\";\n // http://sim335.rlab.sim.intra.xiaojukeji.com/act-api/Api/Activitypage/getUrlList\n\nexport const getDeeplink = function (params) {\n return request.get(DEEPLINK_OUT, params);\n}\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\n\nconst GET_VALID_COUPONS_BY_CATE = apis.actApiDomain + '/act-api/api/sidebar/validCouponsByCate'\n\nexport const getValidCouponsByCate = function (data) {\n return request.post(GET_VALID_COUPONS_BY_CATE, {data: {...data}})\n}","import { request } from \"@/api/common\";\nimport apis from \"@/common/config/host\";\nconst SOLO_DINING = apis.cApiDomain + '/feed/specialTopicIndex'\nexport const soloDining = function (params) {\n // return request.post(\n // \"https://mock.xiaojukeji.com/mock/12440/feed/rankIndex_1681465246265_1691392564159\",\n // params\n // );\n return request.post(SOLO_DINING, params);\n};\n","import { request } from '@/api/common'\nimport apis from '@/common/config/host'\nconst Topic = apis.cApiDomain + '/feed/topicIndexV4'\n// const Topic = apis.cApiDomain + '/feed/specialTopicIndex'\nexport const getTopic = function (params) {\n return request.post(Topic, params)\n}\n","import { request } from \"@/api/common\";\nimport apis from \"@/common/config/host\";\n\nconst SENDINVOICE = apis.cApiDomain + \"/order/sendInvoice\";\n\nexport const sendInvoice = function (data) {\n return request.post(SENDINVOICE, data);\n};\n","import * as bd from './bd/index'\nimport * as SidebarCoupon from './sidebar/coupon'\nimport * as SidebarRcoupon from './sidebar/rcoupon'\nimport * as SidebarMembership from './sidebar/membership'\n\nimport * as CartCoupon from './cart/coupon'\nimport * as CartRCoupon from './cart/rcoupon'\nimport * as CancelOrder from './cancel-order'\nimport * as Evaluation from './evaluation'\nimport * as Abnormal from './abnormal'\nimport * as Question from './question'\nimport * as Other from './other'\nimport * as Feedback from './feedback'\nimport * as MissOrder from './miss-order'\nimport * as Entrega from './entrega'\nimport * as Merchants from './merchants/couponInfo'\nimport * as VFM from './vfm'\nimport * as Deeplink from './deeplink'\nimport * as User from './user/coupon'\nimport * as SoloDining from './soloDining'\nimport * as Topic from './topic'\nimport * as Bill from './bill'\n\nconst API = {\n ...bd,\n ...SidebarRcoupon,\n ...SidebarCoupon,\n ...SidebarMembership,\n ...CartCoupon,\n ...CartRCoupon,\n ...CancelOrder,\n ...Evaluation,\n ...Abnormal,\n ...Question,\n ...Other,\n ...Feedback,\n ...MissOrder,\n ...Entrega,\n ...Merchants,\n ...VFM,\n ...User,\n ...SoloDining,\n ...Topic,\n ...Bill,\n ...Deeplink\n}\n\nexport default API\n","/**\n * 磨平差异:端差异、平台差异,对业务层透明\n * 明确参与:让业务层更好使用\n * *注意循环引用问题 util等区分好使用范围和场景\n */\nimport {\n getGlobalParams,\n openPage,\n closePage,\n goBack,\n getUserInfo,\n getLocationInfo,\n setTitle as _setTitle,\n requestLogin,\n updateBill,\n updateNav,\n updateGlobalCart,\n registerTrigger,\n unregisterTrigger,\n triggerBillEvent,\n triggerAddressChanged,\n triggerWebViewLifecycleEvent,\n guideParams,\n addCartEvent,\n setBackPressListener,\n request,\n bridgeTrackEvent,\n pullUpPayment,\n} from './core';\nimport { util } from '@didi/soda-common';\n\nlet {\n env: { isAndroid, inNative },\n} = util;\n\nfunction setTitle({ title }) {\n return _setTitle({ navi_title: title });\n}\n\nconst TriggerList = [\n 'triggerWebViewLifecycleEvent',\n 'triggerBillEvent',\n 'triggerAddressChanged',\n];\n\nfunction initBridge() {\n return registerTrigger({\n triggerList: TriggerList,\n }).then((res) => {\n // console.log('注册的trigger信息是否成功', res);\n });\n}\n\n// 判断登录信息 需要登录调登录\nasync function checkLoginBridge(login = true) {\n const userData = await getUserInfo({});\n if (userData?.data?.token) {\n return true;\n } else {\n //登录\n login &&\n (await requestLogin({ dontPopRoot: 1 }).then((res) => {\n if (res?.data?.token) {\n //todo\n location.reload();\n }\n }));\n return false;\n }\n}\n\n// 关闭开启手势返回\nfunction closeNativeGestureBack(open, cb) {\n if (!inNative) return;\n // 安卓\n isAndroid &&\n setBackPressListener(open).then((res) => {\n cb && cb(res);\n });\n // isIOS\n}\n\n/**\n * 这里与axios拦截器的返回结果保持一致\n *\n * request桥返回bridge response\n * bridge response.data === http response\n * axios拦截器返回 http response\n * requestDataHelper的输入为 http response\n *\n * bridge request 返回值参考:https://img-hxy021.didistatic.com/static/starimg/img/98aNIla9u11669266386319.png\n * 请求各层输入、输出梳理:https://img-hxy021.didistatic.com/static/starimg/img/7g5G2CxyMs1669962130211.png\n */\nfunction bridgePostRequest(url, data, config) {\n return request({\n method: 'post',\n url,\n data,\n header: config.header,\n timeout: config.timeout,\n ...config,\n }).then((response) => response?.data);\n}\n\nfunction exists(name) {\n let keys = name.split('.');\n let exist = true;\n let data = window;\n for (let i = 0; i < keys.length; i++) {\n if (data[keys[i]] !== undefined) {\n data = data[keys[i]];\n } else {\n exist = false;\n break;\n }\n }\n return exist;\n}\n\nexport {\n exists,\n getGlobalParams,\n openPage,\n closePage,\n goBack,\n getUserInfo,\n getLocationInfo,\n setTitle,\n requestLogin,\n updateBill,\n updateNav,\n updateGlobalCart,\n initBridge,\n registerTrigger,\n unregisterTrigger,\n triggerBillEvent,\n triggerAddressChanged,\n triggerWebViewLifecycleEvent,\n guideParams,\n addCartEvent,\n checkLoginBridge,\n closeNativeGestureBack,\n bridgePostRequest,\n bridgeTrackEvent,\n pullUpPayment,\n};\n","class Emitter {\n constructor() {\n this.state = {};\n }\n\n _exist(list, fn) {\n return list.indexOf(fn) !== -1;\n }\n\n _foo() {}\n\n on(eventName, listener = this._foo) {\n if (this.state[eventName] === undefined) {\n this.state[eventName] = [];\n }\n if (this._exist(this.state[eventName], listener)) {\n return;\n }\n this.state[eventName].push(listener);\n }\n\n emit(eventName, ...args) {\n if (this.state[eventName] === undefined) {\n return;\n }\n this.state[eventName].forEach((listener) => {\n listener(...args);\n });\n }\n\n off(eventName, listener = this._foo) {\n if (this.state[eventName] === undefined) {\n return;\n }\n if (!this._exist(this.state[eventName], listener)) {\n return;\n }\n let index = this.state[eventName].indexOf(listener);\n this.state[eventName].splice(index, 1);\n }\n}\n\nexport default new Emitter();\n","import emitter from './emitter'\nexport const Soda = window.Soda || {\n customer: {}\n}\n\nexport class BridgeMonitor {\n constructor(module, method) {\n this.fnList = []\n Soda[module][method] = (...args) => {\n emitter.emit(`${module}.${method}`, ...args)\n }\n\n emitter.on(`${module}.${method}`, (...res) => {\n this.fnList.forEach((fn) => {\n fn(...res)\n })\n })\n }\n\n register(fn) {\n this.fnList.push(fn)\n }\n\n unregister(fn) {\n let index = this.fnList.indexOf(fn)\n if (index !== -1) {\n this.fnList.splice(index, 1)\n }\n }\n}\n\nfunction getNotFoundRes() {\n return { errno: 404, errmsg: 'NOT FOUND', data: {} }\n}\n\nfunction bridgeReport({ name, time, errno, errMsg }) {\n emitter.emit('bridge-report', {\n name,\n time,\n errno,\n errMsg\n })\n}\n\nfunction checkSoda() {\n return new Promise((resolve, reject) => {\n if (window.Soda !== undefined) {\n resolve()\n } else {\n let t = setInterval(() => {\n if (window.Soda !== undefined) {\n resolve()\n clearInterval(t)\n }\n }, 100)\n }\n })\n}\n\nexport function bridgePromisify(\n bridgeFn,\n bridgeName,\n isGlobalParamsBridge = false\n) {\n return (params = {}) => {\n return new Promise((resolve) => {\n const startRequestTime = Date.now()\n\n try {\n checkSoda()\n .then(() => {\n if (isGlobalParamsBridge) {\n // getGlobalParams\n bridgeFn((res) => {\n resolve(res)\n bridgeReport({\n name: bridgeName,\n time: Date.now() - startRequestTime,\n errno: res.errno,\n errMsg: res.errmsg\n })\n })\n } else {\n bridgeFn(params, (res) => {\n resolve(res)\n bridgeReport({\n name: bridgeName,\n time: Date.now() - startRequestTime,\n errno: res.errno,\n errMsg: res.errmsg\n })\n })\n }\n })\n .catch((e) => {\n bridgeReport({\n name: bridgeName,\n time: Date.now() - startRequestTime,\n errno: 404,\n errMsg: e\n })\n resolve(getNotFoundRes())\n })\n } catch (e) {\n bridgeReport({\n name: bridgeName,\n time: Date.now() - startRequestTime,\n errno: 404,\n errMsg: e\n })\n resolve(getNotFoundRes())\n }\n })\n }\n}\n\n/**\n * 获取 updateNav 参数信息\n */\nexport function getUpdateNavParams(type = 'light') {\n let config = {\n transparent: {\n sysStatusBar: 1, // 状态栏字体颜色 0黑色,1白色\n nav: {\n // titlebar背景条\n color: '#FFFFFF',\n alpha: 0,\n hidden: 1 // 隐藏头部\n }\n },\n light: {\n sysStatusBar: 0,\n nav: {\n color: '#FFFFFF',\n alpha: 0,\n hidden: 1\n }\n },\n dark: {\n sysStatusBar: 1,\n nav: {\n color: '#000000',\n alpha: 1,\n hidden: 1\n }\n }\n }\n // TODO 由于现在还不支持不传这几个字段 所以先加上\n let other = {\n backBtn: {\n alpha: 1,\n color: '#FFFFFF'\n },\n title: {\n color: '#000000',\n alpha: 1\n }\n }\n return Object.assign(config[type], other)\n}\n","import { bridgePromisify, BridgeMonitor, Soda } from './utils'\n\nexport const getGlobalParams = bridgePromisify(\n Soda.getGlobalParams,\n undefined,\n true\n)\nexport const setTitle = bridgePromisify(Soda.setTitle)\nexport const updateNav = bridgePromisify(Soda.updateNav)\nexport const openPage = bridgePromisify(Soda.openPage)\nexport const closePage = bridgePromisify(Soda.closePage)\nexport const goBack = bridgePromisify(Soda.goBack)\nexport const getUserInfo = bridgePromisify(Soda.getUserInfo)\nexport const requestLogin = bridgePromisify(Soda.requestLogin)\n\nexport const getLocationInfo = bridgePromisify(Soda.getLocationInfo)\nexport const updateGlobalCart = bridgePromisify(Soda.customer.updateGlobalCart)\n\nexport const registerTrigger = bridgePromisify(Soda.customer.registerTrigger)\nexport const unregisterTrigger = bridgePromisify(\n Soda.customer.unregisterTrigger\n)\nexport const updateBill = bridgePromisify(Soda.customer.updateBill)\nexport const guideParams = bridgePromisify(Soda.customer.guideParams)\nexport const addCartEvent = bridgePromisify(Soda.customer.addCartEvent)\nexport const request = bridgePromisify(\n Soda.customer.request,\n 'Soda.customer.request'\n)\nexport const bridgeTrackEvent = bridgePromisify(Soda.customer.trackEvent)\n\n// 安卓 是否关闭手势返回 true关闭 false开启\n// *ios 不建议fe控制手势动作 提出方案在容器内禁止侧滑\nexport const setBackPressListener = bridgePromisify(Soda.setBackPressListener)\n\nexport const triggerWebViewLifecycleEvent = new BridgeMonitor(\n 'customer',\n 'triggerWebViewLifecycleEvent'\n)\nexport const triggerBillEvent = new BridgeMonitor(\n 'customer',\n 'triggerBillEvent'\n)\nexport const triggerAddressChanged = new BridgeMonitor(\n 'customer',\n 'triggerAddressChanged'\n)\n\nexport const pullUpPayment = function (params, callback) {\n try {\n window.Fusion.loadModule('payment').universalPay(params, callback)\n } catch {}\n}\n","// 品牌文案\nconst brandTextObj = {\n brand_txt_1: {\n 'zh-CN': '滴滴',\n 'en-US': 'DiDi',\n 'es-MX': 'DiDi',\n 'pt-BR': 'DiDi',\n 'ja-JP': 'DiDi',\n 'es-419': 'DiDi'\n },\n brand_txt_2: {\n 'zh-CN': 'DiDi Food',\n 'en-US': 'DiDi Food',\n 'es-MX': 'DiDi Food',\n 'pt-BR': 'DiDi Food',\n 'ja-JP': 'DiDi Food',\n 'es-419': 'DiDi Food'\n },\n brand_txt_3: {\n 'zh-CN': '滴滴外卖',\n 'en-US': 'DiDi Food',\n 'es-MX': 'DiDi Food',\n 'pt-BR': 'DiDi Food',\n 'ja-JP': 'DiDi Food',\n 'es-419': 'DiDi Food'\n },\n brand_txt_4: {\n 'zh-CN': '滴滴App',\n 'en-US': 'DiDi App',\n 'es-MX': 'DiDi App',\n 'pt-BR': 'DiDi App',\n 'ja-JP': 'DiDi App',\n 'es-419': 'DiDi App'\n }\n}\nexport const brandText = {\n JP: brandTextObj,\n MX: brandTextObj,\n CR: brandTextObj,\n CO: brandTextObj,\n DO: brandTextObj,\n CL: brandTextObj,\n PE: brandTextObj,\n BR: {\n brand_txt_1: {\n 'zh-CN': '99',\n 'en-US': '99',\n 'es-MX': '99',\n 'pt-BR': '99',\n 'ja-JP': '99',\n 'es-419': '99'\n },\n brand_txt_2: {\n 'zh-CN': '99 外卖',\n 'en-US': '99 Food',\n 'es-MX': '99 Food',\n 'pt-BR': '99 Food',\n 'ja-JP': '99 Food',\n 'es-419': '99 Food'\n },\n brand_txt_3: {\n 'zh-CN': '99 外卖',\n 'en-US': '99 Food',\n 'es-MX': '99 Food',\n 'pt-BR': '99 Food',\n 'ja-JP': '99 Food',\n 'es-419': '99 Food'\n },\n brand_txt_4: {\n 'zh-CN': '99 App',\n 'en-US': '99 App',\n 'es-MX': '99 App',\n 'pt-BR': '99 App',\n 'ja-JP': '99 App',\n 'es-419': '99 App'\n }\n }\n}\n","// appstore_URL\nexport const PC_APPSTORE_URL = {\n 'MX': 'https://apps.apple.com/cn/app/didi-food-food-delivery/id1434256853',\n 'BR': 'https://app.appsflyer.com/id1480806762?pid=99Food%20PC%20Web%20iOS',\n 'JP': 'https://go.onelink.me/qBSw/4ba18e05',\n 'CR': 'https://apps.apple.com/cn/app/didi-food-food-delivery/id1434256853',\n 'CO': 'https://apps.apple.com/cn/app/didi-food-food-delivery/id1434256853',\n 'DO': 'https://apps.apple.com/cn/app/didi-food-food-delivery/id1434256853',\n 'CL': 'https://apps.apple.com/cn/app/didi-food-food-delivery/id1434256853',\n 'PE': 'https://apps.apple.com/cn/app/didi-food-food-delivery/id1434256853'\n}\n// googleplay_URL\nexport const PC_GOOGLEPLAY_URL = {\n 'MX': 'https://play.google.com/store/apps/details?id=com.xiaojukeji.didi.global.customer',\n 'BR': 'https://app.appsflyer.com/com.xiaojukeji.didi.brazil.customer?pid=99Food%20PC%20Web%20Android',\n 'JP': 'https://go.onelink.me/tRoF/1fe37e29',\n 'CR': 'https://play.google.com/store/apps/details?id=com.xiaojukeji.didi.global.customer',\n 'CO': 'https://play.google.com/store/apps/details?id=com.xiaojukeji.didi.global.customer',\n 'DO': 'https://play.google.com/store/apps/details?id=com.xiaojukeji.didi.global.customer',\n 'CL': 'https://play.google.com/store/apps/details?id=com.xiaojukeji.didi.global.customer',\n 'PE': 'https://play.google.com/store/apps/details?id=com.xiaojukeji.didi.global.customer'\n}\n","// 售后提交图片\nexport const sealPic = {\n MX: 'https://img0.didiglobal.com/static/gstar/img/iM0o8YyyRN1617701623019.png',\n BR: 'https://img0.didiglobal.com/static/gstar/img/mr59SG8ha71617701673189.png',\n JP: 'https://img0.didiglobal.com/static/gstar/img/lopPkRe69s1617701659761.png',\n CR: 'https://img0.didiglobal.com/static/gstar/img/iM0o8YyyRN1617701623019.png',\n CO: 'https://img0.didiglobal.com/static/gstar/img/iM0o8YyyRN1617701623019.png',\n DO: 'https://img0.didiglobal.com/static/gstar/img/iM0o8YyyRN1617701623019.png',\n CL: 'https://img0.didiglobal.com/static/gstar/img/iM0o8YyyRN1617701623019.png',\n PE: 'https://img0.didiglobal.com/static/gstar/img/iM0o8YyyRN1617701623019.png'\n}\n","const defaultPic = 'https://pt-starimg.didistatic.com/static/starimg/img/NaoVzyqXQX1648107890585.png'\n\n// 闪送服务规则头图\nexport const headImg = {\n BR: 'https://pt-starimg.didistatic.com/static/starimg/img/LaR275lR5D1655869341770.png',\n MX: defaultPic,\n JP: defaultPic,\n CR: defaultPic,\n CO: defaultPic,\n DO: defaultPic,\n CL: defaultPic\n}\n","const defaultPic =\n 'https://pt-starimg.didistatic.com/static/starimg/img/7f6FPB2Eb91646278291043.png';\n\n// 闪送服务规则计价图\nexport const valuationImg = {\n BR: 'https://pt-starimg.didistatic.com/static/starimg/img/959tHgMsv31655803497692.png',\n MX: defaultPic,\n JP: defaultPic,\n CR: defaultPic,\n CO: 'https://img0.didiglobal.com/static/soda_static/xpub_base_landingpage/entrega_co_fee.jpg',\n DO: defaultPic,\n CL: defaultPic,\n};\n","// productId\nexport const PRODUCT_ID = {\n JP: 601,\n BR: 510,\n MX: 247,\n CR: 727,\n CO: 723,\n DO: 721,\n CL: 724,\n PE: 725\n}\n","// 电话\nexport const serviceNumber = {\n MX: '8008016888',\n BR: '03003130099',\n JP: '0120132355',\n CR: '50641063372',\n CO: '6015801398',\n DO: '(+) 18 29956 8643',\n CL: '(+56)227120527',\n PE: '(+51)15101937'\n\n}\n\n// 邮箱\nexport const serviceEmail = {\n MX: 'soporte.food@mx.didiglobal.com',\n BR: '', // 巴西暂时没有邮箱配置\n JP: 'customer@didifood.co.jp',\n CR: '',\n CO: 'didifood.co@didiglocal.com',\n DO: '', // 多米尼加暂不配置邮箱\n CL: '', // 智利暂不配置邮箱\n PE: '' // 秘鲁暂不配置邮箱\n}\n","import i18n from '@/common/js/i18n'\nimport { sprintf } from '@didi/gettext'\n\nconst payMessageObj = {\n title: i18n._('支付信息'),\n desc: sprintf(i18n._('%s致力于通过无密码和现金支付流程为我们的客户提供简单安全的付款体验。'), 'DiDi'),\n // 支付FAQ\n QAList: [\n {\n title: i18n._('app内可以支持哪些支付方式?'),\n answer: [i18n._('目前我们支持信用卡,借记卡的线上支付,以及现金和pos机的线下支付。')]\n },\n {\n title: i18n._('怎么样开通免密支付?'),\n answer: [i18n._('在支付方式中添加您的银行卡,成功绑定后即可开通免密支付。')]\n },\n {\n title: i18n._('如果对费用提出争议,将如何解决?'),\n answer: [i18n._('在极少数情况下,如果您对订单费用产生疑议,可以点击“帮助”联系我们,客服团队会尽快为您解答。')]\n }\n ]\n}\nexport const walletPaymentType = {\n 'MX': payMessageObj,\n 'BR': payMessageObj,\n 'CR': payMessageObj,\n 'CO': payMessageObj,\n 'DO': payMessageObj,\n 'CL': payMessageObj,\n 'PE': payMessageObj,\n 'JP': {\n title: i18n._('支付信息'),\n desc: sprintf(i18n._('%s致力于通过无密码和现金支付流程为我们的客户提供简单安全的付款体验。'), '99'),\n // 支付FAQ\n QAList: [\n {\n title: i18n._('app内可以支持哪些支付方式?'),\n answer: [i18n._('目前我们支持信用卡,借记卡的线上支付,以及现金和pos机的线下支付。')]\n },\n {\n title: i18n._('如果对费用提出争议,将如何解决?'),\n answer: [i18n._('在极少数情况下,如果您对订单费用产生疑议,可以点击“帮助”联系我们,客服团队会尽快为您解答。')]\n }\n ]\n\n }\n}\n","import i18nNew from '@/i18n/locale'\n\n// 默认配置\nconst defaultConf = {\n title: i18nNew.t('FoodC_name_DiDi_Flash_TAPX')\n}\n// 巴西99配置\nconst brConf = {\n title: i18nNew.t('Entrega_name_99_Flash_maAd')\n}\n\nexport const config = {\n BR: brConf,\n MX: defaultConf,\n JP: defaultConf,\n CR: defaultConf,\n CO: defaultConf,\n DO: defaultConf,\n CL: defaultConf\n}\n","// import { requireContextApi } from '@/common/js/requireContext'\n// const ctx = require.context('./list', true, /\\.js$/)\n// export default requireContextApi(ctx)\nimport * as brandText from './list/brand-text'\nimport * as downloadUrl from './list/download-url'\nimport * as orderPic from './list/order-pic'\nimport * as rulesHeadPic from './list/entrega-rules-head'\nimport * as rulesValuationPic from './list/entrega-rules-valuation'\nimport * as productId from './list/product-id'\nimport * as service from './list/service'\nimport * as walletPaymentType from './list/wallet-payment-type'\nimport * as entrega from './list/entrega'\n\nfunction configMixin (targetConfig = {}) {\n const defaultCountry = 'MX'\n const finalConfig = {}\n Object.keys(targetConfig).map(key => {\n finalConfig[key] = (targetCountry) => {\n return targetConfig[key][targetCountry] || targetConfig[key][defaultCountry]\n }\n })\n return finalConfig\n}\n\nexport default {\n brandText: configMixin(brandText),\n downloadUrl: configMixin(downloadUrl),\n orderPic: configMixin(orderPic),\n rulesHeadPic: configMixin(rulesHeadPic),\n rulesValuationPic: configMixin(rulesValuationPic),\n productId: configMixin(productId),\n service: configMixin(service),\n walletPaymentType: configMixin(walletPaymentType),\n entrega: configMixin(entrega)\n}\n","const devOpt = {\n cApiDomain: '//mock.xiaojukeji.com/mock/822',\n actApiDomain: '//mock.xiaojukeji.com/mock/822',\n entregaApiDomain: '//mock.xiaojukeji.com/mock/822',\n fulfillmentApiDomain: '//mock.xiaojukeji.com/mock/822',\n vfmApiDomain: '//mock.xiaojukeji.com/mock/12440'\n}\nexport default devOpt\n","\nimport development from './dev'\nimport testing from './test'\nimport production from './prod'\nconst env = process.env.NODE_ENV || 'development'\n\nconst envs = {\n development,\n testing,\n production\n}\n\nconst defaultOpt = production\n\nconst envOpt = envs[env]\n\nexport default {\n ...defaultOpt,\n ...envOpt\n}\n","import sim from '../sim.js'\n\nlet production = {\n cApiDomain: '',\n actApiDomain: '',\n entregaApiDomain: '',\n fulfillmentApiDomain: '',\n};\n\nif (sim.isSim()) {\n production = {\n cApiDomain: sim.getSimCApi(),\n actApiDomain: sim.getSimActApi(),\n entregaApiDomain: sim.getSimEntregaApi(),\n fulfillmentApiDomain: sim.getSimFulfillmentApi(),\n };\n} else {\n // for didi brand\n const isPre = location.host.indexOf('pre-c-h5') !== -1\n production = {\n cApiDomain: isPre\n ? 'https://pre-c.didi-food.com'\n : 'https://c.didi-food.com',\n actApiDomain: isPre\n ? 'https://pre-act-api.didi-food.com'\n : 'https://act-api.didi-food.com',\n entregaApiDomain: '//entrega.didi-food.com',\n fulfillmentApiDomain: isPre\n ? 'https://pre-fulfillment.didi-food.com'\n : 'https://fulfillment.didi-food.com',\n };\n}\n\nexport default production\n","const testing = {\n cApiDomain: '//c.didi-food.com',\n actApiDomain: '//act-api.didi-food.com',\n entregaApiDomain: '//entrega.didi-food.com'\n}\n\nexport default testing\n","class Sim {\n isSim() {\n return location.host.startsWith('sim');\n }\n getLocationOrigin() {\n return location.origin;\n }\n getBaseUrl() {\n return this.getLocationOrigin().replace('.c-h5', '');\n }\n getSimCApi() {\n return `${this.getBaseUrl()}/c-api`;\n }\n getSimActApi() {\n return `${this.getBaseUrl()}/act-api`;\n }\n getSimEntregaApi() {\n return `${this.getBaseUrl()}/c-api`;\n }\n getSimFulfillmentApi() {\n return `${this.getBaseUrl()}/fulfillment-api`;\n }\n}\n\nexport default new Sim()\n","import { VueJed, getLanguageLong } from '@didi/gettext'\n// import enUS from '../../locale/en-US/soda-c-i18n.po'\n// import esMX from '../../locale/es-MX/soda-c-i18n.po'\n// import zhCN from '../../locale/zh-CN/soda-c-i18n.po'\n// import ptBR from '../../locale/pt-BR/soda-c-i18n.po'\n// import jaJP from '../../locale/ja-JP/soda-c-i18n.po'\n\nimport enUS from '../../i18n/en-US'\nimport esMX from '../../i18n/es-MX'\nimport zhCN from '../../i18n/zh-CN'\nimport ptBR from '../../i18n/pt-BR'\nimport jaJP from '../../i18n/ja-JP'\nimport es419 from '../../i18n/es-419'\n\nconst map = {\n 'zh-CN': zhCN,\n 'en-US': enUS,\n 'es-MX': esMX,\n 'pt-BR': ptBR,\n 'ja-JP': jaJP,\n 'es-419': es419\n}\nconst lang = getLanguageLong()\n\nexport default new VueJed(map[lang])\n","/**\n * @Author: wangdaohan\n * @Date: 2018-03-08T15:31:02+08:00\n * @Email: wangdaohan@didichuxing.com\n * @Filename: rem.js\n * @Last modified by: wangdaohan\n * @Last modified time: 2018-03-08T18:13:03+08:00\n */\n(function (doc, win) {\n const docEl = doc.documentElement\n const resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'\n const recalc = function () {\n var clientWidth = docEl.clientWidth\n if (!clientWidth) { return }\n docEl.style.fontSize = (clientWidth / 16) + 'px'\n }\n\n if (!doc.addEventListener) { return }\n win.addEventListener(resizeEvt, recalc, false)\n recalc()\n // hack兼容某些特殊机型\n doc.addEventListener('DOMContentLoaded', recalc, false)\n})(document, window)\n","import track from '@/common/js/track';\n\n/** @desc 项目API请求监控埋点 */\nexport const apiMonitorLog = (response) => {\n try {\n if (response && +response.status === 200) {\n const { config, data } = response;\n const {\n errno,\n traceId = '',\n trace_id = '',\n requestId = '',\n time = '',\n } = data;\n\n track('sailing_c_api_monitor_bt', 'api请求上报', {\n request_errno: errno,\n request_path: config.url,\n trace_id: traceId || trace_id,\n page_url: window.location.href,\n request_id: requestId,\n request_time: time,\n }, null);\n }\n } catch (err) {\n console.log(err);\n }\n};\n\n\n/** \n * @desc 项目通用监控埋点 \n * @omega https://omega.intra.didiglobal.com/ba/point/detail?pointId=1075372\n * */\nexport const omegaH5Monitor = (obj) => {\n try {\n track('sailing_c_h5_monitor_bt', '核心流程通用监控埋点', {\n page_url: window.location.href,\n referrer: document.referrer,\n ...obj\n }, null);\n } catch (err) {\n console.log(err);\n }\n};\n","import { util } from '@didi/soda-common'\nimport { getGlobalParams } from '@/common/bridge/api.js'\nconst { env } = util\n\nconst url = require('url')\n\nfunction params() {\n let paramsString = window.location.search.slice(1)\n var items = paramsString ? paramsString.split('&') : []\n var result = {}\n items.forEach((item) => {\n let temp = item.split('=')\n result[temp[0]] = temp[1]\n })\n return result\n}\n\n// bridge获取埋点公共参数\nasync function getCommonParams() {\n let globalParams = {}\n // 端内请求从bridge获取埋点公共参数\n if (env.inNative) {\n // 检查getGlobalParam是否可用,在旧版嵌入端是不可用的\n if (Soda.getGlobalParams) {\n const globalParamsRes = (await getGlobalParams()) || {}\n globalParams = globalParamsRes.data\n }\n }\n return {\n appVersion: globalParams.appVersion,\n app_version: globalParams.appVersion,\n first_activity_id: globalParams.firstActivityId,\n first_channel_id: globalParams.firstChannelId,\n channel_id: globalParams.extChannelId || globalParams.channel,\n sailing_activity_id: globalParams.extActivityId,\n device_type: globalParams.deviceType,\n city_id: globalParams.cityId,\n country: globalParams.countryCode,\n poi_city_id: globalParams.poiCityId,\n internet_type: globalParams?.netWorkType,\n op_system: globalParams?.deviceType,\n pub_location_city_id: globalParams.cityId // todo\n }\n}\n\n// 获取当前所属页面\nfunction getCurPageName() {\n let pagePathArr = url.parse(location.href).pathname.slice(1).split('/')\n pagePathArr.shift()\n return {\n current_page: pagePathArr.join('/')\n }\n}\nexport default async function track(event, eventName, options, cb) {\n let globalParams = await getCommonParams()\n window.Omega.trackEvent(\n event,\n eventName,\n {\n ...Object.assign({}, globalParams, params(), getCurPageName(), options)\n },\n null,\n (res) => {\n cb && cb(res)\n }\n )\n}\n","import track from './track'\n// 取消确认页面展示\nexport function apiErrnoError (options) {\n try {\n track('tech_c_api_errno_erroe', '接口返回异常', {\n ...options\n }, null)\n } catch (err) {}\n}\n\n/**\n * @desc 路由错误捕捉\n * */\nexport const routerErrorLog = (options = {}) => {\n try {\n track('sailing_c_h5_tech_js_error_bt','路由加载错误捕捉', {\n err_type: 'routerOnError',\n ...options,\n }, null)\n } catch (err) {\n console.log(err);\n }\n};\n","import currencyType from '@/common/config/currency-type'\nimport { getLocale, getLanguageLong } from '@didi/gettext'\nimport getCountryConfig from '@/common/config/country-config'\nimport store from '@/store'\nimport get from 'lodash/get'\nexport function url2localProtocol (url = '') {\n url = url || ''\n const match = url.match(/^(http|https):(.*)/)\n if (match) {\n return window.location.protocol + match[2]\n } else {\n return url\n }\n}\n\nexport function getSchemeName () {\n const { country } = store.state\n // return 'oneTravel' // IOS bug,独立端还未上线,先写死\n // return 'gsodacustomer'\n // 后补 2019-04-08更新 国际版独立端协议头gsodacustomer 嵌入端协议头globalOneTravel\n // 再后补 2019-11-29更新 新增99独立端与嵌入端\n let schemes = {\n 'DiDi': {\n 'Food': 'gsodacustomer',\n 'Travel': 'globalOneTravel'\n },\n '99': {\n 'Food': 'bsodacustomer',\n 'Travel': 'taxis99OneTravel'\n }\n }\n let schemePath = `${country === 'BR' ? '99' : 'DiDi'}.${inCustomerApp ? 'Food' : 'Travel'}`\n\n return get(schemes, schemePath, 'gsodacustomer')\n}\n\nexport function debounce (func, wait, immediate) {\n let timeout\n let result\n\n const later = function (context, args) {\n timeout = null\n if (args) {\n result = func.apply(context, args)\n }\n }\n\n const debounced = function (...args) {\n if (timeout) {\n clearTimeout(timeout)\n }\n if (immediate) {\n const callNow = !timeout\n timeout = setTimeout(later, wait)\n if (callNow) {\n result = func.apply(this, args)\n }\n } else {\n timeout = setTimeout(() => {\n later(this, args)\n }, wait)\n }\n\n return result\n }\n\n debounced.cancel = function () {\n clearTimeout(timeout)\n timeout = null\n }\n\n return debounced\n}\n\nexport function formatCoupon (couponList) {\n return couponList.map(coupon => {\n return {\n name: coupon.batch_name, // 券名称\n couponId: coupon.couponid, // 券Id\n couponType: +coupon.coupon_type, // 券类型 3:抵扣券 100:折扣券\n couponAmount: coupon.coupon_amount, // 抵扣券最高抵扣金额\n couponAmountSplit: coupon.rl_coupon_amount_split, // 券面额及货币符号结构,日本改造后启用 接口文档:http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=279139099\n expireTimeDisplay: coupon.rl_expire_time_display, // 过期时间,后端返回的可直接展示的时间字符串\n discount: coupon.discount, // 折扣券-折扣数\n remark: coupon.remark, // 券说明\n rlCustomLogo: coupon.rl_custom_logo, // 商家券logo\n currency: currencyType['' + coupon.currency], // 已废弃,国家码,日本改造后已废弃\n availableStatus: +coupon.status === 2 && +coupon.rl_expired === 0 ? 1 : 2, // status 券状态 见wiki: http://wiki.intra.xiaojukeji.com/pages/viewpage.action?pageId=104837020; rl_expired 代表券是否过期 1:已过期 0:未过期\n isNew: coupon.isNew, // 新版优惠券新增 是否为新手券 0:非新手券 1:新手券\n minCost: coupon.minCost || 0, // 新版优惠券新增 最小使用金额\n minCostSplit: coupon.minCostSplit || {}, // 新版优惠券新增 最小使用金额\n expireTime: coupon.expireTimeFmt, // 新版优惠券新增,过期时间。已精确为当地时间\n maxAmount: coupon.max_amount || 0, // 新版优惠券新增,折扣券展示用,折扣券最高可抵扣金额\n maxAmountSplit: coupon.maxAmountSplit || {}, // 新版优惠券新增,折扣券展示用,折扣券最高可抵扣金额\n useRuleCity: coupon.useRuleCity || [], // 新版优惠券新增,城市维度使用限制\n useRuleWeekDay: coupon.useRuleWeekDay || [], // 新版优惠券新增,星期维度使用限制\n useRuleTimeRange: coupon.useRuleTimeRange || [], // 新版优惠券新增,券使用时间限制。精确到时分\n useRuleDate: coupon.useRuleDate || [], // 新版优惠券新增,券使用日期限制\n payTypeList: coupon.payTypeList || [], // 新版优惠券新增,支付方式列表\n costType: coupon.costType || 0, // 新版优惠券新增,抵扣类型\n shopNameList: coupon.shopNameList || [], // 新版优惠券新增,可使用店铺列表\n cardBinList: coupon.cardBinList || []\n }\n })\n}\n\n/**\n * 检查 value 是否为空\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n * isEmpty(null); // => true\n * isEmpty(false); // => true\n * isEmpty(0); // => true\n * isEmpty([1, 2, 3]); // => false\n * isEmpty({ 'a': 1 }); // => false\n */\nexport function isEmpty (v) {\n switch (typeof v) {\n case 'undefined':\n return true\n case 'string':\n if (v.replace(/(^[ \\t\\n\\r]*)|([ \\t\\n\\r]*$)/g, '').length === 0) {\n return true\n }\n break\n case 'boolean':\n if (!v) {\n return true\n }\n break\n case 'number':\n if (v === 0 || isNaN(v)) {\n return true\n }\n break\n case 'object':\n if (v === null || v.length === 0) {\n return true\n }\n for (var i in v) {\n return false\n }\n return true\n }\n return false\n}\n\nexport function params () {\n let paramsString = window.location.search.slice(1)\n var items = paramsString ? paramsString.split('&') : []\n var result = {}\n items.forEach(item => {\n let temp = item.split('=')\n result[temp[0]] = temp[1]\n })\n return result\n}\n\n/**\n * 检查当前版本是否为旧版本,版本号需符合 x.x.x 格式\n * @param {*} curVersion 当前版本号\n * @param {*} baseVersion 基准版本号\n */\nexport function checkIsOldVersion (curVersion, baseVersion) {\n const curVersionArr = curVersion.split('.')\n const baseVersionArr = baseVersion.split('.')\n\n const minL = Math.min(curVersionArr.length, baseVersionArr.length)\n let pos = 0\n let diff = 0\n while (pos < minL) {\n diff = parseInt(curVersionArr[pos]) - parseInt(baseVersionArr[pos])\n if (diff !== 0) {\n break\n }\n pos++\n }\n\n return diff < 0\n}\n\nexport function dateFormat (dateStr) {\n const locale = getLocale()\n let dateStrRes = ''\n if (locale === 'zh-CN') {\n dateStrRes = dateStr\n } else if (locale === 'en-US') {\n let dateArr = dateStr.split('-')\n let tempItem = dateArr[0]\n dateArr[0] = dateArr[1]\n dateArr[1] = dateArr[2]\n dateArr[2] = tempItem\n dateStrRes = dateArr.join('-')\n } else if (locale === 'es-MX' || locale === 'pt-BR') {\n let dateArr = dateStr.split('-')\n let tempItem = dateArr[0]\n dateArr[0] = dateArr[2]\n dateArr[2] = tempItem\n dateStrRes = dateArr.join('-')\n }\n return dateStrRes\n}\n\nexport function getLocaleBrandText (textKey) {\n const { country } = store.state\n return getCountryConfig.brandText.brandText(country)[textKey][getLanguageLong()]\n}\n\n/**\n * 解析url参数\n * url 参数 不输入默认解析当前页面的URL参数\n * @example ?id=12345&a=b\n * @return Object {id:12345,a:b}\n */\nexport function urlParse (url) {\n const search = url || window.location.search\n const reg = /[?&][^?&]+=[^?&]+/g\n const arr = search.match(reg)\n let obj = {}\n if (arr) {\n arr.forEach(item => {\n let tempArr = item.substring(1).split('=')\n let key = decodeURIComponent(tempArr[0])\n let val = decodeURIComponent(tempArr[1])\n obj[key] = val\n })\n }\n return obj\n}\n\n/**\n * 拼接货币展示模板\n * 根据后端返回的货币结构split,拼接输出html模板\n * @param {*} split 货币展示结构,包括金额 number,货币符号 symbol,符号展示位置 position\n * @param {*} classSymbol 货币符号span class名\n * @param {*} classNumber 金额span class名\n * @return $100\n */\nexport function amountTemplate (data) {\n let resTemplate = ''\n if (data) {\n const { split, clsSymbol, clsNumber } = data\n if (split) {\n const { number, symbol, position } = split // position 货币符号位置 0 货币符号在前 1 货币符号在后\n const symbolFirst = `${symbol}${number}`\n const numberFirst = `${number}${symbol}`\n resTemplate = +position === 0 ? symbolFirst : numberFirst\n }\n }\n return resTemplate\n}\n\n/**\n * 处理券面额字段方法\n * 根据后端返回的券面额number,处理成只展示元的形式,如$50.00 => $50\n * @param {*} amount 券面额字段\n */\nexport function getIntNumFromAmount (amount = '') {\n if (amount) {\n let amountStr = amount.toString()\n let splitSigns = [',', '.']\n // 判断length大于3,且倒数第三位是分割符则进行抹零操作\n if (amountStr.length > 3 && splitSigns.includes(amountStr.slice(-3, -2))) {\n return amountStr.slice(0, -3)\n } else {\n return amountStr\n }\n } else {\n return ''\n }\n}\n\nexport function checkAppType (globalParams) {\n let typeMap = {\n brand: {\n 2: 'Global',\n 3: 'BR'\n },\n terminal: {\n 1: 'Food',\n 2: 'Travel'\n }\n }\n if (globalParams) {\n let { brand, terminalType } = globalParams\n return `${typeMap.brand[brand]}_${typeMap.terminal[terminalType]}`\n }\n return 'unknown'\n}\n\n// 判断当前app版本是否为新版购物车\nexport function isNewCartVersion (globalParams) {\n let { appVersion } = globalParams\n let newCartVersion = {\n // DiDi\n Global_Food: '1.2.54',\n Global_Travel: '7.2.20',\n // 99\n BR_Food: '1.2.54',\n BR_Travel: '6.16.4'\n }\n let appType = checkAppType(globalParams)\n if (appType === 'unknown') {\n console.error('unknown app type')\n return false\n }\n return !checkIsOldVersion(appVersion, newCartVersion[appType])\n}\n\n/**\n * 客户端 和 前端 富文本中颜色兼容处理\n * argb 转 rgba 只适用于HEX形式的\n * exp:#CC000000 转为 #000000CC\n */\nexport function hexARGBGetRGBA(str) {\n if (str.indexOf('#') === 0 && str.length === 9) {\n return `#${str.substring(3)}${str.substring(1, 3)}`;\n } else {\n return str;\n }\n}\n\nconst inBrowser = typeof window !== 'undefined'\nconst UA = inBrowser && window.navigator.userAgent.toLowerCase()\nconst inNative = UA && (/FusionKit/i).test(UA)\nexport const inCustomerApp = inNative && (/soda.customer/i).test(UA)\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { mapState } from 'vuex'\nimport { util } from '@didi/soda-common'\nconst { env } = util\n\nexport default {\n computed: mapState(['globalMsg', 'globalParams']),\n data () {\n return {\n _message: null\n }\n },\n watch: {\n globalMsg (config) {\n if (this.globalParams.sailingBizLine == 2) { // eslint-disable-line\n // 非外卖业务线,使用rich-toast\n if (config.show) {\n this.toast = this.$createToast({\n ...config,\n type: config.type === 'success' ? 'correct' : config.type\n })\n this.toast.show()\n } else {\n if (this.toast) {\n this.toast.hide()\n this.toast = null\n }\n }\n } else if (env.inSoda) {\n // 外卖业务线,使用bridge.toast\n SodaBridge('customer.toast', {\n type: config.type,\n txt: config.txt\n })\n } else {\n // 非外卖业务线,使用rich-toast\n if (config.show) {\n this.toast = this.$createToast({\n ...config,\n type: config.type === 'success' ? 'correct' : config.type\n })\n this.toast.show()\n } else {\n if (this.toast) {\n this.toast.hide()\n this.toast = null\n }\n }\n }\n }\n }\n}\n","\n\n\n\n\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/@didi/soda-cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/@didi/soda-cli-plugin-babel/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=326da895&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=326da895&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","/**\n * @Author: liuchen\n * @Date: 2018-03-23T14:19:53+08:00\n * @Email: zhangyugegeliuchen@didichuxing.com\n * @Filename: bd.js\n * @Last modified by: liuchen\n * @Last modified time: Tue Nov 20 2018 18:23:12 GMT+0800\n * 共bd去做演示的路由\n */\nconst ProcessShow = {\n path: '/mock/processshow',\n name: 'processshow',\n meta: {\n title: 'Mock'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/bd/processShow/index')))\n }\n}\nconst ProcessLogin = {\n path: '/mock/processlogin',\n name: 'processlogin',\n meta: {\n title: 'Mock'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/bd/processShow/login')))\n }\n}\nexport default [ProcessShow, ProcessLogin]\n","// 巴西满减券\nconst RCoupon = {\n path: '/sidebar/r/coupon',\n name: 'sidebarRCoupon',\n meta: {\n title: 'r-coupon'\n },\n component: () =>\n import(\n /* webpackChunkName: \"sidebar-r-coupon\" */\n '../page/sidebar/r/coupon/index'\n )\n}\n\nconst Coupon = {\n path: '/sidebar/coupon',\n name: 'sidebarCoupon',\n meta: {\n title: 'coupon'\n },\n component: () =>\n import(\n /* webpackChunkName: \"sidebar-coupon\" */\n '../page/sidebar/coupon/index'\n )\n}\nconst CouponSuccess = {\n path: '/sidebar/coupon-success',\n name: 'sidebarCouponSuccess',\n meta: {\n title: 'coupon-success'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/sidebar/coupon/success')))\n }\n}\nconst CouponUnavailable = {\n path: '/sidebar/coupon-unavailable',\n name: 'couponUnavailable',\n meta: {\n title: 'coupon-success'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/sidebar/coupon/unavailable')))\n }\n}\nconst Membership = {\n path: '/sidebar/membership',\n name: 'sidebarMembership',\n meta: {\n title: 'membership'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/sidebar/membership/index')))\n }\n}\nexport default [Coupon, CouponSuccess, CouponUnavailable, Membership, RCoupon]\n","const CouponInfo = {\n path: '/cart/couponInfo',\n name: 'cartCouponInfo',\n meta: {\n title: 'cartCouponInfo'\n },\n component: () =>\n import(\n /* webpackChunkName: \"cart-coupon\" */\n '../page/cart/couponInfo/index'\n )\n}\nconst Coupon = {\n path: '/cart/coupon',\n name: 'cartCoupon',\n meta: {\n title: 'coupon'\n },\n component: () =>\n import(\n /* webpackChunkName: \"cart-coupon\" */\n '../page/cart/coupon/index'\n )\n}\nconst RCoupon = {\n path: '/cart/r/coupon',\n name: 'cartRCoupon',\n meta: {\n title: 'Rcoupon'\n },\n component: () =>\n import(\n /* webpackChunkName: \"cart-r-coupon\" */\n '../page/cart/r/coupon/index'\n )\n}\n\nconst Tip = {\n path: '/cart/tip',\n name: 'cartTip',\n meta: {\n title: 'tip'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/cart/tip/index')))\n }\n}\n\nconst Reduction = {\n path: '/cart/reduction',\n name: 'cartReduction',\n meta: {\n title: 'reduction'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/cart/reduction/index')))\n }\n}\n\nconst CPFCheck = {\n path: '/cart/cpf-check',\n name: 'CPFCheck',\n meta: {\n title: 'CPFCheck'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/cart/CPF-check/index')))\n }\n\n}\n\nconst Debugbridge = {\n path: '/debugbridge',\n name: 'debugbridge',\n meta: {\n title: 'debugbridge'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/debugbridge/index.vue')))\n }\n}\n\n\n\nexport default [Coupon, RCoupon, Tip, Reduction, CPFCheck, Debugbridge, CouponInfo]\n","const Terms = {\n path: '/user-guide/terms',\n name: 'userGuideTerms',\n meta: {\n title: 'userGuideTerms'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/user-guide/terms-of-use')))\n }\n}\nconst TermsEntrega = {\n path: '/user-guide/terms/entrega',\n name: 'userGuideTermsEntrega',\n meta: {\n title: 'userGuideTermsEntrega'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/user-guide/terms-of-use-entrega')))\n }\n}\nconst PaymentType = {\n path: '/user-guide/wallet/payment/type',\n name: 'paymentType',\n meta: {\n title: 'paymentType'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/user-guide/wallet/payment-type')))\n }\n}\n\nconst PaymentCash = {\n path: '/user-guide/wallet/payment/cash',\n name: 'cashPayment',\n meta: {\n title: 'cashPayment'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/user-guide/wallet/payment-cash')))\n }\n}\n\nconst PaymentPos = {\n path: '/user-guide/wallet/payment/pos',\n name: 'posPayment',\n meta: {\n title: 'posPayment'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/user-guide/wallet/payment-pos')))\n }\n}\n\nexport default [Terms, PaymentType, PaymentCash, PaymentPos, TermsEntrega]\n","const CancelOrder = {\n path: '/order/cancel-order',\n name: 'cancelOrder',\n meta: {\n title: 'cancelOrder'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/cancel-order/index')))\n }\n}\nconst CancelOrderReason = {\n path: '/order/cancel-order/reason',\n name: 'CancelOrderReason',\n meta: {\n title: 'CancelOrderReason'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/cancel-order/reason')))\n }\n}\nconst CancelOrderResult = {\n path: '/order/cancel-order/result',\n name: 'CancelOrderResult',\n meta: {\n title: 'CancelOrderResult'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/cancel-order/result')))\n }\n}\nconst Evaluation = {\n path: '/order/evaluation',\n name: 'evaluation',\n meta: {\n title: 'evaluation'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/evaluation/index')))\n }\n}\nconst Questionlist = {\n path: '/order/question/list',\n name: 'Questionlist',\n meta: {\n title: 'questionlist'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/question/list')))\n }\n}\nconst QuestionDetail = {\n path: '/order/question/detail',\n name: 'QuestionDetail',\n meta: {\n title: 'questionDetail'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/question/detail')))\n }\n}\nconst Reparation = {\n path: '/order/reparation',\n name: 'reparation',\n meta: {\n title: 'reparation'\n },\n component: () =>\n import(\n /* webpackChunkName: \"order-reparation\" */\n '../page/order/reparation/index'\n )\n}\nconst Feedback = {\n path: '/order/feedback',\n name: 'feedback',\n meta: {\n title: 'feedback'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/feedback/index')))\n }\n}\n\nconst AppealToService = {\n path: '/order/appealToService',\n name: 'appealToService',\n meta: {\n title: 'appealToService'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/feedback/appealToService')))\n }\n}\n\n// 整单未收到\nconst MissOrder = {\n path: '/order/miss-order',\n name: 'missOrder',\n meta: {\n title: 'MissOrder'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/miss-order/index')))\n }\n}\n\nconst PurchasingAgent = {\n path: '/order/purchasingAgent',\n name: 'purchasingAgent',\n meta: {\n title: 'purchasingAgent'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/explain/purchasing-agent')))\n }\n}\n\nconst RuleEducation = {\n path: '/order/ruleEducation',\n name: 'ruleEducation',\n meta: {\n title: 'ruleEducation'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/education/rule-education')))\n }\n}\n\n// 风控拦截页面\nconst RiskManage = {\n path: '/order/risk-manage',\n name: 'riskManage',\n meta: {\n title: 'riskManage'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/order/risk-manage/index')))\n }\n}\n\nexport default [CancelOrder, CancelOrderReason, CancelOrderResult, Evaluation, Questionlist, QuestionDetail, Reparation, Feedback, AppealToService, MissOrder, PurchasingAgent, RuleEducation, RiskManage]\n","const Deeplink = {\n path: '/deeplink',\n name: 'deeplink',\n meta: {\n title: 'deeplink'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/deeplink/index')))\n }\n}\nconst AppLinkDidi = {\n path: '/app-link/didifood',\n name: 'AppLinkDidi',\n meta: {\n title: 'AppLinkDidi'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/deeplink/index')))\n }\n}\nconst AppLink99 = {\n path: '/app-link/99food',\n name: 'AppLink99',\n meta: {\n title: 'AppLink99'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/deeplink/index')))\n }\n}\nconst DeeplinkFB = {\n path: '/deeplinkFB',\n name: 'deeplinkFB',\n meta: {\n title: 'deeplinkFB'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/deeplinkFB/index')))\n }\n}\nexport default [Deeplink, DeeplinkFB, AppLinkDidi, AppLink99]\n","const Delivery = {\n path: '/delivery',\n name: 'delivery',\n meta: {\n title: 'delivery'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/delivery/index')))\n }\n}\nexport default [Delivery]\n","const NotAvailable = {\n path: '/abnormal/not-available',\n name: 'not-available',\n meta: {\n title: '当前城市暂未开通'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/abnormal/not-available')))\n }\n}\nconst NoShop = {\n path: '/abnormal/no-shop',\n name: 'not-available',\n meta: {\n title: '附近商家筹备中'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/abnormal/no-shop')))\n }\n}\nconst PreHeat = {\n path: '/abnormal/pre-heat',\n name: 'pre-heat',\n meta: {\n title: ''\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/abnormal/pre-heat')))\n }\n}\nconst PreAvailable = {\n path: '/abnormal/pre-available',\n name: 'pre-available',\n meta: {\n title: ''\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/abnormal/pre-available')))\n }\n}\nconst NotAvailableArea = {\n path: '/abnormal/not-available-area',\n name: 'not-available-area',\n meta: {\n title: ''\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/abnormal/not-available-area')))\n }\n}\nconst DangerousArea = {\n path: '/abnormal/dangerous-area',\n name: 'dangerous-area',\n meta: {\n title: ''\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/abnormal/dangerous-area')))\n }\n}\n\nconst NonactivatedArea = {\n path: '/abnormal/nonactivated-area',\n name: 'nonactivated-area',\n meta: {\n title: ''\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/abnormal/nonactivated-area')))\n }\n}\n\nconst NoMerchant = {\n path: '/abnormal/no-merchant',\n name: 'no-merchant',\n meta: {\n title: ''\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/abnormal/no-merchant')))\n }\n}\n\nexport default [NotAvailable, NoShop, PreHeat, PreAvailable, NotAvailableArea, DangerousArea, NonactivatedArea, NoMerchant]\n","const Delivery = {\n path: '/simple/lawson',\n name: 'simple',\n meta: {\n title: '特定商取引法について'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/simple/lawson')))\n }\n}\nexport default [Delivery]\n","const CancelOrder = {\n path: '/entrega/cancel-order',\n name: 'cancelOrder',\n meta: {\n title: 'cancelOrder'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/entrega/cancel-order/index')))\n }\n}\nconst CancelOrderQuestion = {\n path: '/entrega/question/rules',\n name: 'CancelOrderQuestion',\n meta: {\n title: 'CancelOrderQuestion'\n },\n component (resolve) {\n require.ensure([], () => resolve(require('../page/entrega/question/rules')))\n }\n}\n\nexport default [CancelOrder, CancelOrderQuestion]\n","export const getUrlParams = (search) =>{\n const values = search.split('?')\n if (values && values.length && values[1]) {\n return values[1].split('&').reduce((params, keyValue) => {\n return Object.assign(params, {\n [keyValue.split('=')[0]]: keyValue.split('=')[1] || ''\n })\n }, {})\n }\n return {}\n }","import {getUrlParams} from '@/common/js/getUrlParams.js'\nconst MerchantCouponInfo = {\n path: \"/merchantCouponInfo\",\n name: \"MerchantCouponInfo\",\n meta: {\n title: \"merchantCouponInfo\",\n },\n component: () => {\n const newVersion = getUrlParams(location.href)?.marketingVersion * 1\n // 版本2、3的时候都走2.0版本,3的时候券组件升级为最新的样式\n if(newVersion == 2 || newVersion == 3) {\n return import(\n /* webpackChunkName: \"merchantCouponInfo\" */ \"../page/merchantsNew/couponInfo.vue\")\n }\n return import(\n /* webpackChunkName: \"merchantCouponInfo\" */ \"../page/merchants/couponInfo.vue\")\n },\n};\n\nexport default [MerchantCouponInfo];\n","const vfm = {\n path: \"/vfm\",\n name: \"vfm\",\n meta: {\n title: \"vfm\",\n },\n component(resolve) {\n require.ensure([], () => resolve(require(\"../page/vfm/index\")));\n },\n};\nexport default [vfm];\n","const soloDining = {\n path: \"/soloDining\",\n name: \"soloDining\",\n meta: {\n title: \"soloDining\",\n },\n component(resolve) {\n require.ensure([], () => resolve(require(\"../page/soloDining/index\")));\n },\n};\nexport default [soloDining];\n","const topic = {\n path: '/topic',\n name: 'topic',\n meta: {\n title: 'topic',\n },\n component(resolve) {\n require.ensure([], () => resolve(require('../page/topic/index')));\n },\n};\nexport default [topic];\n","const validCouponInfo = {\n path: \"/user/validCouponInfo\",\n name: \"validCouponInfo\",\n meta: {\n title: \"validCouponInfo\",\n },\n component: () =>\n import(\n /* webpackChunkName: \"validCouponInfo\" */ \"../page/user/validCoupon/index.vue\"\n ),\n};\n\nconst invalidCouponInfo = {\n path: \"/user/invalidCouponInfo\",\n name: \"invalidCouponInfo\",\n meta: {\n title: \"invalidCouponInfo\",\n },\n component: () =>\n import(\n /* webpackChunkName: \"validCouponInfo\" */ \"../page/user/invalidCoupon/index.vue\"\n ),\n};\n\nexport default [validCouponInfo, invalidCouponInfo];\n","// 劫持 push replace方法拦截错误\nexport function routerRedirectCatch(Router) {\n // https://blog.csdn.net/mm0715/article/details/112768494\n const originalPush = Router.prototype.push;\n const originalReplace = Router.prototype.replace;\n\n Router.prototype.push = function (location, onResolve, onReject) {\n if (onResolve || onReject) {\n return originalPush.call(this, location, onResolve, onReject);\n }\n return originalPush.call(this, location).catch((err) => err);\n };\n\n Router.prototype.replace = function (location, onResolve, onReject) {\n if (onResolve || onReject) {\n return originalReplace.call(this, location, onResolve, onReject);\n }\n return originalReplace.call(this, location).catch((err) => err);\n };\n}\n","const Bill = {\n path: \"/bill\",\n name: \"bill\",\n meta: {\n title: \"bill\",\n },\n component: () =>\n import(\n /* webpackChunkName: \"order-bill\" */\n \"../page/bill/index\"\n ),\n};\nexport default [Bill];\n","import Vue from \"vue\";\nimport Router from \"vue-router\";\n\nimport BD from \"./bd\"; // 供bd去做实验的页面\nimport Sidebar from \"./sidebar\"; // 侧边栏页面\nimport Cart from \"./cart\"; // 购物车页面\nimport USerGuide from \"./user-guide\"; // 用户指南类静态页\nimport Order from \"./order\";\nimport Deeplink from \"./deeplink\";\nimport Delivery from \"./delivery\";\nimport Abnormal from \"./abnormal\";\nimport Simple from \"./simple\";\nimport Entrega from \"./entrega\";\nimport Merchants from \"./merchants\";\nimport vfm from \"./vfm\";\nimport soloDining from \"./soloDining\";\nimport topic from \"./topic\";\nimport user from \"./user\";\nimport { getLocale } from \"@didi/gettext\";\nimport { routerErrorLog } from \"@/common/js/trackApiError\";\nimport { routerRedirectCatch } from \"@/common/js/router\";\nimport bill from \"./bill\";\n\nVue.use(Router);\nrouterRedirectCatch(Router);\n\nconst notFount = {\n path: \"*\",\n name: \"notFound\",\n component(resolve) {\n require.ensure([], () =>\n resolve(require(\"../page/activity/waiting/index\"))\n );\n },\n};\n\nconst locale = getLocale();\nconst router = new Router({\n mode: 'history',\n base: locale || '/',\n routes: [\n notFount,\n ...BD,\n ...Sidebar,\n ...Cart,\n ...USerGuide,\n ...Order,\n ...Deeplink,\n ...Delivery,\n ...Abnormal,\n ...Simple,\n ...Entrega,\n ...Merchants,\n ...vfm,\n ...soloDining,\n ...topic,\n ...user,\n ...bill,\n ],\n});\nrouter.onError((error) => {\n try {\n // 拦截路由懒加载失败报错\n const pattern = /Loading (?:CSS\\s)?chunk (\\d)+ failed/g;\n const loadFailed = error?.message.match(pattern);\n if (loadFailed) {\n const targetPath = router.history?.pending?.fullPath;\n routerErrorLog({\n err_info: error?.message,\n path: targetPath,\n });\n }\n } catch {}\n});\n\nexport default router;\n","import store from './store'\n// import { bridgeMonitor } from './common/js/bridgeMonitor'\nimport { util } from '@didi/soda-common'\nconst { env } = util\nexport function init () {\n return new Promise(async (resolve) => {\n if(env.inSoda){\n // 获取公参并存入store\n await store.dispatch('getGlobalParams')\n // 获取开国城市并存入store\n if (env.inNative) {\n store.dispatch('GET_CITY_LIST')\n // 判断是否是客户端\n }\n // 获取国家并存入store\n await store.dispatch('GET_COUNTRY')\n }\n \n const { country } = store.state\n // 巴西使用99主题\n if (country === 'BR') {\n window.document.documentElement.setAttribute('data-theme', '99')\n import('./common/stylus/99-theme.styl')\n // 墨西哥使用didi主题\n } else if (country === 'MX') {\n window.document.documentElement.setAttribute('data-theme', 'didi')\n import('./common/stylus/didi-theme.styl')\n // 使用didi主题兜底\n } else {\n window.document.documentElement.setAttribute('data-theme', 'didi')\n import('./common/stylus/didi-theme.styl')\n }\n\n // 埋点监控sdk初始化\n // await bridgeMonitor()\n\n resolve()\n })\n}\n","import { ddClg } from '@didi/wsgsdk'\n\nddClg({\n omega: window.Omega,\n domainList: [\n 'act-api.didi-food.com',\n 'c.didi-food.com',\n ]\n})\n","import Vue from 'vue'\nimport { url2localProtocol, dateFormat } from '@/common/js/utils'\n\nexport default function initGlobalFilters () {\n // url转为本地的协议\n Vue.filter('url2localProtocol', (url = '') => {\n return url2localProtocol(url)\n })\n // 时间从 YYYY-MM-DD 转为 MM-DD-YYYY\n Vue.filter('dateFilter', (dateStr = '') => {\n return dateFormat(dateStr)\n })\n}\n","/**\n * @Author: wangdaohan\n * @Date: 2018-03-23T16:40:46+08:00\n * @Email: wangdaohan@didichuxing.com\n * @Filename: DDBridge.js\n * @Last modified by: wangdaohan\n * @Last modified time: 2018-05-10T15:28:23+08:00\n */\nimport { util } from '@didi/soda-common'\nimport API from '@/api'\nlet { env } = util\nconst DDbridge = {}\n\nDDbridge.registerDefaultBridge = function () {\n if (!env.inNative) {\n /* eslint-disable */\n SodaBridgeRegister({\n Soda: {\n getUserInfo (params = {}, callback) {\n callback && callback({})\n },\n\n getSystemInfo (params = {}, callback) {\n callback && callback({})\n },\n\n /* eslint-disable */\n getLocationInfo (params = {}, callback) {\n try {\n // 按需加载\n import('@didi/didi-sdk/dist/geo-location').then(({ sdk }) => {\n let { geoLocation } = sdk\n geoLocation({}, (error, result) => {\n // 如果无错误信息 则为定位成功; 否则为定位失败\n if (!error) {\n callback && callback(result)\n } else {\n callback && callback({\n errno: 1,\n errmsg: error.toString(),\n data: {}\n })\n }\n })\n })\n } catch (e) {\n callback && callback({\n errno: 1,\n errmsg: e.toString(),\n data: {}\n })\n }\n }\n }\n })\n }\n}\n\n\nDDbridge.install = function (Vue, options) {\n Vue.mixin({\n methods: {\n SodaBridge (type, options) {\n // 兼容在非soda业务线内的页面 TODO:安卓ua有问题暂不这样处理\n // if (env.inDidiApp && !env.inSoda) {\n // return Fusion[type](options)\n // }\n return window.SodaBridge(type, options)\n },\n\n SodaBridgeData (type, options) {\n return window.SodaBridge(type, options).then(pms => {\n return pms.data || {}\n })\n },\n /**\n * [获取活动开关]\n * @param {[type]} activityId [description]\n * @return {Promise} [0: pre; 1:onGoing; 2:finished]\n */\n async getActivityStatus (activityId) {\n try {\n var config = await API.getById({\n id: activityId\n })\n } catch (e) {\n }\n return config.data.data.status\n },\n\n // 每次埋点时需要执行的函数,用于获取this.userInfo.uid 以及this.systemInfo.getSystemInfo\n async setUserInfo () {\n if (!this.userInfo || !this.userInfo.hasOwnProperty('uid')) {\n this.userInfo = await this.SodaBridgeData('getUserInfo')\n }\n if (!this.systemInfo || !this.userInfo.hasOwnProperty('uid')) {\n this.systemInfo = await this.SodaBridgeData('getSystemInfo')\n }\n },\n /**\n * 修改标题 \n */\n asyncSetTitle (params) {\n const { navi_title, timeout } = params\n // 延时设置标题,处理ios设置不成功问题\n setTimeout(() => {\n // 安卓ua有问题, 暂时用两种方式直接修改title,用于处理不在soda内\n try {\n if (Fusion && Fusion['setTitle']) {\n Fusion['setTitle']({ 'navi_title': navi_title })\n }\n }catch{}\n this.SodaBridge('setTitle', { 'navi_title': navi_title })\n }, timeout)\n }\n },\n computed: {\n params () {\n let paramsString = window.location.search.slice(1)\n var items = paramsString.split('&')\n var result = {}\n items.forEach(item => {\n let temp = item.split('=')\n result[temp[0]] = temp[1]\n })\n return result\n },\n isWechat () {\n return env.inWechat\n },\n isAlipay () {\n return env.inAlipy\n },\n isQQ () {\n return env.inQQ\n },\n isApp () {\n return env.inNative\n },\n // 是否在app的soda tab内, 以下是兼容之前运营配置的soda_from==2写法\n // 2018.4.25 增加soda_from=2表示在app内 但不在外卖tab内,todo: 后续端发版会在外卖tab增加 标示\n // 2018.5.10 soda app内增加soda_from=1表示在soda内 但需要兼容未更新部分\n isSoda () {\n return this.isApp && (this.params.soda_from && this.params.soda_from === '1')\n },\n isWebApp () {\n // this.params.datatype === 'webapp' 标示在webapp快车运营位\n // this.params.fromWebApp === '1' 标示在soda webapp的运营位\n return this.params.fromWebApp === '1' || this.params.datatype === 'webapp'\n },\n isWebAppSoda () {\n return this.isWebApp && this.params.bizId === '379'\n },\n isAndroid () {\n return env.inAndroid\n },\n isIOS () {\n return env.inIOS\n },\n // 是否是在消息号中打开的,主要是用于落地页,ios需要增加isPopToRootPage=1参数\n isMessageNumber () {\n return this.params.isPopToRootPage === '1'\n },\n UA () {\n return this.systemInfo.appKey || window.navigator.userAgent\n },\n source(){\n if (!this.isApp) {\n return 0\n }else if (this.isIOS) {\n return 1\n } else if (this.isAndroid) {\n return 2\n }\n },\n landingpage () {\n if (this.isApp) {\n return 0\n } else if (this.isWechat) {\n return 1\n } else if (this.isAlipay) {\n return 2\n } else if (this.isQQ) {\n return 3\n } else {\n return 10\n }\n }\n }\n })\n}\n\nexport default DDbridge\n","/** @desc eventId和唯一key的映射表 */\n\nexport const eventMap = {\n // 购物车优惠券曝光\n sailing_c_x_cartcoupon_realexposure_sw: 'coupon_id',\n sailing_c_x_top_item_realexposure_sw: 'item_id',\n sailing_c_x_landingpage_coupon_product_sw: 'product_id',\n sailing_c_x_couponpage_shop_select_shop_sw: 'shop_id',\n};\n","import { eventMap } from './config'\n\n/** @desc 获取event key */\nconst getEventKey = (eventId) => {\n return eventMap[eventId] || ''\n}\n\n/** @desc 获取埋点id => eventId + eventKey */\nexport const getLogInfoId = (data = {}) => {\n const { eventId, attrs = {}, tag = '' } = data\n\n if (!eventId) {\n console.warn('[tools]:缺少eventId~')\n return ''\n }\n\n return eventId + (attrs[getEventKey(eventId)] || '') + tag\n}\n\n/** @desc 存储埋点信息 */\nexport const LOG_DATA_MAP = {\n // getLogInfoId(data) : data\n}\n\n/** @desc 记录已展现埋点key */\nexport const LOG_SHOW_MAP = {\n// getLogInfoId(data) : true\n}\n","import track from '@/common/js/track'\nimport { observer } from './index'\nimport {\n LOG_DATA_MAP, // 埋点数据\n LOG_SHOW_MAP // 已上报数据\n} from './tools'\n\n/** @desc 曝光策略 */\nexport function logStrategy (target) {\n const id = target.getAttribute('data-id') || ''\n const trackData = LOG_DATA_MAP[id] || {}\n const { eventId, eventLabel = '', attrs = {} } = trackData\n\n if (!eventId) {\n observer.unobserve(target)\n console.warn('埋点数据格式异常:缺少必要参数')\n return\n }\n\n // 已上报埋点,移除观察\n if (LOG_SHOW_MAP[id]) {\n observer.unobserve(target)\n return\n }\n\n // 数据上报\n track(eventId, eventLabel, {\n ...attrs\n }, null)\n\n // 移除观察 && 记录已上报状态\n observer.unobserve(target)\n LOG_SHOW_MAP[id] = true\n}\n","/**\n * @desc 自动曝光埋点指令\n * @example
\n * @param {Object} data 埋点参数\n * data = {\n * eventId: string // omega 上报的事件名,唯一标志\n * eventLabel?: string // omega 上报事件的标签,用来描述该事件行为\n * attrs? : object // omega 业务中需要上报的数据\n * tag? : string // 事件标识: 相同数据不同场景的上报 (通常用于筛选,不同的筛选条件相同的数据,算多次曝光)\n * }\n */\nimport Vue from 'vue'\nimport 'intersection-observer'\nimport { logStrategy } from './logStrategy'\nimport { getLogInfoId, LOG_DATA_MAP } from './tools'\n\n/** @desc 曝光事件监听 */\nexport const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n logStrategy(entry.target)\n }\n })\n },\n {\n root: null, // 默认浏览器视窗\n threshold: 1 // 元素出现既上报\n }\n)\n\nVue.directive('observer-log', {\n bind (ele, binding) {\n const { value = '' } = binding\n if (value) {\n const id = getLogInfoId(value)\n\n ele.setAttribute('data-id', id)\n LOG_DATA_MAP[id] = value\n } else {\n console.warn('[directive] observer-log 未获取到埋点参数~')\n }\n },\n inserted (ele) {\n observer.observe(ele)\n },\n unbind (ele) {\n observer.unobserve(ele)\n }\n})\n","import Vue from \"vue\";\nimport App from \"./App\";\nimport router from \"./router\";\nimport \"@/common/js/rem\";\nimport axios from \"axios\";\nimport didiaxios from \"@didi/dajax/dist/dajax\";\nimport CouponUI from \"@didi/soda-c-coupon\";\nimport { init } from \"./init\";\nimport store from \"./store\";\nimport \"@/common/lib/wsgchallenge\";\nimport { apiMonitorLog } from '@/common/js/tools.js'; // API监控埋点\nimport {\n Style,\n Cell,\n Button,\n RadioGroup,\n CheckboxGroup,\n Loading,\n Scroll,\n Lazyload,\n Toast,\n Locale,\n Dialog,\n Select,\n Input,\n Textarea,\n TextareaBox,\n TagGroup,\n Tip,\n Theme,\n Progress,\n ScrollNav,\n Alert\n} from \"@didi/rich-ui\";\nimport \"@/common/stylus/main.styl\";\nimport initGlobalFilters from \"./filter\";\nimport \"@didi/soda-jsbridge\";\nimport DDBridge from \"./plugin/DDBridge\";\nimport { getLanguageLong } from \"@didi/gettext\";\nimport i18n from \"./common/js/i18n\";\nimport vueI18n from \"./i18n/locale\";\nimport \"./directives/index\";\nimport { SailingPerformance } from \"@didi/sailing-data-tools\";\nimport { inCustomerApp } from \"@/common/js/utils\";\n\n// Registering Our Service Worker\nif (\"serviceWorker\" in navigator) {\n window.addEventListener(\"load\", () => {\n navigator.serviceWorker\n .register(\"/service-worker.js\")\n .then((registration) => {\n console.log(\"SW registered: \", registration);\n })\n .catch((registrationError) => {\n console.log(\"SW registration failed: \", registrationError);\n });\n });\n}\n\nconst currentLang = getLanguageLong();\nDDBridge.registerDefaultBridge();\nVue.use(CouponUI);\nVue.use(DDBridge);\nVue.use(i18n.plugin);\nVue.prototype.$http = axios;\nVue.prototype.$didihttp = didiaxios;\n\nVue.use(Style);\nVue.use(Cell);\nVue.use(Dialog);\nVue.use(Toast);\nVue.use(Loading);\nVue.use(RadioGroup);\nVue.use(CheckboxGroup);\nVue.use(Button);\nVue.use(Scroll);\nVue.use(Select);\nVue.use(Input);\nVue.use(Textarea);\nVue.use(TextareaBox);\nVue.use(TagGroup);\nVue.use(Tip);\nVue.use(Theme);\nVue.use(Progress);\nVue.use(ScrollNav);\nVue.use(Alert)\nconst { country } = store.state;\n// 巴西使用99主题\nif (country === \"BR\") {\n Theme.use(\"99\");\n // 墨西哥使用didi主题\n} else if (country === \"MX\") {\n Theme.use(\"didi\");\n} else {\n // 使用didi主题兜底\n Theme.use(\"didi\");\n}\nVue.use(Lazyload, {\n preLoad: 1,\n attempt: 3, // 尝试计数\n filter: {\n progressive(listener, options) {\n const size = listener.el.getAttribute(\"crop-size\");\n // SODA 图床暂只支持soda-public的服务\n const isSodaPublic = /soda-public/;\n if (size && isSodaPublic.test(listener.src)) {\n listener.src = `${listener.src}!${size}_m`;\n }\n },\n },\n});\nVue.use(Locale);\nLocale.use(\n currentLang,\n require(`@didi/rich-ui/lib/locale/lang/${currentLang}`)\n);\nCouponUI.locale.use(\n require(`@didi/soda-c-coupon/src/locale/lang/${currentLang}`).default\n);\n\ninitGlobalFilters();\ndidiaxios.interceptors.response.use(\n (response) => {\n apiMonitorLog(response)\n return response;\n },\n (error) => {\n return Promise.reject(error);\n }\n);\n/* eslint-disable no-new */\nVue.config.productionTip = false;\n// 获取国家、初始化主题之后再进行实例化操作\n/* eslint-disable no-new */\ninit().then(() => {\n new Vue({\n el: \"#app\",\n i18n: vueI18n,\n router,\n store,\n template: \"\",\n components: {\n App,\n },\n });\n const { version, name } = require(\"../package\");\n const { globalParams } = store.state;\n const { appVersion = \"\" } = globalParams;\n const sailingPerformance = new SailingPerformance({\n env: process.env.NODE_ENV,\n Omega: window.Omega,\n router: router,\n prefix: name,\n attrs: {\n version,\n app_version: appVersion || '',\n in_customer_app: +inCustomerApp\n }\n })\n});","export default {\n cancelSuccessText: '',\n cancelSuccessTip: ''\n}\n","function updateCancelSuccessText (state, payload) {\n state.cancelSuccessText = payload\n}\nfunction updateCancelSuccessTip (state, payload) {\n state.cancelSuccessTip = payload\n}\nexport default {\n updateCancelSuccessText,\n updateCancelSuccessTip\n}\n","import state from './state'\nimport mutations from './mutations'\n\nexport default {\n namespaced: true,\n state,\n mutations\n}\n","import order from './modules/order'\nexport default {\n order\n}\n","// 针对c-h5.didi-food.com/common/config接口mock的公参,后端不做内容校验,仅保证参数有即可\nexport const requireParams = {\n appVersion: '0.0.1',\n versionCode: 0,\n clientType: 0,\n bizId: 375,\n cityId: 0,\n suuid: 0,\n deviceId: 0,\n timestamp: 0,\n poiId: 0,\n poiCityId: 0,\n lat: 0,\n lng: 0,\n poiLat: 0,\n poiLng: 0,\n imei: '0',\n locale: 'en-US'\n}\n","import { urlParse, checkIsOldVersion } from '@/common/js/utils'\nimport { requireParams } from '@/common/const/api-require-param'\nimport getCountryConfig from '@/common/config/country-config'\nimport { requestHelper } from '@/api/common'\nimport { util } from '@didi/soda-common'\nimport Api from '@/api'\nconst { env } = util\n\nconst host = location.host\nconst is99App = !!host.match('99app.com')\nconst COUNTRY = is99App ? 'BR' : 'MX'\nconst brand = is99App ? '99' : 'didi'\nconst csTelNumber = getCountryConfig.service.serviceNumber(COUNTRY)// 首先根据域名配置默认的客服电话\nconst csEmail = getCountryConfig.service.serviceEmail(COUNTRY) // 首先根据域名配置默认的客服电话\n\nconst state = {\n // 全局消息\n globalMsg: {},\n // 是否上报过首屏加载埋点\n isSubmitLoadingBP: false,\n country: COUNTRY,\n brand,\n csTelNumber,\n csEmail,\n openedCityList: [],\n isRightTitleBtn: false, // 沉浸式头部右侧是否可配置按钮title\n isSupportHurdle: false, // 是否支持沉浸式\n // 客户端透传过来的参数\n globalParams: {}\n}\n\nconst getters = {}\n\nconst actions = {\n /**\n * 异步获取country,用于 DiDi Food 多国差异化处理\n * 第一步:获取 url 中的 poiCountryCode(收货地址反解)若没有则获取 countryCode(真实定位反解)\n * 第二步:通过 getGlobalParams 获取 poiCountryCode(收货地址反解)若没有则获取 countryCode(真实定位反解)\n * 第三步:\n * - 通过 bridge(独立端用getGlobalParams、嵌入端用Fusion.getLocationInfo) 获取真实定位 {lat, lng}\n * - 请求 c-api common/config 接口反解 country\n * 若以上步骤均失败,默认取墨西哥 country: MX\n */\n async GET_COUNTRY ({ commit }, params) {\n let country = COUNTRY\n const QUERY_PARAMS = urlParse()\n // 第一步:先从 URL query 参数中获取 country 参数\n const COUNTRY_FROM_URL = QUERY_PARAMS['poiCountryCode'] || QUERY_PARAMS['countryCode'] // 端上确定后,换成最终的参数名\n // 第二步:如果从URL获取失败,则通过bridge获取\n if (COUNTRY_FROM_URL) {\n country = COUNTRY_FROM_URL\n } else {\n let globalParams = {}\n try {\n // 只在独立端内可以通过bridge获取country\n const RES = await SodaBridge('getGlobalParams', 'badcase') || {}\n globalParams = RES.data\n } catch (e) {}\n const COUNTRY_FROM_BRIDGE = globalParams['poiCountryCode'] || globalParams['countryCode']\n // 第三步:如果bridge获取country也失败,则通过 bridge 获取定位,请求接口反解得到country\n if (COUNTRY_FROM_BRIDGE) {\n country = COUNTRY_FROM_BRIDGE\n } else {\n let position = { lat: '', lng: '' }\n // 独立端先获取poiLat及poiLng\n let { poiLat, poiLng, lat, lng } = globalParams\n if (poiLat && poiLng) {\n position.lat = poiLat\n position.lng = poiLng\n } else if (lat && lng) {\n position.lat = lat\n position.lng = lng\n } else {\n // 再通过fusion bridge 获取一次定位(比如在嵌入端容器内)\n try {\n const LOCATION_INFO = await new Promise((resolve, reject) => {\n Fusion.getLocationInfo({}, function (response) {\n resolve(response)\n })\n })\n position.lat = LOCATION_INFO.lat\n position.lng = LOCATION_INFO.lng\n } catch (e) {}\n }\n // 访问capi接口进行反解\n try {\n if (position.lat && position.lng) {\n const ADDRESS_INFO = await Api['getAddress']({ ...requireParams, poiLat: position.lat, poiLng: position.lng }) // 接口定义经度入参为poiLng,维度入参为poiLat\n country = (ADDRESS_INFO['data'] && ADDRESS_INFO['data']['country']) || country\n }\n } catch (e) {}\n }\n }\n // 如果反解出国家码是BR,则重置为MX,避免出现didi品牌下有99相关的样式及信息\n if (country === 'BR') {\n country = COUNTRY\n }\n // 设置国家码\n commit('UPDATE_COUNTRY', country)\n // 设置客服电话\n commit('UPDATE_CS_TEL_NUMBER', country)\n // 设置客服邮箱\n commit('serviceEmail', country)\n },\n // 获取已开城城市列表\n async GET_CITY_LIST ({ commit, state }, params) {\n let url = Api.feedUnOpened\n // 闪送开城列表复用外卖的开城\n // if (state.globalParams.sailingBizLine == 2) { // eslint-disable-line\n // url = Api.entregaCityList\n // }\n await requestHelper(url, {}).then(res => {\n if (res && res.errno === 0) {\n commit('UPDATE_OPENED_CITY_LIST', res.data && res.data.cities)\n }\n })\n },\n\n async versionControl ({commit, state}) {\n // 获取公参\n const globalParams = await SodaBridge('getGlobalParams', 'badcase') || {data: {}}\n const { appVersion } = globalParams && globalParams.data // 当前版本号\n let hurdleVersion = '' // 2020.7.14新增 通栏版本号\n let hurdleBtnVersion = '' // 商家券新增通栏右侧定义文字按钮版本号\n if (appVersion) {\n // 是否为嵌入端的判断\n if (env.inEmbedCustomerApp) {\n // 判断此版本是否支持通栏样式\n hurdleVersion = state.brand === '99' ? '6.14.2' : '7.1.98'\n hurdleBtnVersion = state.brand === '99' ? '6.16.8' : '7.2.24'\n } else {\n // 判断此版本是否支持通栏样式\n hurdleVersion = '1.2.34'\n hurdleBtnVersion = '1.2.58'\n }\n commit('UPDATE_IS_SUPPORT_HURDLE', !checkIsOldVersion(appVersion, hurdleVersion))\n commit('UPDATE_IS_RIGHT_TITLE_BUTTON', !checkIsOldVersion(appVersion, hurdleBtnVersion))\n } else {\n commit('UPDATE_IS_SUPPORT_HURDLE', false)\n commit('UPDATE_IS_RIGHT_TITLE_BUTTON', false)\n }\n },\n // 获取公参信息\n async getGlobalParams ({commit}) {\n try {\n const globalParams = await SodaBridge('getGlobalParams', 'badcase') || {data: {}}\n const params = globalParams && globalParams.data // 当前版本号\n commit('UPDATE_GLOBAL_PARAMS', params)\n } catch (e) {\n console.log(e)\n }\n }\n}\n\nconst mutations = {\n /**\n *\n * @param {*} state\n * @param {*} payload\n */\n UPDATE_GLOBAL_PARAMS (state, payload) {\n state.globalParams = payload\n },\n /**\n * 展示全局消息\n */\n SHOW_MSG (state, payload) {\n const DEFAULT = {\n show: true,\n type: 'error',\n txt: '',\n time: 3000\n }\n const msg = { ...DEFAULT, ...payload }\n state.globalMsg = msg\n },\n /**\n * 更新首次进入页面时间\n */\n UPDATE_LOADING_BP (state, payload) {\n state.isSubmitLoadingBP = true\n },\n /**\n * 更新国家参数\n */\n UPDATE_COUNTRY (state, country) {\n if (state.country !== 'BR') {\n state.country = country\n }\n },\n /**\n * 更新客服电话\n */\n UPDATE_CS_TEL_NUMBER (state, country) {\n if (state.country !== 'BR') {\n state.csTelNumber = getCountryConfig.service.serviceNumber(country)\n }\n },\n /**\n * 更新客服邮箱\n */\n serviceEmail (state, country) {\n if (state.country !== 'BR') {\n state.csEmail = getCountryConfig.service.serviceEmail(country)\n }\n },\n UPDATE_OPENED_CITY_LIST (state, payload) {\n state.openedCityList = payload\n },\n /**\n * 更新沉浸式是否支持配置文字按钮\n */\n UPDATE_IS_RIGHT_TITLE_BUTTON (state, payload) {\n state.isRightTitleBtn = payload\n },\n /**\n * 更新沉浸式\n */\n UPDATE_IS_SUPPORT_HURDLE (state, payload) {\n state.isSupportHurdle = payload\n }\n}\n\nexport default {\n state,\n getters,\n actions,\n mutations\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport modules from './modules'\n\nimport Common from './modules/common'\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n modules,\n ...Common,\n strict: process.env.NODE_ENV !== 'production'\n})\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + ({\"1207\":\"sidebar-r-coupon\",\"1520\":\"cart-r-coupon\",\"2390\":\"cart-coupon\",\"3819\":\"merchantCouponInfo\",\"5078\":\"order-reparation\",\"7574\":\"order-bill\",\"8916\":\"validCouponInfo\",\"9203\":\"sidebar-coupon\"}[chunkId] || chunkId) + \".\" + {\"89\":\"2ddd8bad\",\"530\":\"56082602\",\"566\":\"8e6c8db7\",\"735\":\"03da853c\",\"877\":\"e70a6105\",\"1207\":\"f7b2d247\",\"1510\":\"fbeec8dd\",\"1520\":\"32dd1d1b\",\"1534\":\"9f7e2307\",\"1999\":\"20e4602e\",\"2390\":\"2c31f68b\",\"2597\":\"9f9bf2ea\",\"2623\":\"89edbade\",\"3125\":\"bc6b312b\",\"3447\":\"ef242cf5\",\"3478\":\"4825ad9f\",\"3819\":\"4987b8da\",\"3987\":\"05948650\",\"4179\":\"ebc1fe60\",\"4186\":\"643bc597\",\"4366\":\"beeb08fd\",\"4738\":\"234d6d65\",\"4750\":\"275aa475\",\"5004\":\"be8b8dc1\",\"5078\":\"27175895\",\"5608\":\"fb67f1f5\",\"5748\":\"f4eabd7a\",\"5854\":\"6c99c7f5\",\"6064\":\"9596fdb4\",\"6343\":\"3b897c8f\",\"6598\":\"b45570ea\",\"6627\":\"7dfed2dc\",\"6833\":\"99abc459\",\"6994\":\"95f413a6\",\"7117\":\"4370869e\",\"7329\":\"de04c0e9\",\"7342\":\"392657a1\",\"7364\":\"e13f543b\",\"7501\":\"318440ee\",\"7574\":\"24f8f44c\",\"7639\":\"0c051fd3\",\"7674\":\"c8684c62\",\"7833\":\"3c708f39\",\"7894\":\"5fed30b5\",\"7974\":\"a4a60f71\",\"8278\":\"13dc6a3c\",\"8369\":\"2ed9c830\",\"8429\":\"8f92021d\",\"8916\":\"353a35db\",\"9066\":\"923e66e0\",\"9203\":\"358d0d41\",\"9333\":\"2d63cae3\",\"9594\":\"961d13f9\",\"9899\":\"e3cbeeb4\",\"9952\":\"eafb2914\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + ({\"1207\":\"sidebar-r-coupon\",\"1520\":\"cart-r-coupon\",\"2390\":\"cart-coupon\",\"3819\":\"merchantCouponInfo\",\"5078\":\"order-reparation\",\"7574\":\"order-bill\",\"8916\":\"validCouponInfo\",\"9203\":\"sidebar-coupon\"}[chunkId] || chunkId) + \".\" + {\"89\":\"35b3b820\",\"530\":\"228d8b1b\",\"566\":\"15b7add0\",\"735\":\"4f85c5f8\",\"877\":\"7b533193\",\"1207\":\"b1697d22\",\"1510\":\"a98fbcdb\",\"1520\":\"fcd02d5e\",\"1534\":\"b6c5cb73\",\"1999\":\"b4274b0a\",\"2390\":\"58648b63\",\"2597\":\"36f25fbf\",\"2623\":\"24a90637\",\"3125\":\"b6ad12b1\",\"3447\":\"098e3175\",\"3478\":\"c2ce8814\",\"3819\":\"0ed204c1\",\"3987\":\"2ee75d50\",\"4179\":\"dc65a708\",\"4186\":\"67fe0f46\",\"4366\":\"6d5f0aba\",\"4738\":\"cb973d35\",\"4750\":\"1148aab8\",\"5004\":\"8e889ec0\",\"5078\":\"605d5e86\",\"5608\":\"b250bdca\",\"5854\":\"70f292e7\",\"6064\":\"239a49cd\",\"6343\":\"0c374ae7\",\"6598\":\"173b453f\",\"6627\":\"0bf11408\",\"6833\":\"079d4a6b\",\"6994\":\"cdcf15d2\",\"7117\":\"038b21d6\",\"7329\":\"1618cb97\",\"7342\":\"488a30f7\",\"7364\":\"a1dd9478\",\"7501\":\"96386529\",\"7574\":\"5ec24556\",\"7639\":\"23456621\",\"7674\":\"ed67489f\",\"7833\":\"46d3c4cf\",\"7894\":\"67e05b49\",\"7974\":\"b014babe\",\"8278\":\"b7e20e71\",\"8369\":\"83baeacd\",\"8429\":\"e5ae44d9\",\"8916\":\"66b86ab8\",\"9066\":\"1580fb74\",\"9203\":\"5a4a3278\",\"9333\":\"c2561a21\",\"9594\":\"d7517304\",\"9899\":\"e7887cc0\",\"9952\":\"700ce25a\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"soda-c-i18n:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 4826;","__webpack_require__.p = \"https://img0.didiglobal.com/static/soda_static/c/app/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t4826: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"89\":1,\"530\":1,\"566\":1,\"735\":1,\"877\":1,\"1207\":1,\"1510\":1,\"1520\":1,\"1534\":1,\"1999\":1,\"2390\":1,\"2597\":1,\"2623\":1,\"3125\":1,\"3447\":1,\"3478\":1,\"3819\":1,\"3987\":1,\"4179\":1,\"4186\":1,\"4366\":1,\"4738\":1,\"4750\":1,\"5004\":1,\"5078\":1,\"5608\":1,\"5854\":1,\"6064\":1,\"6343\":1,\"6598\":1,\"6627\":1,\"6833\":1,\"6994\":1,\"7117\":1,\"7329\":1,\"7342\":1,\"7364\":1,\"7501\":1,\"7574\":1,\"7639\":1,\"7674\":1,\"7833\":1,\"7894\":1,\"7974\":1,\"8278\":1,\"8369\":1,\"8429\":1,\"8916\":1,\"9066\":1,\"9203\":1,\"9333\":1,\"9594\":1,\"9899\":1,\"9952\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4826: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunksoda_c_i18n\"] = self[\"webpackChunksoda_c_i18n\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [6646,2970,716,2580,9551,8250,5354], function() { return __webpack_require__(74459); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","env","util","getCommonParams","globalParams","inNative","Soda","getGlobalParams","inSoda","SodaBridge","globalParamsRes","data","locale","getLocale","setRequest","method","config","assign","url","arguments","Promise","reject","params","commonParams","targetParams","didiaxios","emulateJSON","needEncrypt","headers","body","then","response","status","errno","error","setBffRequest","countryCode","poiCountryCode","common","lng","lat","ticket","token","terminal_id","Number","terminalId","app_version","appVersion","product_id","getCountryConfig","biz_type","bizId","lang","city_id","poicityid","location_cityid","poiCityId","location_country","networkType","client_type","clientType","datatype","dataType","data_type","mobileType","deviceType","platform_type","isIOS","device_info","suuid","imei","deviceid","deviceId","osType","osVersion","entries","forEach","entry","key","value","request","reduce","api","bind","bffRequest","requestHelper","args","apply","result","apiErrnoError","page_url","window","location","href","trace","store","type","txt","i18n","BASE_URL","MOCK_LOGIN","MOCK_GET_SHOP_LIST","MOCK_ORDER_CREATE","MOCK_ORDER_SHOPPAYED","MOCK_ORDER_RIDERUPDATE","mockLogin","requestPOST","mockGetShopList","requestGET","mockOrderCreate","mockOrderShopPayed","mockOrderRideUpdate","res","err","console","log","GET_WALLET_COUPONS","apis","SIDEBAR_EXCHANGE_COUPONS","SIDEBAR_EXCHANGE_RESULT","APOLLO_AB_CONFIG","getAllCoupons","sidebarExchangeCoupons","getCouponSuccessInfo","getApolloABConfig","GET_WALLET_R_COUPONS","getAllRCoupons","GET_MEMBERSHIP","getMembership","GET_COUPON_LIST","ENTREGA_COUPON_LIST","EXCHANGE_COUPON","getCoupons","entregaCouponList","exchangeCoupon","GET_R_COUPON_LIST","getRCoupons","cancelDutyUrl","cancelUrl","getCancelReasonUrl","cancelOrderUrl","getCancelFlowUrl","applyCancelUrl","cancelDuty","cancelRequest","cancelOrder","getCancelReason","cancelReason","applyCancel","getCancelFlow","option","resData","setTimeout","refreshCallback","backCallback","GET_TAG_LIST","SUBMIT_EVALUATION","GET_EVALUATION_INFO","getTags","submitEvaluation","getEvaluationInfo","FEED_NOSHOP","FEED_UNOPENED","ENTREGA_CITYLIST","ADDRESS_REVERSEPOI","GET_RIDER_AREA","GET_CLUSTER_LIST","feedNoShop","feedUnOpened","entregaCityList","addressReversePoi","getRiderArea","getClusterList","GET_QUESTION_LIST","GET_QUESTION_DETAIL","SUBMIT_NOT_RECEIVE_FOOD","getQuestionList","getQuestionDetail","submitNotReceiveFood","COMMON_CONFIG","getAddress","GET_FEEDBACK_INFO","POST_FEEDBACK_DATA","UPLOAD_BASE64_IMAGE","GET_APPEAL_PROGRESS","GET_REFUND_REE","POST_APPEAL_DATA","GET_FEEDBACK_CONFIGS","SET_DEF_REFUND_CHANNEL","getFeedbackInfo","postFeedbackData","uploadBase64Image","getAppealProgress","getRefundFee","appealToService","getMissItemConfigs","setDefrefundChannel","POST_MISS_FOOD_DATA","POST_NOTIFY_RIDER","getMissFoodInfo","postMissFoodData","notifyRiderMissFood","CentregaRules","CentregaOrderPreCancel","CentregaOrderCancel","getCentregaRules","getCentregaOrderPreCancel","getCentregaOrderCancel","GET_MARKETING_INFO","getMarketingInfo","BENEFITS_INFO","userDiscountStat","getBenefitsInfo","DEEPLINK_OUT","getDeeplink","GET_VALID_COUPONS_BY_CATE","getValidCouponsByCate","SOLO_DINING","soloDining","Topic","getTopic","SENDINVOICE","sendInvoice","API","bd","SidebarRcoupon","SidebarCoupon","SidebarMembership","CartCoupon","CartRCoupon","CancelOrder","Evaluation","Abnormal","Question","Other","Feedback","MissOrder","Entrega","Merchants","VFM","User","SoloDining","Bill","Deeplink","isAndroid","Emitter","this","state","list","fn","indexOf","eventName","listener","_foo","undefined","_exist","push","index","splice","customer","BridgeMonitor","fnList","emitter","emit","on","getNotFoundRes","errmsg","bridgeReport","name","time","errMsg","checkSoda","t","setInterval","clearInterval","bridgePromisify","bridgeFn","bridgeName","isGlobalParamsBridge","startRequestTime","Date","now","setTitle","updateNav","openPage","closePage","goBack","getUserInfo","requestLogin","getLocationInfo","updateGlobalCart","registerTrigger","unregisterTrigger","updateBill","guideParams","addCartEvent","trackEvent","setBackPressListener","brandTextObj","brand_txt_1","brand_txt_2","brand_txt_3","brand_txt_4","brandText","JP","MX","CR","CO","DO","CL","PE","BR","PC_APPSTORE_URL","PC_GOOGLEPLAY_URL","sealPic","defaultPic","headImg","valuationImg","PRODUCT_ID","serviceNumber","serviceEmail","payMessageObj","title","desc","sprintf","QAList","answer","walletPaymentType","defaultConf","i18nNew","brConf","configMixin","targetConfig","defaultCountry","finalConfig","targetCountry","downloadUrl","orderPic","rulesHeadPic","rulesValuationPic","productId","service","entrega","devOpt","cApiDomain","actApiDomain","entregaApiDomain","fulfillmentApiDomain","vfmApiDomain","process","envs","development","testing","production","defaultOpt","envOpt","sim","isPre","host","Sim","startsWith","origin","getLocationOrigin","replace","getBaseUrl","zhCN","enUS","esMX","ptBR","jaJP","es419","getLanguageLong","VueJed","doc","win","docEl","documentElement","resizeEvt","recalc","clientWidth","style","fontSize","addEventListener","document","apiMonitorLog","traceId","trace_id","requestId","track","request_errno","request_path","request_id","request_time","omegaH5Monitor","obj","referrer","require","paramsString","search","slice","items","split","item","temp","first_activity_id","firstActivityId","first_channel_id","firstChannelId","channel_id","extChannelId","channel","sailing_activity_id","extActivityId","device_type","cityId","country","poi_city_id","internet_type","netWorkType","op_system","pub_location_city_id","getCurPageName","pagePathArr","parse","pathname","shift","current_page","join","event","options","cb","Omega","routerErrorLog","err_type","url2localProtocol","match","protocol","getSchemeName","schemes","schemePath","inCustomerApp","get","debounce","func","wait","immediate","timeout","later","context","debounced","clearTimeout","callNow","cancel","checkIsOldVersion","curVersion","baseVersion","curVersionArr","baseVersionArr","minL","Math","min","length","pos","diff","parseInt","dateFormat","dateStr","dateStrRes","dateArr","tempItem","getLocaleBrandText","textKey","urlParse","reg","arr","tempArr","substring","decodeURIComponent","val","checkAppType","typeMap","brand","terminal","terminalType","isNewCartVersion","newCartVersion","Global_Food","Global_Travel","BR_Food","BR_Travel","appType","hexARGBGetRGBA","str","inBrowser","UA","navigator","userAgent","toLowerCase","test","render","_vm","_h","$createElement","_c","_self","attrs","staticRenderFns","computed","mapState","_message","watch","globalMsg","sailingBizLine","show","toast","$createToast","hide","mixins","component","ProcessShow","path","meta","ProcessLogin","RCoupon","Coupon","CouponSuccess","CouponUnavailable","Membership","CouponInfo","Tip","Reduction","CPFCheck","Debugbridge","Terms","TermsEntrega","PaymentType","PaymentCash","PaymentPos","CancelOrderReason","CancelOrderResult","Questionlist","QuestionDetail","Reparation","AppealToService","PurchasingAgent","RuleEducation","RiskManage","AppLinkDidi","AppLink99","DeeplinkFB","Delivery","NotAvailable","NoShop","PreHeat","PreAvailable","NotAvailableArea","DangerousArea","NonactivatedArea","NoMerchant","CancelOrderQuestion","getUrlParams","values","keyValue","MerchantCouponInfo","newVersion","marketingVersion","vfm","topic","validCouponInfo","invalidCouponInfo","routerRedirectCatch","Router","originalPush","prototype","originalReplace","onResolve","onReject","call","Vue","notFount","router","mode","base","routes","BD","Sidebar","Cart","USerGuide","Order","Simple","user","bill","onError","pattern","loadFailed","message","targetPath","history","pending","fullPath","err_info","init","setAttribute","ddClg","omega","domainList","initGlobalFilters","DDbridge","SodaBridgeRegister","callback","getSystemInfo","sdk","geoLocation","toString","mixin","methods","SodaBridgeData","pms","getActivityStatus","activityId","setUserInfo","userInfo","hasOwnProperty","systemInfo","asyncSetTitle","navi_title","Fusion","isWechat","inWechat","isAlipay","inAlipy","isQQ","inQQ","isApp","isSoda","soda_from","isWebApp","fromWebApp","isWebAppSoda","inAndroid","inIOS","isMessageNumber","isPopToRootPage","appKey","source","landingpage","eventMap","sailing_c_x_cartcoupon_realexposure_sw","sailing_c_x_top_item_realexposure_sw","sailing_c_x_landingpage_coupon_product_sw","sailing_c_x_couponpage_shop_select_shop_sw","getEventKey","eventId","getLogInfoId","tag","warn","LOG_DATA_MAP","LOG_SHOW_MAP","logStrategy","target","getAttribute","trackData","eventLabel","observer","unobserve","IntersectionObserver","isIntersecting","root","threshold","ele","binding","inserted","observe","unbind","serviceWorker","register","registration","registrationError","currentLang","DDBridge","registerDefaultBridge","CouponUI","axios","Style","Cell","Dialog","Toast","Loading","RadioGroup","CheckboxGroup","Button","Scroll","Select","Input","Textarea","TextareaBox","TagGroup","Theme","Progress","ScrollNav","Alert","Lazyload","preLoad","attempt","filter","progressive","size","el","isSodaPublic","src","Locale","vueI18n","template","components","App","version","SailingPerformance","prefix","in_customer_app","cancelSuccessText","cancelSuccessTip","updateCancelSuccessText","payload","updateCancelSuccessTip","namespaced","mutations","order","requireParams","versionCode","timestamp","poiId","poiLat","poiLng","is99App","COUNTRY","csTelNumber","csEmail","isSubmitLoadingBP","openedCityList","isRightTitleBtn","isSupportHurdle","getters","actions","GET_COUNTRY","commit","QUERY_PARAMS","COUNTRY_FROM_URL","RES","COUNTRY_FROM_BRIDGE","position","LOCATION_INFO","Api","ADDRESS_INFO","GET_CITY_LIST","cities","versionControl","hurdleVersion","hurdleBtnVersion","inEmbedCustomerApp","UPDATE_GLOBAL_PARAMS","SHOW_MSG","DEFAULT","msg","UPDATE_LOADING_BP","UPDATE_COUNTRY","UPDATE_CS_TEL_NUMBER","UPDATE_OPENED_CITY_LIST","UPDATE_IS_RIGHT_TITLE_BUTTON","UPDATE_IS_SUPPORT_HURDLE","Vuex","modules","Common","strict","__webpack_module_cache__","moduleId","cachedModule","loaded","__webpack_modules__","m","amdO","deferred","O","chunkIds","priority","notFulfilled","Infinity","i","fulfilled","j","every","r","n","getter","__esModule","d","a","leafPrototypes","getProto","getPrototypeOf","__proto__","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","inProgress","dataWebpackPrefix","l","done","script","needAttach","scripts","getElementsByTagName","s","createElement","charset","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","head","appendChild","Symbol","toStringTag","nmd","paths","children","p","createStylesheet","fullhref","oldTag","linkTag","rel","onLinkComplete","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}