pb-sxp-ui 1.0.40 → 1.0.41

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 (46) hide show
  1. package/dist/index.cjs +455 -135
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.css +8 -1
  4. package/dist/index.js +454 -135
  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 +458 -139
  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/components/DiyPortalPreview/PictureGroup.d.ts +13 -0
  15. package/es/core/components/DiyPortalPreview/PictureGroup.js +11 -0
  16. package/es/core/components/DiyPortalPreview/VideoWidget.d.ts +15 -0
  17. package/es/core/components/DiyPortalPreview/VideoWidget.js +236 -0
  18. package/es/core/components/DiyPortalPreview/index.d.ts +6 -0
  19. package/es/core/components/DiyPortalPreview/index.js +112 -0
  20. package/es/core/components/SxpPageRender/PictureGroup/Picture.js +1 -0
  21. package/es/core/components/SxpPageRender/VideoWidget/index.js +46 -79
  22. package/es/core/components/SxpPageRender/WaterFall/index.js +1 -1
  23. package/es/core/components/SxpPageRender/index.js +8 -13
  24. package/es/core/context/SxpDataSourceProvider.js +1 -1
  25. package/es/core/hooks/useEventReport.js +4 -4
  26. package/es/index.d.ts +1 -0
  27. package/es/index.js +1 -0
  28. package/es/materials/sxp/popup/CommodityDetail/index.js +6 -6
  29. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +9 -9
  30. package/lib/core/components/DiyPortalPreview/PictureGroup.d.ts +13 -0
  31. package/lib/core/components/DiyPortalPreview/PictureGroup.js +14 -0
  32. package/lib/core/components/DiyPortalPreview/VideoWidget.d.ts +15 -0
  33. package/lib/core/components/DiyPortalPreview/VideoWidget.js +239 -0
  34. package/lib/core/components/DiyPortalPreview/index.d.ts +6 -0
  35. package/lib/core/components/DiyPortalPreview/index.js +115 -0
  36. package/lib/core/components/SxpPageRender/PictureGroup/Picture.js +1 -0
  37. package/lib/core/components/SxpPageRender/VideoWidget/index.js +46 -79
  38. package/lib/core/components/SxpPageRender/WaterFall/index.js +1 -1
  39. package/lib/core/components/SxpPageRender/index.js +8 -13
  40. package/lib/core/context/SxpDataSourceProvider.js +1 -1
  41. package/lib/core/hooks/useEventReport.js +4 -4
  42. package/lib/index.d.ts +1 -0
  43. package/lib/index.js +3 -1
  44. package/lib/materials/sxp/popup/CommodityDetail/index.js +6 -6
  45. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +9 -9
  46. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -7,6 +7,7 @@ import { css } from '@emotion/css';
7
7
  import { BetaSchemaForm } from '@ant-design/pro-components';
8
8
  import * as ReactDOM from 'react-dom';
9
9
  import EventEmitter from 'eventemitter3';
10
+ import Hls from 'hls.js';
10
11
 
