@conecli/cone-render 0.10.1-shop-beta.22 → 0.10.1-shop-beta.24

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