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/pb-ui.js CHANGED
@@ -547,7 +547,7 @@
547
547
  DataSourceType[DataSourceType["BFF"] = 5] = "BFF";
548
548
  })(DataSourceType || (DataSourceType = {}));
549
549
  const DEFAULT_TAG = 'FOR U';
550
- 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 }) => {
550
+ 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 }) => {
551
551
  var _a, _b, _c;
552
552
  const [rtcList, setRtcList] = React.useState([]);
553
553
  const [tagList, setTagList] = React.useState([]);
@@ -629,7 +629,7 @@
629
629
  const val = (_h = (_g = (_f = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _f === void 0 ? void 0 : _f.filter((val) => {
630
630
  var _a, _b;
631
631
  const key = val.split('=')[0];
632
- 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);
632
+ 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);
633
633
  })) === null || _g === void 0 ? void 0 : _g.join('&')) !== null && _h !== void 0 ? _h : '';
634
634
  query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(val) });
635
635
  }
@@ -724,7 +724,7 @@
724
724
  const val = (_o = (_m = (_l = utmVal === null || utmVal === void 0 ? void 0 : utmVal.split('&')) === null || _l === void 0 ? void 0 : _l.filter((val) => {
725
725
  var _a, _b;
726
726
  const key = val.split('=')[0];
727
- 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);
727
+ 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);
728
728
  })) === null || _m === void 0 ? void 0 : _m.join('&')) !== null && _o !== void 0 ? _o : '';
729
729
  const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('/tag/list', { method: 'GET', query: { channel: decodeURIComponent(val) } }));
730
730
  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 : []);
@@ -8981,7 +8981,7 @@
8981
8981
  width: '100%',
8982
8982
  objectFit: 'cover',
8983
8983
  display: 'block',
8984
- objectPosition: `50% ${(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) ? -(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) + 50 : 50}%`
8984
+ objectPosition: `50% ${(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) ? (swiper === null || swiper === void 0 ? void 0 : swiper.translateY) + 50 : 50}%`
8985
8985
  }, src: src }))));
8986
8986
  }))))),
8987
8987
  !((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css.css({
@@ -9709,7 +9709,7 @@ Made in Italy` })));
9709
9709
  width: '100%',
9710
9710
  objectFit: 'cover',
9711
9711
  display: 'block',
9712
- objectPosition: `50% ${(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) ? -(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) + 50 : 50}%`
9712
+ objectPosition: `50% ${(swiper === null || swiper === void 0 ? void 0 : swiper.translateY) ? (swiper === null || swiper === void 0 ? void 0 : swiper.translateY) + 50 : 50}%`
9713
9713
  }, src: src }))));
9714
9714
  }))),
9715
9715
  !((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css.css({
@@ -10095,7 +10095,7 @@ Made in Italy` })));
10095
10095
  * @Author: binruan@chatlabs.com
10096
10096
  * @Date: 2024-01-16 14:50:13
10097
10097
  * @LastEditors: binruan@chatlabs.com
10098
- * @LastEditTime: 2024-06-24 18:13:14
10098
+ * @LastEditTime: 2024-07-04 18:13:23
10099
10099
  * @FilePath: \pb-sxp-ui\src\materials\sxp\template\components\Img.tsx
10100
10100
  *
10101
10101
  */
@@ -10116,7 +10116,7 @@ Made in Italy` })));
10116
10116
  }, [src]);
10117
10117
  return (React.createElement("div", { className: css.css(Object.assign({ overflow: 'hidden', flexShrink: 0, backgroundColor: '#f2f2f2' }, imgStyle)) },
10118
10118
  React.createElement("div", { ref: ref, hidden: !src, className: css.css({ width: '100%', height: '100%' }) },
10119
- 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 }))));
10119
+ 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 }))));
10120
10120
  };
10121
10121
  var Img$1 = React.memo(Img);
10122
10122
 
@@ -10169,18 +10169,24 @@ Made in Italy` })));
10169
10169
  }
10170
10170
  }, []);
