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/pb-ui.js CHANGED
@@ -856,7 +856,7 @@
856
856
  React.createElement(DataSourceProvider$1, { isSsr: isSsr, enable: enableDataSource }, children)));
857
857
  });
858
858
 
859
- var index$1 = /*#__PURE__*/Object.freeze({
859
+ var index$2 = /*#__PURE__*/Object.freeze({
860
860
  __proto__: null,
861
861
  EditorCore: EditorCore
862
862
  });
@@ -8331,7 +8331,7 @@
8331
8331
  var FormatImage$1 = React.memo(FormatImage);
8332
8332
 
8333
8333
  const CommodityDetail$1 = (_a) => {
8334
- var _b, _c, _d, _e, _f, _g, _h, _j;
8334
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k;
8335
8335
  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"]);
8336
8336
  const { sxpParameter } = useSxpDataSource();
8337
8337
  const { popupDetailData, bffEventReport, isPreview, waterFallData } = useSxpDataSource();
@@ -8372,7 +8372,7 @@
8372
8372
  return '$7,000';
8373
8373
  }
8374
8374
  }, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
8375
- const width = isPreview ? 375 : window.innerWidth;
8375
+ const width = isPreview ? 375 : (_f = style === null || style === void 0 ? void 0 : style.width) !== null && _f !== void 0 ? _f : window.innerWidth;
8376
8376
  const renderContent = ({ isPost }) => {
8377
8377
  var _a, _b, _c;
8378
8378
  return (React.createElement("div", null,
@@ -8380,10 +8380,10 @@
8380
8380
  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'),
8381
8381
  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),
8382
8382
  React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
8383
- 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
8384
- bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
8385
- collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
8386
- necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
8383
+ 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
8384
+ bold and avant-garde visual design interprets the emotional bond connecting my heart. The Tiffany Lock
8385
+ collection is unisex and is inspired by the padlock pattern found in the Tiffany Antique Collection. This
8386
+ necklace features a stylish and eye-catching oval clasp chain decorated with a lock pattern. Crafted from
8387
8387
  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 }))));
8388
8388
  };
8389
8389
  const renderBtn = () => {
@@ -8392,7 +8392,7 @@
8392
8392
  };
8393
8393
  return (React.createElement("div", { className: 'pb-commondity' },
8394
8394
  React.createElement("div", Object.assign({ className: css.css(Object.assign({}, style)) }, props),
8395
- 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: {
8395
+ 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: {
8396
8396
  clickable: true,
8397
8397
  bulletActiveClass: 'swipe-item-active-bullet',
8398
8398
  clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
@@ -8400,7 +8400,7 @@
8400
8400
  : 'commondityDetail-swiper-clickable-center'
8401
8401
  }, loop: true, autoplay: {
8402
8402
  delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
8403
- } }, (_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.map((src) => {
8403
+ } }, (_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.map((src) => {
8404
8404
  return (React.createElement(SwiperSlide, { key: src },
8405
8405
  React.createElement("div", { style: {
8406
8406
  overflow: 'hidden',
@@ -8409,7 +8409,7 @@
8409
8409
  } },
8410
8410
  React.createElement(FormatImage$1, { style: { height: '100%', width: '100%', objectFit: 'cover', display: 'block' }, src: src }))));
8411
8411
  }))),
8412
- !((_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.length) && (React.createElement("div", { className: css.css({
8412
+ !((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css.css({
8413
8413
  position: 'relative',
8414
8414
  height: 0,
8415
8415
  width: '100%',
@@ -8422,7 +8422,7 @@
8422
8422
  top: 0,
8423
8423
  objectFit: 'cover',
8424
8424
  width: '100%'
8425
- }), src: (_j = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _j !== void 0 ? _j : bottom_image, alt: '' }))),
8425
+ }), src: (_k = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _k !== void 0 ? _k : bottom_image, alt: '' }))),
8426
8426
  React.createElement("div", { className: 'pb-commondity-content' }, renderContent({ isPost }))),
8427
8427
  renderBtn(),
8428
8428
  React.createElement(Modal$1, { visible: showModal, onClose: () => setShowModal(false) },
@@ -8782,7 +8782,7 @@
8782
8782
  ];
8783
8783
 
8784
8784
  const CommodityDetailDiroNew$1 = (_a) => {
8785
- var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
8785
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
8786
8786
  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"]);
8787
8787
  React.useState(true);
8788
8788
  const { sxpParameter } = useSxpDataSource();
@@ -8830,16 +8830,16 @@
8830
8830
  return '£102,300.00';
8831
8831
  }
8832
8832
  }, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
8833
- const width = isPreview ? 375 : window.innerWidth;
8833
+ const width = isPreview ? 375 : (_f = style === null || style === void 0 ? void 0 : style.width) !== null && _f !== void 0 ? _f : window.innerWidth;
8834
8834
  const productInfoText = ({ isPost }) => {
8835
8835
  return (React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
8836
8836
  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) ||
8837
- `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
8837
+ `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
8838
8838
  Made in Italy` })));
8839
8839
  };
8840
8840
  return (React.createElement("div", { className: 'pb-commondityDiroNew' },
8841
8841
  React.createElement("div", Object.assign({ ref: scrollRef, className: css.css(Object.assign({}, style)) }, props),
8842
- 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: {
8842
+ 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: {
8843
8843
  clickable: true,
8844
8844
  bulletActiveClass: 'commondityDiroNew-swipe-item-active-bullet',
8845
8845
  clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
@@ -8847,7 +8847,7 @@ Made in Italy` })));
8847
8847
  : 'commondityDiroNew-swiper-clickable-center'
