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

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 {
2
1
  isApp,
3
2
  isIOS,
4
3
  getAppVersion,
5
4
  version,
6
5
  getUUID,
7
6
  getUrlQuery,
8
7
  assign,
9
8
  isString,
10
9
  isObject,
11
10
  serialize,
12
11
  isAndroid,
13
12
  versionCompare,
14
13
  isIPad,
15
14
  CHANNEL_TYPE,
16
15
  JDShopViewBusinessPathType,
17
16
  JDShopViewBusinessPathList,
18
17
  SECTION_HOME_TAB_NAME_TYPE,
19
18
  SECTION_HOME_TAB_TYPE,
20
19
  DraBuryPointFlags,
21
20
  MPAAS_CONFIG_APP_VERSION,
22
21
  window?.location?.href ?? '',
23
22
  new Promise((resolve, reject) => {
24
23
  if (window?.__sgm__) {
25
24
  resolve(true)
26
25
  } else {
27
26
  if (isSgmReadyError) {
28
27
  console.log('当前sgm初始化失败')
29
28
  reject(false)
30
29
  } else {
31
30
  ready('__sgm__', 2000)
32
31
  .then(() => {
33
32
  isSgmReadyError = false
34
33
  console.log('当前sgm初始化成功')
35
34
  resolve(true)
36
35
  })
37
36
  .catch(() => {
38
37
  isSgmReadyError = true
39
38
  console.log('当前sgm初始化失败')
40
39
  reject(false)
41
40
  })
42
41
  }
43
42
  }
44
43
  })
45
44
  console.log(message)
46
45
  reject(new Error(message))
47
46
  return ready('dra', 2000)
48
47
  .then(() => {
49
48
  isNewDraSdkReadyError = false
50
49
  console.log('当前新版烛龙sdk初始化成功')
51
50
  return true
52
51
  })
53
52
  .catch(() => {
54
53
  isNewDraSdkReadyError = true
55
54
  throw new Error('当前新版烛龙sdk初始化失败')
56
55
  })
57
56
  return new Promise((resolve, reject) => {
58
57
  if (window?.dra) {
59
58
  resolve(true)
60
59
  } else if (isNewDraSdkReadyError) {
61
60
  logAndReject('当前新版烛龙sdk初始化失败', reject)
62
61
  } else {
63
62
  initializeDraSdk()
64
63
  .then(resolve)
65
64
  .catch((error) => logAndReject(error.message, reject))
66
65
  }
67
66
  })
68
67
  try {
69
68
  return JSON.parse(decodeURIComponent(getUrlQuery('cookie')))
70
69
  } catch (e) {
71
70
  return {}
72
71
  }
73
72
  isWxMiniH5View && urlCookie['wxapp_type'] == '1'
74
73
  window.shopGlobalSwitch?.isH5AndJdShopViewH5ScrollVersion || ''
75
74
  !!document.getElementById('mallType') &&
76
75
  !!document.getElementById('pageInstance_id') &&
77
76
  !!document.getElementById('pageInstance_appId')
78
77
  isTjScence &&
79
78
  isWxMiniH5View &&
80
79
  (urlCookie['wxapp_type'] == '2' ||
81
80
  cookie.get('wxapp_type') == '2' ||
82
81
  parseQueryUrlObj['tjChannel'] === 'jxxcx')
83
82
  isTjScence && isWxMiniH5View && parseQueryUrlObj['sourceApp'] === 'haowujie'
84
83
  isTjScence &&
85
84
  (parseQueryUrlObj['appCode'] === 'ms27cba806' ||
86
85
  document.referrer?.match(/(?:https?:)?\/\/(?:kpl\.m|css|cs)\.jd\.com/i)
87
86
  ?.length ||
88
87
  (parseQueryUrlObj['sourceApp'] == 'jsb-m' &&
89
88
  parseQueryUrlObj['appCode'] === '') ||
90
89
  parseQueryUrlObj['tjChannel'] === 'tjm')
91
90
  if (isH5AdnJxMini) {
92
91
  return 'jxxcx'
93
92
  } else if (isTJApp) {
94
93
  return 'tjapp'
95
94
  } else if (isTjM) {
96
95
  return 'tjm'
97
96
  } else if (isTjJxM) {
98
97
  return 'jxh5'
99
98
  }
100
99
  return ''
101
100
  START: 'start',
102
101
  MOVE: 'move',
103
102
  END: 'end',
104
103
  x: 0,
105
104
  y: 0,
106
105
  const startX = startPos.x
107
106
  const startY = startPos.y
108
107
  const endX = touchEvent.clientX
109
108
  const endY = touchEvent.clientY
110
109
  const dy = startY - endY
111
110
  const dx = endX - startX
112
111
  let result = 0
113
112
  if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {
114
113
  return result
115
114
  }
116
115
  const angle = (Math.atan2(dy, dx) * 180) / Math.PI
117
116
  if (angle >= -45 && angle < 45) {
118
117
  result = 4
119
118
  } else if (angle >= 45 && angle < 135) {
120
119
  result = 1
121
120
  } else if (angle >= -135 && angle < -45) {
122
121
  result = 2
123
122
  } else if (
124
123
  (angle >= 135 && angle <= 180) ||
125
124
  (angle >= -180 && angle < -135)
126
125
  ) {
127
126
  result = 3
128
127
  }
129
128
  return result
130
129
  e: Event,
131
130
  touchType = TouchType.START,
132
131
  stopTouchDocumentScrollState = false,
133
132
  if (isJdApp && e) {
134
133
  const touchEvent = e?.originalEvent?.targetTouches[0] || e?.targetTouches[0]
135
134
  let _touchState = touchType
136
135
  let _getDirectionState = false
137
136
  if (touchType === TouchType.START) {
138
137
  StopNativeScrollEventPos.x = touchEvent.clientX
139
138
  StopNativeScrollEventPos.y = touchEvent.clientY
140
139
  } else if (touchType === TouchType.MOVE) {
141
140
  _getDirectionState = [1, 2].includes(
142
141
  touchMoveGetSlideDirection(StopNativeScrollEventPos, touchEvent),
143
142
  )
144
143
  if (_getDirectionState) {
145
144
  _touchState = TouchType.END
146
145
  }
147
146
  console.log(
148
147
  '对外提供阻止横滑方法,当前touchType为move,设定1、2向上或向下方向,当前计算后的滑动是否为纵向',
149
148
  _getDirectionState,
150
149
  )
151
150
  } else if (touchType === TouchType.END) {
152
151
  StopNativeScrollEventPos.x = 0
153
152
  StopNativeScrollEventPos.y = 0
154
153
  }
155
154
  isIosDevice
156
155
  ? iosDeviceStopNativeScrollEvent(
157
156
  e,
158
157
  _touchState,
159
158
  stopTouchDocumentScrollState,
160
159
  )
161
160
  : androidDeviceStopNativeScrollEvent(
162
161
  _touchState,
163
162
  stopTouchDocumentScrollState,
164
163
  )
165
164
  if (
166
165
  !isAppHomeForMarketPage &&
167
166
  stopTouchDocumentScrollState &&
168
167
  _touchState === TouchType.START
169
168
  ) {
170
169
  rootEleNode && rootEleNode.classList.add('over-hidden')
171
170
  }
172
171
  if (_touchState === TouchType.MOVE && _getDirectionState) {
173
172
  rootEleNode &&
174
173
  rootEleNode.classList.contains('over-hidden') &&
175
174
  rootEleNode.classList.remove('over-hidden')
176
175
  } else if (_touchState === TouchType.END) {
177
176
  setTimeout(
178
177
  () => {
179
178
  rootEleNode &&
180
179
  rootEleNode.classList.contains('over-hidden') &&
181
180
  rootEleNode.classList.remove('over-hidden')
182
181
  },
183
182
  isAppHomeForMarketPage || _getDirectionState ? 0 : 200,
184
183
  )
185
184
  }
186
185
  }
187
186
  touchType = TouchType.START,
188
187
  stopTouchDocumentScrollState = false,
189
188
  isJdApp &&
190
189
  touchType !== TouchType.MOVE &&
191
190
  isAndroidDevice &&
192
191
  window?.JdAndroid &&
193
192
  window?.JdAndroid.requestEvent(touchType === TouchType.START)
194
193
  console.log(
195
194
  '对外提供阻止安卓横滑方法,true-禁止外部事件H5可滑动,false-外部拦截h5事件,当前touchType为',
196
195
  touchType,
197
196
  '当前非move触发requestEvent状态为',
198
197
  touchType === TouchType.START,
199
198
  '当前stopTouchDocumentScrollState为',
200
199
  stopTouchDocumentScrollState,
201
200
  )
202
201
  e,
203
202
  touchType = TouchType.START,
204
203
  stopTouchDocumentScrollState = false,
205
204
  e && e.stopPropagation()
206
205
  console.log(
207
206
  '对外提供阻止ios横滑方法,当前touchType为',
208
207
  touchType,
209
208
  '当前stopTouchDocumentScrollState为',
210
209
  stopTouchDocumentScrollState,
211
210
  )
212
211
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage?.({
213
212
  method: 'callRouterModuleWithParams',
214
213
  params: {
215
214
  routerURL: 'router://JDShopModule/processShoph5SlideState',
216
215
  routerParam: {
217
216
  slideDirection: 'horizontal',
218
217
  state: touchType,
219
218
  },
220
219
  callBackId: new Date().getTime(),
221
220
  },
222
221
  })
223
222
  if (isH5AndJdShopView) {
224
223
  return (
225
224
  CHANNEL_TYPE[currentChannel] ||
226
225
  CHANNEL_TYPE[JDShopViewBusinessPathType.HOME]
227
226
  )
228
227
  }
229
228
  return null
230
229
  isH5 &&
231
230
  isJdApp &&
232
231
  [
233
232
  '/app/home',
234
233
  '/app/classify',
235
234
  '/member/shopcard',
236
235
  '/favorite/list',
237
236
  '/favorite/home',
238
237
  ].includes(urlPathname)
239
238
  isH5 && isJdApp && !['/app/home'].includes(urlPathname)
240
239
  ['/app/home'].includes(urlPathname) &&
241
240
  menuObj.tabActiveType != SECTION_HOME_TAB_TYPE.HOME_PROMOTION &&
242
241
  menuObj.tabActiveType != SECTION_HOME_TAB_TYPE.HOME_MEMBER
243
242
  isAppHomePage && parseQueryUrlObj['source'] === 'app-marketing'
244
243
  isH5 &&
245
244
  isAppHomePage &&
246
245
  versionCompare(
247
246
  jdAppVersion?.full ? jdAppVersion.full : '',
248
247
  isH5AndJdShopViewH5ScrollVersion,
249
248
  ) >= 0
250
249
  compareVersion,
251
250
  nowVersion = jdAppVersionStr,
252
251
  return isJdApp ? versionCompare(nowVersion, compareVersion) : -2
253
252
  getSgmReadyPromise()
254
253
  .then(() => {
255
254
  if (
256
255
  customObj.hasOwnProperty('code') &&
257
256
  customObj.code.indexOf(NO_ENVIRONMENT_AND_PAGE_TYPE_FLAG) !== -1
258
257
  ) {
259
258
  const originCode = customObj.code.substring(
260
259
  NO_ENVIRONMENT_AND_PAGE_TYPE_FLAG.length,
261
260
  customObj.code.length,
262
261
  )
263
262
  customObj['code'] = getSgmCustomCode(
264
263
  handleSgmCodeTaroVersion(originCode),
265
264
  )
266
265
  }
267
266
  const getCustomObj = {
268
267
  type: 1,
269
268
  code: 'all',
270
269
  cost1: 1,
271
270
  ...customObj,
272
271
  }
273
272
  try {
274
273
  window.__sgm__.custom(getCustomObj, '9HwAEg@fTtWBB3EnwA5VgLT')
275
274
  } catch (e) {
276
275
  console.log('当前sgm上报异常, 原始数据为', JSON.stringify(customObj))
277
276
  }
278
277
  })
279
278
  .catch(() => {
280
279
  console.error(
281
280
  '当前页面sgm加载异常,无法进行异常上报, 原始数据为',
282
281
  JSON.stringify(customObj),
283
282
  )
284
283
  })
285
284
  customContextObj = {},
286
285
  customMetricsObj = {},
287
286
  name?,
288
287
  try {
289
288
  await getNewDraSdkReadyPromise()
290
289
  const draBurypointFlag = name ?? DraBuryPointFlags.BUSINESS
291
290
  const commonObj = {
292
291
  shopId: `${global.info.queryInfo.shopId || ''}`,
293
292
  venderId: `${global.info.queryInfo.venderId || ''}`,
294
293
  taroRenderVersion: window?.taroRenderVersion,
295
294
  environmentType: getEnvironmentType(),
296
295
  pageType: getPageType(),
297
296
  }
298
297
  try {
299
298
  window.dra.sendCustomEvent(
300
299
  {
301
300
  name: draBurypointFlag,
302
301
  metrics: {
303
302
  timeStamp: Date.now(),
304
303
  ...customMetricsObj,
305
304
  },
306
305
  context: {
307
306
  ...commonObj,
308
307
  ...customContextObj,
309
308
  },
310
309
  },
311
310
  true,
312
311
  )
313
312
  } catch (e) {
314
313
  console.error(
315
314
  '当前新版烛龙sdk上报异常, 原始数据为',
316
315
  JSON.stringify({ ...customContextObj, ...customMetricsObj }),
317
316
  'e',
318
317
  e,
319
318
  )
320
319
  }
321
320
  } catch (e) {
322
321
  console.error(
323
322
  '当前页面新版烛龙sdk加载异常,无法进行异常上报, 原始数据为',
324
323
  JSON.stringify({ ...customContextObj, ...customMetricsObj }),
325
324
  'e',
326
325
  e,
327
326
  )
328
327
  }
329
328
  customContextObj = {},
330
329
  customMetricsObj = {},
331
330
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.REMOTE)
332
331
  customContextObj = {},