10171
10171
  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) => {
10172
- var _a, _b, _c, _d, _e, _f, _g, _h;
10172
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
10173
10173
  return (React.createElement(EventProvider$1, Object.assign({ key: index, isExternalLink: isExternalLink, rec: recData, index: index }, props, { className: css.css({
10174
10174
  display: 'flex'
10175
10175
  }) }),
10176
10176
  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 }),
10177
- React.createElement("div", { style: { flex: 1, display: 'flex', flexDirection: 'column', justifyContent: 'space-between' } },
10177
+ React.createElement("div", { style: {
10178
+ flex: 1,
10179
+ 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)`,
10180
+ display: 'flex',
10181
+ flexDirection: 'column',
10182
+ justifyContent: 'space-between'
10183
+ } },
10178
10184
  React.createElement("div", null,
10179
- 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: {
10180
- __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)
10185
+ 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: {
10186
+ __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)
10181
10187
  } }),
10182
- 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: {
10183
- __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)
10188
+ 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: {
10189
+ __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)
10184
10190
  } })),
10185
10191
  React.createElement("div", { className: css.css({
10186
10192
  display: 'flex',
@@ -10193,7 +10199,7 @@ Made in Italy` })));
10193
10199
  __html: setFontForText(priceText(item), commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price)
10194
10200
  } }),
10195
10201
  React.createElement("div", { className: 'one-line-ellipsis', style: Object.assign(Object.assign({}, buttonStyle), { padding: '0 15px', maxWidth: '100px' }), dangerouslySetInnerHTML: {
10196
- __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)
10202
+ __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)
10197
10203
  } })))));
10198
10204
  })));
10199
10205
  };
@@ -10286,7 +10292,7 @@ Made in Italy` })));
10286
10292
  * @Author: binruan@chatlabs.com
10287
10293
  * @Date: 2024-03-26 16:50:25
10288
10294
  * @LastEditors: binruan@chatlabs.com
10289
- * @LastEditTime: 2024-06-27 09:55:59
10295
+ * @LastEditTime: 2024-07-04 17:47:52
10290
10296
  * @FilePath: \pb-sxp-ui\src\materials\sxp\template\components\settingRender.tsx
10291
10297
  *
10292
10298
  */
@@ -10531,6 +10537,11 @@ Made in Italy` })));
10531
10537
  label: '对齐',
10532
10538
  type: 'TextAlign',
10533
10539
  name: ['props', 'ctaTempStyles', 'ctaTitle']
10540
+ },
10541
+ {
10542
+ label: '间距',
10543
+ type: 'TextSpace',
10544
+ name: ['props', 'ctaTempStyles', 'ctaTitle']
10534
10545
  }
10535
10546
  ]
10536
10547
  }
@@ -10843,7 +10854,7 @@ Made in Italy` })));
10843
10854
  overflow: 'hidden'
10844
10855
  }) },
10845
10856
  React.createElement("div", null,
10846
- 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: {
10857
+ React.createElement("div", { className: styles$7['tow-line-ellipsis'], style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle, dangerouslySetInnerHTML: {
10847
10858
  __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)
10848
10859
  } }),
10849
10860
  (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: {
@@ -11671,7 +11682,7 @@ Made in Italy` })));
11671
11682
  * @Author: binruan@chatlabs.com
11672
11683
  * @Date: 2023-12-26 16:11:34
11673
11684
  * @LastEditors: binruan@chatlabs.com
11674
- * @LastEditTime: 2024-06-27 10:19:28
11685
+ * @LastEditTime: 2024-07-04 18:34:18
11675
11686
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Navbar.tsx
11676
11687
  *
11677
11688
  */
@@ -11680,7 +11691,7 @@ Made in Italy` })));
11680
11691
  const { waterFallData, setOpenHashtag } = useSxpDataSource();
11681
11692
  return (React.createElement("div", { className: 'clc-sxp-nav', style: styles },
11682
11693
  React.createElement("img", { className: 'clc-sxp-nav-left', src: icon, alt: 'back button', onClick: onClose }),
11683
- React.createElement("div", { className: 'clc-sxp-nav-title', style: textStyle, dangerouslySetInnerHTML: {
11694
+ 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: {
11684
11695
  __html: setFontForText(`#${(_a = waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag) !== null && _a !== void 0 ? _a : '标题'}`, textStyle)
11685
11696
  } })));
11686
11697
  };
@@ -13275,7 +13286,7 @@ Made in Italy` })));
13275
13286
  var _a, _b;
13276
13287
  if ((_a = data === null || data === void 0 ? void 0 : data.tag) === null || _a === void 0 ? void 0 : _a.link) {
13277
13288
  reportTagsView();
13278
- window.location.href = (_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.link;
13289
+ window.location.href = window.getJointUtmLink((_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.link);
13279
13290
  }
13280
13291
  };
13281
13292
  return (React.createElement(React.Fragment, null, isLoadingData ? (React.createElement("div", { style: { height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' } },
@@ -13510,7 +13521,7 @@ Made in Italy` })));
13510
13521
  var _a, _b;
