pb-sxp-ui 1.0.32 → 1.0.34

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 (36) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +111 -111
  3. package/dist/index.cjs +372 -28
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.css +0 -1
  6. package/dist/index.js +371 -28
  7. package/dist/index.js.map +1 -1
  8. package/dist/index.min.cjs +3 -3
  9. package/dist/index.min.cjs.map +1 -1
  10. package/dist/index.min.js +3 -3
  11. package/dist/index.min.js.map +1 -1
  12. package/dist/pb-ui.js +372 -28
  13. package/dist/pb-ui.js.map +1 -1
  14. package/dist/pb-ui.min.js +3 -3
  15. package/dist/pb-ui.min.js.map +1 -1
  16. package/es/core/components/DiyPortalPreview/PictureGroup.d.ts +13 -0
  17. package/es/core/components/DiyPortalPreview/PictureGroup.js +11 -0
  18. package/es/core/components/DiyPortalPreview/VideoWidget.d.ts +15 -0
  19. package/es/core/components/DiyPortalPreview/VideoWidget.js +236 -0
  20. package/es/core/components/DiyPortalPreview/index.d.ts +4 -0
  21. package/es/core/components/DiyPortalPreview/index.js +110 -0
  22. package/es/index.d.ts +1 -0
  23. package/es/index.js +1 -0
  24. package/es/materials/sxp/popup/CommodityDetail/index.js +10 -10
  25. package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +10 -10
  26. package/lib/core/components/DiyPortalPreview/PictureGroup.d.ts +13 -0
  27. package/lib/core/components/DiyPortalPreview/PictureGroup.js +14 -0
  28. package/lib/core/components/DiyPortalPreview/VideoWidget.d.ts +15 -0
  29. package/lib/core/components/DiyPortalPreview/VideoWidget.js +239 -0
  30. package/lib/core/components/DiyPortalPreview/index.d.ts +4 -0
  31. package/lib/core/components/DiyPortalPreview/index.js +113 -0
  32. package/lib/index.d.ts +1 -0
  33. package/lib/index.js +3 -1
  34. package/lib/materials/sxp/popup/CommodityDetail/index.js +10 -10
  35. package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +10 -10
  36. package/package.json +115 -115
package/dist/index.css CHANGED
@@ -62,7 +62,6 @@
62
62
 
63
63
  .pb-commondity {
64
64
  position: relative;
65
- height: 100%;
66
65
  }
67
66
  .pb-commondity-content {
68
67
  padding: 21px 19px 80px;
package/dist/index.js CHANGED
@@ -842,7 +842,7 @@ const EditorCore = forwardRef(({ children, resolver, isSsr, schema, enableDataSo
842
842
  React.createElement(DataSourceProvider$1, { isSsr: isSsr, enable: enableDataSource }, children)));
843
843
  });
844
844
 
