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