333
332
  customMetricsObj = {},
334
333
  draCustomReport(
335
334
  customContextObj,
336
335
  customMetricsObj,
337
336
  DraBuryPointFlags.INTERFACE,
338
337
  )
339
338
  customContextObj = {},
340
339
  customMetricsObj = {},
341
340
  draCustomReport(
342
341
  customContextObj,
343
342
  customMetricsObj,
344
343
  DraBuryPointFlags.BUSINESS,
345
344
  )
346
345
  if (isJdAndAndroidDevice && typeof displayObj === 'object') {
347
346
  const deviceRatio = window?.devicePixelRatio
348
347
  Object.keys(displayObj).forEach((key) => {
349
348
  if (key === 'nativeHeaderHeight') {
350
349
  displayObj[key] = Math.ceil(
351
350
  displayObj[key] / (deviceRatio * deviceRatio) - 2,
352
351
  )
353
352
  } else {
354
353
  displayObj[key] = Math.ceil(displayObj[key] / deviceRatio)
355
354
  }
356
355
  })
357
356
  }
358
357
  return displayObj
359
358
  isJdAndAndroidDevice && /TBS\/\d+/.test(window?.navigator?.userAgent)
360
359
  jdAppVersionCompare(MPAAS_CONFIG_APP_VERSION) >= 0
