@conecli/cone-render 0.10.1-shop3.3 → 0.10.1-shop3.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +1 -1
  2. package/dist/api/index.ts +1 -1
  3. package/dist/common/const.ts +1 -1
  4. package/dist/common/index.h5.ts +1 -1
  5. package/dist/common/index.jd.ts +1 -1
  6. package/dist/common/index.ts +1 -1
  7. package/dist/common/index.weapp.ts +1 -1
  8. package/dist/common/jssdk.ts +1 -1
  9. package/dist/common/token/index.h5.ts +1 -1
  10. package/dist/common/token/token.jd.ts +1 -1
  11. package/dist/common/wxappApi.ts +1 -1
  12. package/dist/components/base/CommonFloorHead/index.module.scss +126 -111
  13. package/dist/components/base/CommonFloorHead/index.tsx +1 -1
  14. package/dist/components/base/CountDown/index.tsx +1 -1
  15. package/dist/components/base/CustomScrollView/index-back.tsx +1 -0
  16. package/dist/components/base/CustomScrollView/index.tsx +1 -1
  17. package/dist/components/base/Dialog/index.module.scss +11 -0
  18. package/dist/components/base/ExposureSmart/index.h5.module.scss +12 -2
  19. package/dist/components/base/ExposureSmart/index.h5.tsx +1 -1
  20. package/dist/components/base/ExposureSmart/reporter.tsx +1 -1
  21. package/dist/components/base/InViewRender/index.tsx +1 -1
  22. package/dist/components/base/ItemViewExposureSmart/index.module.scss +2 -2
  23. package/dist/components/base/ItemViewExposureSmart/index.tsx +1 -1
  24. package/dist/components/base/NetworkDataError/const.ts +1 -1
  25. package/dist/components/base/NetworkDataError/index.module.scss +117 -71
  26. package/dist/components/base/NetworkDataError/index.tsx +1 -1
  27. package/dist/components/base/Price/Base/index.module.scss +12 -0
  28. package/dist/components/base/Price/Base/index.tsx +1 -1
  29. package/dist/components/base/Price/Double/index.module.scss +6 -0
  30. package/dist/components/base/Price/Double/index.tsx +1 -1
  31. package/dist/components/debug/DebugLayout/index.module.scss +2 -2
  32. package/dist/components/floorItem.weapp.tsx +1 -1
  33. package/dist/interface/common.ts +1 -1
  34. package/dist/interface/component.ts +1 -1
  35. package/dist/interface/jumpEventReport.ts +1 -1
  36. package/dist/interface/service.ts +1 -1
  37. package/dist/jumpEventReport/base.ts +1 -1
  38. package/dist/jumpEventReport/const.ts +1 -1
  39. package/dist/jumpEventReport/index.h5.ts +1 -1
  40. package/dist/jumpEventReport/index.jd.ts +1 -1
  41. package/dist/jumpEventReport/index.weapp.ts +1 -1
  42. package/dist/jumpEventReport/jdJumpJdApp.ts +1 -1
  43. package/dist/jumpEventReport/jumpUrlConfig/base.ts +1 -1
  44. package/dist/jumpEventReport/logEventConfig.ts +1 -1
  45. package/dist/jumpEventReport/web/report.ts +1 -1
  46. package/dist/jumpEventReport/web.base.ts +1 -1
  47. package/dist/jumpEventReport/web.jd.ts +1 -1
  48. package/dist/jumpEventReport/web.pc.ts +1 -1
  49. package/dist/jumpEventReport/web.tjm.ts +1 -1
  50. package/dist/jumpEventReport/web.wxapp.ts +1 -1
  51. package/dist/language/en_US.json +176 -0
  52. package/dist/language/zh_CN.json +176 -0
  53. package/dist/language/zh_HK.json +176 -0
  54. package/dist/libs/taroAppReport.js +2 -2
  55. package/dist/modules/ContainerFloorList/index.h5.module.scss +66 -53
  56. package/dist/modules/ContainerFloorList/index.h5.tsx +1 -1
  57. package/dist/modules/ContainerFloorList/index.tsx +1 -1
  58. package/dist/open/api/environment.ts +1 -1
  59. package/dist/open/api/shopMember.ts +1 -1
  60. package/dist/open/api/util.ts +1 -1
  61. package/dist/sass/app.h5.scss +273 -224
  62. package/dist/service/fetchGateway.ts +1 -1
  63. package/dist/service/fetchGateway.weapp.ts +1 -0
  64. package/dist/service/http/colorSign.ts +1 -1
  65. package/dist/service/http/const.ts +1 -1
  66. package/dist/service/http/h5Http.ts +1 -1
  67. package/dist/service/requestServer.h5.ts +1 -1
  68. package/dist/service/requestServer.ts +1 -1
  69. package/dist/service/requestServer.weapp.ts +1 -0
  70. package/dist/utils/connectNativeJsBridge.ts +1 -1
  71. package/dist/utils/h5Utils.ts +1 -1
  72. package/dist/utils/index.h5.ts +1 -1
  73. package/dist/utils/index.ts +1 -1
  74. package/dist/utils/index.weapp.ts +1 -1
  75. package/dist/utils/jumpExtMapUtil.h5.ts +1 -0
  76. package/dist/utils/jumpExtMapUtil.ts +1 -0
  77. package/dist/utils/log.ts +1 -0
  78. package/dist/utils/sColor.js +1 -0
  79. package/dist/utils/utils.ts +1 -1
  80. package/dist/wxapp/common/address_api/address_api_v2.js +1 -0
  81. package/dist/wxapp/common/user_info.js +1 -1
  82. package/package.json +158 -141
@@ -1 +1 @@
1
- import global from '../common'
2
1
  BUSINESS_TYPE,
3
2
  SHOP_MENU_ID_TYPE,
4
3
  SHOP_MENU_ID_NAME,
5
4
  SECTION_HOME_TAB_TYPE,
6
5
  SECTION_HOME_TAB_NAME_TYPE,
7
6
  objectToUrlEncode,
8
7
  parseQueryUrlString,
9
8
  filterUrlQueryData,
10
9
  isJdAndHarmonyDevice,
11
10
  routerInfo: {
12
11
  params: {},
13
12
  },
14
13
  nativeEvent: null,
15
14
  jumpConfig: {
16
15
  venderId: null,
17
16
  shopId: null,
18
17
  sourceValue: '',
19
18
  sourceType: 'M-H5',
20
19
  activityType: 'shopx',
21
20
  moduleId: 'none',
22
21
  entrance: 'none',
23
22
  },
24
23
  logPageParamStr: '',
25
24
  public logPageId: string
26
25
  public jumpConfig: JumpEventReportInterFace.JumpH5ReportConfig
27
26
  getConfig(opt) {
28
27
  return Object.assign(this, {}, defaultConfig, opt)
29
28
  }
30
29
  updateInfo(
31
30
  routerInfo,
32
31
  logPname = LogPnameInfo.HOME,
33
32
  pageId = LogPageIdInfo.APP,
34
33
  ) {
35
34
  this.routerInfo = routerInfo
36
35
  this.logPname = logPname
37
36
  this.jumpConfig = Object.assign(
38
37
  {},
39
38
  this.jumpConfig,
40
39
  filterUrlQueryData(routerInfo?.params || {}),
41
40
  )
42
41
  this.logPageId = pageId
43
42
  }
44
43
 
45
44
  reportInfoPv(
46
45
  pageId = LogPageIdInfo.APP,
47
46
  opt: {
48
47
  pageParam?: any
49
48
  } = {},
50
49
  ) {
51
50
  const { pageParam, ...otherOpts } = opt
52
51
  const pageParamStr =
53
52
  typeof pageParam === 'object' ? JSON.stringify(pageParam) : pageParam
54
53
  this.logPageParamStr = pageParamStr
55
54
  ? pageParamStr
56
55
  : JSON.stringify(this.jumpConfig)
57
56
  return reportPV({
58
57
  pageId,
59
58
  pageParam: this.logPageParamStr,
60
59
  ...otherOpts,
61
60
  })
62
61
  }
63
62
 
64
63
  jdJumpToProduct(skuIds, logEventInfo) {
65
64
  skuIds = skuIds.toString().trim()
66
65
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds
67
66
  const { jingxiSdx, ...otherLogInfo } = logEventInfo
68
67
  if(jingxiSdx){
69
68
  this.jdNavigateToNative(
70
69
  `${this.jumpWebUrl.detail}${getSkuId}.html?sdx=${jingxiSdx}`,
71
70
  otherLogInfo,
72
71
  )
73
72
  }else {
74
73
  this.jdNavigateToNative(
75
74
  `${this.jumpWebUrl.detail}${getSkuId}.html`,
76
75
  logEventInfo,
77
76
  )
78
77
  }
79
78
  }