13511
13522
  if ((_a = data === null || data === void 0 ? void 0 : data.tag) === null || _a === void 0 ? void 0 : _a.link) {
13512
13523
  reportTagsView();
13513
- window.location.href = (_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.link;
13524
+ window.location.href = window.getJointUtmLink((_b = data === null || data === void 0 ? void 0 : data.tag) === null || _b === void 0 ? void 0 : _b.link);
13514
13525
  }
13515
13526
  };
13516
13527
  return (React.createElement(React.Fragment, null, isLoadingData ? (React.createElement("div", { style: { height: '100%', width: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' } },
@@ -13663,7 +13674,7 @@ Made in Italy` })));
13663
13674
  * @Author: binruan@chatlabs.com
13664
13675
  * @Date: 2023-07-28 18:29:57
13665
13676
  * @LastEditors: binruan@chatlabs.com
13666
- * @LastEditTime: 2024-04-30 10:13:13
13677
+ * @LastEditTime: 2024-07-04 18:38:10
13667
13678
  * @FilePath: \pb-sxp-ui\src\materials\sxp\HashTag\material.tsx
13668
13679
  *
13669
13680
  */
@@ -13683,7 +13694,8 @@ Made in Italy` })));
13683
13694
  textStyles: {
13684
13695
  hashTagTitle: {
13685
13696
  fontSize: 16,
13686
- color: '#000'
13697
+ color: '#000',
13698
+ textAlign: 'center'
13687
13699
  },
13688
13700
  hashTagDesc: {
13689
13701
  fontSize: 12,
@@ -13920,19 +13932,20 @@ Made in Italy` })));
13920
13932
  }
13921
13933
  ];
13922
13934
 
13923
- var styles$1 = {"animated-button":"index-module_animated-button__lqTbg","gradientCover":"index-module_gradientCover__5iUag"};
13935
+ 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"};
13924
13936
 
13925
13937
  const AniLink$1 = (_a) => {
13926
- var _b, _c, _d, _e, _f, _g, _h, _j, _k;
13938
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
13927
13939
  var { style, recData, ctaTempStyles, index, event, onClick, isExternalLink = false } = _a, props = __rest(_a, ["style", "recData", "ctaTempStyles", "index", "event", "onClick", "isExternalLink"]);
13928
13940
  const { ctaEvent, setPopupDetailData } = useSxpDataSource();
13929
13941
  const { jumpToWeb } = useEventReport();
13942
+ const [visible, setVisible] = React.useState(false);
13930
13943
  const ref = React.useRef(null);
13931
13944
  const isOnScreen = useOnScreen(ref);
13932
13945
  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);
13933
13946
  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);
13934
13947
  const handleTo = () => {
13935
- var _a, _b, _c;
13948
+ var _a, _b, _c, _d;
13936
13949
  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);
13937
13950
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
13938
13951
  eventSubject: 'clickCta',
@@ -13940,12 +13953,18 @@ Made in Italy` })));
13940
13953
  }, recData, item, index);
13941
13954
  setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { index }));
13942
13955
  if (isExternalLink) {
13943
- jumpToWeb(recData, product, cta, index);
13956
+ 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);
13957
+ if (link) {
13958
+ jumpToWeb(recData, product, cta, index);
13959
+ window.location.href = window.getJointUtmLink(link);
13960
+ }
13961
+ }
13962
+ else {
13963
+ onClick === null || onClick === void 0 ? void 0 : onClick();
13944
13964
  }
13945
- onClick === null || onClick === void 0 ? void 0 : onClick();
13946
13965
  };
