pb-sxp-ui 1.15.13-alpha.1 → 1.15.13-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/dist/index.cjs +356 -48
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.js +354 -46
  4. package/dist/index.js.map +1 -1
  5. package/dist/index.min.cjs +6 -6
  6. package/dist/index.min.cjs.map +1 -1
  7. package/dist/index.min.js +6 -6
  8. package/dist/index.min.js.map +1 -1
  9. package/dist/pb-ui.js +356 -48
  10. package/dist/pb-ui.js.map +1 -1
  11. package/dist/pb-ui.min.js +6 -6
  12. package/dist/pb-ui.min.js.map +1 -1
  13. package/es/core/components/DiyStoryPreview/VideoWidget.js +5 -2
  14. package/es/core/components/DiyStoryPreview/index.d.ts +3 -0
  15. package/es/core/components/DiyStoryPreview/index.js +288 -22
  16. package/es/core/components/SxpPageCore/index.d.ts +1 -0
  17. package/es/core/components/SxpPageCore/index.js +3 -3
  18. package/es/core/components/SxpPageRender/ExpandableText.js +10 -2
  19. package/es/core/components/SxpPageRender/RenderCard.js +4 -4
  20. package/es/core/context/SxpDataSourceProvider.js +3 -3
  21. package/es/materials/sxp/template/MultiCommodity/index.js +1 -1
  22. package/es/materials/sxp/template/MultiCommodityDiro/index.js +2 -1
  23. package/es/materials/sxp/template/MultiCommodityDiroNew/index.js +2 -1
  24. package/es/materials/sxp/template/components/EventProvider.js +2 -2
  25. package/lib/core/components/DiyStoryPreview/VideoWidget.js +5 -2
  26. package/lib/core/components/DiyStoryPreview/index.d.ts +3 -0
  27. package/lib/core/components/DiyStoryPreview/index.js +287 -21
  28. package/lib/core/components/SxpPageCore/index.d.ts +1 -0
  29. package/lib/core/components/SxpPageCore/index.js +3 -3
  30. package/lib/core/components/SxpPageRender/ExpandableText.js +10 -2
  31. package/lib/core/components/SxpPageRender/RenderCard.js +4 -4
  32. package/lib/core/context/SxpDataSourceProvider.js +3 -3
  33. package/lib/materials/sxp/template/MultiCommodity/index.js +1 -1
  34. package/lib/materials/sxp/template/MultiCommodityDiro/index.js +2 -1
  35. package/lib/materials/sxp/template/MultiCommodityDiroNew/index.js +2 -1
  36. package/lib/materials/sxp/template/components/EventProvider.js +2 -2
  37. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -786,9 +786,8 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
786
786
  }
787
787
  else if (utmVal) {
788
788
  const val = (_k = (_j = (_h = splitUrlParams(utmVal)) === null || _h === void 0 ? void 0 : _h.filter((val) => {
789
- var _a, _b;
790
789
  const key = val.split('=')[0];
791
- return (_b = ((_a = utmParameter === null || utmParameter === void 0 ? void 0 : utmParameter.channels) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.includes(key);
790
+ return key;
792
791
  })) === null || _j === void 0 ? void 0 : _j.join('&')) !== null && _k !== void 0 ? _k : '';
793
792
  if (val)
794
793
  query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(val) });
@@ -829,7 +828,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
829
828
  if (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) {
830
829
  query = Object.assign(Object.assign({}, query), { directPage: true, level: 1, pageNum: (_o = query === null || query === void 0 ? void 0 : query.pageNum) !== null && _o !== void 0 ? _o : 1 });
831
830
  }
832
- const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('v1/recommend/list', { method: 'POST', body: query }));
831
+ const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('v3/recommend/direct', { method: 'POST', body: query }));
833
832
  if (!(result === null || result === void 0 ? void 0 : result.success)) {
834
833
  return undefined;
835
834
  }
@@ -1106,6 +1105,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
1106
1105
  if (!isShowConsent)
1107
1106
  h5EnterLink();
1108
1107
  }, [isShowConsent]);