11
12
  /******************************************************************************
12
13
  Copyright (c) Microsoft Corporation.
@@ -554,7 +555,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
554
555
  fromKName = 'imagePage';
555
556
  }
556
557
  bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
557
- eventInfo: Object.assign(Object.assign({}, eventInfo), { ctaId: (_h = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _h !== void 0 ? _h : '', ctaName: (_j = cta === null || cta === void 0 ? void 0 : cta.title) !== null && _j !== void 0 ? _j : '', contentTags: JSON.stringify(cta === null || cta === void 0 ? void 0 : cta.tags), position: position + '', relatedContentId: (_l = (_k = rec === null || rec === void 0 ? void 0 : rec.video) === null || _k === void 0 ? void 0 : _k.itemId) !== null && _l !== void 0 ? _l : '', relatedProductId: isProd ? product === null || product === void 0 ? void 0 : product.itemId : '', traceInfo: (_m = cta === null || cta === void 0 ? void 0 : cta.traceInfo) !== null && _m !== void 0 ? _m : '', fromKName })
558
+ eventInfo: Object.assign(Object.assign({}, eventInfo), { ctaId: (_h = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _h !== void 0 ? _h : '', ctaName: (_j = cta === null || cta === void 0 ? void 0 : cta.title) !== null && _j !== void 0 ? _j : '', contentTags: JSON.stringify(cta === null || cta === void 0 ? void 0 : cta.tags), position: position + '', contentId: (_l = (_k = rec === null || rec === void 0 ? void 0 : rec.video) === null || _k === void 0 ? void 0 : _k.itemId) !== null && _l !== void 0 ? _l : '', productId: isProd ? product === null || product === void 0 ? void 0 : product.itemId : '', traceInfo: (_m = cta === null || cta === void 0 ? void 0 : cta.traceInfo) !== null && _m !== void 0 ? _m : '', fromKName })
558
559
  });
559
560
  }, [bffEventReport, isFromHashtag]);
560
561
  useEffect(() => {
@@ -841,7 +842,7 @@ const EditorCore = forwardRef(({ children, resolver, isSsr, schema, enableDataSo
841
842
  React.createElement(DataSourceProvider$1, { isSsr: isSsr, enable: enableDataSource }, children)));
842
843
  });
843
844
 
844
- var index$1 = /*#__PURE__*/Object.freeze({
845
+ var index$2 = /*#__PURE__*/Object.freeze({
845
846
  __proto__: null,
846
847
  EditorCore: EditorCore
847
848
  });
@@ -8127,8 +8128,8 @@ function useEventReport() {
8127
8128
  fromKPage: location === null || location === void 0 ? void 0 : location.href,
8128
8129
  contentTags: (product === null || product === void 0 ? void 0 : product.tags) ? JSON.stringify(product === null || product === void 0 ? void 0 : product.tags) : '',
8129
8130
  position: position + '',
8130
- relatedContentId: (_m = (_l = data === null || data === void 0 ? void 0 : data.video) === null || _l === void 0 ? void 0 : _l.itemId) !== null && _m !== void 0 ? _m : '',
8131
- relatedCtatId: (_o = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _o !== void 0 ? _o : '',
8131
+ contentId: (_m = (_l = data === null || data === void 0 ? void 0 : data.video) === null || _l === void 0 ? void 0 : _l.itemId) !== null && _m !== void 0 ? _m : '',
8132
+ ctatId: (_o = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _o !== void 0 ? _o : '',
8132
8133
  traceInfo: (_p = product === null || product === void 0 ? void 0 : product.traceInfo) !== null && _p !== void 0 ? _p : ''
8133
8134
  }
8134
8135
  });
@@ -8152,8 +8153,8 @@ function useEventReport() {
8152
8153
  fromKPage: location === null || location === void 0 ? void 0 : location.href,
8153
8154
  contentTags: JSON.stringify(product === null || product === void 0 ? void 0 : product.tags),
8154
8155
  position: position + '',
8155
- relatedContentId: (_d = data === null || data === void 0 ? void 0 : data.video) === null || _d === void 0 ? void 0 : _d.itemId,
8156
- relatedCtatId: cta === null || cta === void 0 ? void 0 : cta.itemId,
8156
+ contentId: (_d = data === null || data === void 0 ? void 0 : data.video) === null || _d === void 0 ? void 0 : _d.itemId,
8157
+ ctatId: cta === null || cta === void 0 ? void 0 : cta.itemId,
8157
8158
  traceInfo: product === null || product === void 0 ? void 0 : product.traceInfo,
8158
8159
  timeOnSite: Math.floor((new Date() - viewTime) / 1000) + '',
8159
8160
  eventSubject: 'productView',
@@ -8316,7 +8317,7 @@ const FormatImage = forwardRef((props, ref) => {
8316
8317
  var FormatImage$1 = memo(FormatImage);
8317
8318
 
8318
8319
  const CommodityDetail$1 = (_a) => {
8319
- var _b, _c, _d, _e, _f, _g, _h, _j;
8320
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k;
8320
8321
  var { content, style, bgImg, onClick, schema, isDefault, bottom_image, tipText, isPost, viewTime, rec, swiper, commodityStyles, buttonStyle, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "onClick", "schema", "isDefault", "bottom_image", "tipText", "isPost", "viewTime", "rec", "swiper", "commodityStyles", "buttonStyle", "index"]);
8321
8322
  const { sxpParameter } = useSxpDataSource();
8322
8323
  const { popupDetailData, bffEventReport, isPreview, waterFallData } = useSxpDataSource();
@@ -8357,7 +8358,7 @@ const CommodityDetail$1 = (_a) => {
8357
8358
  return '$7,000';
8358
8359
  }
8359
8360
  }, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
8360
- const width = isPreview ? 375 : window.innerWidth;
8361
+ const width = isPreview ? 375 : (_f = style === null || style === void 0 ? void 0 : style.width) !== null && _f !== void 0 ? _f : window.innerWidth;
8361
8362
  const renderContent = ({ isPost }) => {
8362
8363
  var _a, _b, _c;
8363
8364
  return (React.createElement("div", null,
@@ -8377,7 +8378,7 @@ const CommodityDetail$1 = (_a) => {
8377
8378
  };
8378
8379
  return (React.createElement("div", { className: 'pb-commondity' },
8379
8380
  React.createElement("div", Object.assign({ className: css(Object.assign({}, style)) }, props),
8380
- product && ((_f = product === null || product === void 0 ? void 0 : product.homePage) === null || _f === void 0 ? void 0 : _f.length) > 0 && (React.createElement(Swiper, { height: width, modules: [Pagination, Autoplay], pagination: {
8381
+ product && ((_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.length) > 0 && (React.createElement(Swiper, { height: width, modules: [Pagination, Autoplay], pagination: {
8381
8382
  clickable: true,
8382
8383
  bulletActiveClass: 'swipe-item-active-bullet',
8383
8384
  clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
@@ -8385,7 +8386,7 @@ const CommodityDetail$1 = (_a) => {
8385
8386
  : 'commondityDetail-swiper-clickable-center'
8386
8387
  }, loop: true, autoplay: {
8387
8388
  delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
8388
- } }, (_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.map((src) => {
8389
+ } }, (_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.map((src) => {
8389
8390
  return (React.createElement(SwiperSlide, { key: src },
8390
8391
  React.createElement("div", { style: {
8391
8392
  overflow: 'hidden',
@@ -8394,7 +8395,7 @@ const CommodityDetail$1 = (_a) => {
8394
8395
  } },
8395
8396
  React.createElement(FormatImage$1, { style: { height: '100%', width: '100%', objectFit: 'cover', display: 'block' }, src: src }))));
8396
8397
  }))),
8397
- !((_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.length) && (React.createElement("div", { className: css({
8398
+ !((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css({
8398
8399
  position: 'relative',
8399
8400
  height: 0,
8400
8401
  width: '100%',
@@ -8407,7 +8408,7 @@ const CommodityDetail$1 = (_a) => {
8407
8408
  top: 0,
8408
8409
  objectFit: 'cover',
8409
8410
  width: '100%'
8410
- }), src: (_j = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _j !== void 0 ? _j : bottom_image, alt: '' }))),
8411
+ }), src: (_k = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _k !== void 0 ? _k : bottom_image, alt: '' }))),
8411
8412
  React.createElement("div", { className: 'pb-commondity-content' }, renderContent({ isPost }))),
8412
8413
  renderBtn(),
8413
8414
  React.createElement(Modal$1, { visible: showModal, onClose: () => setShowModal(false) },
@@ -8767,7 +8768,7 @@ var settingRender$2 = [
8767
8768
  ];
8768
8769
 
8769
8770
  const CommodityDetailDiroNew$1 = (_a) => {
8770
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
8771
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
8771
8772
  var { style, isDefault, rec, viewTime, isPost, bottom_image, tipText, swiper, commodityStyles, buttonStyle, index } = _a, props = __rest(_a, ["style", "isDefault", "rec", "viewTime", "isPost", "bottom_image", "tipText", "swiper", "commodityStyles", "buttonStyle", "index"]);
8772
8773
  useState(true);
8773
8774
  const { sxpParameter } = useSxpDataSource();
@@ -8815,7 +8816,7 @@ const CommodityDetailDiroNew$1 = (_a) => {
8815
8816
  return '£102,300.00';
8816
8817
  }
8817
8818
  }, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
8818
- const width = isPreview ? 375 : window.innerWidth;
8819
+ const width = isPreview ? 375 : (_f = style === null || style === void 0 ? void 0 : style.width) !== null && _f !== void 0 ? _f : window.innerWidth;
8819
8820
  const productInfoText = ({ isPost }) => {
8820
8821
  return (React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
8821
8822
  React.createElement(ExpandableText$1, { isPost: isPost, onClick: () => setShowModal(true), className: 'pb-commondityDiroNew-info', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.info, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (product === null || product === void 0 ? void 0 : product.info) ||
@@ -8824,7 +8825,7 @@ Made in Italy` })));
8824
8825
  };
8825
8826
  return (React.createElement("div", { className: 'pb-commondityDiroNew' },
8826
8827
  React.createElement("div", Object.assign({ ref: scrollRef, className: css(Object.assign({}, style)) }, props),
8827
- product && ((_f = product === null || product === void 0 ? void 0 : product.homePage) === null || _f === void 0 ? void 0 : _f.length) > 0 && (React.createElement(Swiper, { height: width, modules: [Pagination, Autoplay], pagination: {
8828
+ product && ((_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.length) > 0 && (React.createElement(Swiper, { height: width, modules: [Pagination, Autoplay], pagination: {
8828
8829
  clickable: true,
8829
8830
  bulletActiveClass: 'commondityDiroNew-swipe-item-active-bullet',
8830
8831
  clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
@@ -8832,7 +8833,7 @@ Made in Italy` })));
8832
8833
  : 'commondityDiroNew-swiper-clickable-center'
8833
8834
  }, loop: true, autoplay: {
8834
8835
  delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
8835
- } }, (_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.map((src) => {
8836
+ } }, (_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.map((src) => {
8836
8837
  return (React.createElement(SwiperSlide, { key: src },
8837
8838
  React.createElement("div", { style: {
8838
8839
  overflow: 'hidden',
@@ -8841,7 +8842,7 @@ Made in Italy` })));
8841
8842
  } },
8842
8843
  React.createElement(FormatImage$1, { style: { height: '100%', width: '100%', objectFit: 'cover', display: 'block' }, src: src }))));
8843
8844
  }))),
8844
- !((_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.length) && (React.createElement("div", { className: css({
8845
+ !((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css({
8845
8846
  position: 'relative',
8846
8847
  height: 0,
8847
8848
  width: '100%',
@@ -8854,16 +8855,16 @@ Made in Italy` })));
8854
8855
  top: 0,
8855
8856
  objectFit: 'cover',
8856
8857
  width: '100%'
8857
- }), src: (_j = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _j !== void 0 ? _j : bottom_image, alt: '' }))),
8858
+ }), src: (_k = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _k !== void 0 ? _k : bottom_image, alt: '' }))),
8858
8859
  React.createElement("div", { className: 'pb-commondityDiroNew-content' },
8859
8860
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top' },
8860
8861
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-left' },
8861
- React.createElement("div", { className: 'pb-commondityDiroNew-content-top-left-title', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title }, (_k = product === null || product === void 0 ? void 0 : product.title) !== null && _k !== void 0 ? _k : 'Large Dior Toujours Bag'),
8862
+ React.createElement("div", { className: 'pb-commondityDiroNew-content-top-left-title', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title }, (_l = product === null || product === void 0 ? void 0 : product.title) !== null && _l !== void 0 ? _l : 'Large Dior Toujours Bag'),
8862
8863
  React.createElement("div", { className: 'pb-commondityDiroNew-content-collection', hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.collection) || (product === null || product === void 0 ? void 0 : product.collection) === ''), style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection }, (product === null || product === void 0 ? void 0 : product.collection) || 'Black Macrocannage Calfskin')),
8863
8864
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right' },
8864
8865
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.price), style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price }, priceText),
8865
- React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.taxInfo), style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo }, (_l = product === null || product === void 0 ? void 0 : product.taxInfo) !== null && _l !== void 0 ? _l : '税费'))),
8866
- (!product || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("button", { onClick: handleLink, className: 'pb-commondityDiroNew-btn', style: buttonStyle }, (_m = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _m !== void 0 ? _m : 'Shop now')),
8866
+ React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.taxInfo), style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo }, (_m = product === null || product === void 0 ? void 0 : product.taxInfo) !== null && _m !== void 0 ? _m : '税费'))),
8867
+ (!product || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("button", { onClick: handleLink, className: 'pb-commondityDiroNew-btn', style: buttonStyle }, (_o = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _o !== void 0 ? _o : 'Shop now')),
8867
8868
  productInfoText({ isPost }))),