13947
- const title = (cta === null || cta === void 0 ? void 0 : cta.title) || '查看详情 >';
13948
- const aniStyle = React.useMemo(() => {
13966
+ const title = (cta === null || cta === void 0 ? void 0 : cta.enTitle) || '查看详情 >';
13967
+ const aniTimStyle = React.useMemo(() => {
13949
13968
  var _a, _b;
13950
13969
  const ani = event === null || event === void 0 ? void 0 : event.animation;
13951
13970
  if (ani) {
@@ -13967,10 +13986,19 @@ Made in Italy` })));
13967
13986
  }, recData, product, index);
13968
13987
  }
13969
13988
  }, [isOnScreen]);
13970
- 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 }),
13971
- React.createElement("div", { className: 'one-line-ellipsis', style: ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle, dangerouslySetInnerHTML: {
13972
- __html: setFontForText(title, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
13973
- } })));
13989
+ React.useEffect(() => {
13990
+ if (isOnScreen) {
13991
+ setVisible(true);
13992
+ }
13993
+ }, [isOnScreen]);
13994
+ const aniNamStyle = React.useMemo(() => {
13995
+ if (!visible)
13996
+ return null;
13997
+ return styles$1['animated-button'];
13998
+ }, [visible]);
13999
+ 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: {
14000
+ __html: setFontForText(title, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
14001
+ } })));
13974
14002
  };
13975
14003
  var AniLinkComponent = React.memo(AniLink$1);
13976
14004
 
@@ -14333,19 +14361,23 @@ Made in Italy` })));
14333
14361
  }
14334
14362
  ];
14335
14363
 
14336
- 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"};
14364
+ 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"};
14337
14365
 
14338
14366
  const closeIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAjhJREFUWEfFlztOw0AQhmeWiJ4CCmpQ5DiRQsIJyAWg5A0lR0AIChDiCJS8ER0cADgBeRSxt4CCDgkaKiq8i+zYeWx2413HEWmiJJv9v535Z2aN8M8vFPT9z3zETD0aAUChUJjwvPFHAJhBhB3Hqd6OAsK2yyucwykAvP38eJX398Z3AJDLlVYR8ToU9Rhj25TWr9KEsKy5dULIGQCMtfZly45TvwsAstm56UwG6wA4FUFwzrdctxZBDcWSy5XWEPG8I84/GcMipdWPtgcsaz5PCHtKG0IuTiqUvjT9U/WYMG2IOPE+AP+LtCB0xKUAAyA2Xbd2o2OG0NQXvTnvhL17D7EPtH9TRCIWwkRcGYGIQgYBABuqPuHXOQBc6pw80lBGwBQiiXhsBHQhkoprA6iM6acjhDQKu5YJZW6XeOI3XJdpvfsdTu52VfXEekD8owQiXGIubpSCbhDbLu8DwKEAd+A41SOdPpE4BS0viFOtvV2iKWqUgn5x/tmS70xR01GuDSCKc86/OCcLgTyyZ0ScDGNhFAktAJV4NFJ9YyaFiAWIE+9uVkkgBgLoig8DMWAa9ro9ynkUdlW5maZDCmB6clmz0k1HH4Cs1Ezbq2p2yEpUuBOKTSZZex00RUWIrltxuuK6EOGDSbGIOPZicpMx6fny650377qNRgBgWeVFQuA+6UjVgREhGIMlSqsPUQqIbZdOOIdZQmCv2axRnU1N1+TzJYsxOEaEV8ep7frPZ7Gd0FTEdP0ft0/kMNdg0eoAAAAASUVORK5CYII=';
14339
14367
  const AniLinkPopup$1 = (_a) => {
14340
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
14368
+ 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;
14341
14369
  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"]);
14370
+ style === null || style === void 0 ? true : delete style.transform;
14342
14371
  const { sxpParameter, globalConfig, ctaEvent, setPopupDetailData } = useSxpDataSource();
14343
14372
  const { jumpToWeb } = useEventReport();
14344
- const [visible, setVisible] = React.useState(true);
14373
+ const ref = React.useRef(null);
14374
+ const isOnScreen = useOnScreen(ref);
14375
+ const [visible, setVisible] = React.useState(false);
14376
+ const [startAni, setStartAni] = React.useState(true);
14345
14377
  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);
14346
14378
  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);
14347
14379
  const handleTo = () => {
14348
- var _a, _b, _c;
14380
+ var _a, _b, _c, _d;
14349
14381
  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);
14350
14382
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
14351
14383
  eventSubject: 'clickCta',