80
79
 
81
80
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
82
81
  const getSkuId = skuInfo?.skuId;
83
82
  this.jdJumpToProduct(getSkuId, logEventInfo)
84
83
  }
85
84
 
86
85
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
87
86
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`
88
87
  this.jdNavigateToNative(rankUrl, {
89
88
  contentId,
90
89
  ...logEventInfo,
91
90
  })
92
91
  }
93
92
 
94
93
  jdJumpToShopCategory(shopInfo) {
95
94
  this.jdNavigateToNative(
96
95
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
97
96
  this.getShopIdOrVenderIdParams(shopInfo),
98
97
  )}&tabActive=classify`,
99
98
  {
100
99
  ...shopInfo,
101
100
  },
102
101
  )
103
102
  }
104
103
 
105
104
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
106
105
  const getInfo = Object.assign(
107
106
  {},
108
107
  {
109
108
  shopId: global.info.queryInfo.shopId,
110
109
  venderId: global.info.queryInfo.venderId,
111
110
  },
112
111
  shopInfo,
113
112
  )
114
113
  this.jdNavigateToNative(
115
114
  `${this.jumpWebUrl.mshop}?${objectToUrlEncode(
116
115
  this.getShopIdOrVenderIdParams(getInfo),
117
116
  )}`,
118
117
  {
119
118
  ...getInfo,
120
119
  },
121
120
  )
122
121
  }
123
122
 
124
123
  jdJumpToShopLight(shopInfo) {
125
124
  this.jdNavigateToNative(
126
125
  `${this.jumpWebUrl.shopLight}?${objectToUrlEncode(
127
126
  this.getShopIdOrVenderIdParams(shopInfo),
128
127
  )}`,
129
128
  {
130
129
  ...shopInfo,
131
130
  },
132
131
  )
133
132
  }
134
133
 
135
134
  jdJumpToShopMember(shopInfo) {
136
135
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
137
136
  const memberHomeUrl = window?.shopGlobalSwitch?.openNewMemberEntry === 'true' ? this.jumpWebUrl.memberHome : this.jumpWebUrl.shopMember
138
137
  this.jdJumpToWeb(
139
138
  `${memberHomeUrl}?${objectToUrlEncode(
140
139
  getShopInfo,
141
140
  )}&venderType=1&channel=406`,
142
141
  shopInfo,
143
142
  )
144
143
  }
145
144
 
146
145
  jdJumpToShopMemberCard(shopInfo) {
147
146
  const { logEventInfo } = shopInfo
148
147
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo)
149
148
  this.jdJumpToWeb(
150
149
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
151
150
  logEventInfo,
152
151
  )
153
152
  }
154
153
 
155
154
  jdJumpToTotalPromotion(shopInfo) {
156
155
  const { url, logEventInfo } = shopInfo
157
156
  if (this.isOpenJdAppUrl(url)) {
158
157
  const getOpenAppParams: any = this.jdOpenAppParams(url)
159
158
  if (getOpenAppParams) {
160
159
  if (getOpenAppParams?.activityId) {
161
160
  this.jdJumpToWeb(
162
161
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
163
162
  shopInfo,
164
163
  )
165
164
  }
166
165
  }
167
166
  } else {
168
167
  this.jdJumpToWeb(url, logEventInfo)
169
168
  }
170
169
  }
171
170
 
