pb-sxp-ui 1.2.1 → 1.2.3

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 (58) hide show
  1. package/dist/index.cjs +132 -83
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +99 -32
  4. package/dist/index.js +132 -83
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.min.cjs +3 -3
  7. package/dist/index.min.cjs.map +1 -1
  8. package/dist/index.min.js +3 -3
  9. package/dist/index.min.js.map +1 -1
  10. package/dist/pb-ui.js +132 -83
  11. package/dist/pb-ui.js.map +1 -1
  12. package/dist/pb-ui.min.js +3 -3
  13. package/dist/pb-ui.min.js.map +1 -1
  14. package/es/core/Pagebuilder/type.d.ts +1 -0
  15. package/es/core/components/SxpPageCore/index.js +1 -1
  16. package/es/core/components/SxpPageRender/FingerSwipeTip/index.d.ts +1 -0
  17. package/es/core/components/SxpPageRender/FingerSwipeTip/index.js +3 -3
  18. package/es/core/components/SxpPageRender/Hashtag/index.js +3 -1
  19. package/es/core/components/SxpPageRender/Navbar.js +1 -1
  20. package/es/core/components/SxpPageRender/VideoWidget/index.js +13 -10
  21. package/es/core/components/SxpPageRender/WaterFall/List.js +1 -1
  22. package/es/core/components/SxpPageRender/WaterFall/WaterfallList.js +1 -1
  23. package/es/core/components/SxpPageRender/index.d.ts +3 -0
  24. package/es/core/components/SxpPageRender/index.js +8 -8
  25. package/es/core/context/SxpDataSourceProvider.d.ts +1 -0
  26. package/es/core/context/SxpDataSourceProvider.js +3 -3
  27. package/es/materials/sxp/HashTag/material.js +2 -1
  28. package/es/materials/sxp/cta/AniLink/index.js +27 -11
  29. package/es/materials/sxp/cta/AniLinkPopup/index.js +40 -23
  30. package/es/materials/sxp/popup/CommodityDetail/index.js +1 -1
  31. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
  32. package/es/materials/sxp/popup/CommodityList/index.js +13 -7
  33. package/es/materials/sxp/template/Link/index.js +2 -2
  34. package/es/materials/sxp/template/components/Img.js +1 -1
  35. package/es/materials/sxp/template/components/settingRender.js +5 -0
  36. package/lib/core/Pagebuilder/type.d.ts +1 -0
  37. package/lib/core/components/SxpPageCore/index.js +1 -1
  38. package/lib/core/components/SxpPageRender/FingerSwipeTip/index.d.ts +1 -0
  39. package/lib/core/components/SxpPageRender/FingerSwipeTip/index.js +3 -3
  40. package/lib/core/components/SxpPageRender/Hashtag/index.js +3 -1
  41. package/lib/core/components/SxpPageRender/Navbar.js +1 -1
  42. package/lib/core/components/SxpPageRender/VideoWidget/index.js +13 -10
  43. package/lib/core/components/SxpPageRender/WaterFall/List.js +1 -1
  44. package/lib/core/components/SxpPageRender/WaterFall/WaterfallList.js +1 -1
  45. package/lib/core/components/SxpPageRender/index.d.ts +3 -0
  46. package/lib/core/components/SxpPageRender/index.js +8 -8
  47. package/lib/core/context/SxpDataSourceProvider.d.ts +1 -0
  48. package/lib/core/context/SxpDataSourceProvider.js +3 -3
  49. package/lib/materials/sxp/HashTag/material.js +2 -1
  50. package/lib/materials/sxp/cta/AniLink/index.js +26 -10
  51. package/lib/materials/sxp/cta/AniLinkPopup/index.js +39 -22
  52. package/lib/materials/sxp/popup/CommodityDetail/index.js +1 -1
  53. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
  54. package/lib/materials/sxp/popup/CommodityList/index.js +13 -7
  55. package/lib/materials/sxp/template/Link/index.js +2 -2
  56. package/lib/materials/sxp/template/components/Img.js +1 -1
  57. package/lib/materials/sxp/template/components/settingRender.js +5 -0
  58. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -554,7 +554,7 @@ var DataSourceType;
554
554
  DataSourceType[DataSourceType["BFF"] = 5] = "BFF";
555
555
  })(DataSourceType || (DataSourceType = {}));
556
556
  const DEFAULT_TAG = 'FOR U';
557
- const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent = true, maxSize, defaultSize, isPreview = false, sxpParameter, appDomain, hashTagSize, loadingImage, isOpenHashTag = false, enabledMetaConversionApi = false, consentHeight, consentWidth, isShowTag = true, isOpenConsent = false, globalConfig, isEditor = false }) => {
557
+ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent = true, maxSize, defaultSize, isPreview = false, sxpParameter, appDomain, hashTagSize, loadingImage, isOpenHashTag = false, enabledMetaConversionApi = false, consentHeight, consentWidth, isShowTag = true, isOpenConsent = false, globalConfig, isEditor = false, utmParameter }) => {
558
558
  var _a, _b, _c;
559
559
  const [rtcList, setRtcList] = React.useState([]);
560
560
  const [tagList, setTagList] = React.useState([]);
@@ -636,7 +636,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
636
636
  const val = (_h = (_g = (_f = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _f === void 0 ? void 0 : _f.filter((val) => {
637
637
  var _a, _b;
638
638
  const key = val.split('=')[0];
639
- return (_b = ((_a = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.channels) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.includes(key);
639
+ return (_b = ((_a = utmParameter === null || utmParameter === void 0 ? void 0 : utmParameter.channels) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.includes(key);
640
640
  })) === null || _g === void 0 ? void 0 : _g.join('&')) !== null && _h !== void 0 ? _h : '';
641
641
  query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(val) });
642
642
  }
@@ -731,7 +731,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
731
731
  const val = (_o = (_m = (_l = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _l === void 0 ? void 0 : _l.filter((val) => {
732
732
  var _a, _b;
733
733
  const key = val.split('=')[0];
734
- return (_b = ((_a = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.channels) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.includes(key);
734
+ return (_b = ((_a = utmParameter === null || utmParameter === void 0 ? void 0 : utmParameter.channels) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.includes(key);
735
735
  })) === null || _m === void 0 ? void 0 : _m.join('&')) !== null && _o !== void 0 ? _o : '';
736
736
  const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/tag/list', { method: 'GET', query: { channel: decodeURIComponent(val) } }));
737
737
  setTagList((_q = (_p = result === null || result === void 0 ? void 0 : result.data) === null || _p === void 0 ? void 0 : _p.tags) !== null && _q !== void 0 ? _q : []);
@@ -8988,7 +8988,7 @@ const CommodityDetail$1 = (_a) => {
8988
8988
  width: '100%',
8989
8989
  objectFit: 'cover',
8990
8990
  display: 'block',
8991
- objectPosition: `50% ${(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) ? -(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) + 50 : 50}%`
8991
+ objectPosition: `50% ${(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) ? (swiper === null || swiper === void 0 ? void 0 : swiper.translateY) + 50 : 50}%`
8992
8992
  }, src: src }))));
8993
8993
  }))))),