845
- var index$1 = /*#__PURE__*/Object.freeze({
845
+ var index$2 = /*#__PURE__*/Object.freeze({
846
846
  __proto__: null,
847
847
  EditorCore: EditorCore
848
848
  });
@@ -8317,7 +8317,7 @@ const FormatImage = forwardRef((props, ref) => {
8317
8317
  var FormatImage$1 = memo(FormatImage);
8318
8318
 
8319
8319
  const CommodityDetail$1 = (_a) => {
8320
- var _b, _c, _d, _e, _f, _g, _h, _j;
8320
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k;
8321
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"]);
8322
8322
  const { sxpParameter } = useSxpDataSource();
8323
8323
  const { popupDetailData, bffEventReport, isPreview, waterFallData } = useSxpDataSource();
@@ -8358,7 +8358,7 @@ const CommodityDetail$1 = (_a) => {
8358
8358
  return '$7,000';
8359
8359
  }
8360
8360
  }, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
8361
- 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;
8362
8362
  const renderContent = ({ isPost }) => {
8363
8363
  var _a, _b, _c;
8364
8364
  return (React.createElement("div", null,
@@ -8366,10 +8366,10 @@ const CommodityDetail$1 = (_a) => {
8366
8366
  React.createElement("div", { className: 'pb-commondity-content-title', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title, hidden: !!product && !(product === null || product === void 0 ? void 0 : product.title) }, (_b = product === null || product === void 0 ? void 0 : product.title) !== null && _b !== void 0 ? _b : 'Pendant in Yellow Gold with Diamonds, Medium'),
8367
8367
  React.createElement("div", { className: 'pb-commondity-content-price', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price, hidden: !!product && !(product === null || product === void 0 ? void 0 : product.price) }, priceText),
8368
8368
  React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
8369
- React.createElement(ExpandableText$1, { foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, onClick: () => setShowModal(true), isPost: isPost, text: (_c = product === null || product === void 0 ? void 0 : product.info) !== null && _c !== void 0 ? _c : `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the
8370
- bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
8371
- collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
8372
- necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
8369
+ React.createElement(ExpandableText$1, { foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, onClick: () => setShowModal(true), isPost: isPost, text: (_c = product === null || product === void 0 ? void 0 : product.info) !== null && _c !== void 0 ? _c : `The design inspiration of Tiffany Lock series comes from the power of connection and inclusiveness, and the
8370
+ bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
8371
+ collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
8372
+ necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
8373
8373
  18-karat gold, this necklace is embellished with hand-set diamonds.`, maxStr: 79, className: 'pb-commondity-content-info', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.info }))));
8374
8374
  };
8375
8375
  const renderBtn = () => {
@@ -8378,7 +8378,7 @@ const CommodityDetail$1 = (_a) => {
8378
8378
  };
8379
8379
  return (React.createElement("div", { className: 'pb-commondity' },
8380
8380
  React.createElement("div", Object.assign({ className: css(Object.assign({}, style)) }, props),
8381
- 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: {
8382
8382
  clickable: true,
8383
8383
  bulletActiveClass: 'swipe-item-active-bullet',
8384
8384
  clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
@@ -8386,7 +8386,7 @@ const CommodityDetail$1 = (_a) => {
8386
8386
  : 'commondityDetail-swiper-clickable-center'
8387
8387
  }, loop: true, autoplay: {
8388
8388
  delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
8389
- } }, (_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) => {
8390
8390
  return (React.createElement(SwiperSlide, { key: src },
8391
8391
  React.createElement("div", { style: {
8392
8392
  overflow: 'hidden',
@@ -8395,7 +8395,7 @@ const CommodityDetail$1 = (_a) => {
8395
8395
  } },
8396
8396
  React.createElement(FormatImage$1, { style: { height: '100%', width: '100%', objectFit: 'cover', display: 'block' }, src: src }))));
8397
8397
  }))),
8398
- !((_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({
8399
8399
  position: 'relative',
8400
8400
  height: 0,
8401
8401
  width: '100%',
@@ -8408,7 +8408,7 @@ const CommodityDetail$1 = (_a) => {
8408
8408
  top: 0,
8409
8409
  objectFit: 'cover',
8410
8410
  width: '100%'
8411
- }), 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: '' }))),
8412
8412
  React.createElement("div", { className: 'pb-commondity-content' }, renderContent({ isPost }))),
8413
8413
  renderBtn(),
8414
8414
  React.createElement(Modal$1, { visible: showModal, onClose: () => setShowModal(false) },
@@ -8768,7 +8768,7 @@ var settingRender$2 = [
8768
8768
  ];
8769
8769
 
8770
8770
  const CommodityDetailDiroNew$1 = (_a) => {
8771
- 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;
8772
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"]);
8773
8773
  useState(true);
8774
8774
  const { sxpParameter } = useSxpDataSource();
@@ -8816,16 +8816,16 @@ const CommodityDetailDiroNew$1 = (_a) => {
8816
8816
  return '£102,300.00';
8817
8817
  }
8818
8818
  }, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
8819
- 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;
8820
8820
  const productInfoText = ({ isPost }) => {
8821
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) === '') },
8822
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) ||
8823
- `Unveiled at the Spring-Summer 2023 fashion show, the Dior Toujours bag is distinguished by a casual and practical design. Crafted in black calfskin with Macrocannage topstitching, it showcases a spacious interior compartment with a matching pouch to organize essentials. Its leather strap closure keeps items secure while the D of the CD Lock closure twists to adjust the sides and enhance the bag's silhouette. The leather handles can be adjusted using the small notches in order to be able to carry the large bag by hand or wear it over the shoulder. CD Lock and strap closures D.I.O.R. charms Removable interior pouch Adjustable leather handles Dust bag included
8823
+ `Unveiled at the Spring-Summer 2023 fashion show, the Dior Toujours bag is distinguished by a casual and practical design. Crafted in black calfskin with Macrocannage topstitching, it showcases a spacious interior compartment with a matching pouch to organize essentials. Its leather strap closure keeps items secure while the D of the CD Lock closure twists to adjust the sides and enhance the bag's silhouette. The leather handles can be adjusted using the small notches in order to be able to carry the large bag by hand or wear it over the shoulder. CD Lock and strap closures D.I.O.R. charms Removable interior pouch Adjustable leather handles Dust bag included
8824
8824
  Made in Italy` })));
8825
8825
  };
8826
8826
  return (React.createElement("div", { className: 'pb-commondityDiroNew' },
8827
8827
  React.createElement("div", Object.assign({ ref: scrollRef, className: css(Object.assign({}, style)) }, props),
8828
- 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: {
8829
8829
  clickable: true,
8830
8830
  bulletActiveClass: 'commondityDiroNew-swipe-item-active-bullet',
8831
8831
  clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
@@ -8833,7 +8833,7 @@ Made in Italy` })));
8833
8833
  : 'commondityDiroNew-swiper-clickable-center'
8834
8834
  }, loop: true, autoplay: {
8835
8835
  delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
8836
- } }, (_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) => {
8837
8837
  return (React.createElement(SwiperSlide, { key: src },
8838
8838
  React.createElement("div", { style: {
8839
8839
  overflow: 'hidden',
@@ -8842,7 +8842,7 @@ Made in Italy` })));
8842
8842
  } },
8843
8843
  React.createElement(FormatImage$1, { style: { height: '100%', width: '100%', objectFit: 'cover', display: 'block' }, src: src }))));
