@conecli/cone-render 0.10.1-shop3.11 → 0.10.1-shop3.110

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