@@ -14353,42 +14385,54 @@ Made in Italy` })));
14353
14385
  }, recData, item, index);
14354
14386
  setPopupDetailData === null || setPopupDetailData === void 0 ? void 0 : setPopupDetailData(Object.assign(Object.assign({}, recData), { index }));
14355
14387
  if (isExternalLink) {
14356
- jumpToWeb(recData, product, cta, index);
14388
+ 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);
14389
+ if (link) {
14390
+ jumpToWeb(recData, product, cta, index);
14391
+ window.location.href = window.getJointUtmLink(link);
14392
+ }
14393
+ }
14394
+ else {
14395
+ onClick === null || onClick === void 0 ? void 0 : onClick();
14357
14396
  }
14358
- onClick === null || onClick === void 0 ? void 0 : onClick();
14359
14397
  };
14360
- const title = (cta === null || cta === void 0 ? void 0 : cta.title) || '查看详情 >';
14361
- const aniStyle = React.useMemo(() => {
14362
- var _a, _b;
14398
+ const title = (cta === null || cta === void 0 ? void 0 : cta.enTitle) || '查看详情 >';
14399
+ const aniTimStyle = React.useMemo(() => {
14363
14400
  const ani = event === null || event === void 0 ? void 0 : event.animation;
14364
14401
  if (ani) {
14365
- const { delay, duration, backgroundColor } = ani;
14402
+ const { delay, duration } = ani;
14366
14403
  return {
14367
- ':after': {
14368
- animationDelay: `${(_a = delay / 1000) !== null && _a !== void 0 ? _a : 0}s`,
14369
- animationDuration: `${(_b = duration / 1000) !== null && _b !== void 0 ? _b : 0}s`,
14370
- backgroundColor: `${backgroundColor !== null && backgroundColor !== void 0 ? backgroundColor : 'transparent'}`
14371
- }
14404
+ animationDelay: `${delay ? delay / 1000 : 0}s`,
14405
+ animationDuration: `${duration ? duration / 1000 : 0}s`
14372
14406
  };
14373
14407
  }
14374
14408
  }, [event === null || event === void 0 ? void 0 : event.animation]);
14375
14409
  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;
14376
14410
  const onClose = (event) => {
14377
14411
  event.stopPropagation();
14378
- setVisible(false);
14412
+ setStartAni(false);
14379
14413
  };
14414
+ React.useEffect(() => {
14415
+ if (isOnScreen) {
14416
+ setVisible(true);
14417
+ }
14418
+ }, [isOnScreen]);
14419
+ const aniNamStyle = React.useMemo(() => {
14420
+ if (!visible)
14421
+ return null;
14422
+ return startAni ? styles['animated-fadeIn'] : null;
14423
+ }, [visible, startAni]);
14380
14424
  return (React.createElement(React.Fragment, null, isTel ? (React.createElement("div", { style: {
14381
14425
  height: '40px',
14382
14426
  lineHeight: '40px',
14383
14427
  paddingLeft: '6px'
14384
- } }, "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 }),
14385
- 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 } },
14386
- 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'] })),
14387
- 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 }),
14388
- 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: {
14389
- __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)
14428
+ } }, "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 }),
14429
+ 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 } },
14430
+ 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'] })),
14431
+ 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 }),
14432
+ 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: {
14433
+ __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)
14390
14434
  } }),
14391
- 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: {
14435
+ 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: {
14392
14436
  __html: setFontForText(title, ctaTempStyles === null || ctaTempStyles === void 0 ? void 0 : ctaTempStyles.ctaTitle)
14393
14437
  } })))));
14394
14438
  };
@@ -14834,20 +14878,23 @@ Made in Italy` })));
14834
14878
  (_j = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _j === void 0 ? void 0 : _j.addEventListener('canplay', handlePlay);
14835
14879
  (_k = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _k === void 0 ? void 0 : _k.addEventListener('waiting', handleWaiting);
14836
14880
  return () => {
14837
- var _a, _b, _c, _d, _e, _f, _g, _h;
14881
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
14882
+ const isPause = (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
14883
+ if (!isPause)
14884
+ handlePause();
14838
14885
  if (hls)
14839
14886
  hls === null || hls === void 0 ? void 0 : hls.destroy();
14840
14887
  setIsLoadFinish(false);
14841
- (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedmetadata);
14842
- (_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('loadeddata', handLoadeddata);
14843
- (_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('play', handleStartPlay);
14844
- (_d = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('playing', handlePlaying);
14845
- (_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.removeEventListener('pause', handlePause);
14846
- (_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.removeEventListener('ended', handlePlay);
14847
- (_g = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _g === void 0 ? void 0 : _g.removeEventListener('canplay', handlePlay);
14848
- (_h = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _h === void 0 ? void 0 : _h.removeEventListener('waiting', handleWaiting);
14888
+ (_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('loadedmetadata', handleLoadedmetadata);
14889
+ (_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('loadeddata', handLoadeddata);
14890
+ (_d = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('play', handleStartPlay);
14891
+ (_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.removeEventListener('playing', handlePlaying);
14892
+ (_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.removeEventListener('pause', handlePause);
14893
+ (_g = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _g === void 0 ? void 0 : _g.removeEventListener('ended', handlePlay);
14894
+ (_h = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _h === void 0 ? void 0 : _h.removeEventListener('canplay', handlePlay);
14895
+ (_j = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _j === void 0 ? void 0 : _j.removeEventListener('waiting', handleWaiting);
14849
14896
  };
14850
- }, [isActive, videoId, rec]);
14897
+ }, [isActive, videoId, rec, handlePause]);
14851
14898
  React.useEffect(() => {
14852
14899
  var _a, _b;
14853
14900
  if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) || !isLoadFinish)
@@ -14993,23 +15040,23 @@ Made in Italy` })));
14993
15040
  * @Author: binruan@chatlabs.com
14994
15041
  * @Date: 2024-01-15 19:03:09
14995
15042
  * @LastEditors: binruan@chatlabs.com
14996
- * @LastEditTime: 2024-03-13 10:53:56
15043
+ * @LastEditTime: 2024-07-11 18:19:29
14997
15044
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\FingerSwipeTip\index.tsx
14998
15045
  *
14999
15046
  */
15000
- const FingerSwipeTip = ({ imageUrl, style }) => {
15047
+ const FingerSwipeTip = ({ imageUrl, style, duration = 2000 }) => {
15001
15048
  const [show, setShow] = React.useState(true);
15002
15049
  useEditor();
15003
15050
  React.useEffect(() => {
15004
15051
  setTimeout(() => {
15005
15052
  setShow(false);
15006
- }, 2000);
15053
+ }, duration);
15007
15054
  }, []);
15008
15055
  const FINGER_SWIPE_ICON = useIconLink('/pb_static/finger-swipe-tip.29dc3a48a3c746c906ea..png');
15009
15056
  const animationCls = React.useMemo(() => {
15010
15057
  return show ? 'pb-fadeIn' : 'pb-fadeOut';
15011
15058
  }, [show]);
15012
- return (React.createElement("div", { hidden: !show, className: `pb-finger-wrap ${animationCls}`, style: style },
15059
+ return (React.createElement("div", { hidden: !show, className: `pb-finger-wrap ${animationCls}`, style: Object.assign(Object.assign({}, style), { animationDuration: `${duration / 1000}s` }) },
15013
15060
  React.createElement("img", { src: imageUrl || FINGER_SWIPE_ICON, alt: 'finger swiper' })));
15014
15061
  };
15015
15062
 
@@ -15113,11 +15160,12 @@ Made in Italy` })));
15113
15160
  * @Author: binruan@chatlabs.com
15114
15161
  * @Date: 2024-01-15 19:03:09
15115
15162
  * @LastEditors: binruan@chatlabs.com
15116
- * @LastEditTime: 2024-06-26 18:52:46
15163
+ * @LastEditTime: 2024-07-09 18:47:05
15117
15164
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Hashtag\index.tsx
15118
15165
  *
15119
15166
  */
15120
15167
  const Hashtag = ({ tags, itemId, itemType, index, rec, hashTagStyle }) => {
15168
+ var _a;
15121
15169
  const [isShowMore, setIsShowMore] = React.useState(false);
15122
15170
  const { setWaterFallData, setOpenHashtag, setCacheActiveIndex, waterFallData, setIsFromHashtag } = useSxpDataSource();
15123
15171
  const handleClickTag = (data) => {
@@ -15149,7 +15197,8 @@ Made in Italy` })));
15149
15197
  }
15150
15198
  return (React.createElement("span", { style: { textDecoration: 'underline', cursor: 'pointer', color: '#fff' }, onClick: () => setIsShowMore(!isShowMore) }, isShowMore ? 'show less' : 'show more'));
15151
15199
  }, [isShowMore, tags]);
15152
- return (React.createElement("div", { className: 'clc-sxp-bottom-hashtag' },
15200
+ console.log(hashTagStyle, '111');
15201
+ 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` } },
15153
15202
  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) },
15154
15203
  React.createElement("div", { dangerouslySetInnerHTML: { __html: setFontForText(`#${item}`, hashTagStyle) } })))))));
15155
15204
  };
@@ -15353,7 +15402,7 @@ Made in Italy` })));
15353
15402
  * @Author: binruan@chatlabs.com
15354
15403
  * @Date: 2024-01-15 19:03:09
15355
15404
  * @LastEditors: binruan@chatlabs.com
15356
- * @LastEditTime: 2024-07-22 15:57:31
15405
+ * @LastEditTime: 2024-07-24 14:59:23
15357
15406
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
15358
15407
  *
15359
15408
  */
@@ -15559,18 +15608,18 @@ Made in Italy` })));
15559
15608
  };