172
171
  jdJumpToDongDongChat(paramInfo) {
173
172
  const getInfo = Object.assign(
174
173
  {},
175
174
  {
176
175
  venderId: global.info.queryInfo.venderId,
177
176
  },
178
177
  paramInfo,
179
178
  )
180
179
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo
181
180
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`
182
181
  this.jdJumpToWeb(dongdongUrl, otherInfo)
183
182
  }
184
183
 
185
184
  jdJumpToShopDetail(shopInfo) {
186
185
  const getInfo = Object.assign(
187
186
  {},
188
187
  {
189
188
  shopId: global.info.queryInfo.shopId,
190
189
  venderId: global.info.queryInfo.venderId,
191
190
  },
192
191
  shopInfo,
193
192
  )
194
193
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo)
195
194
  this.jdJumpToWeb(
196
195
  `${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`,
197
196
  getInfo,
198
197
  )
199
198
  }
200
199
 
201
200
  jdJumpToShopSearch(shopInfo) {
202
201
  const getInfo = Object.assign(
203
202
  {},
204
203
  {
205
204
  shopId: global.info.queryInfo.shopId,
206
205
  venderId: global.info.queryInfo.venderId,
207
206
  },
208
207
  shopInfo,
209
208
  )
210
209
  const { shopId, categoryId, keyword, pageId, description, shopName, keyWord, seller_actId, seller_actType} =
211
210
  getInfo
212
211
  const cateId = categoryId ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}` : ''
213
212
  const addKeyWord = keyword || keyWord ? `&keyword=${keyword || keyWord}` : ''
214
213
  const addPageId = pageId ? `&pageId=${pageId}` : ''
215
214
  const searchDes = description ? `&description=${description}` : ''
216
215
  const shopNameDes = shopName ? `&shopName=${shopName}` : ''
217
216
  const searchType = categoryId ? 5 : keyword || keyWord ? 4 : 3
218
217
  const activityId = seller_actId ? `&activityId=${seller_actId}` : ''
219
218
  const activityType = seller_actType ? `&activityType=${seller_actType}` : ''
220
219
  this.jdJumpToWeb(
221
220
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}${activityId}${activityType}`,
222
221
  getInfo,
223
222
  )
224
223
  }
225
224
 
226
225
  jdJumpToWeb(
227
226
  url,
228
227
  logEventInfo,
229
228
  successBack?: Function | undefined,
230
229
  failBack?: Function | undefined,
231
230
  ) {
232
231
  console.log('web.base.ts - jdJumpToWeb')
233
232
  this.jdNavigateToNative(
234
233
  url,
235
234
  {
236
235
  ...logEventInfo,
237
236
  },
238
237
  successBack,
239
238
  failBack,
240
239
  )
241
240
  }
242
241
 
243
242
  jdJumpToWebInner(url, logEventInfo) {
244
243
  this.jdJumpToWeb(url, logEventInfo)
245
244
  }
246
245
 
247
246
  jdJumpToLive(liveInfo, logEventInfo = {}) {
248
247
  if (liveInfo?.liveId) {
249
248
  this.jdJumpToWeb(
250
249
  `${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`,
251
250
  logEventInfo,
252
251
  )
253
252
  }else if (isJdAndHarmonyDevice) {
254
253
  const getShopLiveParams = this.jdOpenAppParams(liveInfo)
255
254
  console.log('getShopLiveParams=====', getShopLiveParams)
256
255
  if (typeof getShopLiveParams === 'object') {
257
256
  this.jdNavigateToNativeOpenApp({
258
257
  ...getShopLiveParams,
259
258
  logEventInfo,
260
259
  })
261
260
  }
262
261
  }
263
262
  }
264
263
 
265
264
  jdJumpToShopActivity(shopInfo) {
266
265
  const { configDataValue, logEventInfo, projectId } = shopInfo
267
266
  if (projectId && configDataValue) {
268
267
  this.jdJumpToWeb(
269
268
  `${this.jumpWebUrl.shopSecondActivity}${configDataValue.data}.html`,
270
269
  logEventInfo,
271
270
  )
272
271
  }
273
272
  }
274
273
 
275
274
  jdJumpToActivityPlace(spUrl, logEventInfo) {
276
275
  this.jdNavigateToNative(spUrl, logEventInfo)
277
276
  }
278
277
 
279
278
  jdJumpConfigUrl(detail, logEventInfo = {}) {
280
279
  const { configDataType, configDataValue } = detail
281
280
  console.log(
282
281
  'jdJumpConfigUrl web.base configDataType:',
283
282
  configDataType,
284
283
  configDataValue,
285
284
  )
286
285
  switch (configDataType) {
287
286
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
288
287
  if(logEventInfo?.jsonParam?.logBaseInfo?.mInfo){
289
288
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds
290
289
  }
291
290
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo)
292
291
  break
293
292
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
294
293
  this.jdJumpToWeb(
295
294
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
296
295
  {},
297
296
  )
298
297
  break
299
298
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
300
299
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
301
300
  const getShopSearchParams = this.jdOpenAppParams(
302
301
  configDataValue.clickUrl,
303
302
  )
304
303
  getShopSearchParams &&
305
304
  this.jdJumpToShopSearch(
306
305
  Object.assign({}, getShopSearchParams, {
307
306
  logEventInfo,
308
307
  }),
309
308
  )
310
309
  } else {
311
310
  this.jdJumpToShopSearch(
312
311
  configDataValue['cid']
313
312
  ? Object.assign(
314
313
  {},
315
314
  {
316
315
  shopId: global.info.queryInfo.shopId,
317
316
  categoryId: configDataValue.cid,
318
317
  ...configDataValue,
319
318
  logEventInfo,
320
319
  },
321
320
  )
322
321
  : {
323
322
  shopId: global.info.queryInfo.shopId,
324
323
  logEventInfo,
325
324
  },
326
325
  )
327
326
  }
328
327
  break
329
328
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
330
329
  this.jdJumpToShopCategory({
331
330
  ...configDataValue,
332
331
  logEventInfo,
333
332
  })
334
333
  break
335
334
  case LinkConfigType.CONFIG_TYPE_MEMBER:
336
335
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
337
336
  const getShopMemberParams = this.jdOpenAppParams(
338
337
  configDataValue.clickUrl,
339
338
  )
340
339
  getShopMemberParams &&
341
340
  this.jdJumpToShopMember(
342
341
  Object.assign({}, getShopMemberParams, {
343
342
  logEventInfo,
344
343
  }),
345
344
  )
346
345
  } else {
347
346
  this.jdJumpToShopMember({
348
347
  shopId: global.info.queryInfo.shopId,
349
348
  venderId: configDataValue.shopDetail,
350
349
  logEventInfo,
351
350
  })
352
351
  }
353
352
  break
354
353
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
355
354
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
356
355
  const getShopActivityParams = this.jdOpenAppParams(
357
356
  configDataValue.clickUrl,
358
357
  )
359
358
  if (
360
359
  getShopActivityParams &&
361
360
  getShopActivityParams['des'] == 'jshopActivity'
362
361
  ) {
363
362
  this.jdJumpToShopActivity({
364
363
  projectId: configDataValue['projectId'],
365
364
  configDataValue,
366
365
  logEventInfo,
367
366
  })
368
367
  }
369
368
  } else if (configDataValue['projectId']) {
370
369
  this.jdJumpToShopActivity({
371
370
  projectId: configDataValue['projectId'],
372
371
  configDataValue,
373
372
  logEventInfo,
374
373
  })
375
374
  }
376
375
  break
377
376
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
378
377
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON:
379
378
  const _url = configDataValue.linkUrl
380
379
  const isProductM = /item\.m\.jd\.com/.test(_url)
381
380
  const isProductPC = /item\.jd\.com/.test(_url)
382
381
  if (
383
382
  _url.indexOf('to=') === -1 &&
384
383
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
385
384
  ) {
386
385
  const _shopId = _url.match(/\d+/g)[0]
387
386
  this.jdJumpToShopHome({
388
387
  shopId: `${_shopId}`,
389
388
  logEventInfo,
390
389
  })
391
390
  } else if (this.isOpenJdAppUrl(_url)) {
392
391
  const getOpenAppParams: any = this.jdOpenAppParams(_url)
393
392
  if (getOpenAppParams) {
394
393
  if (getOpenAppParams.jumpTab == 'allProduct') {
395
394
  this.jdJumpToTabAllProduct(
396
395
  global.info.queryInfo.shopId || getOpenAppParams?.shopId,
397
396
  global.info.queryInfo.venderId || getOpenAppParams?.venderId,
398
397
  )
399
398
  } else if (
400
399
  getOpenAppParams.des == 'productList' &&
401
400
  getOpenAppParams.from == 'couponBatch'
402
401
  ) {
403
402
  this.jdJumpToCouponSearchProductList(getOpenAppParams?.couponId)
404
403
  } else if (getOpenAppParams.des == 'vapp') {
405
404
  this.jdJumpToWeb(
406
405
  `https://conecli.com/apps/mpshare/index.html?category=${
407
406
  getOpenAppParams.category
408
407
  }&des=${getOpenAppParams.des}&vapptype=${
409
408
  getOpenAppParams.vapptype
410
409
  }&appId=${getOpenAppParams.appId}&path=${
411
410
  getOpenAppParams.path
412
411
  }&param=${encodeURI(JSON.stringify(getOpenAppParams.param))}`,
413
412
  logEventInfo,
414
413
  )
415
414
  } else {
416
415
  this.jdNavigateToNative(
417
416
  '',
418
417
  Object.assign({}, getOpenAppParams, {
419
418
  logEventInfo,
420
419
  }),
421
420
  )
422
421
  }
423
422
  }
424
423
  } else if (isProductM || isProductPC) {
425
424
  const skuid = _url.match(/\d+/g)[0]
426
425
  if (skuid) {
427
426
  this.jdJumpToProduct(skuid, logEventInfo)
428
427
  }
429
428
  } else {
430
429
  this.jdJumpToWeb(_url, logEventInfo)
431
430
  }
432
431
  break
433
432
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
434
433
  this.jdJumpToShopDetail({
435
434
  venderId: global.info.queryInfo.venderId,
436
435
  shopId: global.info.queryInfo.shopId,
437
436
  logEventInfo,
438
437
  })
439
438
  break
440
439
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
441
440
  this.jdJumpToShopHome({
442
441
  ...configDataValue,
443
442
  logEventInfo,
444
443
  })
445
444
  break
446
445
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
447
446
  break
448
447
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
449
448
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
450
449
  const getShoppingGuideParams = this.jdOpenAppParams(
451
450
  configDataValue.clickUrl,
452
451
  )
453
452
  getShoppingGuideParams &&
454
453
  this.jdJumpToShopActivity(
455
454
  Object.assign({}, getShoppingGuideParams, {
456
455
  logEventInfo,
457
456
  }),
458
457
  )
459
458
  }
460
459
  break
461
460
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
462
461
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '')
463
462
  const search = linkUrl.match(/\?.+/)
464
463
  if (search) {
465
464
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
466
465
  parseQueryUrlString(linkUrl)
467
466
  try {
468
467
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param)
469
468
  } catch (e) {
470
469
  console.warn('解析小程序 param 错误:', miniQueryData.param)
471
470
  }
472
471
  this.jdJumpToMiniProgram(miniQueryData)
473
472
  } else {
474
473
  console.warn('小程序地址错误:', linkUrl)
475
474
  }
476
475
  break
477
476
  }
478
477
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
479
478
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
480
479
  const getShopSearchParams = this.jdOpenAppParams(
481
480
  configDataValue.clickUrl,
482
481
  )
483
482
  console.log(
484
483
  'web base 获取店铺结果落地页链接解析后的参数结果',
485
484
  getShopSearchParams,
486
485
  )
487
486
  getShopSearchParams &&
488
487
  this.jdJumpToShopSearch(
489
488
  Object.assign({}, getShopSearchParams, {
490
489
  logEventInfo,
491
490
  }),
492
491
  )
493
492
  } else {
494
493
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo)
495
494
  }
496
495
  break
497
496
  }
498
497
  default:
499
498
  }
500
499
  }
501
500
 
502
501
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
503
502
  console.log('web.base.ts - jdJumpToTabAllProduct')
504
503
  if(typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
505
504
  if(typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId
506
505
  this.jdJumpToWeb(
507
506
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode({
508
507
  shopId,
509
508
  venderId,
510
509
  tabActive: 'home-product'
511
510
  })}`,
512
511
  logEventInfo,
513
512
  )
514
513
  }
515
514
 
516
515
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
517
516
  if(typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId
518
517
  if(typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId
519
518
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo)
520
519
  }
521
520
 