1108
+ console.log(data, '111');
1109
1109
  React.useEffect(() => {
1110
1110
  if (isShowConsent || isPreview)
1111
1111
  return;
@@ -10106,7 +10106,15 @@ const ExpandableText = ({ text, maxStr = 108, style, className, onClick, foldTex
10106
10106
  wordBreak: 'break-word'
10107
10107
  }, dangerouslySetInnerHTML: { __html: setFontForText(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
10108
10108
  React.createElement("div", { ref: multiRowCopy, dangerouslySetInnerHTML: { __html: setFontForText(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
10109
- text && isPost && isShow && (React.createElement("button", { "aria-label": isShowMore ? unfoldText || 'show less' : foldText || 'show more', style: { textDecoration: 'underline', cursor: 'pointer' }, onClick: onClick !== null && onClick !== void 0 ? onClick : handleClick, dangerouslySetInnerHTML: {
10109
+ text && isPost && isShow && (React.createElement("button", { "aria-label": isShowMore ? unfoldText || 'show less' : foldText || 'show more', style: {
10110
+ textDecoration: 'underline',
10111
+ cursor: 'pointer',
10112
+ outline: 'none',
10113
+ border: 'none',
10114
+ boxSizing: 'content-box',
10115
+ padding: 0,
10116
+ background: 'transparent'
10117
+ }, onClick: onClick !== null && onClick !== void 0 ? onClick : handleClick, dangerouslySetInnerHTML: {
10110
10118
  __html: setFontForText(isShowMore ? unfoldText || 'show less' : foldText || 'show more', style)
10111
10119
  } }))));
10112
10120
  };
@@ -12464,7 +12472,7 @@ const EventProvider = (_a) => {
12464
12472
  const handleClick = lodash.throttle((e) => {
12465
12473
  var _a, _b, _c, _d, _e, _f;
12466
12474
  e.preventDefault();
12467
- const item = multItem ? multItem : (_b = (_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProduct) !== null && _b !== void 0 ? _b : rec === null || rec === void 0 ? void 0 : rec.video;
12475
+ const item = multItem || ((_b = (_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProduct) !== null && _b !== void 0 ? _b : rec === null || rec === void 0 ? void 0 : rec.video);
12468
12476
  ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
12469
12477
  eventSubject: 'clickCta',
12470
12478
  eventDescription: 'User clicked the CTA'
@@ -12491,7 +12499,7 @@ const EventProvider = (_a) => {
12491
12499
  setElement(null);
12492
12500
  }
12493
12501
  }, [element, popup]);
12494
- return (React.createElement("button", { ref: ref, className: className, style: Object.assign({ display: 'flex', alignItems: 'normal' }, style), onClick: handleClick, role: 'button', "aria-label": 'CTA', tabIndex: 0 }, children));
12502
+ return (React.createElement("button", { ref: ref, className: className, style: Object.assign({ outline: 'none', border: 'none', boxSizing: 'content-box', padding: 0, background: 'transparent', display: 'flex', alignItems: 'normal' }, style), onClick: handleClick, role: 'button', "aria-label": 'CTA', tabIndex: 0 }, children));
12495
12503
  };
12496
12504
  var EventProvider$1 = React.memo(EventProvider);
12497
12505
 
@@ -13087,6 +13095,7 @@ const MultiCommodityDiro$1 = (_a) => {
13087
13095
  var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive", "index"]);
13088
13096
  const { sxpParameter } = useSxpDataSource();
13089
13097
  const [products] = React.useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
13098
+ console.log(recData, '222');
13090
13099
  return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
13091
13100
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
13092
13101
  return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css.css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
@@ -13293,6 +13302,7 @@ const MultiCommodityDiroNew$1 = (_a) => {
13293
13302
  var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive", "index"]);
13294
13303
  const { sxpParameter } = useSxpDataSource();
13295
13304
  const [products] = React.useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
13305
+ console.log(recData, '333');
13296
13306
  return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
13297
13307
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
13298
13308
  return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css.css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
@@ -18311,7 +18321,7 @@ function withBindDataSource(Component) {
18311
18321
  * @Author: binruan@chatlabs.com
18312
18322
  * @Date: 2023-12-26 16:11:34
18313
18323
  * @LastEditors: binruan@chatlabs.com
18314
- * @LastEditTime: 2024-10-31 10:30:55
18324
+ * @LastEditTime: 2025-03-26 19:32:00
18315
18325
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\RenderCard.tsx
18316
18326
  *
18317
18327
  */
@@ -18321,10 +18331,10 @@ const RenderCard = ({ rec, index, tempMap, resolver, includesCtaType, isActive,
18321
18331
  return null;
18322
18332
  const renderComp = React.useMemo(() => {
18323
18333
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
18324
- //如果includesCtaType有值,则只渲染includesCtaType包含的cta类型组件,用于在页面某处只显示某一组件
18334
+ // 如果includesCtaType有值,则只渲染includesCtaType包含的cta类型组件,用于在页面某处只显示某一组件
18325
18335
  if (includesCtaType && !(includesCtaType === null || includesCtaType === void 0 ? void 0 : includesCtaType.includes((_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type)))
18326
18336
  return;
18327
- //默认不渲染category为cta类型的组件,该类型的组件只用于某一处
18337
+ // 默认不渲染category为cta类型的组件,该类型的组件只用于某一处
18328
18338
  if (!includesCtaType && ((_b = value === null || value === void 0 ? void 0 : value.item) === null || _b === void 0 ? void 0 : _b.category) === 'cta')
18329
18339
  return;
18330
18340
  if ((((_c = value === null || value === void 0 ? void 0 : value.item) === null || _c === void 0 ? void 0 : _c.type) === 'CommodityDiro' && !((_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.bindProduct)) ||
@@ -18341,10 +18351,10 @@ const RenderCard = ({ rec, index, tempMap, resolver, includesCtaType, isActive,
18341
18351
  const Component = withBindDataSource(t);
18342
18352
  const defaulSetting = (_u = t === null || t === void 0 ? void 0 : t.extend) === null || _u === void 0 ? void 0 : _u.defaulSetting;
18343
18353
  const isExternalLink = ((_x = (_w = (_v = value === null || value === void 0 ? void 0 : value.item) === null || _v === void 0 ? void 0 : _v.event) === null || _w === void 0 ? void 0 : _w.onClick) === null || _x === void 0 ? void 0 : _x.linkType) === 'externalLink';
18344
- let style = lodash.cloneDeep((_y = value === null || value === void 0 ? void 0 : value.item) === null || _y === void 0 ? void 0 : _y.style);
18354
+ const style = lodash.cloneDeep((_y = value === null || value === void 0 ? void 0 : value.item) === null || _y === void 0 ? void 0 : _y.style);
18345
18355
  if (style.hasOwnProperty('backdropFilter')) {
18346
- let sbf = style['backdropFilter'];
18347
- style['backdropFilter'] = `blur(${sbf !== null && sbf !== void 0 ? sbf : 0}px)`;
18356
+ const sbf = style.backdropFilter;
18357
+ style.backdropFilter = `blur(${sbf !== null && sbf !== void 0 ? sbf : 0}px)`;
18348
18358
  }
18349
18359
  return (React.createElement(Component, Object.assign({ style: Object.assign(Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.style), style), { zIndex: 50, marginLeft: '20px', boxSizing: 'border-box', transform: 'translate3d(0px, 0px, 0px)' }), textStyle: Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.textStyle), (_z = value === null || value === void 0 ? void 0 : value.item) === null || _z === void 0 ? void 0 : _z.textStyle), bindDatas: (_1 = (_0 = value === null || value === void 0 ? void 0 : value.item) === null || _0 === void 0 ? void 0 : _0.bindDatas) !== null && _1 !== void 0 ? _1 : [] }, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.props, (_2 = value === null || value === void 0 ? void 0 : value.item) === null || _2 === void 0 ? void 0 : _2.props, { event: ((_3 = value === null || value === void 0 ? void 0 : value.item) === null || _3 === void 0 ? void 0 : _3.event) || {}, schema: schema, id: value === null || value === void 0 ? void 0 : value.id, key: value === null || value === void 0 ? void 0 : value.id, recData: rec, isExternalLink: isExternalLink, index: index, isActive: isActive })));
18350
18360
  }
@@ -19076,7 +19086,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
19076
19086
  React.createElement(ConsentPopup, { resolver: resolver, globalConfig: globalConfig }),
19077
19087
  openMultiPosts && (React.createElement(MultiPosts$2, Object.assign({}, (_x = (_w = (_v = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.multiPosts) === null || _v === void 0 ? void 0 : _v[0]) === null || _w === void 0 ? void 0 : _w.item) === null || _x === void 0 ? void 0 : _x.props, (_0 = (_z = (_y = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.multiPosts) === null || _y === void 0 ? void 0 : _y[0]) === null || _z === void 0 ? void 0 : _z.item) === null || _0 === void 0 ? void 0 : _0.event, { style: { position: 'fixed', top: 0, left: 0, right: 0 } })))))));
19078
19088
  };
19079
- var SxpPageRender$1 = React.memo(SxpPageRender);
19089
+ var index$2 = React.memo(SxpPageRender);
19080
19090
 
19081
19091
  const PictureGroup$2 = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
19082
19092
  return (React.createElement(Swiper, { defaultValue: 0, direction: 'horizontal', modules: [Pagination, Autoplay], pagination: {
@@ -19440,7 +19450,7 @@ const DiyPortalPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, de
19440
19450
  return renderView(rec, index);
19441
19451
  })));
19442
19452
  };
19443
- var index$2 = React.memo(DiyPortalPreview);
19453
+ var index$1 = React.memo(DiyPortalPreview);
19444
19454
 
19445
19455
  const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index, swiperRef, data = [], loopPlay }) => {
19446
19456
  const { isActive } = useSwiperSlide();
@@ -19508,6 +19518,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
19508
19518
  }, [bffEventReport, data, index, isFirstPlay]);
19509
19519
  const handleLoadedMetadata = React.useCallback(() => {
19510
19520
  var _a;
19521
+ videoRef.current.currentTime = rec === null || rec === void 0 ? void 0 : rec.startTime;
19511
19522
  (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
19512
19523
  setIsLoadFinish(true);
19513
19524
  }, []);
@@ -19581,6 +19592,8 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
19581
19592
  }, []);
19582
19593
  const handlePause = () => {
19583
19594
  var _a, _b, _c, _d, _e, _f;
19595
+ if (!videoRef.current || !isActive)
19596
+ return;
19584
19597
  if (!loopPlay)
19585
19598
  return;
19586
19599
  if (index === (data === null || data === void 0 ? void 0 : data.length) - 1) {
@@ -19592,6 +19605,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
19592
19605
  }
19593
19606
  };
19594
19607
  // useEffect(() => {
19608
+ // if (!videoRef.current) return;
19595
19609
  // if (!isActive) return;
19596
19610
  // if (!loopPlay) {
19597
19611
  // videoRef?.current?.pause();
@@ -19611,7 +19625,6 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
19611
19625
  if (!videoPlayerWrapperNode)
19612
19626
  return;
19613
19627
  videoRef.current = mountVideoPlayerAtNode === null || mountVideoPlayerAtNode === void 0 ? void 0 : mountVideoPlayerAtNode(videoPlayerWrapperNode);
19614
- videoRef.current.currentTime = rec === null || rec === void 0 ? void 0 : rec.startTime;
19615
19628
  if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
19616
19629
  return;
19617
19630
  const Hls = window === null || window === void 0 ? void 0 : window.Hls;
@@ -19622,6 +19635,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
19622
19635
  hls === null || hls === void 0 ? void 0 : hls.attachMedia(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current);
19623
19636
  hls === null || hls === void 0 ? void 0 : hls.on(Hls.Events.MANIFEST_PARSED, function () {
19624
19637
  var _a;
19638
+ videoRef.current.currentTime = rec === null || rec === void 0 ? void 0 : rec.startTime;
19625
19639
  (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
19626
19640
  });
19627
19641
  }
@@ -19644,7 +19658,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
19644
19658
  (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('pause', handlePause);
19645
19659
  (_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('timeupdate', handleTimeUpload);
19646
19660
  };
19647
- }, [handleLoadedMetadata, handlePlaying, rec, handLoadeddata, isActive]);
19661
+ }, [handleLoadedMetadata, handlePlaying, rec, handLoadeddata, isActive, loopPlay]);
19648
19662
  React.useMemo(() => {
19649
19663
  if (!(sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image) || isLoadFinish) {
19650
19664
  return null;
@@ -19677,17 +19691,196 @@ var VideoWidget$1 = React.memo(VideoWidget);
19677
19691
  * @Author: binruan@chatlabs.com
19678
19692
  * @Date: 2025-03-25 13:54:27
19679
19693
  * @LastEditors: binruan@chatlabs.com
19680
- * @LastEditTime: 2025-03-26 15:01:42
19694
+ * @LastEditTime: 2025-03-27 17:20:34
19681
19695
  * @FilePath: \pb-sxp-ui\src\core\components\DiyStoryPreview\index.tsx
19682
19696
  *
19683
19697
  */
19698
+ const recData = {
19699
+ position: 0,
19700
+ isCollected: false,
19701
+ product: null,
19702
+ video: {
19703
+ appId: null,
19704
+ itemId: 'VIDEOSsRgI1695278974368',
19705
+ title: '8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片',
19706
+ enTitle: null,
19707
+ icon: null,
19708
+ cover: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20231017/fsJFWmW1dGyW7XmDspbJPTn5esL3U1697538777398.png',
19709
+ link: null,
19710
+ linkTitle: null,
19711
+ linkType: null,
19712
+ menuCategoryId: null,
19713
+ remark: null,
19714
+ tags: [
19715
+ 'Gift-Giving',
19716
+ 'Daily Wear',
19717
+ 'Business Formal',
19718
+ 'Sports/Casual',
19719
+ 'Anniversary Gifts',
19720
+ 'Wedding/Engagement',
19721
+ 'Formal Dinner/Party'
19722
+ ],
19723
+ traceInfo: ':VIDEO:VIDEOSsRgI1695278974368:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
19724
+ value: 385,
19725
+ weight: null,
19726
+ bindCta: null,
19727
+ bindProduct: null,
19728
+ bindProducts: [
19729
+ {
19730
+ appId: 'wx448578f8851f3dce',
19731
+ itemId: 'test02178888',
19732
+ title: 'christian dior小包包 新CDN',
19733
+ enTitle: null,
19734
+ icon: null,
19735
+ cover: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fs2jqiurjftpoaba67iiwr9jt5sc31726213277754.avif',
19736
+ link: '/pages/details/index?spu_id=1702262707659534338',
19737
+ linkTitle: '',
19738
+ linkType: 'MP',
19739
+ menuCategoryId: null,
19740
+ remark: null,
19741
+ tags: [],
19742
+ traceInfo: ':PRODUCT:test02178888:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
19743
+ value: null,
19744
+ weight: null,
19745
+ bindCta: {
19746
+ appId: 'wx448578f8851f3dce',
19747
+ itemId: 'CTA3KofE1716186622249',
19748
+ title: 'SHOP NOW 立即购买',
19749
+ enTitle: 'BUY NOW立即购买,选择你所喜爱的;',
19750
+ icon: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240520/fssfxbmiwghixmgblz9uriwennd2r1716186615574.avif',
19751
+ cover: null,
19752
+ link: '/pages/details/index?spu_id=1702262707659534338',
19753
+ linkTitle: '',
19754
+ linkType: 'MP',
19755
+ menuCategoryId: '64b60b202caf0e1c1ce1e17d',
19756
+ remark: null,
19757
+ tags: [
19758
+ "Woman's Perfumes",
19759
+ 'Plates & Bowls',
19760
+ 'Glasses',
19761
+ 'Multicolor',
19762
+ 'Carafes',
19763
+ 'Tea & Coffee',
19764
+ 'Green',
19765
+ 'Grey',
19766
+ 'Cutlery'
19767
+ ],
19768
+ traceInfo: ':CTA:CTA3KofE1716186622249:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
19769
+ value: null,
19770
+ weight: null
19771
+ },
19772
+ collection: 'Ricco',
19773
+ currency: 'INR-₹',
19774
+ homePage: [
19775
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fs2jqiurjftpoaba67iiwr9jt5sc31726213277754.avif',
19776
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fsr9ttuzuljs85smqi6lsidovnyoy1726213285994.avif',
19777
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fsknmfhx2lxukxews05guwwxr8rju1726213281108.avif',
19778
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fs0acnua4f1clamdpwdsrh0v5dgc61726213289247.avif'
19779
+ ],
19780
+ info: 'test',
19781
+ price: 53200,
19782
+ shippingInfo: null,
19783
+ taxInfo: null
19784
+ },
19785
+ {
19786
+ appId: null,
19787
+ itemId: '113J631A0684_C520',
19788
+ title: 'Sweatshirt à capuche Dior Oblique, coupe relax',
19789
+ enTitle: null,
19790
+ icon: null,
19791
+ cover: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241115/fsaf0xq8vx8gkkl30y1h1swpinmbt1731661943891.avif',
19792
+ link: 'https://www.dior.com/fr_fr/fashion/products/113J631A0684_C520',
19793
+ linkTitle: null,
19794
+ linkType: 'WEB',
19795
+ menuCategoryId: null,
19796
+ remark: null,
19797
+ tags: [],
19798
+ traceInfo: ':PRODUCT:113J631A0684_C520:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
19799
+ value: null,
19800
+ weight: null,
19801
+ bindCta: {
19802
+ appId: null,
19803
+ itemId: 'CTAAfaKf1730796437032',
19804
+ title: 'test',
19805
+ enTitle: 'test',
19806
+ icon: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241105/fsjblxoud2tmehpiqqomh0oktwqrd1730796431496.avif',
19807
+ cover: null,
19808
+ link: null,
19809
+ linkTitle: null,
19810
+ linkType: null,
19811
+ menuCategoryId: '64b60b202caf0e1c1ce1e17d',
19812
+ remark: '',
19813
+ tags: [],
19814
+ traceInfo: ':CTA:CTAAfaKf1730796437032:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
19815
+ value: null,
19816
+ weight: null
19817
+ },
19818
+ collection: 'Jacquard de coton éponge bleu',
19819
+ currency: 'EUR-€',
19820
+ homePage: [
19821
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241115/fsaf0xq8vx8gkkl30y1h1swpinmbt1731661943891.avif',
19822
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241115/fszxkdcjfjql2oiy90ffbal5tsfd81731661964913.avif',
19823
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241115/fs1jhd9jwxvfqmrbjwy5abfzb0fde1731661994996.avif'
19824
+ ],
19825
+ info: "Le sweatshirt à capuche bleu met à l'honneur l'emblématique motif dior oblique. Confectionné en jacquard de coton éponge bleu, il présente une coupe relax très confortable. Doté de poches latérales fendues, ce sweatshirt à capuche s'associera à tous vos jeans ou pantalons de survêtement pour un look décontracté.. Sweatshirt à capuche dior oblique, coupe relax Jacquard de coton éponge bleu",
19826
+ price: 1800,
19827
+ shippingInfo: null,
19828
+ taxInfo: null
19829
+ },
19830
+ {
19831
+ appId: null,
19832
+ itemId: 'S5573CRIW_M928',
19833
+ title: 'Mini Dior Book Tote',
19834
+ enTitle: null,
19835
+ icon: null,
19836
+ cover: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fsvewk9etrawxrzznmvvewgt1bctu1739415576729.avif',
19837
+ link: 'https://www.dior.com/en_gb/fashion/products/S5573CRIW_M928',
19838
+ linkTitle: null,
19839
+ linkType: 'WEB',
19840
+ menuCategoryId: null,
19841
+ remark: null,
19842
+ tags: ['ダイヤモンド'],
19843
+ traceInfo: ':PRODUCT:S5573CRIW_M928:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
19844
+ value: null,
19845
+ weight: null,
19846
+ bindCta: null,
19847
+ collection: null,
19848
+ currency: 'GBP-£',
19849
+ homePage: [
19850
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fsvewk9etrawxrzznmvvewgt1bctu1739415576729.avif',
19851
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fsngtlvhid7xwt5if0viw7vqanm831739415582147.avif',
19852
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fs4hotdvyzjtnqb9vszlynuzplddc1739415586910.avif',
19853
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fswffx9kwexf3z3vcnxisut1qxtez1739415591629.avif',
19854
+ 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fsbfsi7tttx1hnzldoiw7eoea7fvh1739415597388.avif'
19855
+ ],
19856
+ info: "The Dior Book Tote is a House classic and original design by Maria Grazia Chiuri, Creative Director of Christian Dior. The style is fully embroidered with the House's hallmark blue Dior Oblique motif and showcases the Christian Dior Paris signature. Exemplifying House savoir-faire, the miniature style features an adjustable and removable strap that allows it to be carried by hand, worn over the shoulder or crossbody.",
19857
+ price: 1950,
19858
+ shippingInfo: null,
19859
+ taxInfo: null
19860
+ }
19861
+ ],
19862
+ url: null,
19863
+ blockCta: 1,
19864
+ blockProduct: 1,
19865
+ hashTags: [
19866
+ 'Sports/Casual',
19867
+ 'Formal Dinner/Party',
19868
+ 'Business Formal',
19869
+ 'Wedding/Engagement',
19870
+ 'Gift-Giving',
19871
+ 'Daily Wear',
19872
+ 'Anniversary Gifts'
19873
+ ]
19874
+ }
19875
+ };
19684
19876
  const RESOLVER$1 = {};
19685
19877
  Object.values(_materials_).forEach((v) => {
19686
19878
  RESOLVER$1[v.extend.type] = v;
19687
19879
  });
19688
19880
  const defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
19689
19881
  const defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
19690
- const DiyStoryPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, descStyle, hashTagStyle, containerHeight = 664, containerWidth = 375, appDomain, tagList = [], scenes, onActiveChange, activeIndex, loopPlay = false }) => {
19882
+ const DiyStoryPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, descStyle, hashTagStyle, containerHeight = 664, containerWidth = 375, appDomain, tagList = [], scenes, onActiveChange, activeIndex, loopPlay = false, pointerEvents = 'none' }) => {
19883
+ const [loopPlaySwiper, setLooPlaySwiper] = React.useState(loopPlay);
19691
19884
  const swiperRef = React.useRef(null);
19692
19885
  React.useMemo(() => {
19693
19886
  let minusHeight = 0;
@@ -19713,10 +19906,10 @@ const DiyStoryPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, des
19713
19906
  const renderContent = (rec, index) => {
19714
19907
  const isVideo = isVideoUrl(rec === null || rec === void 0 ? void 0 : rec.mediaUrl);
19715
19908
  if (isVideo) {
19716
- return (React.createElement(VideoWidget$1, { rec: rec, index: index, muted: true, width: containerWidth, data: scenes !== null && scenes !== void 0 ? scenes : [], height: containerHeight, activeIndex: index, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost, swiperRef: swiperRef, loopPlay: loopPlay }));
19909
+ return (React.createElement(VideoWidget$1, { rec: rec, index: index, muted: true, width: containerWidth, data: scenes !== null && scenes !== void 0 ? scenes : [], height: containerHeight, activeIndex: index, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost, swiperRef: swiperRef, loopPlay: loopPlaySwiper }));
19717
19910
  }
19718
19911
  else {
19719
- return (React.createElement(PictureGroup$1, { key: rec.itemId, imgUrls: [rec === null || rec === void 0 ? void 0 : rec.mediaUrl], width: containerWidth, height: containerHeight, rec: rec, index: index, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost, data: scenes !== null && scenes !== void 0 ? scenes : [], swiperRef: swiperRef, loopPlay: loopPlay }));
19912
+ return (React.createElement(PictureGroup$1, { key: rec.itemId, imgUrls: [rec === null || rec === void 0 ? void 0 : rec.mediaUrl], width: containerWidth, height: containerHeight, rec: rec, index: index, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost, data: scenes !== null && scenes !== void 0 ? scenes : [], swiperRef: swiperRef, loopPlay: loopPlaySwiper }));
19720
19913
  }
19721
19914
  };
19722
19915
  React.useMemo(() => {
@@ -19726,12 +19919,126 @@ const DiyStoryPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, des
19726
19919
  }
19727
19920
  return null;
19728
19921
  }, [globalConfig]);
19729
- useIconLink(defaultLikeIconPath, appDomain);
19730
- useIconLink(defaultUnLikeIconPath, appDomain);
19731
- useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png', appDomain);
19732
- useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png', appDomain);
19733
- const renderView = (rec, index) => {
19734
- return (React.createElement(SwiperSlide, { key: index, virtualIndex: index, style: { overflow: 'hidden', position: 'relative' } }, renderContent(rec, index)));
19922
+ const renderBottom = (rec, index) => {
19923
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
19924
+ if (rec === null || rec === void 0 ? void 0 : rec.video) {
19925
+ let cta = null;
19926
+ if ((_b = (_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProducts) === null || _b === void 0 ? void 0 : _b.length) {
19927
+ cta = '多商品CTA';
19928
+ }
19929
+ else if ((_c = rec === null || rec === void 0 ? void 0 : rec.video) === null || _c === void 0 ? void 0 : _c.bindProduct) {
19930
+ cta = '商品CTA';
19931
+ }
19932
+ else {
19933
+ cta = (_e = (_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.bindCta) === null || _e === void 0 ? void 0 : _e.itemId;
19934
+ }
19935
+ const value = tempMap === null || tempMap === void 0 ? void 0 : tempMap[cta];
19936
+ return (React.createElement(React.Fragment, null,
19937
+ ((_f = rec === null || rec === void 0 ? void 0 : rec.video) === null || _f === void 0 ? void 0 : _f.title) && (React.createElement("div", { style: {
19938
+ background: 'repeating-linear-gradient(0deg, rgba(26, 26, 25, 0.7), hsla(0, 0%, 100%, 0))',
19939
+ height: '130px',
19940
+ position: 'absolute',
19941
+ bottom: 0,
19942
+ width: '100%',
19943
+ willChange: 'transform',
19944
+ zIndex: 2,
19945
+ pointerEvents
19946
+ } })),
19947
+ React.createElement("div", { style: {
19948
+ marginBottom: `${(_g = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.bottomInfoDist) !== null && _g !== void 0 ? _g : 40}px`,
19949
+ zIndex: 999,
19950
+ position: 'absolute',
19951
+ bottom: 0,
19952
+ left: 0,
19953
+ right: 0,
19954
+ paddingTop: '20px'
19955
+ } },
19956
+ (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) ? (React.createElement("div", { style: {} },
19957
+ React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1, isActive: index === activeIndex, value: value }))) : null,
19958
+ React.createElement("div", null,
19959
+ React.createElement(ExpandableText$1
19960
+ // className='clc-sxp-bottom-text'
19961
+ , {
19962
+ // className='clc-sxp-bottom-text'
19963
+ isPost: true, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (_j = (_h = rec === null || rec === void 0 ? void 0 : rec.video) === null || _h === void 0 ? void 0 : _h.title) !== null && _j !== void 0 ? _j : '', 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', padding: '0 20px', fontSize: '12px' }) }),
19964
+ React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1, includesCtaType: ['AniLink'], isActive: index === activeIndex, value: value }))),
19965
+ React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1, includesCtaType: ['AniLinkPopup'], isActive: index === activeIndex, value: value })));
19966
+ }
19967
+ return null;
19968
+ };
19969
+ const likeIcon = useIconLink(defaultLikeIconPath, appDomain);
19970
+ const unlikeIcon = useIconLink(defaultUnLikeIconPath, appDomain);
19971
+ const renderLikeButton = (rec, index) => {
19972
+ var _a, _b, _c, _d;
19973
+ if (!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLike))
19974
+ return;
19975
+ let top = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconY) !== null && _a !== void 0 ? _a : 400;
19976
+ if (top < 40) {
19977
+ top += 40;
19978
+ }
19979
+ if (rec === null || rec === void 0 ? void 0 : rec.video) {
19980
+ return (React.createElement(LikeButton$1, { key: rec.position, activeIcon: (_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIcon) !== null && _b !== void 0 ? _b : likeIcon, unActicveIcon: (_c = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unlikeIcon) !== null && _c !== void 0 ? _c : unlikeIcon, position: index, active: rec.isCollected, recData: rec,
19981
+ // className={style['clc-sxp-like-button']}
19982
+ style: {
19983
+ top,
19984
+ right: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconX) !== null && _d !== void 0 ? _d : 0,
19985
+ position: 'absolute',
19986
+ zIndex: 999,
19987
+ backgroundColor: 'transparent',
19988
+ width: '50px',
19989
+ height: '50px',
19990
+ outline: 'none',
19991
+ border: 'none',
19992
+ boxSizing: 'content-box',
19993
+ padding: 0,
19994
+ transform: 'translate3d(0px, 0px, 0px)'
19995
+ } }));
19996
+ }
19997
+ return null;
19998
+ };
19999
+ const mutedIcon = useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png', appDomain);
20000
+ const unmutedIcon = useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png', appDomain);
20001
+ const renderToggleButton = (visible) => {
20002
+ var _a, _b, _c, _d;
20003
+ if (!visible)
20004
+ return;
20005
+ let top = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _a !== void 0 ? _a : 23;
20006
+ if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconYPosit) === 'top') {
20007
+ top += 45;
20008
+ }
20009
+ return (((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowMute) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowMute) === true) && (React.createElement(ToggleButton$1, { style: {
20010
+ position: 'absolute',
20011
+ visibility: 'visible',
20012
+ zIndex: 999,
20013
+ transform: 'translate3d(0px,0px,0px)',
20014
+ [(_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconXPosit) !== null && _b !== void 0 ? _b : 'right']: (_c = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _c !== void 0 ? _c : 0,
20015
+ [(_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconYPosit) !== null && _d !== void 0 ? _d : 'bottom']: top,
20016
+ backgroundColor: 'transparent',
20017
+ width: '50px',
20018
+ height: '50px',
20019
+ outline: 'none',
20020
+ border: 'none',
20021
+ boxSizing: 'content-box',
20022
+ padding: 0
20023
+ }, 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 })));
20024
+ };
20025
+ const renderView = (item, index) => {
20026
+ var _a, _b, _c, _d;
20027
+ const rec = lodash.cloneDeep(recData);
20028
+ rec.video.bindProducts = item === null || item === void 0 ? void 0 : item.bindProducts;
20029
+ return (React.createElement("div", { style: { position: 'relative' } },
20030
+ React.createElement(SwiperSlide, { key: index, virtualIndex: index, style: { overflow: 'hidden', position: 'relative' } },
20031
+ renderBottom(rec, index),
20032
+ renderLikeButton(rec, index),
20033
+ renderToggleButton(!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconFixed)),
20034
+ React.createElement(ToggleButton$1, { style: {
20035
+ position: 'absolute',
20036
+ right: (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _a !== void 0 ? _a : 0,
20037
+ 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',
20038
+ bottom: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _d !== void 0 ? _d : 23,
20039
+ zIndex: 999
20040
+ }, 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 }),
20041
+ renderContent(item, index))));
19735
20042
  };
19736
20043
  React.useEffect(() => {
19737
20044
  var _a, _b;
@@ -19745,14 +20052,23 @@ const DiyStoryPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, des
19745
20052
  return;
19746
20053
  (_b = (_a = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper) === null || _b === void 0 ? void 0 : _b.slideTo(0);
19747
20054
  }, [loopPlay]);
19748
- return (React.createElement(Swiper, { ref: swiperRef, allowTouchMove: false, onActiveIndexChange: (swiper) => {
19749
- // setActiveIndex(swiper.activeIndex);
19750
- onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(swiper.activeIndex);
19751
- }, direction: 'vertical', style: { overflow: 'hidden', height: containerHeight } }, scenes === null || scenes === void 0 ? void 0 : scenes.map((rec, index) => {
19752
- return renderView(rec, index);
19753
- })));
20055
+ return (React.createElement("div", { id: 'sxp-render',
20056
+ // className={style['clc-sxp-container']}
20057
+ style: { height: containerHeight, position: 'relative', pointerEvents } },
20058
+ React.createElement(Swiper, { ref: swiperRef, allowTouchMove: pointerEvents !== 'none', onSlideChange: () => {
20059
+ setLooPlaySwiper(false);
20060
+ swiperRef.current.swiper.allowTouchMove = false;
20061
+ setTimeout(() => {
20062
+ swiperRef.current.swiper.allowTouchMove = true;
20063
+ }, 500);
20064
+ }, onActiveIndexChange: (swiper) => {
20065
+ // setActiveIndex(swiper.activeIndex);
20066
+ onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(swiper.activeIndex);
20067
+ }, direction: 'vertical', style: { overflow: 'hidden', height: containerHeight }, height: containerHeight }, scenes === null || scenes === void 0 ? void 0 : scenes.map((rec, index) => {
20068
+ return renderView(rec, index);
20069
+ }))));
19754
20070
  };
19755
- var index$1 = React.memo(DiyStoryPreview);
20071
+ var DiyStoryPreview$1 = React.memo(DiyStoryPreview);
19756
20072
 
19757
20073
  /*
19758
20074
  * @Author: binruan@chatlabs.com
@@ -19850,17 +20166,9 @@ const Popup = () => {
19850
20166
 
19851
20167
  /*
19852
20168
  * @Author: binruan@chatlabs.com
19853
- * @Date: 2024-01-15 19:03:09
19854
- * @LastEditors: binruan@chatlabs.com
19855
- * @LastEditTime: 2025-02-24 15:47:44
19856
- * @FilePath: \pb-sxp-ui\src\core\components\SxpPageCore\index.tsx
19857
- *
19858
- */
19859
- /*
19860
- * @Author: binruan@chatlabs.com
19861
- * @Date: 2023-11-24 15:58:00
20169
+ * @Date: 2024-03-20 10:27:31
19862
20170
  * @LastEditors: binruan@chatlabs.com
19863
- * @LastEditTime: 2023-12-26 10:24:42
20171
+ * @LastEditTime: 2025-03-27 17:17:56
19864
20172
  * @FilePath: \pb-sxp-ui\src\core\components\SxpPageCore\index.tsx
19865
20173
  *
19866
20174
  */
@@ -19868,7 +20176,7 @@ const RESOLVER = {};
19868
20176
  Object.values(_materials_).forEach((v) => {
19869
20177
  RESOLVER[v.extend.type] = v;
19870
20178
  });
19871
- const SxpPageCore = ({ data, maxSize = 10, defaultSize = 10, hashTagSize = 20, loadingImage, appDomain, enabledMetaConversionApi, dataList }) => {
20179
+ const SxpPageCore = ({ data, maxSize = 10, defaultSize = 10, hashTagSize = 20, loadingImage, appDomain, enabledMetaConversionApi, dataList, pointerEvents }) => {
19872
20180
  var _a, _b, _c, _d, _e, _f;
19873
20181
  const utmVal = React.useMemo(() => {
19874
20182
  var _a;
@@ -19881,7 +20189,7 @@ const SxpPageCore = ({ data, maxSize = 10, defaultSize = 10, hashTagSize = 20, l
19881
20189
  React.createElement(SxpDataSourceProvider$1, { utmVal: utmVal, dataSources: data === null || data === void 0 ? void 0 : data.data_sources, sxpParameter: data === null || data === void 0 ? void 0 : data.sxp_parameter, maxSize: (_b = (_a = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _a === void 0 ? void 0 : _a.personalized_recommend) !== null && _b !== void 0 ? _b : maxSize, defaultSize: (_d = (_c = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _c === void 0 ? void 0 : _c.default_recommend) !== null && _d !== void 0 ? _d : defaultSize, hashTagSize: (_f = (_e = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _e === void 0 ? void 0 : _e.hash_tag_size) !== null && _f !== void 0 ? _f : hashTagSize, loadingImage: loadingImage, appDomain: appDomain, enabledMetaConversionApi: enabledMetaConversionApi, utmParameter: data === null || data === void 0 ? void 0 : data.utm_parameter, data: data, dataList: dataList, onUpdateSchema: (d) => setSchema(d), onUpdateChannel: (d) => setChannel(d), render: ({ rtcList, tagList, pageData }) => {
19882
20190
  var _a;
19883
20191
  return (React.createElement(React.Fragment, null,
19884
- React.createElement(SxpPageRender$1, Object.assign({ defaultData: data }, (_a = pageData === null || pageData === void 0 ? void 0 : pageData.data) === null || _a === void 0 ? void 0 : _a.sxpPageConf, { tagList: tagList, data: rtcList, resolver: RESOLVER })),
20192
+ React.createElement(DiyStoryPreview$1, Object.assign({ defaultData: data }, (_a = pageData === null || pageData === void 0 ? void 0 : pageData.data) === null || _a === void 0 ? void 0 : _a.sxpPageConf, { tagList: tagList, scenes: rtcList, resolver: RESOLVER, containerHeight: window === null || window === void 0 ? void 0 : window.innerHeight, pointerEvents: pointerEvents })),
19885
20193
  React.createElement(Popup, null)));
19886
20194
  } })));
19887
20195
  };
@@ -19895,13 +20203,13 @@ var index = React.memo(SxpPageCore);
19895
20203
  * @FilePath: \pb-sxp-ui\src\index.ts
19896
20204
  */
19897
20205
 
19898
- exports.DiyPortalPreview = index$2;
19899
- exports.DiyStoryPreview = index$1;
20206
+ exports.DiyPortalPreview = index$1;
20207
+ exports.DiyStoryPreview = DiyStoryPreview$1;
19900
20208
  exports.EditorDataProvider = EditorDataProvider;
19901
20209
  exports.Modal = Modal$1;
19902
20210
  exports.SxpDataSourceProvider = SxpDataSourceProvider$1;
19903
20211
  exports.SxpPageCore = index;
19904
- exports.SxpPageRender = SxpPageRender$1;
20212
+ exports.SxpPageRender = index$2;
19905
20213
  exports.core = index$3;
19906
20214
  exports.default = Pagebuilder;
19907
20215
  exports.materials = _materials_;