360
+ import {
361
361
  isApp,
362
362
  isIOS,
363
363
  getAppVersion,
364
364
  version,
365
365
  getUUID,
366
366
  getUrlQuery,
367
367
  assign,
368
368
  isString,
369
369
  isObject,
370
370
  serialize,
371
371
  isAndroid,
372
372
  versionCompare,
373
373
  isIPad,
374
374
  isTablet,
375
375
  CHANNEL_TYPE,
376
376
  JDShopViewBusinessPathType,
377
377
  SECTION_HOME_TAB_NAME_TYPE,
378
378
  SECTION_HOME_TAB_TYPE,
379
379
  DraBuryPointFlags,
380
380
  MPAAS_CONFIG_APP_VERSION,
381
381
  new Promise((resolve, reject) => {
382
382
  if (window?.__sgm__) {
383
383
  resolve(true);
384
384
  } else {
385
385
  if (isSgmReadyError) {
386
386
  console.log('当前sgm初始化失败');
387
387
  reject(false);
388
388
  } else {
389
389
  ready('__sgm__', 2000)
390
390
  .then(() => {
391
391
  isSgmReadyError = false;
392
392
  console.log('当前sgm初始化成功');
393
393
  resolve(true);
394
394
  })
395
395
  .catch(() => {
396
396
  isSgmReadyError = true;
397
397
  console.log('当前sgm初始化失败');
398
398
  reject(false);
399
399
  });
400
400
  }
401
401
  }
402
402
  });
403
403
  console.log(message);
404
404
  reject(new Error(message));
405
405
  return ready('dra', 2000)
406
406
  .then(() => {
407
407
  isNewDraSdkReadyError = false;
408
408
  console.log('当前新版烛龙sdk初始化成功');
409
409
  return true;
410
410
  })
411
411
  .catch(() => {
412
412
  isNewDraSdkReadyError = true;
413
413
  throw new Error('当前新版烛龙sdk初始化失败');
414
414
  });
415
415
  return new Promise((resolve, reject) => {
416
416
  if (window?.dra) {
417
417
  resolve(true);
418
418
  } else if (isNewDraSdkReadyError) {
419
419
  logAndReject('当前新版烛龙sdk初始化失败', reject);
420
420
  } else {
421
421
  initializeDraSdk()
422
422
  .then(resolve)
423
423
  .catch((error) => logAndReject(error.message, reject));
424
424
  }
425
425
  });
426
426
  rootEleInitWidth = 0,
427
427
  screenWidth = 0,
428
428
  screenHeight = 0,
429
429
  if (rootEleInitWidth > 0 && screenWidth > 0 && screenHeight > 0) {
430
430
  const isRootEleWidthEqScreenWidth = Math.abs(rootEleInitWidth - screenWidth) < 60;
431
431
  const getThisWinWidth = rootEleInitWidth;
432
432
  const getThisWinHeight = isRootEleWidthEqScreenWidth ? screenHeight : screenWidth;
433
433
  console.info(
434
434
  '通过rootEleInitWidth对比屏幕宽高确认横竖屏幕方式',
435
435
  'rootEleInitWidth',
436
436
  rootEleInitWidth,
437
437
  'screenWidth',
438
438
  screenWidth,
439
439
  'screenHeight',
440
440
  screenHeight,
441
441
  'isRootEleWidthEqScreenWidth(根元素宽度是否与屏幕本身宽度接近,主要是ios屏幕宽高不变)',
442
442
  isRootEleWidthEqScreenWidth,
443
443
  'getThisWinWidth',
444
444
  getThisWinWidth,
445
445
  'getThisWinHeight',
446
446
  getThisWinHeight,
447
447
  '是否是横屏',
448
448
  getThisWinWidth > getThisWinHeight,
449
449
  '通过window.screen?.orientation?.type方式获取当前pad屏幕是否是横屏,带有landscape为横屏',
450
450
  window.screen?.orientation?.type,
451
451
  );
452
452
  return getThisWinWidth > getThisWinHeight;
453
453
  } else {
454
454
  if (window.screen?.orientation?.type) {
455
455
  console.info(
456
456
  '通过window.screen?.orientation?.type方式获取当前pad屏幕是否是横屏',
457
457
  window.screen?.orientation?.type,
458
458
  '测试低版本通过window?.orientation方式获取当前pad屏幕是否是横屏,角度[90, -90]',
459
459
  window?.orientation,
460
460
  );
461
461
  return /landscape/i.test(window.screen.orientation.type);
462
462
  } else if (window?.orientation) {
463
463
  console.info(
464
464
  '通过window?.orientation方式获取当前pad屏幕是否是横屏,角度[90, -90]',
465
465
  window?.orientation,
466
466
  );
467
467
  return [90, -90].includes(window?.orientation);
468
468
  } else {
469
469
  console.info(
470
470
  '通过window.matchMedia((orientation: landscape))?.matches方式获取当前pad屏幕是否是横屏',
471
471
  window.matchMedia('(orientation: landscape)')?.matches,
472
472
  );
473
473
  return window.matchMedia('(orientation: landscape)')?.matches;
474
474
  }
475
475
  }
476
476
  try {
477
477
  return JSON.parse(decodeURIComponent(getUrlQuery('cookie')));
478
478
  } catch (e) {
479
479
  return {};
480
480
  }
481
481
  'harmony' === (userAgent.split(';')[1] || '').toLowerCase() || /arkweb/i.test(userAgent);
482
482
  window?.location?.hostname === 'pages.jd.com' && isJdAndHarmonyDevice;
483
483
  window.shopGlobalSwitch?.isH5AndJdShopViewH5ScrollVersion || '';
484
484
  !!document.getElementById('mallType') &&
485
485
  !!document.getElementById('pageInstance_id') &&
486
486
  !!document.getElementById('pageInstance_appId');
487
487
  isTjScence &&
488
488
  isWxMiniH5View &&
489
489
  (urlCookie['wxapp_type'] == '2' ||
490
490
  cookie.get('wxapp_type') == '2' ||
491
491
  parseQueryUrlObj['tjChannel'] === 'jxxcx');
492
492
  isTjScence && isWxMiniH5View && parseQueryUrlObj['sourceApp'] === 'haowujie';
493
493
  isTjScence &&
494
494
  (parseQueryUrlObj['appCode'] === 'ms27cba806' ||
495
495
  document.referrer?.match(/(?:https?:)?\/\/(?:kpl\.m|css|cs)\.jd\.com/i)?.length ||
496
496
  (parseQueryUrlObj['sourceApp'] == 'jsb-m' && parseQueryUrlObj['appCode'] === '') ||
497
497
  parseQueryUrlObj['tjChannel'] === 'tjm');
498
498
  if (isH5AdnJxMini) {
499
499
  return 'jxxcx';
500
500
  } else if (isTJApp) {
501
501
  return 'tjapp';
502
502
  } else if (isTjM) {
503
503
  return 'tjm';
504
504
  } else if (isTjJxM) {
505
505
  return 'jxh5';
506
506
  }
507
507
  return '';
508
508
  START: 'start',
509
509
  MOVE: 'move',
510
510
  END: 'end',
511
511
  x: 0,
512
512
  y: 0,
513
513
  const startX = startPos.x;
514
514
  const startY = startPos.y;
515
515
  const endX = touchEvent.clientX;
516
516
  const endY = touchEvent.clientY;
517
517
  const dy = startY - endY;
518
518
  const dx = endX - startX;
519
519
  let result = 0;
520
520
  if (Math.abs(dx) < 2 && Math.abs(dy) < 2) {
521
521
  return result;
522
522
  }
523
523
  const angle = (Math.atan2(dy, dx) * 180) / Math.PI;
524
524
  if (angle >= -45 && angle < 45) {
525
525
  result = 4;
526
526
  } else if (angle >= 45 && angle < 135) {
527
527
  result = 1;
528
528
  } else if (angle >= -135 && angle < -45) {
529
529
  result = 2;
530
530
  } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {
531
531
  result = 3;
532
532
  }
533
533
  return result;
534
534
  e: Event,
535
535
  touchType = TouchType.START,
536
536
  stopTouchDocumentScrollState = false,
537
537
  if (isJdApp && e) {
538
538
  const touchEvent = e?.originalEvent?.targetTouches[0] || e?.targetTouches[0];
539
539
  let _touchState = touchType;
540
540
  let _getDirectionState = false;
541
541
  if (touchType === TouchType.START) {
542
542
  StopNativeScrollEventPos.x = touchEvent.clientX;
543
543
  StopNativeScrollEventPos.y = touchEvent.clientY;
544
544
  } else if (touchType === TouchType.MOVE) {
545
545
  _getDirectionState = [1, 2].includes(
546
546
  touchMoveGetSlideDirection(StopNativeScrollEventPos, touchEvent),
547
547
  );
548
548
  if (_getDirectionState) {
549
549
  _touchState = TouchType.END;
550
550
  }
551
551
  console.log(
552
552
  '对外提供阻止横滑方法,当前touchType为move,设定1、2向上或向下方向,当前计算后的滑动是否为纵向',
553
553
  _getDirectionState,
554
554
  );
555
555
  } else if (touchType === TouchType.END) {
556
556
  StopNativeScrollEventPos.x = 0;
557
557
  StopNativeScrollEventPos.y = 0;
558
558
  }
559
559
  isIosDevice
560
560
  ? iosDeviceStopNativeScrollEvent(e, _touchState, stopTouchDocumentScrollState)
561
561
  : androidDeviceStopNativeScrollEvent(_touchState, stopTouchDocumentScrollState);
562
562
  if (
563
563
  !isAppHomeForMarketPage &&
564
564
  stopTouchDocumentScrollState &&
565
565
  _touchState === TouchType.START
566
566
  ) {
567
567
  rootEleNode && rootEleNode.classList.add('over-hidden');
568
568
  }
569
569
  if (_touchState === TouchType.MOVE && _getDirectionState) {
570
570
  rootEleNode &&
571
571
  rootEleNode.classList.contains('over-hidden') &&
572
572
  rootEleNode.classList.remove('over-hidden');
573
573
  } else if (_touchState === TouchType.END) {
574
574
  setTimeout(
575
575
  () => {
576
576
  rootEleNode &&
577
577
  rootEleNode.classList.contains('over-hidden') &&
578
578
  rootEleNode.classList.remove('over-hidden');
579
579
  },
580
580
  isAppHomeForMarketPage || _getDirectionState ? 0 : 200,
581
581
  );
582
582
  }
583
583
  }
584
584
  touchType = TouchType.START,
585
585
  stopTouchDocumentScrollState = false,
586
586
  isJdApp &&
587
587
  touchType !== TouchType.MOVE &&
588
588
  isAndroidDevice &&
589
589
  window?.JdAndroid &&
590
590
  window?.JdAndroid?.requestEvent &&
591
591
  window.JdAndroid.requestEvent(touchType === TouchType.START);
592
592
  console.log(
593
593
  '对外提供阻止安卓横滑方法,true-禁止外部事件H5可滑动,false-外部拦截h5事件,当前touchType为',
594
594
  touchType,
595
595
  '当前非move触发requestEvent状态为',
596
596
  touchType === TouchType.START,
597
597
  '当前stopTouchDocumentScrollState为',
598
598
  stopTouchDocumentScrollState,
599
599
  );
600
600
  e,
601
601
  touchType = TouchType.START,
602
602
  stopTouchDocumentScrollState = false,
603
603
  e && e.stopPropagation();
604
604
  console.log(
605
605
  '对外提供阻止ios横滑方法,当前touchType为',
606
606
  touchType,
607
607
  '当前stopTouchDocumentScrollState为',
608
608
  stopTouchDocumentScrollState,
609
609
  );
610
610
  window?.webkit?.messageHandlers?.MobileNavi?.postMessage?.({
611
611
  method: 'callRouterModuleWithParams',
612
612
  params: {
613
613
  routerURL: 'router://JDShopModule/processShoph5SlideState',
614
614
  routerParam: {
615
615
  slideDirection: 'horizontal',
616
616
  state: touchType,
617
617
  },
618
618
  callBackId: new Date().getTime(),
619
619
  },
620
620
  });
621
621
  if (isH5AndJdShopView) {
622
622
  return CHANNEL_TYPE[currentChannel] || CHANNEL_TYPE[JDShopViewBusinessPathType.HOME];
623
623
  }
624
624
  return null;
625
625
  isH5 &&
626
626
  isJdApp &&
627
627
  [
628
628
  '/app/home',
629
629
  '/app/homeV2',
630
630
  '/app/classify',
631
631
  '/app/classifyV2',
632
632
  '/member/shopcard',
633
633
  '/favorite/home',
634
634
  ].includes(urlPathname);
635
635
  isH5 && isJdApp && !['/app/home', '/app/homeV2'].includes(urlPathname);
636
636
  ['/app/home', '/app/homeV2'].includes(urlPathname) &&
637
637
  menuObj.tabActiveType != SECTION_HOME_TAB_TYPE.HOME_PROMOTION &&
638
638
  menuObj.tabActiveType != SECTION_HOME_TAB_TYPE.HOME_MEMBER;
639
639
  isAppHomePage && parseQueryUrlObj['source'] === 'app-marketing';
640
640
  isH5 &&
641
641
  isAppHomePage &&
642
642
  versionCompare(jdAppVersion?.full ? jdAppVersion.full : '', isH5AndJdShopViewH5ScrollVersion) >=
643
643
  0;
644
644
  return isJdApp ? versionCompare(nowVersion, compareVersion) : -2;
645
645
  getSgmReadyPromise()
646
646
  .then(() => {
647
647
  if (
648
648
  customObj.hasOwnProperty('code') &&
649
649
  customObj.code.indexOf(NO_ENVIRONMENT_AND_PAGE_TYPE_FLAG) !== -1
650
650
  ) {
651
651
  const originCode = customObj.code.substring(
652
652
  NO_ENVIRONMENT_AND_PAGE_TYPE_FLAG.length,
653
653
  customObj.code.length,
654
654
  );
655
655
  customObj['code'] = getSgmCustomCode(handleSgmCodeTaroVersion(originCode));
656
656
  }
657
657
  const getCustomObj = {
658
658
  type: 1,
659
659
  code: 'all',
660
660
  cost1: 1,
661
661
  ...customObj,
662
662
  };
663
663
  try {
664
664
  window.__sgm__.custom(getCustomObj, '9HwAEg@fTtWBB3EnwA5VgLT');
665
665
  } catch (e) {
666
666
  console.log('当前sgm上报异常, 原始数据为', JSON.stringify(customObj));
667
667
  }
668
668
  })
669
669
  .catch(() => {
670
670
  console.error('当前页面sgm加载异常,无法进行异常上报, 原始数据为', JSON.stringify(customObj));
671
671
  });
672
672
  try {
673
673
  await getNewDraSdkReadyPromise();
674
674
  const draBurypointFlag = name ?? DraBuryPointFlags.BUSINESS;
675
675
  const commonObj = {
676
676
  shopId: `${global.info.queryInfo.shopId || ''}`,
677
677
  venderId: `${global.info.queryInfo.venderId || ''}`,
678
678
  taroRenderVersion: window?.taroRenderVersion,
679
679
  environmentType: getEnvironmentType(),
680
680
  pageType: getPageType(),
681
681
  };
682
682
  try {
683
683
  window.dra.sendCustomEvent(
684
684
  {
685
685
  name: draBurypointFlag,
686
686
  metrics: {
687
687
  timeStamp: Date.now(),
688
688
  ...customMetricsObj,
689
689
  },
690
690
  context: {
691
691
  ...commonObj,
692
692
  ...customContextObj,
693
693
  },
694
694
  },
695
695
  true,
696
696
  );
697
697
  } catch (e) {
698
698
  console.error(
699
699
  '当前新版烛龙sdk上报异常, 原始数据为',
700
700
  JSON.stringify({ ...customContextObj, ...customMetricsObj }),
701
701
  'e',
702
702
  e,
703
703
  );
704
704
  }
705
705
  } catch (e) {
706
706
  console.error(
707
707
  '当前页面新版烛龙sdk加载异常,无法进行异常上报, 原始数据为',
708
708
  JSON.stringify({ ...customContextObj, ...customMetricsObj }),
709
709
  'e',
710
710
  e,
711
711
  );
712
712
  }
713
713
  try {
714
714
  await getNewDraSdkReadyPromise();
715
715
  const commonObj = {
716
716
  shopId: `${global.info.queryInfo.shopId || ''}`,
717
717
  venderId: `${global.info.queryInfo.venderId || ''}`,
718
718
  taroRenderVersion: window?.taroRenderVersion,
719
719
  environmentType: getEnvironmentType(),
720
720
  pageType: getPageType(),
721
721
  url: encodeURIComponent(window?.location?.href),
722
722
  };
723
723
  try {
724
724
  window.dra.sendCustomLogEvent({
725
725
  level,
726
726
  content: logContent || '日志上报',
727
727
  extra: JSON.stringify(commonObj),
728
728
  timeStamp: Date.now(),
729
729
  });
730
730
  } catch (e) {
731
731
  console.error('日志等级', level, '当前新版烛龙sdk上报异常, 原始数据为', logContent, 'e', e);
732
732
  }
733
733
  } catch (e2) {
734
734
  console.error('日志等级', level, '当前新版烛龙sdk上报异常, 原始数据为', logContent, 'e', e2);
735
735
  }
736
736
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.REMOTE);
737
737
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.INTERFACE);
738
738
  draCustomReport(customContextObj, customMetricsObj, DraBuryPointFlags.BUSINESS);