522
521
  jdJumpToTopTabBase(type, shopInfo = {}) {
523
522
  const getInfo = Object.assign(
524
523
  {},
525
524
  {
526
525
  shopId: global.info.queryInfo.shopId,
527
526
  venderId: global.info.queryInfo.venderId,
528
527
  },
529
528
  shopInfo,
530
529
  )
531
530
  this.jdJumpToWeb(
532
531
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
533
532
  this.getShopIdOrVenderIdParams(getInfo),
534
533
  )}&tabActive=${type}`,
535
534
  getInfo,
536
535
  )
537
536
  }
538
537
 
539
538
  jdJumpToTabNew(shopInfo = {}) {
540
539
  console.log('上新tab')
541
540
  this.jdJumpToTopTabBase(
542
541
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
543
542
  shopInfo,
544
543
  )
545
544
  }
546
545
 
547
546
  jdJumpToTabNewInner(shopInfo = {}) {
548
547
  this.jdJumpToTabNew(shopInfo)
549
548
  }
550
549
 
551
550
  jdJumpToTabRank(shopInfo = {}) {
552
551
  console.log('榜单tab')
553
552
  this.jdJumpToTopTabBase(
554
553
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK],
555
554
  shopInfo,
556
555
  )
557
556
  }
558
557
  jdJumpToTabRankInner(shopInfo = {}) {
559
558
  this.jdJumpToTabRank(shopInfo)
560
559
  }
561
560
  jdJumpToTabBuyerShow(shopInfo = {}) {
562
561
  console.log('买家秀tab')
563
562
  this.jdJumpToTopTabBase(
564
563
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
565
564
  shopInfo,
566
565
  )
567
566
  }
568
567
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
569
568
  this.jdJumpToTabBuyerShow(shopInfo)
570
569
  }
571
570
  jdJumpToTabActivity(shopInfo = {}) {
572
571
  console.log('活动tab')
573
572
  this.jdJumpToTopTabBase(
574
573
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
575
574
  shopInfo,
576
575
  )
577
576
  }
578
577
  jdJumpToTabActivityInner(shopInfo = {}) {
579
578
  this.jdJumpToTabActivity(shopInfo)
580
579
  }
581
580
  jdJumpToTabSecKill(shopInfo = {}) {
582
581
  console.log('秒杀tab')
583
582
  this.jdJumpToTopTabBase(
584
583
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
585
584
  shopInfo,
586
585
  )
587
586
  }
588
587
  jdJumpToTabSecKillInner(shopInfo = {}) {
589
588
  this.jdJumpToTabSecKill(shopInfo)
590
589
  }
591
590
 
592
591
  jdJumpToBottomTabBase(type, shopInfo = {}) {
593
592
  this.jdJumpToTopTabBase(type, shopInfo)
594
593
  }
595
594
  jdJumpToBottomTabProduct(shopInfo = {}) {
596
595
  this.jdJumpToBottomTabBase(
597
596
  SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT],
598
597
  shopInfo,
599
598
  )
600
599
  }
601
600
  jdJumpToBottomTabCategory(shopInfo = {}) {
602
601
  this.jdJumpToBottomTabBase(
603
602
  SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY],
604
603
  shopInfo,
605
604
  )
606
605
  }
607
606
  jdJumpToBottomTabFind(shopInfo = {}) {
608
607
  console.log('发现tab')
609
608
  }
610
609
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
611
610
  const getInfo = Object.assign(
612
611
  {},
613
612
  {
614
613
  shopId: global.info.queryInfo.shopId,
615
614
  venderId: global.info.queryInfo.venderId,
616
615
  },
617
616
  shopInfo,
618
617
  )
619
618
  this.jdJumpToWeb(
620
619
  `${this.jumpWebUrl.memberHome}?${objectToUrlEncode(
621
620
  this.getShopIdOrVenderIdParams(getInfo),
622
621
  )}`,
623
622
  getInfo,
624
623
  )
625
624
  }
626
625
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
627
626
  this.jdJumpToBottomTabBrandMember(shopInfo)
628
627
  }
629
628
 
630
629
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
631
630
  this.jdJumpToWeb(
632
631
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
633
632
  logEventInfo,
634
633
  )
635
634
  }
636
635
 
637
636
  jdNavigateToNative(
638
637
  url: string,
639
638
  params: {
640
639
  logEventInfo?: object
641
640
  } = {},
642
641
  successBack?: Function | undefined,
643
642
  failBack?: Function | undefined,
644
643
  ) {
645
644
  const { logEventInfo } = params
646
645
  const getEparam = logEventInfo || params
647
646
  console.log(`url:::::::${url}`)
648
647
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
649
648
  this.clickEventLog(getEparam)
650
649
  .then(() => {
651
650
  typeof successBack == 'function'
652
651
  ? successBack(url)
653
652
  : (window.location.href = url)
654
653
  })
655
654
  .catch(() => {
656
655
  typeof failBack == 'function' && failBack(url)
657
656
  })
658
657
  }
659
658
 
660
659
  jdNavigateToNativeOpenApp(
661
660
  params: {},
662
661
  url = 'openapp.jdmobile://virtual',
663
662
  successBack?: Function | null,
664
663
  failBack?: Function | null,
665
664
  ) {
666
665
  console.log('[降级H5] jdNavigateToNative web.jd:', params)
667
666
  const getResParams: JumpEventReportInterFace.JdMiniJumpParams =
668
667
  Object.assign(
669
668
  {},
670
669
  {
671
670
  sourceValue: 'sourceValue_jshopModuleWeb',
672
671
  sourceType: 'sourceType_jshopModuleWeb',
673
672
  param: {},
674
673
  },
675
674
  params,
676
675
  )
677
676
  const { logEventInfo, ...otherParams } = getResParams
678
677
  console.log(
679
678
  'jd web 获取open协议参数 jdNavigateToNative params: ',
680
679
  getResParams,
681
680
  )
682
681
  console.log('logEventInfo params: ', logEventInfo)
683
682
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
684
683
  this.clickEventLog(logEventInfo || getResParams)
685
684
  .then(() => {
686
685
  if (typeof successBack == 'function') {
687
686
  successBack(getResParams)
688
687
  } else {
689
688
  try {
690
689
  const paramsStr = JSON.stringify(otherParams)
691
690
  console.log('跳转web jd open协议', `${url}?params=${paramsStr}`)
692
691
  window.location.href = `${url}?params=${paramsStr}`
693
692
  } catch (e) {
694
693
  console.log('跳转异常', e)
695
694
  }
696
695
  }
697
696
  })
698
697
  .catch(() => {
699
698
  typeof failBack == 'function' && failBack(getResParams)
700
699
  })
701
700
  }
702
701
 
703
702
  clickEventLog(
704
703
  opts: JumpEventReportInterFace.OptEventLogParams = {},
705
704
  reportKey = 'click',
706
705
  ) {
707
706
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts
708
707
  ;/TerminatorNew_/.test(`${eventId}`) &&
709
708
  console.log(`当前h5的楼层模块eventId为====${eventId}`)
710
709
  if (eventId && jsonParam) {
711
710
  const { etModelInfo, logBaseInfo } = jsonParam
712
711
  let getJsonParam = {}
713
712
  if (etModelInfo && logBaseInfo) {
714
713
  getJsonParam = logBaseInfo
715
714
  } else {
716
715
  if (Array.isArray(jsonParam)){
717
716
  getJsonParam = jsonParam
718
717
  } else {
719
718
  getJsonParam = Object.assign(
720
719
  {},
721
720
  {
722
721
  shopid: global.info.queryInfo?.shopId,
723
722
  },
724
723
  jsonParam,
725
724
  )
726
725
  }
727
726
  }
728
727
  if(reportKey === 'exposure' && /^TerminatorNew/.test(eventId) && !Array.isArray(getJsonParam)){
729
728
  getJsonParam = [getJsonParam]
730
729
  }
731
730
  const webLogParams = {
732
731
  eid: eventId,
733
732
  elevel: eventLevel,
734
733
  jsonParam: JSON.stringify(getJsonParam),
735
734
  etModel: JSON.stringify(etModelInfo || {}),
736
735
  pageId: this.logPageId,
737
736
  pageParam: this.logPageParamStr,
738
737
  ...otherParams,
739
738
  }
740
739
  return /click|exposure/.test(reportKey)
741
740
  ? reportClick(webLogParams)
742
741
  : reportToCart(opts, webLogParams)
743
742
  } else {
744
743
  console.log('暂无埋点参数eventId和jsonParam')
745
744
  return Promise.resolve(false)
746
745
  }
747
746
  }
748
747
 
749
748
  exposureEventLog(opts) {
750
749
  return global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE
751
750
  ? this.clickEventLog(
752
751
  {
753
752
  ...opts,
754
753
  exposureState: true,
755
754
  },
756
755
  'exposure',
757
756
  )
758
757
  : Promise.resolve(false)
759
758
  }
759
+ import global from '../common';
760
760
  BUSINESS_TYPE,
761
761
  SHOP_MENU_ID_TYPE,
762
762
  SHOP_MENU_ID_NAME,
763
763
  SECTION_HOME_TAB_TYPE,
764
764
  SECTION_HOME_TAB_NAME_TYPE,
765
765
  objectToUrlEncode,
766
766
  parseQueryUrlString,
767
767
  filterUrlQueryData,
768
768
  isJdAndHarmonyDevice,
769
769
  showNormalToast,
770
770
  routerInfo: {
771
771
  params: {},
772
772
  },
773
773
  nativeEvent: null,
774
774
  jumpConfig: {
775
775
  venderId: null,
776
776
  shopId: null,
777
777
  sourceValue: '',
778
778
  sourceType: 'M-H5',
779
779
  activityType: 'shopx',
780
780
  moduleId: 'none',
781
781
  entrance: 'none',
782
782
  },
783
783
  logPageParamStr: '',
784
784
  public logPageId: string;
785
785
  public jumpConfig: JumpEventReportInterFace.JumpH5ReportConfig;
786
786
  getConfig(opt) {
787
787
  return Object.assign(this, {}, defaultConfig, opt);
788
788
  }
789
789
  updateInfo(routerInfo, logPname = LogPnameInfo.HOME, pageId = LogPageIdInfo.APP) {
790
790
  this.routerInfo = routerInfo;
791
791
  this.logPname = logPname;
792
792
  this.jumpConfig = Object.assign(
793
793
  {},
794
794
  this.jumpConfig,
795
795
  filterUrlQueryData(routerInfo?.params || {}),
796
796
  );
797
797
  this.logPageId = pageId;
798
798
  }
799
799
 
800
800
  reportInfoPv(
801
801
  pageId = LogPageIdInfo.APP,
802
802
  opt: {
803
803
  pageParam?: any;
804
804
  } = {},
805
805
  ) {
806
806
  const { pageParam, ...otherOpts } = opt;
807
807
  const pageParamStr = typeof pageParam === 'object' ? JSON.stringify(pageParam) : pageParam;
808
808
  this.logPageParamStr = pageParamStr ? pageParamStr : JSON.stringify(this.jumpConfig);
809
809
  return reportPV({
810
810
  pageId,
811
811
  pageParam: this.logPageParamStr,
812
812
  ...otherOpts,
813
813
  });
814
814
  }
815
815
 
816
816
  jdJumpToProduct(skuIds, logEventInfo) {
817
817
  skuIds = skuIds.toString().trim();
818
818
  const getSkuId = skuIds.indexOf(',') !== -1 ? skuIds.split(',')[0] : skuIds;
819
819
  const { jingxiSdx, ...otherLogInfo } = logEventInfo;
820
820
  if (jingxiSdx) {
821
821
  this.jdNavigateToNative(
822
822
  `${this.jumpWebUrl.detail}${getSkuId}.html?sdx=${jingxiSdx}`,
823
823
  otherLogInfo,
824
824
  );
825
825
  } else {
826
826
  this.jdNavigateToNative(`${this.jumpWebUrl.detail}${getSkuId}.html`, logEventInfo);
827
827
  }
828
828
  }
829
829
 
830
830
  jdJumpSkuInfoToProduct(skuInfo: any = {}, logEventInfo) {
831
831
  const getSkuId = skuInfo?.skuId;
832
832
  this.jdJumpToProduct(getSkuId, logEventInfo);
833
833
  }
834
834
 
835
835
  jdJumpToRankList(contentId: string | number, rankType = 10, logEventInfo) {
836
836
  const rankUrl = `${this.jumpWebUrl.rank}?contentId=${contentId}&sku=&rankType=${rankType}&fromName=dcpws&hideAd=1`;
837
837
  this.jdNavigateToNative(rankUrl, {
838
838
  contentId,
839
839
  ...logEventInfo,
840
840
  });
841
841
  }
842
842
 
843
843
  jdJumpToShopCategory(shopInfo) {
844
844
  this.jdNavigateToNative(
845
845
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
846
846
  this.getShopIdOrVenderIdParams(shopInfo),
847
847
  )}&tabActive=classify`,