8848
8848
  }, loop: true, autoplay: {
8849
8849
  delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
8850
- } }, (_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.map((src) => {
8850
+ } }, (_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.map((src) => {
8851
8851
  return (React.createElement(SwiperSlide, { key: src },
8852
8852
  React.createElement("div", { style: {
8853
8853
  overflow: 'hidden',
@@ -8856,7 +8856,7 @@ Made in Italy` })));
8856
8856
  } },
8857
8857
  React.createElement(FormatImage$1, { style: { height: '100%', width: '100%', objectFit: 'cover', display: 'block' }, src: src }))));
8858
8858
  }))),
8859
- !((_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.length) && (React.createElement("div", { className: css.css({
8859
+ !((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css.css({
8860
8860
  position: 'relative',
8861
8861
  height: 0,
8862
8862
  width: '100%',
@@ -8869,16 +8869,16 @@ Made in Italy` })));
8869
8869
  top: 0,
8870
8870
  objectFit: 'cover',
8871
8871
  width: '100%'
8872
- }), src: (_j = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _j !== void 0 ? _j : bottom_image, alt: '' }))),
8872
+ }), src: (_k = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _k !== void 0 ? _k : bottom_image, alt: '' }))),
8873
8873
  React.createElement("div", { className: 'pb-commondityDiroNew-content' },
8874
8874
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top' },
8875
8875
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-left' },
8876
- 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'),
8876
+ 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'),
8877
8877
  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')),
8878
8878
  React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right' },
8879
8879
  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),
8880
- 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 : '税费'))),
8881
- (!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')),
8880
+ 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 : '税费'))),
8881
+ (!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')),
8882
8882
  productInfoText({ isPost }))),
8883
8883
  React.createElement(Modal$1, { visible: showModal, onClose: () => setShowModal(false) }, productInfoText({ isPost: false }))));
8884
8884
  };
@@ -11982,7 +11982,7 @@ Made in Italy` })));
11982
11982
  SXP_EVENT_TYPE["PAGE_DID_HIDE"] = "pageDidHide";
11983
11983
  })(SXP_EVENT_TYPE || (SXP_EVENT_TYPE = {}));
11984
11984
 
11985
- const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig }) => {
11985
+ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPostConfig }) => {
11986
11986
  const [isPauseVideo, setIsPauseVideo] = React.useState(false);
11987
11987
  const videoRef = React.useRef(null);
11988
11988
  const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
@@ -12250,7 +12250,7 @@ Made in Italy` })));
12250
12250
  renderPoster,
12251
12251
  React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON })))));
12252
12252
  };
