@conecli/cone-render 0.10.1-shop-beta.56 → 0.10.1-shop-beta.57

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