@conecli/cone-render 0.10.1-shop3.9 → 0.10.1-shop3.90

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