8868
8869
  React.createElement(Modal$1, { visible: showModal, onClose: () => setShowModal(false) }, productInfoText({ isPost: false }))));
8869
8870
  };
@@ -11771,7 +11772,7 @@ const WaterFall = (props) => {
11771
11772
  }
11772
11773
  bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
11773
11774
  eventInfo: {
11774
- relatedContentId: (_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.itemId,
11775
+ contentId: (_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.itemId,
11775
11776
  position: cacheActiveIndex + '',
11776
11777
  contentTags: JSON.stringify((_e = rec === null || rec === void 0 ? void 0 : rec.video) === null || _e === void 0 ? void 0 : _e.tags),
11777
11778
  traceInfo: (_f = rec === null || rec === void 0 ? void 0 : rec.video) === null || _f === void 0 ? void 0 : _f.traceInfo,
@@ -11904,14 +11905,14 @@ var _materials_ = /*#__PURE__*/Object.freeze({
11904
11905
  Prompt: Prompt
11905
11906
  });
11906
11907
 
11907
- const defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
11908
- const defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
11908
+ const defaultUnLikeIconPath$1 = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
11909
+ const defaultLikeIconPath$1 = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
11909
11910
  const LikeButton = (_a) => {
11910
11911
  var { active, activeIcon, unActicveIcon, recData, position } = _a, props = __rest(_a, ["active", "activeIcon", "unActicveIcon", "recData", "position"]);
11911
11912
  const { mutateLike, mutateUnlike, bffEventReport } = useSxpDataSource();
11912
11913
  const [state, setState] = useState(active);
11913
- const likeIcon = useIconLink(defaultLikeIconPath);
11914
- const unlikeIcon = useIconLink(defaultUnLikeIconPath);
11914
+ const likeIcon = useIconLink(defaultLikeIconPath$1);
11915
+ const unlikeIcon = useIconLink(defaultUnLikeIconPath$1);
11915
11916
  const handleClick = debounce(() => __awaiter(void 0, void 0, void 0, function* () {
11916
11917
  var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
11917
11918
  if (state) {
@@ -11967,7 +11968,7 @@ var SXP_EVENT_TYPE;
11967
11968
  SXP_EVENT_TYPE["PAGE_DID_HIDE"] = "pageDidHide";
11968
11969
  })(SXP_EVENT_TYPE || (SXP_EVENT_TYPE = {}));
11969
11970
 
11970
- const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig }) => {
11971
+ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPostConfig }) => {
11971
11972
  const [isPauseVideo, setIsPauseVideo] = useState(false);
11972
11973
  const videoRef = useRef(null);
11973
11974
  const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
@@ -11977,13 +11978,12 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
11977
11978
  const { isActive } = useSwiperSlide();
11978
11979
  const canvasRef = useRef(null);
11979
11980
  const [firstFrameSrc, setFirstFrameSrc] = useState('');
11980
- const videoId = `pb-video-${index}`;
11981
11981
  useEffect(() => {
11982
11982
  if (!videoRef.current)
11983
11983
  return;
11984
- videoRef.current.muted(muted);
11984
+ videoRef.current.muted = muted;
11985
11985
  }, [muted]);
11986
- const handleEnded = useCallback(() => {
11986
+ const handleVideoStart = useCallback(() => {
11987
11987
  var _a;
11988
11988
  (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
11989
11989
  }, []);
@@ -11992,10 +11992,10 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
11992
11992
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
11993
11993
  setIsPauseVideo(false);
11994
11994
  const item = data[index];
11995
- if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration())) {
11996
- videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime()) || 0;
11997
- const videoDuration = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration()) !== null && _d !== void 0 ? _d : 0).toFixed(2);
11998
- const videoCurrentTime = ((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime()) !== null && _f !== void 0 ? _f : 0).toFixed(2);
11995
+ if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
11996
+ videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0;
11997
+ const videoDuration = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
11998
+ const videoCurrentTime = ((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
11999
11999
  const playType = isFirstPlay ? '0' : '1';
12000
12000
  bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
12001
12001
  eventInfo: {
@@ -12015,15 +12015,14 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
12015
12015
  setIsFirstPlay(false);
12016
12016
  }
12017
12017
  }, [bffEventReport, data, index, isFirstPlay]);
12018
- const handleCanplay = useCallback(() => {
12019
- handLoadeddata();
12018
+ const handleLoadedMetadata = useCallback(() => {
12020
12019
  setIsLoadFinish(true);
12021
12020
  }, []);
12022
12021
  const handleClickVideo = useCallback((type) => () => {
12023
12022
  var _a, _b, _c, _d, _e;
12024
12023
  if (!isLoadFinish)
12025
12024
  return;
12026
- const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused();
12025
+ const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
12027
12026
  switch (type) {
12028
12027
  case 'start':
12029
12028
  if (!isPause)
@@ -12048,13 +12047,13 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
12048
12047
  break;
12049
12048
  }
12050
12049
  }, [isLoadFinish]);
12051
- const handlePause = useCallback(() => {
12050
+ const onPause = useCallback(() => {
12052
12051
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
12053
12052
  const item = data[index];
12054
- const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration()) !== null && _b !== void 0 ? _b : 0).toFixed(2);
12055
- const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime()) !== null && _d !== void 0 ? _d : 0).toFixed(2);
12056
- if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration()) {
12057
- const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime()) - videoStartTime.current).toFixed(2);
12053
+ const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
12054
+ const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
12055
+ if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration) {
12056
+ const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime) - videoStartTime.current).toFixed(2);
12058
12057
  bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
12059
12058
  eventInfo: {
12060
12059
  eventSubject: 'playOverVideo',
@@ -12086,66 +12085,56 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
12086
12085
  return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
12087
12086
  }, [firstFrameSrc, rec]);