8844
8844
  }))),
8845
- !((_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({
8846
8846
  position: 'relative',
8847
8847
  height: 0,
8848
8848
  width: '100%',
@@ -8855,16 +8855,16 @@ Made in Italy` })));
8855
8855
  top: 0,
8856
8856
  objectFit: 'cover',
8857
8857
  width: '100%'
8858
- }), 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: '' }))),
8859
8859
  React.createElement("div", { className: 'pb-commondityDiroNew-content' },
8860
8860
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top' },
8861
8861
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-left' },
8862
- 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'),
8863
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')),
8864
8864
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right' },
8865
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),
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 }, (_l = product === null || product === void 0 ? void 0 : product.taxInfo) !== null && _l !== void 0 ? _l : '税费'))),
8867
- (!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')),
8868
8868
  productInfoText({ isPost }))),
8869
8869
  React.createElement(Modal$1, { visible: showModal, onClose: () => setShowModal(false) }, productInfoText({ isPost: false }))));
8870
8870
  };
@@ -11968,7 +11968,7 @@ var SXP_EVENT_TYPE;
11968
11968
  SXP_EVENT_TYPE["PAGE_DID_HIDE"] = "pageDidHide";
11969
11969
  })(SXP_EVENT_TYPE || (SXP_EVENT_TYPE = {}));
11970
11970
 
11971
- const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig }) => {
11971
+ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPostConfig }) => {
11972
11972
  const [isPauseVideo, setIsPauseVideo] = useState(false);
11973
11973
  const videoRef = useRef(null);
11974
11974
  const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
@@ -12236,7 +12236,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
12236
12236
  renderPoster,
12237
12237
  React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON })))));
12238
12238
  };
12239
- var VideoWidget$1 = memo(VideoWidget);
12239
+ var VideoWidget$3 = memo(VideoWidget$2);
12240
12240
 
12241
12241
  /*
12242
12242
  * @Author: binruan@chatlabs.com
@@ -12335,7 +12335,7 @@ const Picture = (props) => {
12335
12335
  * @LastEditTime: 2024-04-18 19:56:22
12336
12336
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\PictureGroup\index.tsx
12337
12337
  */
12338
- const PictureGroup = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
12338
+ const PictureGroup$2 = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
12339
12339
  var _a;
12340
12340
  const ref = useRef();
12341
12341
  const { isActive } = useSwiperSlide();
@@ -12364,7 +12364,7 @@ const PictureGroup = ({ imgUrls, width, height, rec, index, onReportViewImageEnd
12364
12364
  React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
12365
12365
  })));
12366
12366
  };
12367
- var PictureGroup$1 = memo(PictureGroup);
12367
+ var PictureGroup$3 = memo(PictureGroup$2);
12368
12368
 
12369
12369
  /*
12370
12370
  * @Author: binruan@chatlabs.com
@@ -12704,10 +12704,10 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12704
12704
  const renderContent = useCallback((rec, index) => {
12705
12705
  var _a, _b, _c, _d;
12706
12706
  if ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.url) {
12707
- 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 }));
12707
+ 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 }));
12708
12708
  }
12709
12709
  if ((_b = rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
12710
- 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 }));
12710
+ 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 }));
12711
12711
  }
12712
12712
  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) {
12713
12713
  return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
@@ -12946,6 +12946,349 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
12946
12946
  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))));
12947
12947
  };
12948
12948
 
12949
+ const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
12950
+ 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) => {
12951
+ return (React.createElement(SwiperSlide, { key: url },
12952
+ React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
12953
+ })));
12954
+ };
12955
+ var PictureGroup$1 = memo(PictureGroup);
12956
+
12957
+ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, width }) => {
12958
+ const [isPauseVideo, setIsPauseVideo] = useState(false);
12959
+ const videoRef = useRef(null);
12960
+ const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
12961
+ const videoStartTime = useRef(0);
12962
+ const [isLoadFinish, setIsLoadFinish] = useState(false);
12963
+ const [isFirstPlay, setIsFirstPlay] = useState(true);
12964
+ const canvasRef = useRef(null);
12965
+ const [firstFrameSrc, setFirstFrameSrc] = useState('');
12966
+ useEffect(() => {
12967
+ if (!videoRef.current)
12968
+ return;
12969
+ videoRef.current.muted = muted;
12970
+ }, [muted]);
12971
+ const handleVideoStart = useCallback(() => {
12972
+ var _a;
12973
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
12974
+ }, []);
12975
+ const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');
12976
+ const handlePlaying = useCallback(() => {
12977
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
12978
+ setIsPauseVideo(false);
12979
+ const item = data[index];
12980
+ if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
12981
+ videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0;
12982
+ const videoDuration = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
12983
+ const videoCurrentTime = ((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
12984
+ const playType = isFirstPlay ? '0' : '1';
12985
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
12986
+ eventInfo: {
12987
+ eventSubject: 'playVideo',
12988
+ eventDescription: 'User played the video',
12989
+ contentId: (_h = (_g = item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
12990
+ contentName: (_k = (_j = item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
12991
+ playType,
12992
+ startTime: videoCurrentTime,
12993
+ videoDuration,
12994
+ contentTags: JSON.stringify((_m = (_l = item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
12995
+ position: index + '',
12996
+ contentFormat: 'video',
12997
+ traceInfo: (_o = item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
12998
+ }
12999
+ });
13000
+ setIsFirstPlay(false);
13001
+ }
13002
+ }, [bffEventReport, data, index, isFirstPlay]);
13003
+ const handleLoadedMetadata = useCallback(() => {
13004
+ setIsLoadFinish(true);
13005
+ }, []);
13006
+ const handleClickVideo = useCallback((type) => () => {
13007
+ var _a, _b, _c, _d, _e;
13008
+ if (!isLoadFinish)
13009
+ return;
13010
+ const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
13011
+ switch (type) {
13012
+ case 'start':
13013
+ if (!isPause)
13014
+ return;
13015
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.play();
13016
+ setIsPauseVideo(false);
13017
+ break;
13018
+ case 'pause':
13019
+ if (isPause)
13020
+ return;
13021
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.pause();
13022
+ setIsPauseVideo(true);
13023
+ break;
13024
+ default:
13025
+ if (isPause) {
13026
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.play();
13027
+ }
13028
+ else {
13029
+ (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.pause();
13030
+ }
13031
+ setIsPauseVideo(!isPause);
13032
+ break;
13033
+ }
13034
+ }, [isLoadFinish]);
13035
+ const onPause = useCallback(() => {
13036
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
13037
+ const item = data[index];
13038
+ const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
13039
+ const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
13040
+ if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration) {
13041
+ const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime) - videoStartTime.current).toFixed(2);
13042
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
13043
+ eventInfo: {
13044
+ eventSubject: 'playOverVideo',
13045
+ eventDescription: 'User finished playing the video',
13046
+ contentId: (_h = (_g = item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
13047
+ contentName: (_k = (_j = item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
13048
+ endTime: videoCurrentTime,
13049
+ videoDuration,
13050
+ playDuration,
13051
+ contentTags: JSON.stringify((_m = (_l = item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
13052
+ position: index + '',
13053
+ contentFormat: 'video',
13054
+ traceInfo: (_o = item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
13055
+ }
13056
+ });
13057
+ }
13058
+ }, [data, index, bffEventReport]);
13059
+ const blur = useMemo(() => {
13060
+ return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
13061
+ }, [videoPostConfig]);
13062
+ const translateY = useMemo(() => {
13063
+ var _a;
13064
+ return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
13065
+ ? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
13066
+ : 'translateY(-50%)';
13067
+ }, [videoPostConfig]);
13068
+ const blurBgSrc = useMemo(() => {
13069
+ var _a;
13070
+ return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
13071
+ }, [firstFrameSrc, rec]);
13072
+ const handLoadeddata = useCallback(() => {
13073
+ if (!canvasRef || !videoRef || !videoRef.current || !canvasRef.current)
13074
+ return;
13075
+ const video = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current;
13076
+ const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
13077
+ const ctx = canvas.getContext('2d');
13078
+ const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
13079
+ const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
13080
+ canvas.height = targetHeight;
13081
+ canvas.width = targetWidth;
13082
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
13083
+ setFirstFrameSrc(canvas.toDataURL());
13084
+ }, []);
13085
+ useEffect(() => {
13086
+ var _a, _b, _c, _d;
13087
+ if (!videoRef.current)
13088
+ return;
13089
+ setIsPauseVideo(false);
13090
+ if (!videoRef.current.src) {
13091
+ const videoSrc = rec.video.url;
13092
+ if (videoSrc.includes('.m3u8')) {
13093
+ if (Hls.isSupported()) {
13094
+ const hls = new Hls();
13095
+ hls.loadSource(videoSrc);
13096
+ hls.attachMedia(videoRef.current);
13097
+ }
13098
+ else if (videoRef.current.canPlayType('application/vnd.apple.mpegurl')) {
13099
+ videoRef.current.src = videoSrc;
13100
+ }
13101
+ else {
13102
+ videoRef.current.src = videoSrc;
13103
+ }
13104
+ }
13105
+ else {
13106
+ videoRef.current.src = videoSrc;
13107
+ }
13108
+ videoRef.current.setAttribute('x5-playsinline', 'true');
13109
+ videoRef.current.setAttribute('webkit-playsinline', 'true');
13110
+ }
13111
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('loadedmetadata', handleLoadedMetadata);
13112
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('canplay', handleLoadedMetadata);
13113
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('playing', handlePlaying);
13114
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('loadeddata', handLoadeddata);
13115
+ return () => {
13116
+ var _a, _b, _c, _d;
13117
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedMetadata);
13118
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('canplay', handleLoadedMetadata);
13119
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('playing', handlePlaying);
13120
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('loadeddata', handLoadeddata);
13121
+ };
13122
+ }, [handleLoadedMetadata, handlePlaying, rec.video, handLoadeddata]);
13123
+ const renderPoster = useMemo(() => {
13124
+ if (!(sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image) || isLoadFinish) {
13125
+ return null;
13126
+ }
13127
+ 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 }));
13128
+ }, [isLoadFinish, sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image]);
13129
+ useEffect(() => {
13130
+ const handleBeforeUnload = () => {
13131
+ var _a, _b;
13132
+ 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) {
13133
+ handleClickVideo('pause')();
13134
+ }
13135
+ };
13136
+ window.addEventListener('beforeunload', handleBeforeUnload);
13137
+ return () => {
13138
+ window.removeEventListener('beforeunload', handleBeforeUnload);
13139
+ };
13140
+ }, [activeIndex, index, rec, videoRef, handleClickVideo, isPauseVideo]);
13141
+ const blurStyle = useMemo(() => {
13142
+ return blur
13143
+ ? {
13144
+ filter: 'blur(10px)',
13145
+ transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
13146
+ }
13147
+ : {};
13148
+ }, [blur]);
13149
+ if (!rec.video) {
13150
+ return null;
13151
+ }
13152
+ return (React.createElement(React.Fragment, null, blur ? (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
13153
+ position: 'relative',
13154
+ width,
13155
+ height,
13156
+ overflow: 'hidden'
13157
+ } },
13158
+ React.createElement(FormatImage$1, { src: blurBgSrc, style: Object.assign({ height,
13159
+ width, objectFit: 'cover' }, blurStyle) }),
13160
+ React.createElement("canvas", { ref: canvasRef, style: { display: 'none' } }),
13161
+ React.createElement("div", { style: {
13162
+ position: 'absolute',
13163
+ width,
13164
+ height,
13165
+ top: '50%',
13166
+ transform: translateY,
13167
+ left: 0,
13168
+ right: 0
13169
+ } },
13170
+ React.createElement("div", { style: { position: 'relative', width, height: '100%' } },
13171
+ 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: {
13172
+ width: '100%',
13173
+ height,
13174
+ objectFit: 'contain'
13175
+ } }),
13176
+ React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON }))),
13177
+ renderPoster)) : (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
13178
+ position: 'relative',
13179
+ width,
13180
+ height,
13181
+ overflow: 'hidden'
13182
+ } },
13183
+ 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 }),
13184
+ renderPoster,
13185
+ React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON })))));
13186
+ };
13187
+ var VideoWidget$1 = memo(VideoWidget);
13188
+
13189
+ const RESOLVER$1 = {};
13190
+ Object.values(_materials_).forEach((v) => {
13191
+ RESOLVER$1[v.extend.type] = v;
13192
+ });
13193
+ const DiyPortalPreview = ({ data, globalConfig, tipText, nudge, tempMap, descStyle, hashTagStyle }) => {
13194
+ const containerWidth = 375;
13195
+ const containerHeight = 664;
13196
+ const height = useMemo(() => {
13197
+ return (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo) ? containerHeight - 45 : containerHeight;
13198
+ }, [globalConfig, containerHeight]);
13199
+ const renderContent = (rec, index) => {
13200
+ var _a, _b, _c, _d;
13201
+ if ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.url) {
13202
+ 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 }));
13203
+ }
13204
+ if ((_b = rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
13205
+ 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 }));
13206
+ }
13207
+ if (rec.product) {
13208
+ 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) {
13209
+ return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
13210
+ var _a, _b, _c, _d, _e, _f, _g, _h;
13211
+ const t = RESOLVER$1[(_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type];
13212
+ const Component = withBindDataSource(t);
13213
+ const defaulSetting = (_b = t === null || t === void 0 ? void 0 : t.extend) === null || _b === void 0 ? void 0 : _b.defaulSetting;
13214
+ 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) || {},
13215
+ // schema={schema}
13216
+ id: value === null || value === void 0 ? void 0 : value.id,
13217
+ // viewTime={viewTime.current}
13218
+ 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 })));
13219
+ });
13220
+ }
13221
+ }
13222
+ };
13223
+ const renderLogo = useMemo(() => {
13224
+ if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo)) {
13225
+ return (React.createElement("div", { className: 'clc-sxp-logo-banner', style: { backgroundColor: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.color } },
13226
+ React.createElement("img", { src: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl, alt: 'logo' })));
13227
+ }
13228
+ return null;
13229
+ }, [globalConfig]);
13230
+ const renderBottom = (rec, index) => {
13231
+ var _a, _b, _c, _d, _e, _f, _g;
13232
+ if (rec.video) {
13233
+ return (React.createElement(React.Fragment, null,
13234
+ ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.title) && React.createElement("div", { className: 'clc-sxp-bottom-shadow' }),
13235
+ React.createElement("div", { className: 'clc-sxp-bottom' },
13236
+ React.createElement(Nudge, { nudge: nudge }),
13237
+ React.createElement("div", { className: 'clc-sxp-bottom-card' },
13238
+ React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1 })),
13239
+ React.createElement("div", null,
13240
+ 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' }) })),
13241
+ 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 }))));
13242
+ }
13243
+ return null;
13244
+ };
13245
+ const renderLikeButton = (rec, index) => {
13246
+ var _a, _b;
13247
+ if (!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLike))
13248
+ return;
13249
+ let top = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconY) !== null && _a !== void 0 ? _a : 400;
13250
+ if (top < 40) {
13251
+ top += 40;
13252
+ }
13253
+ if (rec.video) {
13254
+ return (React.createElement(LikeButton$1, { key: rec.position, activeIcon: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIcon, unActicveIcon: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unlikeIcon, position: index, active: rec.isCollected, recData: rec, className: 'clc-sxp-like-button', style: {
13255
+ top,
13256
+ right: (_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconX) !== null && _b !== void 0 ? _b : 0
13257
+ } }));
13258
+ }
13259
+ return null;
13260
+ };
13261
+ const mutedIcon = useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png');
13262
+ const unmutedIcon = useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png');
13263
+ const renderView = (rec, index) => {
13264
+ var _a, _b, _c, _d;
13265
+ return (React.createElement("div", { style: { position: 'relative' } },
13266
+ renderLogo,
13267
+ React.createElement(ToggleButton$1, { style: {
13268
+ position: 'absolute',
13269
+ right: (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _a !== void 0 ? _a : 0,
13270
+ 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',
13271
+ bottom: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _d !== void 0 ? _d : 23,
13272
+ zIndex: 999
13273
+ }, 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 }),
13274
+ renderContent(rec, index),
13275
+ renderBottom(rec, index),
13276
+ renderLikeButton(rec, index)));
13277
+ };
13278
+ return (React.createElement("div", { style: {
13279
+ width: '100%',
13280
+ height: containerHeight,
13281
+ display: 'flex',
13282
+ boxSizing: 'border-box',
13283
+ gap: 16,
13284
+ pointerEvents: 'none',
13285
+ userSelect: 'none'
13286
+ } }, data === null || data === void 0 ? void 0 : data.map((rec, index) => {
13287
+ return renderView(rec, index);
13288
+ })));
13289
+ };
13290
+ var index$1 = memo(DiyPortalPreview);
13291
+
12949
13292
  /*
12950
13293
  * @Author: binruan@chatlabs.com
12951
13294
  * @Date: 2023-10-31 10:56:01
@@ -13086,5 +13429,5 @@ function useEditorDataProvider() {
13086
13429
  * @FilePath: \pb-sxp-ui\src\index.ts
13087
13430
  */
13088
13431
 
13089
- 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 };
13432
+ 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 };
13090
13433
  //# sourceMappingURL=index.js.map