848
848
  {
849
849
  ...shopInfo,
850
850
  },
851
851
  );
852
852
  }
853
853
 
854
854
  jdJumpToShopHome(shopInfo: JumpEventReportInterFace.ShopIdsInfo = {}) {
855
855
  const currentShopInfo = {
856
856
  shopId: global.info.queryInfo.shopId,
857
857
  venderId: global.info.queryInfo.venderId,
858
858
  };
859
859
  const restParams =
860
860
  (shopInfo?.shopId && shopInfo.shopId !== currentShopInfo.shopId) ||
861
861
  (shopInfo?.venderId && shopInfo.venderId !== currentShopInfo.venderId)
862
862
  ? {}
863
863
  : currentShopInfo;
864
864
  const getInfo = Object.assign({}, restParams, shopInfo);
865
865
  this.jdNavigateToNative(
866
866
  `${this.jumpWebUrl.mshop}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
867
867
  {
868
868
  ...getInfo,
869
869
  },
870
870
  );
871
871
  }
872
872
 
873
873
  jdJumpToShopLight(shopInfo) {
874
874
  this.jdNavigateToNative(
875
875
  `${this.jumpWebUrl.shopLight}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(shopInfo))}`,
876
876
  {
877
877
  ...shopInfo,
878
878
  },
879
879
  );
880
880
  }
881
881
 
882
882
  jdJumpToShopMember(shopInfo) {
883
883
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
884
884
  const memberHomeUrl =
885
885
  window?.shopGlobalSwitch?.openNewMemberEntry === 'true'
886
886
  ? this.jumpWebUrl.memberHome
887
887
  : this.jumpWebUrl.shopMember;
888
888
  this.jdJumpToWeb(
889
889
  `${memberHomeUrl}?${objectToUrlEncode(getShopInfo)}&venderType=1&channel=406`,
890
890
  shopInfo,
891
891
  );
892
892
  }
893
893
 
894
894
  jdJumpToShopMemberCard(shopInfo) {
895
895
  const { logEventInfo } = shopInfo;
896
896
  const getShopInfo = this.getShopIdOrVenderIdParams(shopInfo);
897
897
  this.jdJumpToWeb(
898
898
  `${this.jumpWebUrl.shopMember}?${objectToUrlEncode(getShopInfo)}`,
899
899
  logEventInfo,
900
900
  );
901
901
  }
902
902
 
903
903
  jdJumpToTotalPromotion(shopInfo) {
904
904
  const { url, logEventInfo } = shopInfo;
905
905
  if (this.isOpenJdAppUrl(url)) {
906
906
  const getOpenAppParams: any = this.jdOpenAppParams(url);
907
907
  if (getOpenAppParams) {
908
908
  if (getOpenAppParams?.activityId) {
909
909
  this.jdJumpToWeb(
910
910
  `${this.jumpWebUrl.totalPromotion}?activity_id=${getOpenAppParams?.activityId}`,
911
911
  shopInfo,
912
912
  );
913
913
  }
914
914
  }
915
915
  } else {
916
916
  this.jdJumpToWeb(url, logEventInfo);
917
917
  }
918
918
  }
919
919
 
920
920
  jdJumpToDongDongChat(paramInfo) {
921
921
  const getInfo = Object.assign(
922
922
  {},
923
923
  {
924
924
  venderId: global.info.queryInfo.venderId,
925
925
  },
926
926
  paramInfo,
927
927
  );
928
928
  const { venderId = '1', entry = 'm_shop', ...otherInfo } = getInfo;
929
929
  const dongdongUrl = `${this.jumpWebUrl.dongDongChat}?venderId=${venderId}&entry=${entry}&sceneval=2`;
930
930
  this.jdJumpToWeb(dongdongUrl, otherInfo);
931
931
  }
932
932
 
933
933
  jdJumpToShopDetail(shopInfo) {
934
934
  const getInfo = Object.assign(
935
935
  {},
936
936
  {
937
937
  shopId: global.info.queryInfo.shopId,
938
938
  venderId: global.info.queryInfo.venderId,
939
939
  },
940
940
  shopInfo,
941
941
  );
942
942
  const getShopInfo = this.getShopIdOrVenderIdParams(getInfo);
943
943
  this.jdJumpToWeb(`${this.jumpWebUrl.shopIntroduce}?${objectToUrlEncode(getShopInfo)}`, getInfo);
944
944
  }
945
945
 
946
946
  jdJumpToShopSearch(shopInfo) {
947
947
  const getInfo = Object.assign(
948
948
  {},
949
949
  {
950
950
  shopId: global.info.queryInfo.shopId,
951
951
  venderId: global.info.queryInfo.venderId,
952
952
  },
953
953
  shopInfo,
954
954
  );
955
955
  const {
956
956
  shopId,
957
957
  categoryId,
958
958
  keyword,
959
959
  pageId,
960
960
  description,
961
961
  shopName,
962
962
  keyWord,
963
963
  seller_actId,
964
964
  seller_actType,
965
965
  } = getInfo;
966
966
  const cateId = categoryId
967
967
  ? `&cateId=${typeof categoryId === 'string' ? categoryId?.trim() : categoryId}`
968
968
  : '';
969
969
  const addKeyWord = keyword || keyWord ? `&keyword=${keyword || keyWord}` : '';
970
970
  const addPageId = pageId ? `&pageId=${pageId}` : '';
971
971
  const searchDes = description ? `&description=${description}` : '';
972
972
  const shopNameDes = shopName ? `&shopName=${shopName}` : '';
973
973
  const searchType = categoryId ? 5 : keyword || keyWord ? 4 : 3;
974
974
  const activityId = seller_actId ? `&activityId=${seller_actId}` : '';
975
975
  const activityType = seller_actType ? `&activityType=${seller_actType}` : '';
976
976
  this.jdJumpToWeb(
977
977
  `${this.jumpWebUrl.shopSearch}?shopId=${shopId}&searchType=${searchType}${cateId}${addKeyWord}${addPageId}${searchDes}${shopNameDes}${activityId}${activityType}`,
978
978
  getInfo,
979
979
  );
980
980
  }
981
981
 
982
982
  jdJumpToWeb(
983
983
  url,
984
984
  logEventInfo,
985
985
  successBack?: Function | undefined,
986
986
  failBack?: Function | undefined,
987
987
  ) {
988
988
  console.log('web.base.ts - jdJumpToWeb');
989
989
  this.jdNavigateToNative(
990
990
  url,
991
991
  {
992
992
  ...logEventInfo,
993
993
  },
994
994
  successBack,
995
995
  failBack,
996
996
  );
997
997
  }
998
998
 
999
999
  jdJumpToWebInner(url, logEventInfo) {
1000
1000
  this.jdJumpToWeb(url, logEventInfo);
1001
1001
  }
1002
1002
 
1003
1003
  jdJumpToLive(liveInfo, logEventInfo = {}) {
1004
1004
  if (liveInfo?.liveId) {
1005
1005
  this.jdJumpToWeb(`${this.jumpWebUrl.mLive}/${liveInfo?.liveId}?origin=30`, logEventInfo);
1006
1006
  } else if (isJdAndHarmonyDevice) {
1007
1007
  const getShopLiveParams = this.jdOpenAppParams(liveInfo);
1008
1008
  console.log('getShopLiveParams=====', getShopLiveParams);
1009
1009
  if (typeof getShopLiveParams === 'object') {
1010
1010
  this.jdNavigateToNativeOpenApp({
1011
1011
  ...getShopLiveParams,
1012
1012
  logEventInfo,
1013
1013
  });
1014
1014
  }
1015
1015
  }
1016
1016
  }
1017
1017
 
1018
1018
  jdJumpToShopActivity(shopInfo) {
1019
1019
  const { configDataValue, logEventInfo, projectId } = shopInfo;
1020
1020
  if (projectId && configDataValue) {
1021
1021
  this.jdJumpToWeb(
1022
1022
  `${this.jumpWebUrl.shopSecondActivity}${configDataValue.data}.html`,
1023
1023
  logEventInfo,
1024
1024
  );
1025
1025
  }
1026
1026
  }
1027
1027
 
1028
1028
  jdJumpToActivityPlace(spUrl, logEventInfo) {
1029
1029
  this.jdNavigateToNative(spUrl, logEventInfo);
1030
1030
  }
1031
1031
 
1032
1032
  jdJumpConfigUrl(detail, logEventInfo = {}) {
1033
1033
  const { configDataType, configDataValue } = detail;
1034
1034
  console.log('jdJumpConfigUrl web.base configDataType:', configDataType, configDataValue);
1035
1035
  switch (configDataType) {
1036
1036
  case LinkConfigType.CONFIG_TYPE_SKU_LIST:
1037
1037
  if (logEventInfo?.jsonParam?.logBaseInfo?.mInfo) {
1038
1038
  logEventInfo.jsonParam.logBaseInfo.mInfo.skuid = configDataValue.skuIds;
1039
1039
  }
1040
1040
  if (
1041
1041
  isJdAndHarmonyDevice &&
1042
1042
  global.info?.nonSellableSkuids?.[configDataValue.nonSellableKey]
1043
1043
  ) {
1044
1044
  showNormalToast({ title: '商品暂不可购买,请查看店内其他商品' });
1045
1045
  return;
1046
1046
  }
1047
1047
  this.jdJumpToProduct(configDataValue.skuIds, logEventInfo);
1048
1048
  break;
1049
1049
  case LinkConfigType.CONFIG_TYPE_COUPON_LIST:
1050
1050
  this.jdJumpToWeb(
1051
1051
  `${this.jumpWebUrl.shopCoupon}?couponType=1&shopId=${global.info.queryInfo.shopId}&venderId=${global.info.queryInfo.venderId}`,
1052
1052
  {},
1053
1053
  );
1054
1054
  break;
1055
1055
  case LinkConfigType.CONFIG_TYPE_CATEGORY:
1056
1056
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1057
1057
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1058
1058
  getShopSearchParams &&
1059
1059
  this.jdJumpToShopSearch(
1060
1060
  Object.assign({}, getShopSearchParams, {
1061
1061
  logEventInfo,
1062
1062
  }),
1063
1063
  );
1064
1064
  } else {
1065
1065
  this.jdJumpToShopSearch(
1066
1066
  configDataValue['cid']
1067
1067
  ? Object.assign(
1068
1068
  {},
1069
1069
  {
1070
1070
  shopId: global.info.queryInfo.shopId,
1071
1071
  categoryId: configDataValue.cid,
1072
1072
  ...configDataValue,
1073
1073
  logEventInfo,
1074
1074
  },
1075
1075
  )
1076
1076
  : {
1077
1077
  shopId: global.info.queryInfo.shopId,
1078
1078
  logEventInfo,
1079
1079
  },
1080
1080
  );
1081
1081
  }
1082
1082
  break;
1083
1083
  case LinkConfigType.CONFIG_TYPE_CATEGORY_PAGE:
1084
1084
  this.jdJumpToShopCategory({
1085
1085
  ...configDataValue,
1086
1086
  logEventInfo,
1087
1087
  });
1088
1088
  break;
1089
1089
  case LinkConfigType.CONFIG_TYPE_MEMBER:
1090
1090
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1091
1091
  const getShopMemberParams = this.jdOpenAppParams(configDataValue.clickUrl);
1092
1092
  getShopMemberParams &&
1093
1093
  this.jdJumpToShopMember(
1094
1094
  Object.assign({}, getShopMemberParams, {
1095
1095
  logEventInfo,
1096
1096
  }),
1097
1097
  );
1098
1098
  } else {
1099
1099
  this.jdJumpToShopMember({
1100
1100
  shopId: global.info.queryInfo.shopId,
1101
1101
  venderId: configDataValue.shopDetail,
1102
1102
  logEventInfo,
1103
1103
  });
1104
1104
  }
1105
1105
  break;
1106
1106
  case LinkConfigType.CONFIG_TYPE_SHOP_ACTIVITY:
1107
1107
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1108
1108
  const getShopActivityParams = this.jdOpenAppParams(configDataValue.clickUrl);
1109
1109
  if (getShopActivityParams && getShopActivityParams['des'] == 'jshopActivity') {
1110
1110
  this.jdJumpToShopActivity({
1111
1111
  projectId: configDataValue['projectId'],
1112
1112
  configDataValue,
1113
1113
  logEventInfo,
1114
1114
  });
1115
1115
  }
1116
1116
  } else if (configDataValue['projectId']) {
1117
1117
  this.jdJumpToShopActivity({
1118
1118
  projectId: configDataValue['projectId'],
1119
1119
  configDataValue,
1120
1120
  logEventInfo,
1121
1121
  });
1122
1122
  }
1123
1123
  break;
1124
1124
  case LinkConfigType.CONFIG_TYPE_CUSTOM_LINK:
1125
1125
  case LinkConfigType.CONFIG_TYPE_FINANCE_COUPON:
1126
1126
  const _url = configDataValue.linkUrl;
1127
1127
  const isProductM = /item\.m\.jd\.com/.test(_url);
1128
1128
  const isProductPC = /item\.jd\.com/.test(_url);
1129
1129
  if (
1130
1130
  _url.indexOf('to=') === -1 &&
1131
1131
  _url.indexOf(`${domain.mshop.replace(/https?:/, '')}/?shopId=`) !== -1
1132
1132
  ) {
1133
1133
  const _shopId = _url.match(/\d+/g)[0];
1134
1134
  this.jdJumpToShopHome({
1135
1135
  shopId: `${_shopId}`,
1136
1136
  logEventInfo,
1137
1137
  });
1138
1138
  } else if (this.isOpenJdAppUrl(_url)) {
1139
1139
  const getOpenAppParams: any = this.jdOpenAppParams(_url);
1140
1140
  if (getOpenAppParams) {
1141
1141
  if (getOpenAppParams.jumpTab == 'allProduct') {
1142
1142
  this.jdJumpToTabAllProduct(
1143
1143
  global.info.queryInfo.shopId || getOpenAppParams?.shopId,
1144
1144
  global.info.queryInfo.venderId || getOpenAppParams?.venderId,
1145
1145
  );
1146
1146
  } else if (
1147
1147
  getOpenAppParams.des == 'productList' &&
1148
1148
  getOpenAppParams.from == 'couponBatch'
1149
1149
  ) {
1150
1150
  this.jdJumpToCouponSearchProductList(getOpenAppParams?.couponId);
1151
1151
  } else if (getOpenAppParams.des == 'vapp') {
1152
1152
  this.jdJumpToWeb(
1153
1153
  `https://conecli.com/apps/mpshare/index.html?category=${