12088
12087
  const handLoadeddata = useCallback(() => {
12089
- var _a;
12090
- const videoDomRef = document.getElementById(`${videoId}_html5_api`);
12091
- if (((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || !canvasRef || !videoDomRef || !canvasRef.current)
12088
+ if (!canvasRef || !videoRef || !videoRef.current || !canvasRef.current)
12092
12089
  return;
12093
- const setFrameImg = () => {
12094
- const video = videoDomRef;
12095
- const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
12096
- const ctx = canvas.getContext('2d');
12097
- const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
12098
- const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
12099
- canvas.height = targetHeight;
12100
- canvas.width = targetWidth;
12101
- ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
12102
- setFirstFrameSrc(canvas.toDataURL());
12103
- };
12104
- setFrameImg();
12105
- setTimeout(() => {
12106
- setFrameImg();
12107
- }, 500);
12090
+ const video = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current;
12091
+ const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
12092
+ const ctx = canvas.getContext('2d');
12093
+ const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
12094
+ const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
12095
+ canvas.height = targetHeight;
12096
+ canvas.width = targetWidth;
12097
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
12098
+ setFirstFrameSrc(canvas.toDataURL());
12108
12099
  }, []);
12109
12100
  useEffect(() => {
12110
- var _a, _b, _c, _d, _e;
12101
+ var _a, _b, _c, _d;
12102
+ if (!videoRef.current)
12103
+ return;
12111
12104
  setIsPauseVideo(false);
12112
- const videoSrc = rec.video.url;
12113
- if (videoSrc && typeof TCPlayer === 'function') {
12114
- videoRef.current = TCPlayer(videoId, {
12115
- sources: [
12116
- {
12117
- src: videoSrc // 播放地址
12118
- }
12119
- ],
12120
- licenseUrl: 'https://license.vod2.myqcloud.com/license/v2/1325816236_1/v_cube.license', // license 地址,参考准备工作部分,在视立方控制台申请 license 后可获得 licenseUrl
12121
- controls: false,
12122
- autoplay: false,
12123
- loop: false,
12124
- muted: true,
12125
- preload: 'auto',
12126
- posterImage: false,
12127
- bigPlayButton: true
12128
- });
12129
- videoRef.current.play();
12130
- videoRef.current.pause();
12131
- }
12132
- (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.on('loadedmetadata', handleCanplay);
12133
- (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.on('canplay', handleCanplay);
12134
- (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.on('playing', handlePlaying);
12135
- // videoRef.current?.on('loadeddata', handLoadeddata);
12136
- (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.on('pause', handlePause);
12137
- (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.on('ended', handleEnded);
12105
+ if (!videoRef.current.src) {
12106
+ const videoSrc = rec.video.url;
12107
+ // if (videoSrc.includes('.m3u8')) {
12108
+ // if (Hls.isSupported()) {
12109
+ // const hls = new Hls();
12110
+ // hls.loadSource(videoSrc);
12111
+ // hls.attachMedia(videoRef.current);
12112
+ // hls.on(Hls.Events.MANIFEST_PARSED, function () {
12113
+ // videoRef?.current?.play();
12114
+ // });
12115
+ // } else if (videoRef.current.canPlayType('application/vnd.apple.mpegurl')) {
12116
+ // videoRef.current.src = videoSrc;
12117
+ // } else {
12118
+ // videoRef.current.src = videoSrc;
12119
+ // }
12120
+ // } else {
12121
+ videoRef.current.src = videoSrc;
12122
+ // }
12123
+ videoRef.current.setAttribute('x5-playsinline', 'true');
12124
+ videoRef.current.setAttribute('webkit-playsinline', 'true');
12125
+ }
12126
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('loadedmetadata', handleLoadedMetadata);
12127
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('canplay', handleLoadedMetadata);
12128
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('playing', handlePlaying);
12129
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('loadeddata', handLoadeddata);
12138
12130
  return () => {
12139
- var _a, _b, _c, _d, _e;
12140
- (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.off('loadedmetadata', handleCanplay);
12141
- (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.off('canplay', handleCanplay);
12142
- (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.off('playing', handlePlaying);
12143
- // videoRef.current?.off('loadeddata', handLoadeddata);
12144
- (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.off('pause', handlePause);
12145
- (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.off('ended', handleEnded);
12146
- videoRef.current.dispose();
12131
+ var _a, _b, _c, _d;
12132
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedMetadata);
12133
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('canplay', handleLoadedMetadata);
12134
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('playing', handlePlaying);
12135
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('loadeddata', handLoadeddata);
12147
12136
  };
12148
- }, []);
12137
+ }, [handleLoadedMetadata, handlePlaying, rec.video, handLoadeddata]);
12149
12138
  useEffect(() => {
12150
12139
  var _a;
12151
12140
  if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) || !isLoadFinish)
@@ -12231,31 +12220,23 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
12231
12220
  right: 0
12232
12221
  } },
12233
12222
  React.createElement("div", { style: { position: 'relative', width: '100%', height: '100%' } },
12234
- React.createElement("video", { id: `pb-video-${index}`, playsInline: true, crossOrigin: 'anonymous', style: {
12223
+ React.createElement("video", { id: `pb-video-${index}`, className: 'clc-pb-video', ref: videoRef, crossOrigin: 'anonymous', muted: true, controls: false, playsInline: true, preload: 'auto', onPause: onPause, onEnded: handleVideoStart, style: {
12235
12224
  width: '100%',
12236
12225
  height: '100%',
12237
- objectFit: 'contain',
12238
- backgroundColor: 'transparent',
12239
- pointerEvents: 'none'
12226
+ objectFit: 'contain'
12240
12227
  } }),
12241
12228
  React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON }))),
12242
- renderPoster)) : (React.createElement("div", { className: 'video-container', key: rec.video.itemId, style: {
12229
+ renderPoster)) : (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
12243
12230
  position: 'relative',
12244
12231
  width: '100%',
12245
12232
  height,
12246
12233
  overflow: 'hidden'
12247
- }, onClick: handleClickVideo() },
12248
- React.createElement("video", { id: `pb-video-${index}`, playsInline: true, crossOrigin: 'anonymous', style: {
12249
- backgroundColor: 'transparent',
12250
- width: '100%',
12251
- height: '100%',
12252
- objectFit: 'cover',
12253
- pointerEvents: 'none'
12254
- } }),
12234
+ } },
12235
+ React.createElement("video", { id: `pb-video-${index}`, className: 'clc-pb-video', ref: videoRef, crossOrigin: 'anonymous', muted: true, controls: false, playsInline: true, preload: 'auto', onPause: onPause, onEnded: handleVideoStart }),
12255
12236
  renderPoster,
12256
12237
  React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON })))));