15560
15609
  }, [isShowMore]);
15561
15610
  const renderBottom = React.useCallback((rec, index) => {
15562
- var _a, _b, _c, _d, _e, _f, _g;
15611
+ var _a, _b, _c, _d, _e, _f, _g, _h;
15563
15612
  if (rec === null || rec === void 0 ? void 0 : rec.video) {
15564
15613
  return (React.createElement(React.Fragment, null,
15565
15614
  ((_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' }),
15566
- React.createElement("div", { className: 'clc-sxp-bottom' },
15615
+ 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` } },
15567
15616
  React.createElement(Nudge, { nudge: nudge }),
15568
15617
  (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' },
15569
15618
  React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: resolver }))) : null,
15570
15619
  React.createElement("div", null,
15571
- 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 }),
15620
+ 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 }),
15572
15621
  React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, includesCtaType: ['AniLink'] }),
15573
- 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 }))),
15622
+ 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 }))),
15574
15623
  React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: resolver, includesCtaType: ['AniLinkPopup'] })));
15575
15624
  }
15576
15625
  return null;
@@ -15752,7 +15801,7 @@ Made in Italy` })));
15752
15801
  React.createElement("img", { width: 64, height: 64, src: loadingImage, alt: 'loading...', style: { objectFit: 'contain' } })));
15753
15802
  }
15754
15803
  return visList === null || visList === void 0 ? void 0 : visList.map((rec, index) => {
15755
- 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: {
15804
+ 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: {
15756
15805
  height,
15757
15806
  width: containerWidth,
15758
15807
  display: 'flex',
@@ -15775,7 +15824,7 @@ Made in Italy` })));
15775
15824
  React.createElement(Tagbar$1, { tagList: tagList, setActiveIndex: setActiveIndex, style: {
15776
15825
  top: minusHeight
15777
15826
  } }),
15778
- 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,
15827
+ 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,
15779
15828
  React.createElement(Swiper, { style: {
15780
15829
  marginTop: tagHeight
15781
15830
  }, ref: swiperRef, onSlideChange: () => {
@@ -15800,13 +15849,13 @@ Made in Italy` })));
15800
15849
  }