1154
1154
  getOpenAppParams.category
1155
1155
  }&des=${getOpenAppParams.des}&vapptype=${getOpenAppParams.vapptype}&appId=${
1156
1156
  getOpenAppParams.appId
1157
1157
  }&path=${getOpenAppParams.path}&param=${encodeURI(
1158
1158
  JSON.stringify(getOpenAppParams.param),
1159
1159
  )}`,
1160
1160
  logEventInfo,
1161
1161
  );
1162
1162
  } else {
1163
1163
  this.jdNavigateToNative(
1164
1164
  '',
1165
1165
  Object.assign({}, getOpenAppParams, {
1166
1166
  logEventInfo,
1167
1167
  }),
1168
1168
  );
1169
1169
  }
1170
1170
  }
1171
1171
  } else if (isProductM || isProductPC) {
1172
1172
  const skuid = _url.match(/\d+/g)[0];
1173
1173
  if (skuid) {
1174
1174
  this.jdJumpToProduct(skuid, logEventInfo);
1175
1175
  }
1176
1176
  } else {
1177
1177
  this.jdJumpToWeb(_url, logEventInfo);
1178
1178
  }
1179
1179
  break;
1180
1180
  case LinkConfigType.CONFIG_TYPE_JSHOP_DETAIL:
1181
1181
  this.jdJumpToShopDetail({
1182
1182
  venderId: global.info.queryInfo.venderId,
1183
1183
  shopId: global.info.queryInfo.shopId,
1184
1184
  logEventInfo,
1185
1185
  });
1186
1186
  break;
1187
1187
  case LinkConfigType.CONFIG_TYPE_SHOP_HOME:
1188
1188
  this.jdJumpToShopHome({
1189
1189
  ...configDataValue,
1190
1190
  logEventInfo,
1191
1191
  });
1192
1192
  break;
1193
1193
  case LinkConfigType.CONFIG_TYPE_ANCHOR_POINT:
1194
1194
  break;
1195
1195
  case LinkConfigType.CONFIG_TYPE_SHOPPING_GUIDE:
1196
1196
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1197
1197
  const getShoppingGuideParams = this.jdOpenAppParams(configDataValue.clickUrl);
1198
1198
  getShoppingGuideParams &&
1199
1199
  this.jdJumpToShopActivity(
1200
1200
  Object.assign({}, getShoppingGuideParams, {
1201
1201
  logEventInfo,
1202
1202
  }),
1203
1203
  );
1204
1204
  }
1205
1205
  break;
1206
1206
  case LinkConfigType.CONFIG_TYPE_MINI_PROGRAM: {
1207
1207
  const linkUrl = decodeURIComponent(configDataValue?.linkUrl || '');
1208
1208
  const search = linkUrl.match(/\?.+/);
1209
1209
  if (search) {
1210
1210
  const miniQueryData: JumpEventReportInterFace.LinkMiniParams =
1211
1211
  parseQueryUrlString(linkUrl);
1212
1212
  try {
1213
1213
  miniQueryData.param = JSON.parse(<string>miniQueryData?.param);
1214
1214
  } catch (e) {
1215
1215
  console.warn('解析小程序 param 错误:', miniQueryData.param);
1216
1216
  }
1217
1217
  this.jdJumpToMiniProgram(miniQueryData);
1218
1218
  } else {
1219
1219
  console.warn('小程序地址错误:', linkUrl);
1220
1220
  }
1221
1221
  break;
1222
1222
  }
1223
1223
  case LinkConfigType.CONFIG_TYPE_SHOP_SEARCH: {
1224
1224
  if (this.isOpenJdAppUrl(configDataValue.clickUrl)) {
1225
1225
  const getShopSearchParams = this.jdOpenAppParams(configDataValue.clickUrl);
1226
1226
  console.log('web base 获取店铺结果落地页链接解析后的参数结果', getShopSearchParams);
1227
1227
  getShopSearchParams &&
1228
1228
  this.jdJumpToShopSearch(
1229
1229
  Object.assign({}, getShopSearchParams, {
1230
1230
  logEventInfo,
1231
1231
  }),
1232
1232
  );
1233
1233
  } else {
1234
1234
  this.jdJumpToWeb(configDataValue.clickUrl, logEventInfo);
1235
1235
  }
1236
1236
  break;
1237
1237
  }
1238
1238
  default:
1239
1239
  }
1240
1240
  }
1241
1241
 
1242
1242
  jdJumpToTabAllProduct(shopId, venderId, logEventInfo = {}) {
1243
1243
  console.log('web.base.ts - jdJumpToTabAllProduct');
1244
1244
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1245
1245
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1246
1246
  this.jdJumpToWeb(
1247
1247
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode({
1248
1248
  shopId,
1249
1249
  venderId,
1250
1250
  tabActive: 'home-product',
1251
1251
  })}`,