8994
8994
  !((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css.css({
@@ -9716,7 +9716,7 @@ Made in Italy` })));
9716
9716
  width: '100%',
9717
9717
  objectFit: 'cover',
9718
9718
  display: 'block',
9719
- objectPosition: `50% ${(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) ? -(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) + 50 : 50}%`
9719
+ objectPosition: `50% ${(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) ? (swiper === null || swiper === void 0 ? void 0 : swiper.translateY) + 50 : 50}%`
9720
9720
  }, src: src }))));
9721
9721
  }))),
9722
9722
  !((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css.css({
@@ -10102,7 +10102,7 @@ function useOnScreen(ref) {
10102
10102
  * @Author: binruan@chatlabs.com
10103
10103
  * @Date: 2024-01-16 14:50:13
10104
10104
  * @LastEditors: binruan@chatlabs.com
10105
- * @LastEditTime: 2024-06-24 18:13:14
10105
+ * @LastEditTime: 2024-07-04 18:13:23
10106
10106
  * @FilePath: \pb-sxp-ui\src\materials\sxp\template\components\Img.tsx
10107
10107
  *
10108
10108
  */
@@ -10123,7 +10123,7 @@ const Img = ({ src, rec, item, index, style, translateY, imgStyle }) => {
10123
10123
  }, [src]);
10124
10124
  return (React.createElement("div", { className: css.css(Object.assign({ overflow: 'hidden', flexShrink: 0, backgroundColor: '#f2f2f2' }, imgStyle)) },
10125
10125
  React.createElement("div", { ref: ref, hidden: !src, className: css.css({ width: '100%', height: '100%' }) },
10126
- React.createElement(FormatImage$1, { className: css.css(Object.assign({ width: '100%', objectFit: 'cover', height: '100%', display: 'block', objectPosition: `50% ${translateY ? -translateY + 50 : 50}%` }, style)), src: src }))));
10126
+ React.createElement(FormatImage$1, { className: css.css(Object.assign({ width: '100%', objectFit: 'cover', height: '100%', display: 'block', objectPosition: `50% ${translateY ? translateY + 50 : 50}%` }, style)), src: src }))));
10127
10127
  };
10128
10128
  var Img$1 = React.memo(Img);
10129
10129
 
@@ -10176,18 +10176,24 @@ const CommodityList$1 = (_a) => {
10176
10176
  }
10177
10177
  }, []);
10178
10178
  return (React.createElement("div", { className: css.css(Object.assign(Object.assign({}, style), { display: 'flex', flexDirection: 'column', gap: '10px', padding: '0 20px', marginTop: '50px' })) }, product === null || product === void 0 ? void 0 : product.map((item, index) => {
10179
- var _a, _b, _c, _d, _e, _f, _g, _h;
10179
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
10180
10180
  return (React.createElement(EventProvider$1, Object.assign({ key: index, isExternalLink: isExternalLink, rec: recData, index: index }, props, { className: css.css({
10181
10181
  display: 'flex'
10182
10182
  }) }),
10183
10183
  React.createElement(Img$1, { src: (_d = (_c = (_a = item === null || item === void 0 ? void 0 : item.cover) !== null && _a !== void 0 ? _a : (_b = item === null || item === void 0 ? void 0 : item.homePage) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _d !== void 0 ? _d : bottom_image, rec: recData, item: item, index: index, translateY: translateY, imgStyle: commodityPicture }),
10184
- React.createElement("div", { style: { flex: 1, display: 'flex', flexDirection: 'column', justifyContent: 'space-between' } },
10184
+ React.createElement("div", { style: {
10185
+ flex: 1,
10186
+ width: `calc(100% - ${(_e = commodityPicture === null || commodityPicture === void 0 ? void 0 : commodityPicture.width) !== null && _e !== void 0 ? _e : 0}px - ${(_f = commodityPicture === null || commodityPicture === void 0 ? void 0 : commodityPicture.marginRight) !== null && _f !== void 0 ? _f : 0}px - ${(_g = style === null || style === void 0 ? void 0 : style.padding) !== null && _g !== void 0 ? _g : 0}px)`,
10187
+ display: 'flex',
10188
+ flexDirection: 'column',
10189
+ justifyContent: 'space-between'
10190
+ } },
10185
10191
  React.createElement("div", null,
10186
- React.createElement("div", { style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title, hidden: !!item && !(item === null || item === void 0 ? void 0 : item.title), dangerouslySetInnerHTML: {
10187
- __html: setFontForText((_e = item === null || item === void 0 ? void 0 : item.title) !== null && _e !== void 0 ? _e : 'Pendant in Yellow Gold with Diamonds, Medium', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title)
10192
+ React.createElement("div", { className: 'one-line-ellipsis', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title, hidden: !!item && !(item === null || item === void 0 ? void 0 : item.title), dangerouslySetInnerHTML: {
10193
+ __html: setFontForText((_h = item === null || item === void 0 ? void 0 : item.title) !== null && _h !== void 0 ? _h : 'Pendant in Yellow Gold with Diamonds, Medium', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title)
10188
10194
  } }),
10189
- React.createElement("div", { style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection, hidden: !!item && (!(item === null || item === void 0 ? void 0 : item.collection) || (item === null || item === void 0 ? void 0 : item.collection) === ''), dangerouslySetInnerHTML: {
10190
- __html: setFontForText((_f = item === null || item === void 0 ? void 0 : item.collection) !== null && _f !== void 0 ? _f : 'Tiffany Lock', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection)
10195
+ React.createElement("div", { className: 'two-line-ellipsis', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection, hidden: !!item && (!(item === null || item === void 0 ? void 0 : item.collection) || (item === null || item === void 0 ? void 0 : item.collection) === ''), dangerouslySetInnerHTML: {
10196
+ __html: setFontForText((_j = item === null || item === void 0 ? void 0 : item.collection) !== null && _j !== void 0 ? _j : 'Tiffany Lock', commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection)
10191
10197
  } })),
10192
10198
  React.createElement("div", { className: css.css({
10193
10199
  display: 'flex',
@@ -10200,7 +10206,7 @@ const CommodityList$1 = (_a) => {
10200
10206
  __html: setFontForText(priceText(item), commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price)
10201
10207
  } }),
10202
10208
  React.createElement("div", { className: 'one-line-ellipsis', style: Object.assign(Object.assign({}, buttonStyle), { padding: '0 15px', maxWidth: '100px' }), dangerouslySetInnerHTML: {
10203
- __html: setFontForText((_h = (_g = item === null || item === void 0 ? void 0 : item.bindCta) === null || _g === void 0 ? void 0 : _g.enTitle) !== null && _h !== void 0 ? _h : 'Shop Now', buttonStyle)
10209
+ __html: setFontForText((_l = (_k = item === null || item === void 0 ? void 0 : item.bindCta) === null || _k === void 0 ? void 0 : _k.enTitle) !== null && _l !== void 0 ? _l : 'Shop Now', buttonStyle)
10204
10210
  } })))));
10205
10211
  })));
10206
10212
  };
@@ -10293,7 +10299,7 @@ const CommodityList = createMaterial(CommodityListComponent, {
10293
10299
  * @Author: binruan@chatlabs.com
10294
10300
  * @Date: 2024-03-26 16:50:25
10295
10301
  * @LastEditors: binruan@chatlabs.com
10296
- * @LastEditTime: 2024-06-27 09:55:59
10302
+ * @LastEditTime: 2024-07-04 17:47:52
10297
10303
  * @FilePath: \pb-sxp-ui\src\materials\sxp\template\components\settingRender.tsx
10298
10304
  *
10299
10305
  */
@@ -10538,6 +10544,11 @@ var settingRender$4 = [
10538
10544
  label: '对齐',
10539
10545
  type: 'TextAlign',
10540
10546
  name: ['props', 'ctaTempStyles', 'ctaTitle']
10547
+ },
10548
+ {
10549
+ label: '间距',
10550
+ type: 'TextSpace',
10551
+ name: ['props', 'ctaTempStyles', 'ctaTitle']
10541
10552
  }
10542
10553
  ]
10543
10554
  }
@@ -10850,7 +10861,7 @@ const Link$1 = (_a) => {
10850
10861
  overflow: 'hidden'
10851
10862
  }) },
10852
10863
  React.createElement("div", null,
10853
- React.createElement("div", { className: (customTitle === null || customTitle === void 0 ? void 0 : customTitle.display) ? styles$7['one-line-ellipsis'] : styles$7['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle, dangerouslySetInnerHTML: {
10864
+ React.createElement("div", { className: styles$7['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle, dangerouslySetInnerHTML: {
10854
10865
  __html: setFontForText((_h = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _h !== void 0 ? _h : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
10855
10866
  } }),
10856
10867
  (customTitle === null || customTitle === void 0 ? void 0 : customTitle.display) && (React.createElement("div", { style: Object.assign(Object.assign({}, customTitle === null || customTitle === void 0 ? void 0 : customTitle.style), { lineHeight: ((_j = customTitle === null || customTitle === void 0 ? void 0 : customTitle.style) === null || _j === void 0 ? void 0 : _j.height) + 'px' }), className: styles$7['one-line-ellipsis'], dangerouslySetInnerHTML: {
@@ -11678,7 +11689,7 @@ var settingRender$3 = [
11678
11689
  * @Author: binruan@chatlabs.com
11679
11690
  * @Date: 2023-12-26 16:11:34
11680
11691
  * @LastEditors: binruan@chatlabs.com
11681
- * @LastEditTime: 2024-06-27 10:19:28
11692
+ * @LastEditTime: 2024-07-04 18:34:18
11682
11693
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Navbar.tsx
11683
11694
  *
11684
11695
  */
@@ -11687,7 +11698,7 @@ const Navbar = ({ icon, styles, textStyle, onClose }) => {
11687
11698
  const { waterFallData, setOpenHashtag } = useSxpDataSource();
11688
11699
  return (React.createElement("div", { className: 'clc-sxp-nav', style: styles },
11689
11700
  React.createElement("img", { className: 'clc-sxp-nav-left', src: icon, alt: 'back button', onClick: onClose }),
11690
- React.createElement("div", { className: 'clc-sxp-nav-title', style: textStyle, dangerouslySetInnerHTML: {
11701
+ React.createElement("div", { className: 'clc-sxp-nav-title', style: Object.assign(Object.assign({}, textStyle), { paddingLeft: (textStyle === null || textStyle === void 0 ? void 0 : textStyle.textAlign) === 'left' ? '35px' : 0 }), dangerouslySetInnerHTML: {
11691
11702
  __html: setFontForText(`#${(_a = waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag) !== null && _a !== void 0 ? _a : '标题'}`, textStyle)
11692
11703
  } })));