12257
12238
  };
12258
- var VideoWidget$1 = memo(VideoWidget);
12239
+ var VideoWidget$3 = memo(VideoWidget$2);
12259
12240
 
12260
12241
  /*
12261
12242
  * @Author: binruan@chatlabs.com
@@ -12306,7 +12287,7 @@ const FingerSwipeTip = ({ imageUrl }) => {
12306
12287
  * @Author: binruan@chatlabs.com
12307
12288
  * @Date: 2024-03-20 10:27:31
12308
12289
  * @LastEditors: binruan@chatlabs.com
12309
- * @LastEditTime: 2024-04-22 14:04:00
12290
+ * @LastEditTime: 2024-04-26 14:33:25
12310
12291
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\PictureGroup\Picture.tsx
12311
12292
  *
12312
12293
  */
@@ -12338,6 +12319,7 @@ const Picture = (props) => {
12338
12319
  React.createElement(FormatImage$1, { src: src, style: Object.assign({ height: '100%', width: '100%', objectFit: 'cover' }, blurStyle) }),
12339
12320
  blur && (React.createElement(FormatImage$1, { src: src, style: {
12340
12321
  width: '100%',
12322
+ height: '100%',
12341
12323
  objectFit: 'contain',
12342
12324
  position: 'absolute',
12343
12325
  top: '50%',
@@ -12354,7 +12336,7 @@ const Picture = (props) => {
12354
12336
  * @LastEditTime: 2024-04-18 19:56:22
12355
12337
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\PictureGroup\index.tsx
12356
12338
  */
12357
- const PictureGroup = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
12339
+ const PictureGroup$2 = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
12358
12340
  var _a;
12359
12341
  const ref = useRef();
12360
12342
  const { isActive } = useSwiperSlide();
@@ -12383,7 +12365,7 @@ const PictureGroup = ({ imgUrls, width, height, rec, index, onReportViewImageEnd
12383
12365
  React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
12384
12366
  })));
12385
12367
  };
12386
- var PictureGroup$1 = memo(PictureGroup);
12368
+ var PictureGroup$3 = memo(PictureGroup$2);
12387
12369
 
12388
12370
  /*
12389
12371
  * @Author: binruan@chatlabs.com
@@ -12562,7 +12544,7 @@ const Nudge = ({ nudge }) => {
12562
12544
  * @Author: binruan@chatlabs.com
12563
12545
  * @Date: 2024-01-15 19:03:09
12564
12546
  * @LastEditors: binruan@chatlabs.com
12565
- * @LastEditTime: 2024-04-25 17:03:41
12547
+ * @LastEditTime: 2024-04-23 15:48:32
12566
12548
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
12567
12549
  *
12568
12550
  */
@@ -12644,8 +12626,8 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12644
12626
  // sessionDuration: Math.floor(((new Date() as any) - curTime) / 1000) + '',
12645
12627
  // eventSubject: 'sessionCompleted',
12646
12628
  // eventDescription: 'Session completed',
12647
- // relatedContentId: item?.video?.itemId,
12648
- // relatedProductId: item?.product?.itemId,
12629
+ // contentId: item?.video?.itemId,
12630
+ // productId: item?.product?.itemId,
12649
12631
  // position: item?.position
12650
12632
  // }
12651
12633
  // });
@@ -12689,12 +12671,12 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12689
12671
  sessionDuration: Math.floor((new Date() - curTime.current) / 1000) + '',
12690
12672
  eventSubject: 'sessionCompleted',
12691
12673
  eventDescription: 'Session completed',
12692
- relatedContentId: (_l = item === null || item === void 0 ? void 0 : item.video) === null || _l === void 0 ? void 0 : _l.itemId,
12693
- relatedProductId: (_m = item === null || item === void 0 ? void 0 : item.product) === null || _m === void 0 ? void 0 : _m.itemId,
12674
+ contentId: (_l = item === null || item === void 0 ? void 0 : item.video) === null || _l === void 0 ? void 0 : _l.itemId,
12675
+ productId: (_m = item === null || item === void 0 ? void 0 : item.product) === null || _m === void 0 ? void 0 : _m.itemId,
12694
12676
  position: activeIndex + '',
12695
12677
  fromKName,
12696
12678
  fromKPage: location === null || location === void 0 ? void 0 : location.href,
12697
- relatedCtatId: (_q = (_p = (_o = item.video) === null || _o === void 0 ? void 0 : _o.bindCta) === null || _p === void 0 ? void 0 : _p.itemId) !== null && _q !== void 0 ? _q : ''
12679
+ ctatId: (_q = (_p = (_o = item.video) === null || _o === void 0 ? void 0 : _o.bindCta) === null || _p === void 0 ? void 0 : _p.itemId) !== null && _q !== void 0 ? _q : ''
12698
12680
  }
12699
12681
  });
12700
12682
  }