1252
1252
  logEventInfo,
1253
1253
  );
1254
1254
  }
1255
1255
 
1256
1256
  jdJumpToTabAllProductInner(shopId, venderId, logEventInfo = {}) {
1257
1257
  if (typeof shopId === 'undefined') shopId = global.info.queryInfo.shopId;
1258
1258
  if (typeof venderId === 'undefined') venderId = global.info.queryInfo.venderId;
1259
1259
  this.jdJumpToTabAllProduct(shopId, venderId, logEventInfo);
1260
1260
  }
1261
1261
 
1262
1262
  jdJumpToTopTabBase(type, shopInfo = {}) {
1263
1263
  const getInfo = Object.assign(
1264
1264
  {},
1265
1265
  {
1266
1266
  shopId: global.info.queryInfo.shopId,
1267
1267
  venderId: global.info.queryInfo.venderId,
1268
1268
  },
1269
1269
  shopInfo,
1270
1270
  );
1271
1271
  this.jdJumpToWeb(
1272
1272
  `${this.jumpWebUrl.shopHome}?${objectToUrlEncode(
1273
1273
  this.getShopIdOrVenderIdParams(getInfo),
1274
1274
  )}&tabActive=${type}`,
1275
1275
  getInfo,
1276
1276
  );
1277
1277
  }
1278
1278
 
1279
1279
  jdJumpToTabNew(shopInfo = {}) {
1280
1280
  console.log('上新tab');
1281
1281
  this.jdJumpToTopTabBase(
1282
1282
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_NEW_PRODUCT],
1283
1283
  shopInfo,
1284
1284
  );
1285
1285
  }
1286
1286
 
1287
1287
  jdJumpToTabNewInner(shopInfo = {}) {
1288
1288
  this.jdJumpToTabNew(shopInfo);
1289
1289
  }
1290
1290
 
1291
1291
  jdJumpToTabRank(shopInfo = {}) {
1292
1292
  console.log('榜单tab');
1293
1293
  this.jdJumpToTopTabBase(SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_RANK], shopInfo);
1294
1294
  }
1295
1295
  jdJumpToTabRankInner(shopInfo = {}) {
1296
1296
  this.jdJumpToTabRank(shopInfo);
1297
1297
  }
1298
1298
  jdJumpToTabBuyerShow(shopInfo = {}) {
1299
1299
  console.log('买家秀tab');
1300
1300
  this.jdJumpToTopTabBase(
1301
1301
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_BUYER_SHOW],
1302
1302
  shopInfo,
1303
1303
  );
1304
1304
  }
1305
1305
  jdJumpToTabBuyerShowInner(shopInfo = {}) {
1306
1306
  this.jdJumpToTabBuyerShow(shopInfo);
1307
1307
  }