12253
- var VideoWidget$1 = React.memo(VideoWidget);
12253
+ var VideoWidget$3 = React.memo(VideoWidget$2);
12254
12254
 
12255
12255
  /*
12256
12256
  * @Author: binruan@chatlabs.com
@@ -12349,7 +12349,7 @@ Made in Italy` })));
12349
12349
  * @LastEditTime: 2024-04-18 19:56:22
12350
12350
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\PictureGroup\index.tsx
12351
12351
  */
12352
- const PictureGroup = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
12352
+ const PictureGroup$2 = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
12353
12353
  var _a;
12354
12354
  const ref = React.useRef();
12355
12355
  const { isActive } = useSwiperSlide();
@@ -12378,7 +12378,7 @@ Made in Italy` })));
12378
12378
  React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
12379
12379
  })));
12380
12380
  };
12381
- var PictureGroup$1 = React.memo(PictureGroup);
12381
+ var PictureGroup$3 = React.memo(PictureGroup$2);
12382
12382
 
12383
12383
  /*
12384
12384
  * @Author: binruan@chatlabs.com
@@ -12718,10 +12718,10 @@ Made in Italy` })));
12718
12718
  const renderContent = React.useCallback((rec, index) => {
12719
12719
  var _a, _b, _c, _d;
12720
12720
  if ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.url) {
12721
- 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 }));
12721
+ 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 }));
12722
12722
  }
12723
12723
  if ((_b = rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
12724
- 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 }));
12724
+ 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 }));
12725
12725
  }