@@ -12723,10 +12705,10 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12723
12705
  const renderContent = useCallback((rec, index) => {
12724
12706
  var _a, _b, _c, _d;
12725
12707
  if ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.url) {
12726
- return (React.createElement(VideoWidget$1, { rec: rec, index: index, muted: isMuted, data: data, height: height, activeIndex: activeIndex, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost }));
12708
+ return (React.createElement(VideoWidget$3, { rec: rec, index: index, muted: isMuted, data: data, height: height, activeIndex: activeIndex, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost }));
12727
12709
  }
12728
12710
  if ((_b = rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
12729
- return (React.createElement(PictureGroup$1, { key: rec.video.itemId, imgUrls: rec.video.imgUrls, width: containerWidth, height: height, rec: rec, index: index, onReportViewImageEnd: handleReportViewImageEnd, onViewImageStartEvent: handleViewImageStartEvent, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost }));
12711
+ return (React.createElement(PictureGroup$3, { key: rec.video.itemId, imgUrls: rec.video.imgUrls, width: containerWidth, height: height, rec: rec, index: index, onReportViewImageEnd: handleReportViewImageEnd, onViewImageStartEvent: handleViewImageStartEvent, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost }));
12730
12712
  }
12731
12713
  if (rec.product && Array.isArray(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) && ((_c = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _c === void 0 ? void 0 : _c.length) > 0) {
12732
12714
  return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
@@ -12828,8 +12810,8 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12828
12810
  eventInfo: {
12829
12811
  eventSubject: 'scrollDown',
12830
12812
  eventDescription: 'User scroll down',
12831
- relatedContentId: (_b = (_a = item.video) === null || _a === void 0 ? void 0 : _a.itemId) !== null && _b !== void 0 ? _b : '',
12832
- relatedProductId: (_d = (_c = item.product) === null || _c === void 0 ? void 0 : _c.itemId) !== null && _d !== void 0 ? _d : '',
12813
+ contentId: (_b = (_a = item.video) === null || _a === void 0 ? void 0 : _a.itemId) !== null && _b !== void 0 ? _b : '',
12814
+ productId: (_d = (_c = item.product) === null || _c === void 0 ? void 0 : _c.itemId) !== null && _d !== void 0 ? _d : '',
12833
12815
  requestId: null
12834
12816
  }
12835
12817
  });
@@ -12841,8 +12823,8 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12841
12823
  eventInfo: {
12842
12824
  eventSubject: 'scrollUp',
12843
12825
  eventDescription: 'User scroll up',
12844
- relatedContentId: (_f = (_e = item.video) === null || _e === void 0 ? void 0 : _e.itemId) !== null && _f !== void 0 ? _f : '',
12845
- relatedProductId: (_h = (_g = item.product) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
12826
+ contentId: (_f = (_e = item.video) === null || _e === void 0 ? void 0 : _e.itemId) !== null && _f !== void 0 ? _f : '',
12827
+ productId: (_h = (_g = item.product) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
12846
12828
  requestId: null
12847
12829
  }
12848
12830
  });
@@ -12923,12 +12905,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12923
12905
  } })),
12924
12906
  renderLogo,
12925
12907
  isShowFingerTip ? React.createElement(FingerSwipeTip, { imageUrl: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swipeTipIcon }) : null,
12926
- React.createElement(Swiper, { ref: swiperRef, onSlideChange: () => {
12927
- swiperRef.current.swiper.allowTouchMove = false;
12928
- setTimeout(() => {
12929
- swiperRef.current.swiper.allowTouchMove = true;
12930
- }, 500);
12931
- }, onActiveIndexChange: (swiper) => {
12908
+ React.createElement(Swiper, { ref: swiperRef, onActiveIndexChange: (swiper) => {
12932
12909
  setActiveIndex(swiper.activeIndex);
12933
12910
  if (openHashtag)
12934
12911
  return;
@@ -12945,9 +12922,6 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12945
12922
  }
12946
12923
  }
12947
12924
  },
12948
- // style={{
12949
- // pointerEvents: canSwiper ? 'auto' : 'none'
12950
- // }}
12951
12925
  // onReachEnd={() => {
12952
12926
  // // 由hashtaglist跳转过来时不执行下面的方法
12953
12927
  // if (waterFallData) return;
@@ -12973,6 +12947,351 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12973
12947
  React.createElement(WaterFall$1, Object.assign({}, (_g = (_f = (_e = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.hashTag) === null || _e === void 0 ? void 0 : _e[0]) === null || _f === void 0 ? void 0 : _f.item) === null || _g === void 0 ? void 0 : _g.props))));
12974
12948
  };
12975
12949
 