1308
1308
  jdJumpToTabActivity(shopInfo = {}) {
1309
1309
  console.log('活动tab');
1310
1310
  this.jdJumpToTopTabBase(
1311
1311
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_ACTIVITY],
1312
1312
  shopInfo,
1313
1313
  );
1314
1314
  }
1315
1315
  jdJumpToTabActivityInner(shopInfo = {}) {
1316
1316
  this.jdJumpToTabActivity(shopInfo);
1317
1317
  }
1318
1318
  jdJumpToTabSecKill(shopInfo = {}) {
1319
1319
  console.log('秒杀tab');
1320
1320
  this.jdJumpToTopTabBase(
1321
1321
  SECTION_HOME_TAB_NAME_TYPE[SECTION_HOME_TAB_TYPE.HOME_SECKILL],
1322
1322
  shopInfo,
1323
1323
  );
1324
1324
  }
1325
1325
  jdJumpToTabSecKillInner(shopInfo = {}) {
1326
1326
  this.jdJumpToTabSecKill(shopInfo);
1327
1327
  }
1328
1328
 
1329
1329
  jdJumpToBottomTabBase(type, shopInfo = {}) {
1330
1330
  this.jdJumpToTopTabBase(type, shopInfo);
1331
1331
  }
1332
1332
  jdJumpToBottomTabProduct(shopInfo = {}) {
1333
1333
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.PRODUCT], shopInfo);
1334
1334
  }
1335
1335
  jdJumpToBottomTabCategory(shopInfo = {}) {
1336
1336
  this.jdJumpToBottomTabBase(SHOP_MENU_ID_NAME[SHOP_MENU_ID_TYPE.CLASSIFY], shopInfo);
1337
1337
  }
1338
1338
  jdJumpToBottomTabFind(shopInfo = {}) {
1339
1339
  console.log('发现tab');
1340
1340
  }
1341
1341
  jdJumpToBottomTabBrandMember(shopInfo = {}) {
1342
1342
  const getInfo = Object.assign(
1343
1343
  {},
1344
1344
  {
1345
1345
  shopId: global.info.queryInfo.shopId,
1346
1346
  venderId: global.info.queryInfo.venderId,
1347
1347
  },
1348
1348
  shopInfo,
1349
1349
  );
1350
1350
  this.jdJumpToWeb(
1351
1351
  `${this.jumpWebUrl.memberHome}?${objectToUrlEncode(this.getShopIdOrVenderIdParams(getInfo))}`,
1352
1352
  getInfo,
1353
1353
  );
1354
1354
  }
1355
1355
  jdJumpToBottomTabBrandMemberInner(shopInfo = {}) {
1356
1356
  this.jdJumpToBottomTabBrandMember(shopInfo);
1357
1357
  }
1358
1358
 
1359
1359
  jdJumpToCouponSearchProductList(couponId, logEventInfo = {}) {
1360
1360
  this.jdJumpToWeb(
1361
1361
  `${this.jumpWebUrl.couponSearch}?couponbatch=${couponId}&sceneval=2`,
1362
1362
  logEventInfo,
1363
1363
  );
1364
1364
  }
1365
1365
 
1366
1366
  jdNavigateToNative(
1367
1367
  url: string,
1368
1368
  params: {
1369
1369
  logEventInfo?: object;
1370
1370
  } = {},
1371
1371
  successBack?: Function | undefined,
1372
1372
  failBack?: Function | undefined,
1373
1373
  ) {
1374
1374
  const { logEventInfo } = params;
1375
1375
  const getEparam = logEventInfo || params;
1376
1376
  console.log(`url:::::::${url}`);
1377
1377
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
1378
1378
  this.clickEventLog(getEparam)
1379
1379
  .then(() => {
1380
1380
  typeof successBack === 'function' ? successBack(url) : (window.location.href = url);
1381
1381
  })
1382
1382
  .catch(() => {
1383
1383
  typeof failBack === 'function' && failBack(url);
1384
1384
  });
1385
1385
  }
1386
1386
 
1387
1387
  jdNavigateToNativeOpenApp(
1388
1388
  params: {},
1389
1389
  url = 'openapp.jdmobile://virtual',
1390
1390
  successBack?: Function | null,
1391
1391
  failBack?: Function | null,
1392
1392
  ) {
1393
1393
  console.log('[降级H5] jdNavigateToNative web.base:', params);
1394
1394
  const getResParams: JumpEventReportInterFace.JdMiniJumpParams = Object.assign(
1395
1395
  {},
1396
1396
  {
1397
1397
  sourceValue: 'sourceValue_jshopModuleWeb',
1398
1398
  sourceType: 'sourceType_jshopModuleWeb',
1399
1399
  param: {},
1400
1400
  },
1401
1401
  params,
1402
1402
  );
1403
1403
  const { logEventInfo, ...otherParams } = getResParams;
1404
1404
  console.log('jd web 获取open协议参数 jdNavigateToNative params: ', getResParams);
1405
1405
  console.log('logEventInfo params: ', logEventInfo);
1406
1406
  global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE &&
1407
1407
  this.clickEventLog(logEventInfo || getResParams)
1408
1408
  .then(() => {
1409
1409
  if (typeof successBack === 'function') {
1410
1410
  successBack(getResParams);
1411
1411
  } else {
1412
1412
  try {
1413
1413
  const paramsStr = JSON.stringify(otherParams);
1414
1414
  console.log('跳转web jd open协议', `${url}?params=${paramsStr}`);
1415
1415
  window.location.href = `${url}?params=${paramsStr}`;
1416
1416
  } catch (e) {
1417
1417
  console.log('跳转异常', e);
1418
1418
  }
1419
1419
  }
1420
1420
  })
1421
1421
  .catch(() => {
1422
1422
  typeof failBack === 'function' && failBack(getResParams);
1423
1423
  });
1424
1424
  }
1425
1425
 
1426
1426
  clickEventLog(opts: JumpEventReportInterFace.OptEventLogParams = {}, reportKey = 'click') {
1427
1427
  const { eventId, jsonParam, eventLevel = 3, ...otherParams } = opts;
1428
1428
  /TerminatorNew_/.test(`${eventId}`) && console.log(`当前h5的楼层模块eventId为====${eventId}`);
1429
1429
  if (eventId && jsonParam) {
1430
1430
  const { etModelInfo, logBaseInfo } = jsonParam;
1431
1431
  let getJsonParam = {};
1432
1432
  if (etModelInfo && logBaseInfo) {
1433
1433
  getJsonParam = logBaseInfo;
1434
1434
  } else {
1435
1435
  if (Array.isArray(jsonParam)) {
1436
1436
  getJsonParam = jsonParam;
1437
1437
  } else {
1438
1438
  getJsonParam = Object.assign(
1439
1439
  {},
1440
1440
  {
1441
1441
  shopid: global.info.queryInfo?.shopId,
1442
1442
  },
1443
1443
  jsonParam,
1444
1444
  );
1445
1445
  }
1446
1446
  }
1447
1447
  if (
1448
1448
  reportKey === 'exposure' &&
1449
1449
  /^TerminatorNew/.test(eventId) &&
1450
1450
  !Array.isArray(getJsonParam)
1451
1451
  ) {
1452
1452
  getJsonParam = [getJsonParam];
1453
1453
  }
1454
1454
  const webLogParams = {
1455
1455
  isExpo: reportKey === 'exposure',
1456
1456
  eid: eventId,
1457
1457
  elevel: eventLevel,
1458
1458
  jsonParam: JSON.stringify(getJsonParam),
1459
1459
  etModel: JSON.stringify(etModelInfo || {}),
1460
1460
  pageId: this.logPageId,
1461
1461
  pageParam: this.logPageParamStr,
1462
1462
  ...otherParams,
1463
1463
  };
1464
1464
  return /click|exposure/.test(reportKey)
1465
1465
  ? reportClick(webLogParams)
1466
1466
  : reportToCart(opts, webLogParams);
1467
1467
  } else {
1468
1468
  console.log('暂无埋点参数eventId和jsonParam');
1469
1469
  return Promise.resolve(false);
1470
1470
  }
1471
1471
  }
1472
1472
 
1473
1473
  exposureEventLog(opts) {
1474
1474
  return global.info.pageInfo.dataType === BUSINESS_TYPE.ONLINE
1475
1475
  ? this.clickEventLog(
1476
1476
  {
1477
1477
  ...opts,
1478
1478
  exposureState: true,
1479
1479
  },
1480
1480
  'exposure',
1481
1481
  )
1482
1482
  : Promise.resolve(false);
1483
1483
  }