739
739
  const deviceRatio = window?.devicePixelRatio ?? 2;
740
740
  if (isJdAndAndroidDevice && typeof displayObj === 'object') {
741
741
  Object.keys(displayObj).forEach((key) => {
742
742
  if (key === 'nativeHeaderHeight') {
743
743
  displayObj[key] = Math.ceil(displayObj[key] / (deviceRatio * deviceRatio) - 2);
744
744
  } else {
745
745
  displayObj[key] = Math.ceil(displayObj[key] / deviceRatio);
746
746
  }
747
747
  });
748
748
  } else if (isJdAndHarmonyDevice && isNewHarmonyShop && typeof displayObj === 'object') {
749
749
  if (displayObj['bottomBarHeight'] && typeof displayObj['bottomBarHeight'] === 'number') {
750
750
  displayObj['bottomBarHeight'] = Math.ceil(displayObj['bottomBarHeight'] / deviceRatio);
751
751
  }
752
752
  }
753
753
  return displayObj;
754
754
  isJdAndAndroidDevice && /TBS\/\d+/.test(window?.navigator?.userAgent);
755
755
  rootEleNode &&
756
756
  !rootEleNode.classList.contains('d-shop-lang-for-en') &&
757
757
  rootEleNode.classList.add('d-shop-lang-for-en');