12950
+ const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
12951
+ return (React.createElement(Swiper, { defaultValue: 0, direction: 'horizontal', modules: [Pagination, Autoplay], pagination: { clickable: true, bulletActiveClass: 'swipe-item-active-bullet' }, height: height, style: { width }, loop: true, autoplay: false }, imgUrls === null || imgUrls === void 0 ? void 0 : imgUrls.map((url) => {
12952
+ return (React.createElement(SwiperSlide, { key: url },
12953
+ React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
12954
+ })));
12955
+ };
12956
+ var PictureGroup$1 = memo(PictureGroup);
12957
+
12958
+ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, width }) => {
12959
+ const [isPauseVideo, setIsPauseVideo] = useState(false);
12960
+ const videoRef = useRef(null);
12961
+ const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
12962
+ const videoStartTime = useRef(0);
12963
+ const [isLoadFinish, setIsLoadFinish] = useState(false);
12964
+ const [isFirstPlay, setIsFirstPlay] = useState(true);
12965
+ const canvasRef = useRef(null);
12966
+ const [firstFrameSrc, setFirstFrameSrc] = useState('');
12967
+ useEffect(() => {
12968
+ if (!videoRef.current)
12969
+ return;
12970
+ videoRef.current.muted = muted;
12971
+ }, [muted]);
12972
+ const handleVideoStart = useCallback(() => {
12973
+ var _a;
12974
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
12975
+ }, []);
12976
+ const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');
12977
+ const handlePlaying = useCallback(() => {
12978
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
12979
+ setIsPauseVideo(false);
12980
+ const item = data[index];
12981
+ if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
12982
+ videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0;
12983
+ const videoDuration = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
12984
+ const videoCurrentTime = ((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
12985
+ const playType = isFirstPlay ? '0' : '1';
12986
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
12987
+ eventInfo: {
12988
+ eventSubject: 'playVideo',
12989
+ eventDescription: 'User played the video',
12990
+ contentId: (_h = (_g = item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
12991
+ contentName: (_k = (_j = item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
12992
+ playType,
12993
+ startTime: videoCurrentTime,
12994
+ videoDuration,
12995
+ contentTags: JSON.stringify((_m = (_l = item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
12996
+ position: index + '',
12997
+ contentFormat: 'video',
12998
+ traceInfo: (_o = item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
12999
+ }
13000
+ });
13001
+ setIsFirstPlay(false);
13002
+ }
13003
+ }, [bffEventReport, data, index, isFirstPlay]);
13004
+ const handleLoadedMetadata = useCallback(() => {
13005
+ setIsLoadFinish(true);
13006
+ }, []);
13007
+ const handleClickVideo = useCallback((type) => () => {
13008
+ var _a, _b, _c, _d, _e;
13009
+ if (!isLoadFinish)
13010
+ return;
13011
+ const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
13012
+ switch (type) {
13013
+ case 'start':
13014
+ if (!isPause)
13015
+ return;
13016
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.play();
13017
+ setIsPauseVideo(false);
13018
+ break;
13019
+ case 'pause':
13020
+ if (isPause)
13021
+ return;
13022
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.pause();
13023
+ setIsPauseVideo(true);
13024
+ break;
13025
+ default:
13026
+ if (isPause) {
13027
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.play();
13028
+ }
13029
+ else {
13030
+ (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.pause();
13031
+ }
13032
+ setIsPauseVideo(!isPause);
13033
+ break;
13034
+ }
13035
+ }, [isLoadFinish]);
13036
+ const onPause = useCallback(() => {
13037
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
13038
+ const item = data[index];
13039
+ const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
13040
+ const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
13041
+ if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration) {
13042
+ const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime) - videoStartTime.current).toFixed(2);
13043
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
13044
+ eventInfo: {
13045
+ eventSubject: 'playOverVideo',
13046
+ eventDescription: 'User finished playing the video',
13047
+ contentId: (_h = (_g = item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
13048
+ contentName: (_k = (_j = item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
13049
+ endTime: videoCurrentTime,
13050
+ videoDuration,
13051
+ playDuration,
13052
+ contentTags: JSON.stringify((_m = (_l = item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
13053
+ position: index + '',
13054
+ contentFormat: 'video',
13055
+ traceInfo: (_o = item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
13056
+ }
13057
+ });
13058
+ }
13059
+ }, [data, index, bffEventReport]);
13060
+ const blur = useMemo(() => {
13061
+ return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
13062
+ }, [videoPostConfig]);
13063
+ const translateY = useMemo(() => {
13064
+ var _a;
13065
+ return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
13066
+ ? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
13067
+ : 'translateY(-50%)';
13068
+ }, [videoPostConfig]);
13069
+ const blurBgSrc = useMemo(() => {
13070
+ var _a;
13071
+ return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
13072
+ }, [firstFrameSrc, rec]);
13073
+ const handLoadeddata = useCallback(() => {
13074
+ if (!canvasRef || !videoRef || !videoRef.current || !canvasRef.current)
13075
+ return;
13076
+ const video = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current;
13077
+ const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
13078
+ const ctx = canvas.getContext('2d');
13079
+ const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
13080
+ const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
13081
+ canvas.height = targetHeight;
13082
+ canvas.width = targetWidth;
13083
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
13084
+ setFirstFrameSrc(canvas.toDataURL());
13085
+ }, []);
13086
+ useEffect(() => {
13087
+ var _a, _b, _c, _d;
13088
+ if (!videoRef.current)
13089
+ return;
13090
+ setIsPauseVideo(false);
13091
+ if (!videoRef.current.src) {
13092
+ const videoSrc = rec.video.url;
13093
+ if (videoSrc.includes('.m3u8')) {
13094
+ if (Hls.isSupported()) {
13095
+ const hls = new Hls();
13096
+ hls.loadSource(videoSrc);
13097
+ hls.attachMedia(videoRef.current);
13098
+ }
13099
+ else if (videoRef.current.canPlayType('application/vnd.apple.mpegurl')) {
13100
+ videoRef.current.src = videoSrc;
13101
+ }
13102
+ else {
13103
+ videoRef.current.src = videoSrc;
13104
+ }
13105
+ }
13106
+ else {
13107
+ videoRef.current.src = videoSrc;
13108
+ }
13109
+ videoRef.current.setAttribute('x5-playsinline', 'true');
13110
+ videoRef.current.setAttribute('webkit-playsinline', 'true');
13111
+ }
13112
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('loadedmetadata', handleLoadedMetadata);
13113
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('canplay', handleLoadedMetadata);
13114
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('playing', handlePlaying);
13115
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('loadeddata', handLoadeddata);
13116
+ return () => {
13117
+ var _a, _b, _c, _d;
13118
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedMetadata);
13119
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('canplay', handleLoadedMetadata);
13120
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('playing', handlePlaying);
13121
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('loadeddata', handLoadeddata);
13122
+ };
13123
+ }, [handleLoadedMetadata, handlePlaying, rec.video, handLoadeddata]);
13124
+ const renderPoster = useMemo(() => {
13125
+ if (!(sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image) || isLoadFinish) {
13126
+ return null;
13127
+ }
13128
+ return (React.createElement("img", { style: { position: 'absolute', left: 0, top: 0, width: '100%', height: '100%', objectFit: 'cover' }, src: sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image }));
13129
+ }, [isLoadFinish, sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image]);
13130
+ useEffect(() => {
13131
+ const handleBeforeUnload = () => {
13132
+ var _a, _b;
13133
+ if (activeIndex === index && ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.url) && ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.src) && !isPauseVideo) {
13134
+ handleClickVideo('pause')();
13135
+ }
13136
+ };
13137
+ window.addEventListener('beforeunload', handleBeforeUnload);
13138
+ return () => {
13139
+ window.removeEventListener('beforeunload', handleBeforeUnload);
13140
+ };
13141
+ }, [activeIndex, index, rec, videoRef, handleClickVideo, isPauseVideo]);
13142
+ const blurStyle = useMemo(() => {
13143
+ return blur
13144
+ ? {
13145
+ filter: 'blur(10px)',
13146
+ transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
13147
+ }
13148
+ : {};
13149
+ }, [blur]);
13150
+ if (!rec.video) {
13151
+ return null;
13152
+ }
13153
+ return (React.createElement(React.Fragment, null, blur ? (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
13154
+ position: 'relative',
13155
+ width,
13156
+ height,
13157
+ overflow: 'hidden'
13158
+ } },
13159
+ React.createElement(FormatImage$1, { src: blurBgSrc, style: Object.assign({ height,
13160
+ width, objectFit: 'cover' }, blurStyle) }),
13161
+ React.createElement("canvas", { ref: canvasRef, style: { display: 'none' } }),
13162
+ React.createElement("div", { style: {
13163
+ position: 'absolute',
13164
+ width,
13165
+ height,
13166
+ top: '50%',
13167
+ transform: translateY,
13168
+ left: 0,
13169
+ right: 0
13170
+ } },
13171
+ React.createElement("div", { style: { position: 'relative', width, height: '100%' } },
13172
+ React.createElement("video", { id: `pb-video-${index}`, className: 'clc-pb-video', ref: videoRef, crossOrigin: 'anonymous', muted: true, controls: false, playsInline: true, preload: 'auto', onPause: onPause, onEnded: handleVideoStart, style: {
13173
+ width: '100%',
13174
+ height,
13175
+ objectFit: 'contain'
13176
+ } }),
13177
+ React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON }))),
13178
+ renderPoster)) : (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
13179
+ position: 'relative',
13180
+ width,
13181
+ height,
13182
+ overflow: 'hidden'
13183
+ } },
13184
+ React.createElement("video", { id: `pb-video-${index}`, className: 'clc-pb-video', ref: videoRef, crossOrigin: 'anonymous', muted: true, controls: false, playsInline: true, preload: 'auto', onPause: onPause, onEnded: handleVideoStart }),
13185
+ renderPoster,
13186
+ React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON })))));
13187
+ };
13188
+ var VideoWidget$1 = memo(VideoWidget);
13189
+
13190
+ const RESOLVER$1 = {};
13191
+ Object.values(_materials_).forEach((v) => {
13192
+ RESOLVER$1[v.extend.type] = v;
13193
+ });
13194
+ const defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
13195
+ const defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
13196
+ const DiyPortalPreview = ({ data, globalConfig, tipText, nudge, tempMap, descStyle, hashTagStyle, containerHeight = 664, containerWidth = 375, appDomain }) => {
13197
+ const height = useMemo(() => {
13198
+ return (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo) ? containerHeight - 45 : containerHeight;
13199
+ }, [globalConfig, containerHeight]);
13200
+ const renderContent = (rec, index) => {
13201
+ var _a, _b, _c, _d;
13202
+ if ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.url) {
13203
+ return (React.createElement(VideoWidget$1, { rec: rec, index: index, muted: true, width: containerWidth, data: data !== null && data !== void 0 ? data : [], height: height, activeIndex: index, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost }));
13204
+ }
13205
+ if ((_b = rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
13206
+ return (React.createElement(PictureGroup$1, { key: rec.video.itemId, imgUrls: rec.video.imgUrls, width: containerWidth, height: height, rec: rec, index: index, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost }));
13207
+ }
13208
+ if (rec.product) {
13209
+ if (rec.product && Array.isArray(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) && ((_c = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _c === void 0 ? void 0 : _c.length) > 0) {
13210
+ return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
13211
+ var _a, _b, _c, _d, _e, _f, _g, _h;
13212
+ const t = RESOLVER$1[(_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type];
13213
+ const Component = withBindDataSource(t);
13214
+ const defaulSetting = (_b = t === null || t === void 0 ? void 0 : t.extend) === null || _b === void 0 ? void 0 : _b.defaulSetting;
13215
+ return (React.createElement(Component, Object.assign({ key: `${index}${idx}`, textStyle: Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.textStyle), (_c = value === null || value === void 0 ? void 0 : value.item) === null || _c === void 0 ? void 0 : _c.textStyle), bindDatas: (_e = (_d = value === null || value === void 0 ? void 0 : value.item) === null || _d === void 0 ? void 0 : _d.bindDatas) !== null && _e !== void 0 ? _e : [] }, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.props, (_f = value === null || value === void 0 ? void 0 : value.item) === null || _f === void 0 ? void 0 : _f.props, { event: ((_g = value === null || value === void 0 ? void 0 : value.item) === null || _g === void 0 ? void 0 : _g.event) || {},
13216
+ // schema={schema}
13217
+ id: value === null || value === void 0 ? void 0 : value.id,
13218
+ // viewTime={viewTime.current}
13219
+ rec: rec, isPost: true, tipText: tipText, style: Object.assign(Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.style), (_h = value === null || value === void 0 ? void 0 : value.item) === null || _h === void 0 ? void 0 : _h.style), { width: containerWidth, height, overflow: 'auto' }), index: index })));
13220
+ });
13221
+ }
13222
+ }
13223
+ };
13224
+ const renderLogo = useMemo(() => {
13225
+ if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo)) {
13226
+ return (React.createElement("div", { className: 'clc-sxp-logo-banner', style: { backgroundColor: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.color } },
13227
+ React.createElement("img", { src: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl, alt: 'logo' })));
13228
+ }
13229
+ return null;
13230
+ }, [globalConfig]);
13231
+ const renderBottom = (rec, index) => {
13232
+ var _a, _b, _c, _d, _e, _f, _g;
13233
+ if (rec.video) {
13234
+ return (React.createElement(React.Fragment, null,
13235
+ ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.title) && React.createElement("div", { className: 'clc-sxp-bottom-shadow' }),
13236
+ React.createElement("div", { className: 'clc-sxp-bottom' },
13237
+ React.createElement(Nudge, { nudge: nudge }),
13238
+ React.createElement("div", { className: 'clc-sxp-bottom-card' },
13239
+ React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1 })),
13240
+ React.createElement("div", null,
13241
+ 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.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' }) })),
13242
+ React.createElement(Hashtag$1, { index: index, 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.video) === null || _g === void 0 ? void 0 : _g.itemId) ? 'VIDEO' : null, rec: rec, hashTagStyle: hashTagStyle }))));
13243
+ }
13244
+ return null;
13245
+ };
13246
+ const likeIcon = useIconLink(defaultLikeIconPath, appDomain);
13247
+ const unlikeIcon = useIconLink(defaultUnLikeIconPath, appDomain);
13248
+ const renderLikeButton = (rec, index) => {
13249
+ var _a, _b, _c, _d;
13250
+ if (!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLike))
13251
+ return;
13252
+ let top = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconY) !== null && _a !== void 0 ? _a : 400;
13253
+ if (top < 40) {
13254
+ top += 40;
13255
+ }
13256
+ if (rec.video) {
13257
+ return (React.createElement(LikeButton$1, { key: rec.position, activeIcon: (_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIcon) !== null && _b !== void 0 ? _b : likeIcon, unActicveIcon: (_c = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unlikeIcon) !== null && _c !== void 0 ? _c : unlikeIcon, position: index, active: rec.isCollected, recData: rec, className: 'clc-sxp-like-button', style: {
13258
+ top,
13259
+ right: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconX) !== null && _d !== void 0 ? _d : 0
13260
+ } }));
13261
+ }
13262
+ return null;
13263
+ };
13264
+ const mutedIcon = useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png', appDomain);
13265
+ const unmutedIcon = useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png', appDomain);
13266
+ const renderView = (rec, index) => {
13267
+ var _a, _b, _c, _d;
13268
+ return (React.createElement("div", { style: { position: 'relative' } },
13269
+ renderLogo,
13270
+ React.createElement(ToggleButton$1, { style: {
13271
+ position: 'absolute',
13272
+ right: (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _a !== void 0 ? _a : 0,
13273
+ visibility: ((_c = (_b = data === null || data === void 0 ? void 0 : data[index]) === null || _b === void 0 ? void 0 : _b.video) === null || _c === void 0 ? void 0 : _c.url) ? 'visible' : 'hidden',
13274
+ bottom: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _d !== void 0 ? _d : 23,
13275
+ zIndex: 999
13276
+ }, defaultValue: true, 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 }),
13277
+ renderContent(rec, index),
13278
+ renderBottom(rec, index),
13279
+ renderLikeButton(rec, index)));
13280
+ };
13281
+ return (React.createElement("div", { style: {
13282
+ width: '100%',
13283
+ height: containerHeight,
13284
+ display: 'flex',
13285
+ boxSizing: 'border-box',
13286
+ gap: 16,
13287
+ pointerEvents: 'none',
13288
+ userSelect: 'none'
13289
+ } }, data === null || data === void 0 ? void 0 : data.map((rec, index) => {
13290
+ return renderView(rec, index);
13291
+ })));
13292
+ };
13293
+ var index$1 = memo(DiyPortalPreview);
13294
+
12976
13295
  /*
12977
13296
  * @Author: binruan@chatlabs.com
12978
13297
  * @Date: 2023-10-31 10:56:01
@@ -13113,5 +13432,5 @@ function useEditorDataProvider() {
13113
13432
  * @FilePath: \pb-sxp-ui\src\index.ts
13114
13433
  */
13115
13434
 
13116
- export { EditorDataProvider, Modal$1 as Modal, SxpDataSourceProvider$1 as SxpDataSourceProvider, index as SxpPageCore, SxpPageRender, index$1 as core, Pagebuilder as default, defaultSetting, _materials_ as materials, useEditorDataProvider };
13435
+ export { index$1 as DiyPortalPreview, EditorDataProvider, Modal$1 as Modal, SxpDataSourceProvider$1 as SxpDataSourceProvider, index as SxpPageCore, SxpPageRender, index$2 as core, Pagebuilder as default, defaultSetting, _materials_ as materials, useEditorDataProvider };
13117
13436
  //# sourceMappingURL=index.js.map