15801
15850
  }
15802
15851
  }, direction: 'vertical', height: height },
15803
- React.createElement(ToggleButton$1, { style: {
15852
+ ((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: {
15804
15853
  position: 'fixed',
15805
15854
  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',
15806
15855
  zIndex: 999,
15807
15856
  [(_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,
15808
15857
  [(_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
15809
- }, 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 }),
15858
+ }, 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 })),
15810
15859
  renderView),
15811
15860
  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))));
15812
15861
  };
@@ -16242,7 +16291,7 @@ Made in Italy` })));
16242
16291
  * @Author: binruan@chatlabs.com
16243
16292
  * @Date: 2024-01-15 19:03:09
16244
16293
  * @LastEditors: binruan@chatlabs.com
16245
- * @LastEditTime: 2024-06-13 14:54:12
16294
+ * @LastEditTime: 2024-07-24 16:35:44
16246
16295
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageCore\index.tsx
16247
16296
  *
16248
16297
  */
@@ -16266,7 +16315,7 @@ Made in Italy` })));
16266
16315
  return searchParams;
16267
16316
  }, []);
16268
16317
  return (React.createElement(EditorCore, { resolver: RESOLVER, enableDataSource: false, schema: data === null || data === void 0 ? void 0 : data.data, utmVal: utmVal },
16269
- 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 }) => {
16318
+ 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 }) => {
16270
16319
  var _a;
16271
16320
  return (React.createElement(React.Fragment, null,
16272
16321
  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 })),