@conecli/cone-render 0.10.1-isv2.4 → 0.10.1-isv3.1

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