758
758
  rootEleNode &&
759
759
  !rootEleNode.classList.contains('d-shop-lang-for-hk') &&
760
760
  rootEleNode.classList.add('d-shop-lang-for-hk');
761
761
  customContextObj = {},
762
762
  customMetricsObj = {},
763
763
  name?,
764
764
  try {
765
765
  const draBurypointFlag = name ?? DraBuryPointFlags.DECOSDM;
766
766
  try {
767
767
  let dra = null;
768
768
  const iframe = window?.top?.document?.getElementsByTagName('iframe')[0];
769
769
  if (iframe && iframe.contentWindow) {
770
770
  dra = iframe.contentWindow?.dra;
771
771
  }
772
772
  if (window.dra) {
773
773
  dra = window.dra;
774
774
  }
775
775
  dra &&
776
776
  dra.sendCustomEvent(
777
777
  {
778
778
  name: draBurypointFlag,
779
779
  metrics: {
780
780
  timeStamp: Date.now(),
781
781
  },
782
782
  context: {
783
783
  ...customContextObj,
784
784
  },
785
785
  },
786
786
  true,
787
787
  );
788
788
  } catch (e) {
789
789
  console.error(
790
790
  '当前新版烛龙sdk上报异常, 原始数据为',
791
791
  JSON.stringify({ ...customContextObj }),
792
792
  'e',
793
793
  e,
794
794
  );
795
795
  }
796
796
  } catch (e) {
797
797
  console.error(
798
798
  '当前页面新版烛龙sdk加载异常,无法进行异常上报, 原始数据为',
799
799
  JSON.stringify({ ...customContextObj }),
800
800
  'e',
801
801
  e,
802
802
  );
803
803
  }