11693
11704
  };
@@ -13282,7 +13293,7 @@ function WaterfallList$1(_a) {
13282
13293
  var _a, _b;
13283
13294
  if ((_a = data === null || data === void 0 ? void 0 : data.tag) === null || _a === void 0 ? void 0 : _a.link) {
13284
13295
  reportTagsView();
13285
- window.location.href = (_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.link;
13296
+ window.location.href = window.getJointUtmLink((_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.link);
13286
13297
  }
13287
13298
  };
13288
13299
  return (React.createElement(React.Fragment, null, isLoadingData ? (React.createElement("div", { style: { height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' } },
@@ -13517,7 +13528,7 @@ function WaterfallList(_a) {
13517
13528
  var _a, _b;
13518
13529
  if ((_a = data === null || data === void 0 ? void 0 : data.tag) === null || _a === void 0 ? void 0 : _a.link) {
13519
13530
  reportTagsView();
13520
- window.location.href = (_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.link;
13531
+ window.location.href = window.getJointUtmLink((_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.link);
13521
13532
  }
13522
13533
  };
13523
13534
  return (React.createElement(React.Fragment, null, isLoadingData ? (React.createElement("div", { style: { height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' } },
@@ -13670,7 +13681,7 @@ var HashTagComponent = React.memo(HashTag$1);
13670
13681
  * @Author: binruan@chatlabs.com
13671
13682
  * @Date: 2023-07-28 18:29:57
13672
13683
  * @LastEditors: binruan@chatlabs.com
13673
- * @LastEditTime: 2024-04-30 10:13:13
13684
+ * @LastEditTime: 2024-07-04 18:38:10
13674
13685
  * @FilePath: \pb-sxp-ui\src\materials\sxp\HashTag\material.tsx
13675
13686
  *
13676
13687
  */
@@ -13690,7 +13701,8 @@ const HashTag = createMaterial(HashTagComponent, {
13690
13701
  textStyles: {
13691
13702
  hashTagTitle: {
13692
13703
  fontSize: 16,
13693
- color: '#000'
13704
+ color: '#000',
13705
+ textAlign: 'center'
13694
13706
  },
13695
13707
  hashTagDesc: {
13696
13708
  fontSize: 12,
@@ -13927,19 +13939,20 @@ var settingRender$1 = [
13927
13939
  }
13928
13940
  ];
13929
13941
 
13930
- var styles$1 = {"animated-button":"index-module_animated-button__lqTbg","gradientCover":"index-module_gradientCover__5iUag"};
13942
+ var styles$1 = {"animated-button":"index-module_animated-button__lqTbg","gradientCover":"index-module_gradientCover__5iUag","one-line-ellipsis":"index-module_one-line-ellipsis__HutE0","two-line-ellipsis":"index-module_two-line-ellipsis__c8gRJ"};
13931
13943
 
13932
13944
  const AniLink$1 = (_a) => {
13933
- var _b, _c, _d, _e, _f, _g, _h, _j, _k;
13945
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
13934
13946
  var { style, recData, ctaTempStyles, index, event, onClick, isExternalLink = false } = _a, props = __rest(_a, ["style", "recData", "ctaTempStyles", "index", "event", "onClick", "isExternalLink"]);
13935
13947
  const { ctaEvent, setPopupDetailData } = useSxpDataSource();
13936
13948
  const { jumpToWeb } = useEventReport();
13949
+ const [visible, setVisible] = React.useState(false);
13937
13950
  const ref = React.useRef(null);
13938
13951
  const isOnScreen = useOnScreen(ref);
13939
13952
  const cta = ((_d = (_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.bindCta) || ((_f = (_e = recData === null || recData === void 0 ? void 0 : recData.video) === null || _e === void 0 ? void 0 : _e.bindProduct) === null || _f === void 0 ? void 0 : _f.bindCta) || ((_g = recData === null || recData === void 0 ? void 0 : recData.video) === null || _g === void 0 ? void 0 : _g.bindCta);
13940
13953
  const product = ((_j = (_h = recData === null || recData === void 0 ? void 0 : recData.video) === null || _h === void 0 ? void 0 : _h.bindProducts) === null || _j === void 0 ? void 0 : _j[0]) || ((_k = recData === null || recData === void 0 ? void 0 : recData.video) === null || _k === void 0 ? void 0 : _k.bindProduct);
13941
13954
  const handleTo = () => {
13942
- var _a, _b, _c;
13955
+ var _a, _b, _c, _d;
13943
13956
  const item = ((_b = (_a = recData === null || recData === void 0 ? void 0 : recData.video) === null || _a === void 0 ? void 0 : _a.bindProducts) === null || _b === void 0 ? void 0 : _b[0]) || ((_c = recData === null || recData === void 0 ? void 0 : recData.video) === null || _c === void 0 ? void 0 : _c.bindProduct) || (recData === null || recData === void 0 ? void 0 : recData.video);
13944
13957
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
13945
13958
  eventSubject: 'clickCta',
@@ -13947,12 +13960,18 @@ const AniLink$1 = (_a) => {
13947
13960
  }, recData, item, index);
13948
13961
  setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { index }));
13949
13962
  if (isExternalLink) {
13950
- jumpToWeb(recData, product, cta, index);
13963
+ const link = (product === null || product === void 0 ? void 0 : product.link) || ((_d = item === null || item === void 0 ? void 0 : item.bindCta) === null || _d === void 0 ? void 0 : _d.link);
13964
+ if (link) {
13965
+ jumpToWeb(recData, product, cta, index);
13966
+ window.location.href = window.getJointUtmLink(link);
13967
+ }
13968
+ }
13969
+ else {
13970
+ onClick === null || onClick === void 0 ? void 0 : onClick();
13951
13971
  }
13952
- onClick === null || onClick === void 0 ? void 0 : onClick();
13953
13972
  };
13954
- const title = (cta === null || cta === void 0 ? void 0 : cta.title) || '查看详情 >';
13955
- const aniStyle = React.useMemo(() => {
13973
+ const title = (cta === null || cta === void 0 ? void 0 : cta.enTitle) || '查看详情 >';
13974
+ const aniTimStyle = React.useMemo(() => {
13956
13975
  var _a, _b;
13957
13976
  const ani = event === null || event === void 0 ? void 0 : event.animation;
13958
13977
  if (ani) {
@@ -13974,10 +13993,19 @@ const AniLink$1 = (_a) => {
13974
13993
  }, recData, product, index);
13975
13994
  }
13976
13995
  }, [isOnScreen]);
13977
- return (React.createElement("div", Object.assign({ ref: ref, style: Object.assign(Object.assign({}, style), { display: 'flex', alignItems: 'center' }) }, props, { className: `${styles$1['animated-button']} ${css.css(aniStyle)}`, onClick: handleTo }),
13978
- React.createElement("div", { className: 'one-line-ellipsis', style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle, dangerouslySetInnerHTML: {
13979
- __html: setFontForText(title, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
13980
- } })));
13996
+ React.useEffect(() => {
13997
+ if (isOnScreen) {
13998
+ setVisible(true);
13999
+ }
14000
+ }, [isOnScreen]);
14001
+ const aniNamStyle = React.useMemo(() => {
14002
+ if (!visible)
14003
+ return null;
14004
+ return styles$1['animated-button'];
14005
+ }, [visible]);
14006
+ return (React.createElement("div", Object.assign({ ref: ref, style: Object.assign(Object.assign(Object.assign({}, style), ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle), { lineHeight: `${(_l = style === null || style === void 0 ? void 0 : style.height) !== null && _l !== void 0 ? _l : 0}px` }) }, props, { className: `${aniNamStyle} ${css.css(aniTimStyle)} ${styles$1['one-line-ellipsis']}`, onClick: handleTo, dangerouslySetInnerHTML: {
14007
+ __html: setFontForText(title, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
14008
+ } })));
13981
14009
  };
13982
14010
  var AniLinkComponent = React.memo(AniLink$1);
13983
14011
 
@@ -14340,19 +14368,23 @@ var settingRender = [
14340
14368
  }
14341
14369
  ];
14342
14370
 
14343
- var styles = {"animated-button":"index-module_animated-button__qI1lz","gradientCover":"index-module_gradientCover__nD6d9","tow-line-ellipsis":"index-module_tow-line-ellipsis__GKFXr","modal-icon-wrapper":"index-module_modal-icon-wrapper__tu3BY","modal-icon-wrapper-img":"index-module_modal-icon-wrapper-img__4b7qZ"};
14371
+ var styles = {"aniLinkPopup":"index-module_aniLinkPopup__YT7kj","animated-fadeIn":"index-module_animated-fadeIn__8ZCbq","fadeIn":"index-module_fadeIn__2E-dk","animated-fadeOut":"index-module_animated-fadeOut__iK4oc","fadeOut":"index-module_fadeOut__MgevT","one-line-ellipsis":"index-module_one-line-ellipsis__NRiVV","two-line-ellipsis":"index-module_two-line-ellipsis__k-YGB","modal-icon-wrapper":"index-module_modal-icon-wrapper__tu3BY","modal-icon-wrapper-img":"index-module_modal-icon-wrapper-img__4b7qZ"};
14344
14372
 
14345
14373
  const closeIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAjhJREFUWEfFlztOw0AQhmeWiJ4CCmpQ5DiRQsIJyAWg5A0lR0AIChDiCJS8ER0cADgBeRSxt4CCDgkaKiq8i+zYeWx2413HEWmiJJv9v535Z2aN8M8vFPT9z3zETD0aAUChUJjwvPFHAJhBhB3Hqd6OAsK2yyucwykAvP38eJX398Z3AJDLlVYR8ToU9Rhj25TWr9KEsKy5dULIGQCMtfZly45TvwsAstm56UwG6wA4FUFwzrdctxZBDcWSy5XWEPG8I84/GcMipdWPtgcsaz5PCHtKG0IuTiqUvjT9U/WYMG2IOPE+AP+LtCB0xKUAAyA2Xbd2o2OG0NQXvTnvhL17D7EPtH9TRCIWwkRcGYGIQgYBABuqPuHXOQBc6pw80lBGwBQiiXhsBHQhkoprA6iM6acjhDQKu5YJZW6XeOI3XJdpvfsdTu52VfXEekD8owQiXGIubpSCbhDbLu8DwKEAd+A41SOdPpE4BS0viFOtvV2iKWqUgn5x/tmS70xR01GuDSCKc86/OCcLgTyyZ0ScDGNhFAktAJV4NFJ9YyaFiAWIE+9uVkkgBgLoig8DMWAa9ro9ynkUdlW5maZDCmB6clmz0k1HH4Cs1Ezbq2p2yEpUuBOKTSZZex00RUWIrltxuuK6EOGDSbGIOPZicpMx6fny650377qNRgBgWeVFQuA+6UjVgREhGIMlSqsPUQqIbZdOOIdZQmCv2axRnU1N1+TzJYsxOEaEV8ep7frPZ7Gd0FTEdP0ft0/kMNdg0eoAAAAASUVORK5CYII=';
14346
14374
  const AniLinkPopup$1 = (_a) => {
14347
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
14375
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0;
14348
14376
  var { style, recData, ctaTempStyles, index, event, bottom_image, translateY, isTel, onClick, isExternalLink = false } = _a, props = __rest(_a, ["style", "recData", "ctaTempStyles", "index", "event", "bottom_image", "translateY", "isTel", "onClick", "isExternalLink"]);
14377
+ style === null || style === void 0 ? true : delete style.transform;
14349
14378
  const { sxpParameter, globalConfig, ctaEvent, setPopupDetailData } = useSxpDataSource();
14350
14379
  const { jumpToWeb } = useEventReport();
14351
- const [visible, setVisible] = React.useState(true);
14380
+ const ref = React.useRef(null);
14381
+ const isOnScreen = useOnScreen(ref);
14382
+ const [visible, setVisible] = React.useState(false);
14383
+ const [startAni, setStartAni] = React.useState(true);
14352
14384
  const cta = ((_d = (_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.bindCta) || ((_f = (_e = recData === null || recData === void 0 ? void 0 : recData.video) === null || _e === void 0 ? void 0 : _e.bindProduct) === null || _f === void 0 ? void 0 : _f.bindCta) || ((_g = recData === null || recData === void 0 ? void 0 : recData.video) === null || _g === void 0 ? void 0 : _g.bindCta);
14353
14385
  const product = ((_j = (_h = recData === null || recData === void 0 ? void 0 : recData.video) === null || _h === void 0 ? void 0 : _h.bindProducts) === null || _j === void 0 ? void 0 : _j[0]) || ((_k = recData === null || recData === void 0 ? void 0 : recData.video) === null || _k === void 0 ? void 0 : _k.bindProduct);
14354
14386
  const handleTo = () => {
14355
- var _a, _b, _c;
14387
+ var _a, _b, _c, _d;
14356
14388
  const item = ((_b = (_a = recData === null || recData === void 0 ? void 0 : recData.video) === null || _a === void 0 ? void 0 : _a.bindProducts) === null || _b === void 0 ? void 0 : _b[0]) || ((_c = recData === null || recData === void 0 ? void 0 : recData.video) === null || _c === void 0 ? void 0 : _c.bindProduct) || (recData === null || recData === void 0 ? void 0 : recData.video);
14357
14389
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
14358
14390
  eventSubject: 'clickCta',
@@ -14360,42 +14392,54 @@ const AniLinkPopup$1 = (_a) => {
14360
14392
  }, recData, item, index);
14361
14393
  setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { index }));
14362
14394
  if (isExternalLink) {
14363
- jumpToWeb(recData, product, cta, index);
14395
+ const link = (product === null || product === void 0 ? void 0 : product.link) || ((_d = item === null || item === void 0 ? void 0 : item.bindCta) === null || _d === void 0 ? void 0 : _d.link);
14396
+ if (link) {
14397
+ jumpToWeb(recData, product, cta, index);
14398
+ window.location.href = window.getJointUtmLink(link);
14399
+ }
14400
+ }
14401
+ else {
14402
+ onClick === null || onClick === void 0 ? void 0 : onClick();
14364
14403
  }
14365
- onClick === null || onClick === void 0 ? void 0 : onClick();
14366
14404
  };
14367
- const title = (cta === null || cta === void 0 ? void 0 : cta.title) || '查看详情 >';
14368
- const aniStyle = React.useMemo(() => {
14369
- var _a, _b;
14405
+ const title = (cta === null || cta === void 0 ? void 0 : cta.enTitle) || '查看详情 >';
14406
+ const aniTimStyle = React.useMemo(() => {
14370
14407
  const ani = event === null || event === void 0 ? void 0 : event.animation;
14371
14408
  if (ani) {
14372
- const { delay, duration, backgroundColor } = ani;
14409
+ const { delay, duration } = ani;
14373
14410
  return {
14374
- ':after': {
14375
- animationDelay: `${(_a = delay / 1000) !== null && _a !== void 0 ? _a : 0}s`,
14376
- animationDuration: `${(_b = duration / 1000) !== null && _b !== void 0 ? _b : 0}s`,
14377
- backgroundColor: `${backgroundColor !== null && backgroundColor !== void 0 ? backgroundColor : 'transparent'}`
14378
- }
14411
+ animationDelay: `${delay ? delay / 1000 : 0}s`,
14412
+ animationDuration: `${duration ? duration / 1000 : 0}s`
14379
14413
  };
14380
14414
  }
14381
14415
  }, [event === null || event === void 0 ? void 0 : event.animation]);
14382
14416
  const src = (_q = (_p = (_o = (_l = product === null || product === void 0 ? void 0 : product.cover) !== null && _l !== void 0 ? _l : (_m = product === null || product === void 0 ? void 0 : product.homePage) === null || _m === void 0 ? void 0 : _m[0]) !== null && _o !== void 0 ? _o : cta === null || cta === void 0 ? void 0 : cta.icon) !== null && _p !== void 0 ? _p : sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _q !== void 0 ? _q : bottom_image;
14383
14417
  const onClose = (event) => {
14384
14418
  event.stopPropagation();
14385
- setVisible(false);
14419
+ setStartAni(false);
14386
14420
  };
14421
+ React.useEffect(() => {
14422
+ if (isOnScreen) {
14423
+ setVisible(true);
14424
+ }
14425
+ }, [isOnScreen]);
14426
+ const aniNamStyle = React.useMemo(() => {
14427
+ if (!visible)
14428
+ return null;
14429
+ return startAni ? styles['animated-fadeIn'] : null;
14430
+ }, [visible, startAni]);
14387
14431
  return (React.createElement(React.Fragment, null, isTel ? (React.createElement("div", { style: {
14388
14432
  height: '40px',
14389
14433
  lineHeight: '40px',
14390
14434
  paddingLeft: '6px'
14391
- } }, "Cta Title")) : (React.createElement("div", Object.assign({ style: Object.assign(Object.assign({}, style), { position: 'absolute', right: 0, bottom: 0, zIndex: 1000, display: visible ? 'block' : 'none' }) }, props, { className: `${styles['animated-button']} ${css.css(aniStyle)}`, onClick: handleTo }),
14392
- React.createElement("div", { onClick: onClose, className: styles['modal-icon-wrapper'], style: { padding: (_r = style === null || style === void 0 ? void 0 : style['padding']) !== null && _r !== void 0 ? _r : 0 } },
14393
- React.createElement("img", { src: (_s = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.popupCloseIcon) !== null && _s !== void 0 ? _s : closeIcon, alt: 'close', className: styles['modal-icon-wrapper-img'] })),
14394
- React.createElement(Img$1, { src: src, rec: recData, item: (_x = (_v = (_u = (_t = recData === null || recData === void 0 ? void 0 : recData.video) === null || _t === void 0 ? void 0 : _t.bindProducts) === null || _u === void 0 ? void 0 : _u[0]) !== null && _v !== void 0 ? _v : (_w = recData === null || recData === void 0 ? void 0 : recData.video) === null || _w === void 0 ? void 0 : _w.bindProduct) !== null && _x !== void 0 ? _x : recData === null || recData === void 0 ? void 0 : recData.video, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img }),
14395
- React.createElement("div", { hidden: !!recData && !(product === null || product === void 0 ? void 0 : product.title), className: styles['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
14396
- __html: setFontForText((_y = product === null || product === void 0 ? void 0 : product.title) !== null && _y !== void 0 ? _y : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
14435
+ } }, "Cta Title")) : (React.createElement("div", Object.assign({ ref: ref }, props, { className: `${css.css(Object.assign(Object.assign({}, style), { '--transY': `translateY(calc(100% + ${(_r = style === null || style === void 0 ? void 0 : style.margin) !== null && _r !== void 0 ? _r : 0}px))` }))} ${styles['aniLinkPopup']} ${aniNamStyle} ${css.css(aniTimStyle)}`, onClick: handleTo }),
14436
+ React.createElement("div", { onClick: onClose, className: styles['modal-icon-wrapper'], style: { padding: (_s = style === null || style === void 0 ? void 0 : style['padding']) !== null && _s !== void 0 ? _s : 0 } },
14437
+ React.createElement("img", { src: (_t = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.popupCloseIcon) !== null && _t !== void 0 ? _t : closeIcon, alt: 'close', className: styles['modal-icon-wrapper-img'] })),
14438
+ React.createElement(Img$1, { src: src, rec: recData, item: (_y = (_w = (_v = (_u = recData === null || recData === void 0 ? void 0 : recData.video) === null || _u === void 0 ? void 0 : _u.bindProducts) === null || _v === void 0 ? void 0 : _v[0]) !== null && _w !== void 0 ? _w : (_x = recData === null || recData === void 0 ? void 0 : recData.video) === null || _x === void 0 ? void 0 : _x.bindProduct) !== null && _y !== void 0 ? _y : recData === null || recData === void 0 ? void 0 : recData.video, index: index, translateY: translateY, imgStyle: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.img }),
14439
+ React.createElement("div", { hidden: !!recData && !(product === null || product === void 0 ? void 0 : product.title), className: styles['two-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title, dangerouslySetInnerHTML: {
14440
+ __html: setFontForText((_z = product === null || product === void 0 ? void 0 : product.title) !== null && _z !== void 0 ? _z : 'Product Name', ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.title)
14397
14441
  } }),
14398
- React.createElement("div", { className: 'one-line-ellipsis', style: Object.assign(Object.assign({}, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle), { lineHeight: ((_z = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _z === void 0 ? void 0 : _z.height) + 'px' }), dangerouslySetInnerHTML: {
14442
+ React.createElement("div", { className: styles['one-line-ellipsis'], style: Object.assign(Object.assign({}, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle), { lineHeight: ((_0 = ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle) === null || _0 === void 0 ? void 0 : _0.height) + 'px' }), dangerouslySetInnerHTML: {
14399
14443
  __html: setFontForText(title, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
14400
14444
  } })))));
14401
14445
  };
@@ -14841,20 +14885,23 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
14841
14885
  (_j = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _j === void 0 ? void 0 : _j.addEventListener('canplay', handlePlay);
14842
14886
  (_k = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _k === void 0 ? void 0 : _k.addEventListener('waiting', handleWaiting);
14843
14887
  return () => {
14844
- var _a, _b, _c, _d, _e, _f, _g, _h;
14888
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
14889
+ const isPause = (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
14890
+ if (!isPause)
14891
+ handlePause();
14845
14892
  if (hls)
14846
14893
  hls === null || hls === void 0 ? void 0 : hls.destroy();
14847
14894
  setIsLoadFinish(false);
14848
- (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedmetadata);
14849
- (_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('loadeddata', handLoadeddata);
14850
- (_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('play', handleStartPlay);
14851
- (_d = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('playing', handlePlaying);
14852
- (_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.removeEventListener('pause', handlePause);
14853
- (_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.removeEventListener('ended', handlePlay);
14854
- (_g = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _g === void 0 ? void 0 : _g.removeEventListener('canplay', handlePlay);
14855
- (_h = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _h === void 0 ? void 0 : _h.removeEventListener('waiting', handleWaiting);
14895
+ (_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('loadedmetadata', handleLoadedmetadata);
14896
+ (_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('loadeddata', handLoadeddata);
14897
+ (_d = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('play', handleStartPlay);
14898
+ (_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.removeEventListener('playing', handlePlaying);
14899
+ (_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.removeEventListener('pause', handlePause);
14900
+ (_g = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _g === void 0 ? void 0 : _g.removeEventListener('ended', handlePlay);
14901
+ (_h = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _h === void 0 ? void 0 : _h.removeEventListener('canplay', handlePlay);
14902
+ (_j = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _j === void 0 ? void 0 : _j.removeEventListener('waiting', handleWaiting);
14856
14903
  };
14857
- }, [isActive, videoId, rec]);
14904
+ }, [isActive, videoId, rec, handlePause]);
14858
14905
  React.useEffect(() => {
14859
14906
  var _a, _b;
14860
14907
  if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) || !isLoadFinish)
@@ -15000,23 +15047,23 @@ var ToggleButton$1 = React.memo(ToggleButton);
15000
15047
  * @Author: binruan@chatlabs.com
15001
15048
  * @Date: 2024-01-15 19:03:09
15002
15049
  * @LastEditors: binruan@chatlabs.com
15003
- * @LastEditTime: 2024-03-13 10:53:56
15050
+ * @LastEditTime: 2024-07-11 18:19:29
15004
15051
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\FingerSwipeTip\index.tsx
15005
15052
  *
15006
15053
  */
15007
- const FingerSwipeTip = ({ imageUrl, style }) => {
15054
+ const FingerSwipeTip = ({ imageUrl, style, duration = 2000 }) => {
15008
15055
  const [show, setShow] = React.useState(true);
15009
15056
  useEditor();
15010
15057
  React.useEffect(() => {
15011
15058
  setTimeout(() => {
15012
15059
  setShow(false);
15013
- }, 2000);
15060
+ }, duration);
15014
15061
  }, []);
15015
15062
  const FINGER_SWIPE_ICON = useIconLink('/pb_static/finger-swipe-tip.29dc3a48a3c746c906ea..png');
15016
15063
  const animationCls = React.useMemo(() => {
15017
15064
  return show ? 'pb-fadeIn' : 'pb-fadeOut';
15018
15065
  }, [show]);
15019
- return (React.createElement("div", { hidden: !show, className: `pb-finger-wrap ${animationCls}`, style: style },
15066
+ return (React.createElement("div", { hidden: !show, className: `pb-finger-wrap ${animationCls}`, style: Object.assign(Object.assign({}, style), { animationDuration: `${duration / 1000}s` }) },
15020
15067
  React.createElement("img", { src: imageUrl || FINGER_SWIPE_ICON, alt: 'finger swiper' })));
15021
15068
  };
15022
15069
 
@@ -15120,11 +15167,12 @@ var PictureGroup$3 = React.memo(PictureGroup$2);
15120
15167
  * @Author: binruan@chatlabs.com
15121
15168
  * @Date: 2024-01-15 19:03:09
15122
15169
  * @LastEditors: binruan@chatlabs.com
15123
- * @LastEditTime: 2024-06-26 18:52:46
15170
+ * @LastEditTime: 2024-07-09 18:47:05
15124
15171
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Hashtag\index.tsx
15125
15172
  *
15126
15173
  */
15127
15174
  const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle }) => {
15175
+ var _a;
15128
15176
  const [isShowMore, setIsShowMore] = React.useState(false);
15129
15177
  const { setWaterFallData, setOpenHashtag, setCacheActiveIndex, waterFallData, setIsFromHashtag } = useSxpDataSource();
15130
15178
  const handleClickTag = (data) => {
@@ -15156,7 +15204,8 @@ const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle }) => {
15156
15204
  }
15157
15205
  return (React.createElement("span", { style: { textDecoration: 'underline', cursor: 'pointer', color: '#fff' }, onClick: () => setIsShowMore(!isShowMore) }, isShowMore ? 'show less' : 'show more'));
15158
15206
  }, [isShowMore, tags]);
15159
- return (React.createElement("div", { className: 'clc-sxp-bottom-hashtag' },
15207
+ console.log(hashTagStyle, '111');
15208
+ return (React.createElement("div", { className: 'clc-sxp-bottom-hashtag', style: { marginTop: `${(_a = hashTagStyle === null || hashTagStyle === void 0 ? void 0 : hashTagStyle.marginTop) !== null && _a !== void 0 ? _a : 16}px` } },
15160
15209
  React.createElement(Scroll$1, null, tags === null || tags === void 0 ? void 0 : tags.map((item, index) => (React.createElement(SwiperSlide, { key: index, hidden: !isShowMore ? index >= 6 : false, className: 'clc-sxp-bottom-hashtag-item', style: hashTagStyle, onClick: () => handleClickTag(item) },
15161
15210
  React.createElement("div", { dangerouslySetInnerHTML: { __html: setFontForText(`#${item}`, hashTagStyle) } })))))));
15162
15211
  };
@@ -15360,7 +15409,7 @@ var Tagbar$1 = React.memo(Tagbar);
15360
15409
  * @Author: binruan@chatlabs.com
15361
15410
  * @Date: 2024-01-15 19:03:09
15362
15411
  * @LastEditors: binruan@chatlabs.com
15363
- * @LastEditTime: 2024-07-22 15:57:31
15412
+ * @LastEditTime: 2024-07-24 14:59:23
15364
15413
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
15365
15414
  *
15366
15415
  */
@@ -15566,18 +15615,18 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
15566
15615
  };
15567
15616
  }, [isShowMore]);
15568
15617
  const renderBottom = React.useCallback((rec, index) => {
15569
- var _a, _b, _c, _d, _e, _f, _g;
15618
+ var _a, _b, _c, _d, _e, _f, _g, _h;
15570
15619
  if (rec === null || rec === void 0 ? void 0 : rec.video) {
15571
15620
  return (React.createElement(React.Fragment, null,
15572
15621
  ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.title) && !isShowMore && React.createElement("div", { className: 'clc-sxp-bottom-shadow' }),
15573
- React.createElement("div", { className: 'clc-sxp-bottom' },
15622
+ React.createElement("div", { className: 'clc-sxp-bottom', style: { paddingBottom: `${(_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.bottomInfoDist) !== null && _b !== void 0 ? _b : 40}px` } },
15574
15623
  React.createElement(Nudge, { nudge: nudge }),
15575
15624
  (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) ? (React.createElement("div", { className: 'clc-sxp-bottom-card' },
15576
15625
  React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: resolver }))) : null,
15577
15626
  React.createElement("div", null,
15578
- React.createElement(ExpandableText$1, { className: 'clc-sxp-bottom-text', isPost: true, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (_c = (_b = rec === null || rec === void 0 ? void 0 : rec.video) === null || _b === void 0 ? void 0 : _b.title) !== null && _c !== void 0 ? _c : '', style: Object.assign(Object.assign({}, descStyle), { textShadow: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isOpenTextShadow) ? '2px 2px 4px rgba(0, 0, 0, 0.5)' : 'none' }), onChange: onExpandableChange }),
15627
+ React.createElement(ExpandableText$1, { className: 'clc-sxp-bottom-text', isPost: true, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (_d = (_c = rec === null || rec === void 0 ? void 0 : rec.video) === null || _c === void 0 ? void 0 : _c.title) !== null && _d !== void 0 ? _d : '', style: Object.assign(Object.assign({}, descStyle), { textShadow: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isOpenTextShadow) ? '2px 2px 4px rgba(0, 0, 0, 0.5)' : 'none' }), onChange: onExpandableChange }),
15579
15628
  React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, includesCtaType: ['AniLink'] }),
15580
- React.createElement(Hashtag$1, { index: activeIndex, tags: (_e = (_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.hashTags) !== null && _e !== void 0 ? _e : [], itemId: (_f = rec === null || rec === void 0 ? void 0 : rec.video) === null || _f === void 0 ? void 0 : _f.itemId, itemType: ((_g = rec === null || rec === void 0 ? void 0 : rec.video) === null || _g === void 0 ? void 0 : _g.itemId) ? 'VIDEO' : null, rec: rec, hashTagStyle: hashTagStyle }))),
15629
+ React.createElement(Hashtag$1, { index: activeIndex, tags: (_f = (_e = rec === null || rec === void 0 ? void 0 : rec.video) === null || _e === void 0 ? void 0 : _e.hashTags) !== null && _f !== void 0 ? _f : [], itemId: (_g = rec === null || rec === void 0 ? void 0 : rec.video) === null || _g === void 0 ? void 0 : _g.itemId, itemType: ((_h = rec === null || rec === void 0 ? void 0 : rec.video) === null || _h === void 0 ? void 0 : _h.itemId) ? 'VIDEO' : null, rec: rec, hashTagStyle: hashTagStyle }))),
15581
15630
  React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, includesCtaType: ['AniLinkPopup'] })));
15582
15631
  }
15583
15632
  return null;
@@ -15759,7 +15808,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
15759
15808
  React.createElement("img", { width: 64, height: 64, src: loadingImage, alt: 'loading...', style: { objectFit: 'contain' } })));
15760
15809
  }
15761
15810
  return visList === null || visList === void 0 ? void 0 : visList.map((rec, index) => {
15762
- return (React.createElement(SwiperSlide, { key: index, virtualIndex: index }, rec && (React.createElement(React.Fragment, null, (rec === null || rec === void 0 ? void 0 : rec.loading) ? (React.createElement("div", { style: {
15811
+ return (React.createElement(SwiperSlide, { key: index, virtualIndex: index, style: { overflow: 'hidden' } }, rec && (React.createElement(React.Fragment, null, (rec === null || rec === void 0 ? void 0 : rec.loading) ? (React.createElement("div", { style: {
15763
15812
  height,
15764
15813
  width: containerWidth,
15765
15814
  display: 'flex',
@@ -15782,7 +15831,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
15782
15831
  React.createElement(Tagbar$1, { tagList: tagList, setActiveIndex: setActiveIndex, style: {
15783
15832
  top: minusHeight
15784
15833
  } }),
15785
- isShowFingerTip ? (React.createElement(FingerSwipeTip, { imageUrl: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swipeTipIcon, style: { top: `${50 + ((_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swipeTipOffset) !== null && _a !== void 0 ? _a : 0)}%` } })) : null,
15834
+ isShowFingerTip ? (React.createElement(FingerSwipeTip, { imageUrl: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swipeTipIcon, style: { top: `${50 - ((_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swipeTipOffset) !== null && _a !== void 0 ? _a : 0)}%` }, duration: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swiperTipAniDur })) : null,
15786
15835
  React.createElement(Swiper, { style: {
15787
15836
  marginTop: tagHeight
15788
15837
  }, ref: swiperRef, onSlideChange: () => {
@@ -15807,13 +15856,13 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
15807
15856
  }
15808
15857
  }
15809
15858
  }, direction: 'vertical', height: height },
15810
- React.createElement(ToggleButton$1, { style: {
15859
+ ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowMute) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowMute) === true) && (React.createElement(ToggleButton$1, { style: {
15811
15860
  position: 'fixed',
15812
15861
  visibility: ((_c = (_b = data === null || data === void 0 ? void 0 : data[activeIndex]) === null || _b === void 0 ? void 0 : _b.video) === null || _c === void 0 ? void 0 : _c.url) ? 'visible' : 'hidden',
15813
15862
  zIndex: 999,
15814
15863
  [(_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconXPosit) !== null && _d !== void 0 ? _d : 'right']: (_e = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _e !== void 0 ? _e : 0,
15815
15864
  [(_f = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconYPosit) !== null && _f !== void 0 ? _f : 'bottom']: (_g = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _g !== void 0 ? _g : 23
15816
- }, defaultValue: isMuted, activeIcon: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unMuteIcon) ? globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unMuteIcon : mutedIcon, unactiveIcon: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIcon) ? globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIcon : unmutedIcon, onChange: setIsMuted }),
15865
+ }, defaultValue: isMuted, activeIcon: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unMuteIcon) ? globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unMuteIcon : mutedIcon, unactiveIcon: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIcon) ? globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIcon : unmutedIcon, onChange: setIsMuted })),
15817
15866
  renderView),
15818
15867
  React.createElement(WaterFall$1, Object.assign({}, (_k = (_j = (_h = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.hashTag) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.item) === null || _k === void 0 ? void 0 : _k.props))));
15819
15868
  };
@@ -16249,7 +16298,7 @@ const Popup = () => {
16249
16298
  * @Author: binruan@chatlabs.com
16250
16299
  * @Date: 2024-01-15 19:03:09
16251
16300
  * @LastEditors: binruan@chatlabs.com
16252
- * @LastEditTime: 2024-06-13 14:54:12
16301
+ * @LastEditTime: 2024-07-24 16:35:44
16253
16302
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageCore\index.tsx
16254
16303
  *
16255
16304
  */
@@ -16273,7 +16322,7 @@ const SxpPageCore = ({ data, maxSize = 10, defaultSize = 10, hashTagSize = 20, l
16273
16322
  return searchParams;
16274
16323
  }, []);
16275
16324
  return (React.createElement(EditorCore, { resolver: RESOLVER, enableDataSource: false, schema: data === null || data === void 0 ? void 0 : data.data, utmVal: utmVal },
16276
- React.createElement(SxpDataSourceProvider$1, { utmVal: utmVal, dataSources: data === null || data === void 0 ? void 0 : data.data_sources, sxpParameter: data === null || data === void 0 ? void 0 : data.sxp_parameter, maxSize: (_b = (_a = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _a === void 0 ? void 0 : _a.personalized_recommend) !== null && _b !== void 0 ? _b : maxSize, defaultSize: (_d = (_c = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _c === void 0 ? void 0 : _c.default_recommend) !== null && _d !== void 0 ? _d : defaultSize, hashTagSize: (_f = (_e = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _e === void 0 ? void 0 : _e.hash_tag_size) !== null && _f !== void 0 ? _f : hashTagSize, loadingImage: loadingImage, appDomain: appDomain, enabledMetaConversionApi: enabledMetaConversionApi, isShowTag: (_j = (_h = (_g = data === null || data === void 0 ? void 0 : data.data) === null || _g === void 0 ? void 0 : _g.sxpPageConf) === null || _h === void 0 ? void 0 : _h.globalConfig) === null || _j === void 0 ? void 0 : _j.isShowTag, globalConfig: (_l = (_k = data === null || data === void 0 ? void 0 : data.data) === null || _k === void 0 ? void 0 : _k.sxpPageConf) === null || _l === void 0 ? void 0 : _l.globalConfig, render: ({ rtcList, tagList }) => {
16325
+ React.createElement(SxpDataSourceProvider$1, { utmVal: utmVal, dataSources: data === null || data === void 0 ? void 0 : data.data_sources, sxpParameter: data === null || data === void 0 ? void 0 : data.sxp_parameter, maxSize: (_b = (_a = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _a === void 0 ? void 0 : _a.personalized_recommend) !== null && _b !== void 0 ? _b : maxSize, defaultSize: (_d = (_c = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _c === void 0 ? void 0 : _c.default_recommend) !== null && _d !== void 0 ? _d : defaultSize, hashTagSize: (_f = (_e = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _e === void 0 ? void 0 : _e.hash_tag_size) !== null && _f !== void 0 ? _f : hashTagSize, loadingImage: loadingImage, appDomain: appDomain, enabledMetaConversionApi: enabledMetaConversionApi, isShowTag: (_j = (_h = (_g = data === null || data === void 0 ? void 0 : data.data) === null || _g === void 0 ? void 0 : _g.sxpPageConf) === null || _h === void 0 ? void 0 : _h.globalConfig) === null || _j === void 0 ? void 0 : _j.isShowTag, globalConfig: (_l = (_k = data === null || data === void 0 ? void 0 : data.data) === null || _k === void 0 ? void 0 : _k.sxpPageConf) === null || _l === void 0 ? void 0 : _l.globalConfig, utmParameter: data === null || data === void 0 ? void 0 : data.utm_parameter, render: ({ rtcList, tagList }) => {
16277
16326
  var _a;
16278
16327
  return (React.createElement(React.Fragment, null,
16279
16328
  React.createElement(SxpPageRender, Object.assign({}, (_a = data === null || data === void 0 ? void 0 : data.data) === null || _a === void 0 ? void 0 : _a.sxpPageConf, { tagList: tagList, data: rtcList, resolver: RESOLVER, licenseUrl: licenseUrl })),