12726
12726
  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) {
12727
12727
  return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
@@ -12960,6 +12960,349 @@ Made in Italy` })));
12960
12960
  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))));
12961
12961
  };
12962
12962
 
12963
+ const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
12964
+ 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) => {
12965
+ return (React.createElement(SwiperSlide, { key: url },
12966
+ React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
12967
+ })));
12968
+ };
12969
+ var PictureGroup$1 = React.memo(PictureGroup);
12970
+
12971
+ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, width }) => {
12972
+ const [isPauseVideo, setIsPauseVideo] = React.useState(false);
12973
+ const videoRef = React.useRef(null);
12974
+ const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
12975
+ const videoStartTime = React.useRef(0);
12976
+ const [isLoadFinish, setIsLoadFinish] = React.useState(false);
12977
+ const [isFirstPlay, setIsFirstPlay] = React.useState(true);
12978
+ const canvasRef = React.useRef(null);
12979
+ const [firstFrameSrc, setFirstFrameSrc] = React.useState('');
12980
+ React.useEffect(() => {
12981
+ if (!videoRef.current)
12982
+ return;
12983
+ videoRef.current.muted = muted;
12984
+ }, [muted]);
12985
+ const handleVideoStart = React.useCallback(() => {
12986
+ var _a;
12987
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
12988
+ }, []);
12989
+ const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');
12990
+ const handlePlaying = React.useCallback(() => {
12991
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
12992
+ setIsPauseVideo(false);
12993
+ const item = data[index];
12994
+ if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
12995
+ videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0;
12996
+ const videoDuration = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
12997
+ const videoCurrentTime = ((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
12998
+ const playType = isFirstPlay ? '0' : '1';
12999
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
13000
+ eventInfo: {
13001
+ eventSubject: 'playVideo',
13002
+ eventDescription: 'User played the video',
13003
+ contentId: (_h = (_g = item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
13004
+ contentName: (_k = (_j = item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
13005
+ playType,
13006
+ startTime: videoCurrentTime,
13007
+ videoDuration,
13008
+ contentTags: JSON.stringify((_m = (_l = item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
13009
+ position: index + '',
13010
+ contentFormat: 'video',
13011
+ traceInfo: (_o = item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
13012
+ }
13013
+ });
13014
+ setIsFirstPlay(false);
13015
+ }
13016
+ }, [bffEventReport, data, index, isFirstPlay]);
13017
+ const handleLoadedMetadata = React.useCallback(() => {
13018
+ setIsLoadFinish(true);
13019
+ }, []);
13020
+ const handleClickVideo = React.useCallback((type) => () => {
13021
+ var _a, _b, _c, _d, _e;
13022
+ if (!isLoadFinish)
13023
+ return;
13024
+ const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
13025
+ switch (type) {
13026
+ case 'start':
13027
+ if (!isPause)
13028
+ return;
13029
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.play();
13030
+ setIsPauseVideo(false);
13031
+ break;
13032
+ case 'pause':
13033
+ if (isPause)
13034
+ return;
13035
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.pause();
13036
+ setIsPauseVideo(true);
13037
+ break;
13038
+ default:
13039
+ if (isPause) {
13040
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.play();
13041
+ }
13042
+ else {
13043
+ (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.pause();
13044
+ }
13045
+ setIsPauseVideo(!isPause);
13046
+ break;
13047
+ }
13048
+ }, [isLoadFinish]);
13049
+ const onPause = React.useCallback(() => {
13050
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
13051
+ const item = data[index];
13052
+ const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
13053
+ const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
13054
+ if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration) {
13055
+ const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime) - videoStartTime.current).toFixed(2);
13056
+ bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
13057
+ eventInfo: {
13058
+ eventSubject: 'playOverVideo',
13059
+ eventDescription: 'User finished playing the video',
13060
+ contentId: (_h = (_g = item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
13061
+ contentName: (_k = (_j = item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
13062
+ endTime: videoCurrentTime,
13063
+ videoDuration,
13064
+ playDuration,
13065
+ contentTags: JSON.stringify((_m = (_l = item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
13066
+ position: index + '',
13067
+ contentFormat: 'video',
13068
+ traceInfo: (_o = item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
13069
+ }
13070
+ });
13071
+ }
13072
+ }, [data, index, bffEventReport]);
13073
+ const blur = React.useMemo(() => {
13074
+ return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
13075
+ }, [videoPostConfig]);
13076
+ const translateY = React.useMemo(() => {
13077
+ var _a;
13078
+ return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
13079
+ ? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
13080
+ : 'translateY(-50%)';
13081
+ }, [videoPostConfig]);
13082
+ const blurBgSrc = React.useMemo(() => {
13083
+ var _a;
13084
+ return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
13085
+ }, [firstFrameSrc, rec]);
13086
+ const handLoadeddata = React.useCallback(() => {
13087
+ if (!canvasRef || !videoRef || !videoRef.current || !canvasRef.current)
13088
+ return;
13089
+ const video = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current;
13090
+ const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
13091
+ const ctx = canvas.getContext('2d');
13092
+ const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
13093
+ const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
13094
+ canvas.height = targetHeight;
13095
+ canvas.width = targetWidth;
13096
+ ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
13097
+ setFirstFrameSrc(canvas.toDataURL());
13098
+ }, []);
13099
+ React.useEffect(() => {
13100
+ var _a, _b, _c, _d;
13101
+ if (!videoRef.current)
13102
+ return;
13103
+ setIsPauseVideo(false);
13104
+ if (!videoRef.current.src) {
13105
+ const videoSrc = rec.video.url;
13106
+ if (videoSrc.includes('.m3u8')) {
13107
+ if (Hls.isSupported()) {
13108
+ const hls = new Hls();
13109
+ hls.loadSource(videoSrc);
13110
+ hls.attachMedia(videoRef.current);
13111
+ }
13112
+ else if (videoRef.current.canPlayType('application/vnd.apple.mpegurl')) {
13113
+ videoRef.current.src = videoSrc;
13114
+ }
13115
+ else {
13116
+ videoRef.current.src = videoSrc;
13117
+ }
13118
+ }
13119
+ else {
13120
+ videoRef.current.src = videoSrc;
13121
+ }
13122
+ videoRef.current.setAttribute('x5-playsinline', 'true');
13123
+ videoRef.current.setAttribute('webkit-playsinline', 'true');
13124
+ }
13125
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('loadedmetadata', handleLoadedMetadata);
13126
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('canplay', handleLoadedMetadata);
13127
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('playing', handlePlaying);
13128
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('loadeddata', handLoadeddata);
13129
+ return () => {
13130
+ var _a, _b, _c, _d;
13131
+ (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedMetadata);
13132
+ (_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('canplay', handleLoadedMetadata);
13133
+ (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('playing', handlePlaying);
13134
+ (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('loadeddata', handLoadeddata);
13135
+ };
13136
+ }, [handleLoadedMetadata, handlePlaying, rec.video, handLoadeddata]);
13137
+ const renderPoster = React.useMemo(() => {
13138
+ if (!(sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image) || isLoadFinish) {
13139
+ return null;
13140
+ }
13141
+ 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 }));
13142
+ }, [isLoadFinish, sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image]);
13143
+ React.useEffect(() => {
13144
+ const handleBeforeUnload = () => {
13145
+ var _a, _b;
13146
+ 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) {
13147
+ handleClickVideo('pause')();
13148
+ }
13149
+ };
13150
+ window.addEventListener('beforeunload', handleBeforeUnload);
13151
+ return () => {
13152
+ window.removeEventListener('beforeunload', handleBeforeUnload);
13153
+ };
13154
+ }, [activeIndex, index, rec, videoRef, handleClickVideo, isPauseVideo]);
13155
+ const blurStyle = React.useMemo(() => {
13156
+ return blur
13157
+ ? {
13158
+ filter: 'blur(10px)',
13159
+ transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
13160
+ }
13161
+ : {};
13162
+ }, [blur]);
13163
+ if (!rec.video) {
13164
+ return null;
13165
+ }
13166
+ return (React.createElement(React.Fragment, null, blur ? (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
13167
+ position: 'relative',
13168
+ width,
13169
+ height,
13170
+ overflow: 'hidden'
13171
+ } },
13172
+ React.createElement(FormatImage$1, { src: blurBgSrc, style: Object.assign({ height,
13173
+ width, objectFit: 'cover' }, blurStyle) }),
13174
+ React.createElement("canvas", { ref: canvasRef, style: { display: 'none' } }),
13175
+ React.createElement("div", { style: {
13176
+ position: 'absolute',
13177
+ width,
13178
+ height,
13179
+ top: '50%',
13180
+ transform: translateY,
13181
+ left: 0,
13182
+ right: 0
13183
+ } },
13184
+ React.createElement("div", { style: { position: 'relative', width, height: '100%' } },
13185
+ 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: {
13186
+ width: '100%',
13187
+ height,
13188
+ objectFit: 'contain'
13189
+ } }),
13190
+ React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON }))),
13191
+ renderPoster)) : (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
13192
+ position: 'relative',
13193
+ width,
13194
+ height,
13195
+ overflow: 'hidden'
13196
+ } },
13197
+ 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 }),
13198
+ renderPoster,
13199
+ React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON })))));
13200
+ };
13201
+ var VideoWidget$1 = React.memo(VideoWidget);
13202
+
13203
+ const RESOLVER$1 = {};
13204
+ Object.values(_materials_).forEach((v) => {
13205
+ RESOLVER$1[v.extend.type] = v;
13206
+ });
13207
+ const DiyPortalPreview = ({ data, globalConfig, tipText, nudge, tempMap, descStyle, hashTagStyle }) => {
13208
+ const containerWidth = 375;
13209
+ const containerHeight = 664;
13210
+ const height = React.useMemo(() => {
13211
+ return (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo) ? containerHeight - 45 : containerHeight;
13212
+ }, [globalConfig, containerHeight]);
13213
+ const renderContent = (rec, index) => {
13214
+ var _a, _b, _c, _d;
13215
+ if ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.url) {
13216
+ 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 }));
13217
+ }
13218
+ if ((_b = rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
13219
+ 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 }));
13220
+ }
13221
+ if (rec.product) {
13222
+ 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) {
13223
+ return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
13224
+ var _a, _b, _c, _d, _e, _f, _g, _h;
13225
+ const t = RESOLVER$1[(_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type];
13226
+ const Component = withBindDataSource(t);
13227
+ const defaulSetting = (_b = t === null || t === void 0 ? void 0 : t.extend) === null || _b === void 0 ? void 0 : _b.defaulSetting;
13228
+ 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) || {},
13229
+ // schema={schema}
13230
+ id: value === null || value === void 0 ? void 0 : value.id,
13231
+ // viewTime={viewTime.current}
13232
+ 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 })));
13233
+ });
13234
+ }
13235
+ }
13236
+ };
13237
+ const renderLogo = React.useMemo(() => {
13238
+ if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo)) {
13239
+ return (React.createElement("div", { className: 'clc-sxp-logo-banner', style: { backgroundColor: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.color } },
13240
+ React.createElement("img", { src: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl, alt: 'logo' })));
13241
+ }
13242
+ return null;
13243
+ }, [globalConfig]);
13244
+ const renderBottom = (rec, index) => {
13245
+ var _a, _b, _c, _d, _e, _f, _g;
13246
+ if (rec.video) {
13247
+ return (React.createElement(React.Fragment, null,
13248
+ ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.title) && React.createElement("div", { className: 'clc-sxp-bottom-shadow' }),
13249
+ React.createElement("div", { className: 'clc-sxp-bottom' },
13250
+ React.createElement(Nudge, { nudge: nudge }),
13251
+ React.createElement("div", { className: 'clc-sxp-bottom-card' },
13252
+ React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1 })),
13253
+ React.createElement("div", null,
13254
+ 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' }) })),
13255
+ 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 }))));
13256
+ }
13257
+ return null;
13258
+ };
13259
+ const renderLikeButton = (rec, index) => {
13260
+ var _a, _b;
13261
+ if (!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLike))
13262
+ return;
13263
+ let top = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconY) !== null && _a !== void 0 ? _a : 400;
13264
+ if (top < 40) {
13265
+ top += 40;
13266
+ }
13267
+ if (rec.video) {
13268
+ 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: {
13269
+ top,
13270
+ right: (_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconX) !== null && _b !== void 0 ? _b : 0
13271
+ } }));
13272
+ }
13273
+ return null;
13274
+ };
13275
+ const mutedIcon = useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png');
13276
+ const unmutedIcon = useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png');
13277
+ const renderView = (rec, index) => {
13278
+ var _a, _b, _c, _d;
13279
+ return (React.createElement("div", { style: { position: 'relative' } },
13280
+ renderLogo,
13281
+ React.createElement(ToggleButton$1, { style: {
13282
+ position: 'absolute',
13283
+ right: (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _a !== void 0 ? _a : 0,
13284
+ 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',
13285
+ bottom: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _d !== void 0 ? _d : 23,
13286
+ zIndex: 999
13287
+ }, 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 }),
13288
+ renderContent(rec, index),
13289
+ renderBottom(rec, index),
13290
+ renderLikeButton(rec, index)));
13291
+ };
13292
+ return (React.createElement("div", { style: {
13293
+ width: '100%',
13294
+ height: containerHeight,
13295
+ display: 'flex',
13296
+ boxSizing: 'border-box',
13297
+ gap: 16,
13298
+ pointerEvents: 'none',
13299
+ userSelect: 'none'
13300
+ } }, data === null || data === void 0 ? void 0 : data.map((rec, index) => {
13301
+ return renderView(rec, index);
13302
+ })));
13303
+ };
13304
+ var index$1 = React.memo(DiyPortalPreview);
13305
+
12963
13306
  /*
12964
13307
  * @Author: binruan@chatlabs.com
12965
13308
  * @Date: 2023-10-31 10:56:01
@@ -13100,12 +13443,13 @@ Made in Italy` })));
13100
13443
  * @FilePath: \pb-sxp-ui\src\index.ts
13101
13444
  */
13102
13445
 
13446
+ exports.DiyPortalPreview = index$1;
13103
13447
  exports.EditorDataProvider = EditorDataProvider;
13104
13448
  exports.Modal = Modal$1;
13105
13449
  exports.SxpDataSourceProvider = SxpDataSourceProvider$1;
13106
13450
  exports.SxpPageCore = index;
13107
13451
  exports.SxpPageRender = SxpPageRender;
13108
- exports.core = index$1;
13452
+ exports.core = index$2;
13109
13453
  exports.default = Pagebuilder;
13110
13454
  exports.defaultSetting = defaultSetting;
13111
13455
  exports.materials = _materials_;