pb-sxp-ui 1.0.40 → 1.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +455 -135
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +8 -1
- package/dist/index.js +454 -135
- 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 +458 -139
- 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 +8 -13
- 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 +8 -13
- 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/pb-ui.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
(function (global, factory) {
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lodash'), require('uuid'), require('pako'), require('react'), require('qs'), require('@emotion/css'), require('@ant-design/pro-components'), require('react-dom'), require('eventemitter3')) :
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'lodash', 'uuid', 'pako', 'react', 'qs', '@emotion/css', '@ant-design/pro-components', 'react-dom', 'eventemitter3'], factory) :
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.PUI = {}, global.lodash, global.uuid$1, global.pako, global.React, global.qs, global.css, global.proComponents, global.ReactDOM, global.EventEmitter));
|
5
|
-
})(this, (function (exports, lodash, uuid$1, pako, React, qs, css, proComponents, ReactDOM, EventEmitter) { 'use strict';
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('lodash'), require('uuid'), require('pako'), require('react'), require('qs'), require('@emotion/css'), require('@ant-design/pro-components'), require('react-dom'), require('eventemitter3'), require('hls.js')) :
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'lodash', 'uuid', 'pako', 'react', 'qs', '@emotion/css', '@ant-design/pro-components', 'react-dom', 'eventemitter3', 'hls.js'], factory) :
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.PUI = {}, global.lodash, global.uuid$1, global.pako, global.React, global.qs, global.css, global.proComponents, global.ReactDOM, global.EventEmitter, global.Hls));
|
5
|
+
})(this, (function (exports, lodash, uuid$1, pako, React, qs, css, proComponents, ReactDOM, EventEmitter, Hls) { 'use strict';
|
6
6
|
|
7
7
|
function _interopNamespaceDefault(e) {
|
8
8
|
var n = Object.create(null);
|
@@ -569,7 +569,7 @@
|
|
569
569
|
fromKName = 'imagePage';
|
570
570
|
}
|
571
571
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
572
|
-
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 + '',
|
572
|
+
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 })
|
573
573
|
});
|
574
574
|
}, [bffEventReport, isFromHashtag]);
|
575
575
|
React.useEffect(() => {
|
@@ -856,7 +856,7 @@
|
|
856
856
|
React.createElement(DataSourceProvider$1, { isSsr: isSsr, enable: enableDataSource }, children)));
|
857
857
|
});
|
858
858
|
|
859
|
-
var index$
|
859
|
+
var index$2 = /*#__PURE__*/Object.freeze({
|
860
860
|
__proto__: null,
|
861
861
|
EditorCore: EditorCore
|
862
862
|
});
|
@@ -8142,8 +8142,8 @@
|
|
8142
8142
|
fromKPage: location === null || location === void 0 ? void 0 : location.href,
|
8143
8143
|
contentTags: (product === null || product === void 0 ? void 0 : product.tags) ? JSON.stringify(product === null || product === void 0 ? void 0 : product.tags) : '',
|
8144
8144
|
position: position + '',
|
8145
|
-
|
8146
|
-
|
8145
|
+
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 : '',
|
8146
|
+
ctatId: (_o = cta === null || cta === void 0 ? void 0 : cta.itemId) !== null && _o !== void 0 ? _o : '',
|
8147
8147
|
traceInfo: (_p = product === null || product === void 0 ? void 0 : product.traceInfo) !== null && _p !== void 0 ? _p : ''
|
8148
8148
|
}
|
8149
8149
|
});
|
@@ -8167,8 +8167,8 @@
|
|
8167
8167
|
fromKPage: location === null || location === void 0 ? void 0 : location.href,
|
8168
8168
|
contentTags: JSON.stringify(product === null || product === void 0 ? void 0 : product.tags),
|
8169
8169
|
position: position + '',
|
8170
|
-
|
8171
|
-
|
8170
|
+
contentId: (_d = data === null || data === void 0 ? void 0 : data.video) === null || _d === void 0 ? void 0 : _d.itemId,
|
8171
|
+
ctatId: cta === null || cta === void 0 ? void 0 : cta.itemId,
|
8172
8172
|
traceInfo: product === null || product === void 0 ? void 0 : product.traceInfo,
|
8173
8173
|
timeOnSite: Math.floor((new Date() - viewTime) / 1000) + '',
|
8174
8174
|
eventSubject: 'productView',
|
@@ -8331,7 +8331,7 @@
|
|
8331
8331
|
var FormatImage$1 = React.memo(FormatImage);
|
8332
8332
|
|
8333
8333
|
const CommodityDetail$1 = (_a) => {
|
8334
|
-
var _b, _c, _d, _e, _f, _g, _h, _j;
|
8334
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
8335
8335
|
var { content, style, bgImg, onClick, schema, isDefault, bottom_image, tipText, isPost, viewTime, rec, swiper, commodityStyles, buttonStyle, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "onClick", "schema", "isDefault", "bottom_image", "tipText", "isPost", "viewTime", "rec", "swiper", "commodityStyles", "buttonStyle", "index"]);
|
8336
8336
|
const { sxpParameter } = useSxpDataSource();
|
8337
8337
|
const { popupDetailData, bffEventReport, isPreview, waterFallData } = useSxpDataSource();
|
@@ -8372,7 +8372,7 @@
|
|
8372
8372
|
return '$7,000';
|
8373
8373
|
}
|
8374
8374
|
}, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
|
8375
|
-
const width = isPreview ? 375 : window.innerWidth;
|
8375
|
+
const width = isPreview ? 375 : (_f = style === null || style === void 0 ? void 0 : style.width) !== null && _f !== void 0 ? _f : window.innerWidth;
|
8376
8376
|
const renderContent = ({ isPost }) => {
|
8377
8377
|
var _a, _b, _c;
|
8378
8378
|
return (React.createElement("div", null,
|
@@ -8392,7 +8392,7 @@
|
|
8392
8392
|
};
|
8393
8393
|
return (React.createElement("div", { className: 'pb-commondity' },
|
8394
8394
|
React.createElement("div", Object.assign({ className: css.css(Object.assign({}, style)) }, props),
|
8395
|
-
product && ((
|
8395
|
+
product && ((_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.length) > 0 && (React.createElement(Swiper, { height: width, modules: [Pagination, Autoplay], pagination: {
|
8396
8396
|
clickable: true,
|
8397
8397
|
bulletActiveClass: 'swipe-item-active-bullet',
|
8398
8398
|
clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
|
@@ -8400,7 +8400,7 @@
|
|
8400
8400
|
: 'commondityDetail-swiper-clickable-center'
|
8401
8401
|
}, loop: true, autoplay: {
|
8402
8402
|
delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
|
8403
|
-
} }, (
|
8403
|
+
} }, (_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.map((src) => {
|
8404
8404
|
return (React.createElement(SwiperSlide, { key: src },
|
8405
8405
|
React.createElement("div", { style: {
|
8406
8406
|
overflow: 'hidden',
|
@@ -8409,7 +8409,7 @@
|
|
8409
8409
|
} },
|
8410
8410
|
React.createElement(FormatImage$1, { style: { height: '100%', width: '100%', objectFit: 'cover', display: 'block' }, src: src }))));
|
8411
8411
|
}))),
|
8412
|
-
!((
|
8412
|
+
!((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css.css({
|
8413
8413
|
position: 'relative',
|
8414
8414
|
height: 0,
|
8415
8415
|
width: '100%',
|
@@ -8422,7 +8422,7 @@
|
|
8422
8422
|
top: 0,
|
8423
8423
|
objectFit: 'cover',
|
8424
8424
|
width: '100%'
|
8425
|
-
}), src: (
|
8425
|
+
}), src: (_k = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _k !== void 0 ? _k : bottom_image, alt: '' }))),
|
8426
8426
|
React.createElement("div", { className: 'pb-commondity-content' }, renderContent({ isPost }))),
|
8427
8427
|
renderBtn(),
|
8428
8428
|
React.createElement(Modal$1, { visible: showModal, onClose: () => setShowModal(false) },
|
@@ -8782,7 +8782,7 @@
|
|
8782
8782
|
];
|
8783
8783
|
|
8784
8784
|
const CommodityDetailDiroNew$1 = (_a) => {
|
8785
|
-
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
8785
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
8786
8786
|
var { style, isDefault, rec, viewTime, isPost, bottom_image, tipText, swiper, commodityStyles, buttonStyle, index } = _a, props = __rest(_a, ["style", "isDefault", "rec", "viewTime", "isPost", "bottom_image", "tipText", "swiper", "commodityStyles", "buttonStyle", "index"]);
|
8787
8787
|
React.useState(true);
|
8788
8788
|
const { sxpParameter } = useSxpDataSource();
|
@@ -8830,7 +8830,7 @@
|
|
8830
8830
|
return '£102,300.00';
|
8831
8831
|
}
|
8832
8832
|
}, [product === null || product === void 0 ? void 0 : product.price, product === null || product === void 0 ? void 0 : product.currency]);
|
8833
|
-
const width = isPreview ? 375 : window.innerWidth;
|
8833
|
+
const width = isPreview ? 375 : (_f = style === null || style === void 0 ? void 0 : style.width) !== null && _f !== void 0 ? _f : window.innerWidth;
|
8834
8834
|
const productInfoText = ({ isPost }) => {
|
8835
8835
|
return (React.createElement("div", { hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.info) || (product === null || product === void 0 ? void 0 : product.info) === '') },
|
8836
8836
|
React.createElement(ExpandableText$1, { isPost: isPost, onClick: () => setShowModal(true), className: 'pb-commondityDiroNew-info', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.info, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (product === null || product === void 0 ? void 0 : product.info) ||
|
@@ -8839,7 +8839,7 @@ Made in Italy` })));
|
|
8839
8839
|
};
|
8840
8840
|
return (React.createElement("div", { className: 'pb-commondityDiroNew' },
|
8841
8841
|
React.createElement("div", Object.assign({ ref: scrollRef, className: css.css(Object.assign({}, style)) }, props),
|
8842
|
-
product && ((
|
8842
|
+
product && ((_g = product === null || product === void 0 ? void 0 : product.homePage) === null || _g === void 0 ? void 0 : _g.length) > 0 && (React.createElement(Swiper, { height: width, modules: [Pagination, Autoplay], pagination: {
|
8843
8843
|
clickable: true,
|
8844
8844
|
bulletActiveClass: 'commondityDiroNew-swipe-item-active-bullet',
|
8845
8845
|
clickableClass: (swiper === null || swiper === void 0 ? void 0 : swiper.dotsAlign) === 'left'
|
@@ -8847,7 +8847,7 @@ Made in Italy` })));
|
|
8847
8847
|
: 'commondityDiroNew-swiper-clickable-center'
|
8848
8848
|
}, loop: true, autoplay: {
|
8849
8849
|
delay: (swiper === null || swiper === void 0 ? void 0 : swiper.delay) * 1000
|
8850
|
-
} }, (
|
8850
|
+
} }, (_h = product === null || product === void 0 ? void 0 : product.homePage) === null || _h === void 0 ? void 0 : _h.map((src) => {
|
8851
8851
|
return (React.createElement(SwiperSlide, { key: src },
|
8852
8852
|
React.createElement("div", { style: {
|
8853
8853
|
overflow: 'hidden',
|
@@ -8856,7 +8856,7 @@ Made in Italy` })));
|
|
8856
8856
|
} },
|
8857
8857
|
React.createElement(FormatImage$1, { style: { height: '100%', width: '100%', objectFit: 'cover', display: 'block' }, src: src }))));
|
8858
8858
|
}))),
|
8859
|
-
!((
|
8859
|
+
!((_j = product === null || product === void 0 ? void 0 : product.homePage) === null || _j === void 0 ? void 0 : _j.length) && (React.createElement("div", { className: css.css({
|
8860
8860
|
position: 'relative',
|
8861
8861
|
height: 0,
|
8862
8862
|
width: '100%',
|
@@ -8869,16 +8869,16 @@ Made in Italy` })));
|
|
8869
8869
|
top: 0,
|
8870
8870
|
objectFit: 'cover',
|
8871
8871
|
width: '100%'
|
8872
|
-
}), src: (
|
8872
|
+
}), src: (_k = sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.bottom_image) !== null && _k !== void 0 ? _k : bottom_image, alt: '' }))),
|
8873
8873
|
React.createElement("div", { className: 'pb-commondityDiroNew-content' },
|
8874
8874
|
React.createElement("div", { className: 'pb-commondityDiroNew-content-top' },
|
8875
8875
|
React.createElement("div", { className: 'pb-commondityDiroNew-content-top-left' },
|
8876
|
-
React.createElement("div", { className: 'pb-commondityDiroNew-content-top-left-title', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title }, (
|
8876
|
+
React.createElement("div", { className: 'pb-commondityDiroNew-content-top-left-title', style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.title }, (_l = product === null || product === void 0 ? void 0 : product.title) !== null && _l !== void 0 ? _l : 'Large Dior Toujours Bag'),
|
8877
8877
|
React.createElement("div", { className: 'pb-commondityDiroNew-content-collection', hidden: !!product && (!(product === null || product === void 0 ? void 0 : product.collection) || (product === null || product === void 0 ? void 0 : product.collection) === ''), style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.collection }, (product === null || product === void 0 ? void 0 : product.collection) || 'Black Macrocannage Calfskin')),
|
8878
8878
|
React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right' },
|
8879
8879
|
React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.price), style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.price }, priceText),
|
8880
|
-
React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.taxInfo), style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo }, (
|
8881
|
-
(!product || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("button", { onClick: handleLink, className: 'pb-commondityDiroNew-btn', style: buttonStyle }, (
|
8880
|
+
React.createElement("div", { className: 'pb-commondityDiroNew-content-top-right-price', hidden: !!product && !(product === null || product === void 0 ? void 0 : product.taxInfo), style: commodityStyles === null || commodityStyles === void 0 ? void 0 : commodityStyles.taxInfo }, (_m = product === null || product === void 0 ? void 0 : product.taxInfo) !== null && _m !== void 0 ? _m : '税费'))),
|
8881
|
+
(!product || (product === null || product === void 0 ? void 0 : product.link)) && (React.createElement("button", { onClick: handleLink, className: 'pb-commondityDiroNew-btn', style: buttonStyle }, (_o = cta === null || cta === void 0 ? void 0 : cta.enTitle) !== null && _o !== void 0 ? _o : 'Shop now')),
|
8882
8882
|
productInfoText({ isPost }))),
|
8883
8883
|
React.createElement(Modal$1, { visible: showModal, onClose: () => setShowModal(false) }, productInfoText({ isPost: false }))));
|
8884
8884
|
};
|
@@ -11786,7 +11786,7 @@ Made in Italy` })));
|
|
11786
11786
|
}
|
11787
11787
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
11788
11788
|
eventInfo: {
|
11789
|
-
|
11789
|
+
contentId: (_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.itemId,
|
11790
11790
|
position: cacheActiveIndex + '',
|
11791
11791
|
contentTags: JSON.stringify((_e = rec === null || rec === void 0 ? void 0 : rec.video) === null || _e === void 0 ? void 0 : _e.tags),
|
11792
11792
|
traceInfo: (_f = rec === null || rec === void 0 ? void 0 : rec.video) === null || _f === void 0 ? void 0 : _f.traceInfo,
|
@@ -11919,14 +11919,14 @@ Made in Italy` })));
|
|
11919
11919
|
Prompt: Prompt
|
11920
11920
|
});
|
11921
11921
|
|
11922
|
-
const defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
|
11923
|
-
const defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
|
11922
|
+
const defaultUnLikeIconPath$1 = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
|
11923
|
+
const defaultLikeIconPath$1 = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
|
11924
11924
|
const LikeButton = (_a) => {
|
11925
11925
|
var { active, activeIcon, unActicveIcon, recData, position } = _a, props = __rest(_a, ["active", "activeIcon", "unActicveIcon", "recData", "position"]);
|
11926
11926
|
const { mutateLike, mutateUnlike, bffEventReport } = useSxpDataSource();
|
11927
11927
|
const [state, setState] = React.useState(active);
|
11928
|
-
const likeIcon = useIconLink(defaultLikeIconPath);
|
11929
|
-
const unlikeIcon = useIconLink(defaultUnLikeIconPath);
|
11928
|
+
const likeIcon = useIconLink(defaultLikeIconPath$1);
|
11929
|
+
const unlikeIcon = useIconLink(defaultUnLikeIconPath$1);
|
11930
11930
|
const handleClick = lodash.debounce(() => __awaiter(void 0, void 0, void 0, function* () {
|
11931
11931
|
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
|
11932
11932
|
if (state) {
|
@@ -11982,7 +11982,7 @@ Made in Italy` })));
|
|
11982
11982
|
SXP_EVENT_TYPE["PAGE_DID_HIDE"] = "pageDidHide";
|
11983
11983
|
})(SXP_EVENT_TYPE || (SXP_EVENT_TYPE = {}));
|
11984
11984
|
|
11985
|
-
const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig }) => {
|
11985
|
+
const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPostConfig }) => {
|
11986
11986
|
const [isPauseVideo, setIsPauseVideo] = React.useState(false);
|
11987
11987
|
const videoRef = React.useRef(null);
|
11988
11988
|
const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
|
@@ -11992,13 +11992,12 @@ Made in Italy` })));
|
|
11992
11992
|
const { isActive } = useSwiperSlide();
|
11993
11993
|
const canvasRef = React.useRef(null);
|
11994
11994
|
const [firstFrameSrc, setFirstFrameSrc] = React.useState('');
|
11995
|
-
const videoId = `pb-video-${index}`;
|
11996
11995
|
React.useEffect(() => {
|
11997
11996
|
if (!videoRef.current)
|
11998
11997
|
return;
|
11999
|
-
videoRef.current.muted
|
11998
|
+
videoRef.current.muted = muted;
|
12000
11999
|
}, [muted]);
|
12001
|
-
const
|
12000
|
+
const handleVideoStart = React.useCallback(() => {
|
12002
12001
|
var _a;
|
12003
12002
|
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
12004
12003
|
}, []);
|
@@ -12007,10 +12006,10 @@ Made in Italy` })));
|
|
12007
12006
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
12008
12007
|
setIsPauseVideo(false);
|
12009
12008
|
const item = data[index];
|
12010
|
-
if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration
|
12011
|
-
videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime
|
12012
|
-
const videoDuration = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration
|
12013
|
-
const videoCurrentTime = ((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime
|
12009
|
+
if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
|
12010
|
+
videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0;
|
12011
|
+
const videoDuration = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
12012
|
+
const videoCurrentTime = ((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
|
12014
12013
|
const playType = isFirstPlay ? '0' : '1';
|
12015
12014
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
12016
12015
|
eventInfo: {
|
@@ -12030,15 +12029,14 @@ Made in Italy` })));
|
|
12030
12029
|
setIsFirstPlay(false);
|
12031
12030
|
}
|
12032
12031
|
}, [bffEventReport, data, index, isFirstPlay]);
|
12033
|
-
const
|
12034
|
-
handLoadeddata();
|
12032
|
+
const handleLoadedMetadata = React.useCallback(() => {
|
12035
12033
|
setIsLoadFinish(true);
|
12036
12034
|
}, []);
|
12037
12035
|
const handleClickVideo = React.useCallback((type) => () => {
|
12038
12036
|
var _a, _b, _c, _d, _e;
|
12039
12037
|
if (!isLoadFinish)
|
12040
12038
|
return;
|
12041
|
-
const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused
|
12039
|
+
const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
|
12042
12040
|
switch (type) {
|
12043
12041
|
case 'start':
|
12044
12042
|
if (!isPause)
|
@@ -12063,13 +12061,13 @@ Made in Italy` })));
|
|
12063
12061
|
break;
|
12064
12062
|
}
|
12065
12063
|
}, [isLoadFinish]);
|
12066
|
-
const
|
12064
|
+
const onPause = React.useCallback(() => {
|
12067
12065
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
12068
12066
|
const item = data[index];
|
12069
|
-
const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration
|
12070
|
-
const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime
|
12071
|
-
if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration
|
12072
|
-
const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime
|
12067
|
+
const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
|
12068
|
+
const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
12069
|
+
if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration) {
|
12070
|
+
const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime) - videoStartTime.current).toFixed(2);
|
12073
12071
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
12074
12072
|
eventInfo: {
|
12075
12073
|
eventSubject: 'playOverVideo',
|
@@ -12101,66 +12099,56 @@ Made in Italy` })));
|
|
12101
12099
|
return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
|
12102
12100
|
}, [firstFrameSrc, rec]);
|
12103
12101
|
const handLoadeddata = React.useCallback(() => {
|
12104
|
-
|
12105
|
-
const videoDomRef = document.getElementById(`${videoId}_html5_api`);
|
12106
|
-
if (((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || !canvasRef || !videoDomRef || !canvasRef.current)
|
12102
|
+
if (!canvasRef || !videoRef || !videoRef.current || !canvasRef.current)
|
12107
12103
|
return;
|
12108
|
-
const
|
12109
|
-
|
12110
|
-
|
12111
|
-
|
12112
|
-
|
12113
|
-
|
12114
|
-
|
12115
|
-
|
12116
|
-
|
12117
|
-
setFirstFrameSrc(canvas.toDataURL());
|
12118
|
-
};
|
12119
|
-
setFrameImg();
|
12120
|
-
setTimeout(() => {
|
12121
|
-
setFrameImg();
|
12122
|
-
}, 500);
|
12104
|
+
const video = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current;
|
12105
|
+
const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
|
12106
|
+
const ctx = canvas.getContext('2d');
|
12107
|
+
const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
|
12108
|
+
const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
|
12109
|
+
canvas.height = targetHeight;
|
12110
|
+
canvas.width = targetWidth;
|
12111
|
+
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
12112
|
+
setFirstFrameSrc(canvas.toDataURL());
|
12123
12113
|
}, []);
|
12124
12114
|
React.useEffect(() => {
|
12125
|
-
var _a, _b, _c, _d
|
12115
|
+
var _a, _b, _c, _d;
|
12116
|
+
if (!videoRef.current)
|
12117
|
+
return;
|
12126
12118
|
setIsPauseVideo(false);
|
12127
|
-
|
12128
|
-
|
12129
|
-
|
12130
|
-
|
12131
|
-
|
12132
|
-
|
12133
|
-
|
12134
|
-
|
12135
|
-
|
12136
|
-
|
12137
|
-
|
12138
|
-
|
12139
|
-
|
12140
|
-
|
12141
|
-
|
12142
|
-
|
12143
|
-
|
12144
|
-
|
12145
|
-
videoRef.current.
|
12146
|
-
|
12147
|
-
|
12148
|
-
(
|
12149
|
-
(
|
12150
|
-
|
12151
|
-
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.
|
12152
|
-
(_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.on('ended', handleEnded);
|
12119
|
+
if (!videoRef.current.src) {
|
12120
|
+
const videoSrc = rec.video.url;
|
12121
|
+
// if (videoSrc.includes('.m3u8')) {
|
12122
|
+
// if (Hls.isSupported()) {
|
12123
|
+
// const hls = new Hls();
|
12124
|
+
// hls.loadSource(videoSrc);
|
12125
|
+
// hls.attachMedia(videoRef.current);
|
12126
|
+
// hls.on(Hls.Events.MANIFEST_PARSED, function () {
|
12127
|
+
// videoRef?.current?.play();
|
12128
|
+
// });
|
12129
|
+
// } else if (videoRef.current.canPlayType('application/vnd.apple.mpegurl')) {
|
12130
|
+
// videoRef.current.src = videoSrc;
|
12131
|
+
// } else {
|
12132
|
+
// videoRef.current.src = videoSrc;
|
12133
|
+
// }
|
12134
|
+
// } else {
|
12135
|
+
videoRef.current.src = videoSrc;
|
12136
|
+
// }
|
12137
|
+
videoRef.current.setAttribute('x5-playsinline', 'true');
|
12138
|
+
videoRef.current.setAttribute('webkit-playsinline', 'true');
|
12139
|
+
}
|
12140
|
+
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('loadedmetadata', handleLoadedMetadata);
|
12141
|
+
(_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('canplay', handleLoadedMetadata);
|
12142
|
+
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('playing', handlePlaying);
|
12143
|
+
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('loadeddata', handLoadeddata);
|
12153
12144
|
return () => {
|
12154
|
-
var _a, _b, _c, _d
|
12155
|
-
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.
|
12156
|
-
(_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.
|
12157
|
-
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.
|
12158
|
-
|
12159
|
-
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.off('pause', handlePause);
|
12160
|
-
(_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.off('ended', handleEnded);
|
12161
|
-
videoRef.current.dispose();
|
12145
|
+
var _a, _b, _c, _d;
|
12146
|
+
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedMetadata);
|
12147
|
+
(_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('canplay', handleLoadedMetadata);
|
12148
|
+
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('playing', handlePlaying);
|
12149
|
+
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('loadeddata', handLoadeddata);
|
12162
12150
|
};
|
12163
|
-
}, []);
|
12151
|
+
}, [handleLoadedMetadata, handlePlaying, rec.video, handLoadeddata]);
|
12164
12152
|
React.useEffect(() => {
|
12165
12153
|
var _a;
|
12166
12154
|
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) || !isLoadFinish)
|
@@ -12246,31 +12234,23 @@ Made in Italy` })));
|
|
12246
12234
|
right: 0
|
12247
12235
|
} },
|
12248
12236
|
React.createElement("div", { style: { position: 'relative', width: '100%', height: '100%' } },
|
12249
|
-
React.createElement("video", { id: `pb-video-${index}`,
|
12237
|
+
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: {
|
12250
12238
|
width: '100%',
|
12251
12239
|
height: '100%',
|
12252
|
-
objectFit: 'contain'
|
12253
|
-
backgroundColor: 'transparent',
|
12254
|
-
pointerEvents: 'none'
|
12240
|
+
objectFit: 'contain'
|
12255
12241
|
} }),
|
12256
12242
|
React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON }))),
|
12257
|
-
renderPoster)) : (React.createElement("div", { className: 'video-container', key: rec.video.itemId, style: {
|
12243
|
+
renderPoster)) : (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
|
12258
12244
|
position: 'relative',
|
12259
12245
|
width: '100%',
|
12260
12246
|
height,
|
12261
12247
|
overflow: 'hidden'
|
12262
|
-
}
|
12263
|
-
React.createElement("video", { id: `pb-video-${index}`,
|
12264
|
-
backgroundColor: 'transparent',
|
12265
|
-
width: '100%',
|
12266
|
-
height: '100%',
|
12267
|
-
objectFit: 'cover',
|
12268
|
-
pointerEvents: 'none'
|
12269
|
-
} }),
|
12248
|
+
} },
|
12249
|
+
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 }),
|
12270
12250
|
renderPoster,
|
12271
12251
|
React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON })))));
|
12272
12252
|
};
|
12273
|
-
var VideoWidget$
|
12253
|
+
var VideoWidget$3 = React.memo(VideoWidget$2);
|
12274
12254
|
|
12275
12255
|
/*
|
12276
12256
|
* @Author: binruan@chatlabs.com
|
@@ -12321,7 +12301,7 @@ Made in Italy` })));
|
|
12321
12301
|
* @Author: binruan@chatlabs.com
|
12322
12302
|
* @Date: 2024-03-20 10:27:31
|
12323
12303
|
* @LastEditors: binruan@chatlabs.com
|
12324
|
-
* @LastEditTime: 2024-04-
|
12304
|
+
* @LastEditTime: 2024-04-26 14:33:25
|
12325
12305
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\PictureGroup\Picture.tsx
|
12326
12306
|
*
|
12327
12307
|
*/
|
@@ -12353,6 +12333,7 @@ Made in Italy` })));
|
|
12353
12333
|
React.createElement(FormatImage$1, { src: src, style: Object.assign({ height: '100%', width: '100%', objectFit: 'cover' }, blurStyle) }),
|
12354
12334
|
blur && (React.createElement(FormatImage$1, { src: src, style: {
|
12355
12335
|
width: '100%',
|
12336
|
+
height: '100%',
|
12356
12337
|
objectFit: 'contain',
|
12357
12338
|
position: 'absolute',
|
12358
12339
|
top: '50%',
|
@@ -12369,7 +12350,7 @@ Made in Italy` })));
|
|
12369
12350
|
* @LastEditTime: 2024-04-18 19:56:22
|
12370
12351
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\PictureGroup\index.tsx
|
12371
12352
|
*/
|
12372
|
-
const PictureGroup = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
|
12353
|
+
const PictureGroup$2 = ({ imgUrls, width, height, rec, index, onReportViewImageEnd, onViewImageStartEvent, imgUrlsPostConfig }) => {
|
12373
12354
|
var _a;
|
12374
12355
|
const ref = React.useRef();
|
12375
12356
|
const { isActive } = useSwiperSlide();
|
@@ -12398,7 +12379,7 @@ Made in Italy` })));
|
|
12398
12379
|
React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
|
12399
12380
|
})));
|
12400
12381
|
};
|
12401
|
-
var PictureGroup$
|
12382
|
+
var PictureGroup$3 = React.memo(PictureGroup$2);
|
12402
12383
|
|
12403
12384
|
/*
|
12404
12385
|
* @Author: binruan@chatlabs.com
|
@@ -12577,7 +12558,7 @@ Made in Italy` })));
|
|
12577
12558
|
* @Author: binruan@chatlabs.com
|
12578
12559
|
* @Date: 2024-01-15 19:03:09
|
12579
12560
|
* @LastEditors: binruan@chatlabs.com
|
12580
|
-
* @LastEditTime: 2024-04-
|
12561
|
+
* @LastEditTime: 2024-04-23 15:48:32
|
12581
12562
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
|
12582
12563
|
*
|
12583
12564
|
*/
|
@@ -12659,8 +12640,8 @@ Made in Italy` })));
|
|
12659
12640
|
// sessionDuration: Math.floor(((new Date() as any) - curTime) / 1000) + '',
|
12660
12641
|
// eventSubject: 'sessionCompleted',
|
12661
12642
|
// eventDescription: 'Session completed',
|
12662
|
-
//
|
12663
|
-
//
|
12643
|
+
// contentId: item?.video?.itemId,
|
12644
|
+
// productId: item?.product?.itemId,
|
12664
12645
|
// position: item?.position
|
12665
12646
|
// }
|
12666
12647
|
// });
|
@@ -12704,12 +12685,12 @@ Made in Italy` })));
|
|
12704
12685
|
sessionDuration: Math.floor((new Date() - curTime.current) / 1000) + '',
|
12705
12686
|
eventSubject: 'sessionCompleted',
|
12706
12687
|
eventDescription: 'Session completed',
|
12707
|
-
|
12708
|
-
|
12688
|
+
contentId: (_l = item === null || item === void 0 ? void 0 : item.video) === null || _l === void 0 ? void 0 : _l.itemId,
|
12689
|
+
productId: (_m = item === null || item === void 0 ? void 0 : item.product) === null || _m === void 0 ? void 0 : _m.itemId,
|
12709
12690
|
position: activeIndex + '',
|
12710
12691
|
fromKName,
|
12711
12692
|
fromKPage: location === null || location === void 0 ? void 0 : location.href,
|
12712
|
-
|
12693
|
+
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 : ''
|
12713
12694
|
}
|
12714
12695
|
});
|
12715
12696
|
}
|
@@ -12738,10 +12719,10 @@ Made in Italy` })));
|
|
12738
12719
|
const renderContent = React.useCallback((rec, index) => {
|
12739
12720
|
var _a, _b, _c, _d;
|
12740
12721
|
if ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.url) {
|
12741
|
-
return (React.createElement(VideoWidget$
|
12722
|
+
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 }));
|
12742
12723
|
}
|
12743
12724
|
if ((_b = rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
|
12744
|
-
return (React.createElement(PictureGroup$
|
12725
|
+
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 }));
|
12745
12726
|
}
|
12746
12727
|
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) {
|
12747
12728
|
return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
|
@@ -12843,8 +12824,8 @@ Made in Italy` })));
|
|
12843
12824
|
eventInfo: {
|
12844
12825
|
eventSubject: 'scrollDown',
|
12845
12826
|
eventDescription: 'User scroll down',
|
12846
|
-
|
12847
|
-
|
12827
|
+
contentId: (_b = (_a = item.video) === null || _a === void 0 ? void 0 : _a.itemId) !== null && _b !== void 0 ? _b : '',
|
12828
|
+
productId: (_d = (_c = item.product) === null || _c === void 0 ? void 0 : _c.itemId) !== null && _d !== void 0 ? _d : '',
|
12848
12829
|
requestId: null
|
12849
12830
|
}
|
12850
12831
|
});
|
@@ -12856,8 +12837,8 @@ Made in Italy` })));
|
|
12856
12837
|
eventInfo: {
|
12857
12838
|
eventSubject: 'scrollUp',
|
12858
12839
|
eventDescription: 'User scroll up',
|
12859
|
-
|
12860
|
-
|
12840
|
+
contentId: (_f = (_e = item.video) === null || _e === void 0 ? void 0 : _e.itemId) !== null && _f !== void 0 ? _f : '',
|
12841
|
+
productId: (_h = (_g = item.product) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
|
12861
12842
|
requestId: null
|
12862
12843
|
}
|
12863
12844
|
});
|
@@ -12938,12 +12919,7 @@ Made in Italy` })));
|
|
12938
12919
|
} })),
|
12939
12920
|
renderLogo,
|
12940
12921
|
isShowFingerTip ? React.createElement(FingerSwipeTip, { imageUrl: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.swipeTipIcon }) : null,
|
12941
|
-
React.createElement(Swiper, { ref: swiperRef,
|
12942
|
-
swiperRef.current.swiper.allowTouchMove = false;
|
12943
|
-
setTimeout(() => {
|
12944
|
-
swiperRef.current.swiper.allowTouchMove = true;
|
12945
|
-
}, 500);
|
12946
|
-
}, onActiveIndexChange: (swiper) => {
|
12922
|
+
React.createElement(Swiper, { ref: swiperRef, onActiveIndexChange: (swiper) => {
|
12947
12923
|
setActiveIndex(swiper.activeIndex);
|
12948
12924
|
if (openHashtag)
|
12949
12925
|
return;
|
@@ -12960,9 +12936,6 @@ Made in Italy` })));
|
|
12960
12936
|
}
|
12961
12937
|
}
|
12962
12938
|
},
|
12963
|
-
// style={{
|
12964
|
-
// pointerEvents: canSwiper ? 'auto' : 'none'
|
12965
|
-
// }}
|
12966
12939
|
// onReachEnd={() => {
|
12967
12940
|
// // 由hashtaglist跳转过来时不执行下面的方法
|
12968
12941
|
// if (waterFallData) return;
|
@@ -12988,6 +12961,351 @@ Made in Italy` })));
|
|
12988
12961
|
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))));
|
12989
12962
|
};
|
12990
12963
|
|
12964
|
+
const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
|
12965
|
+
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) => {
|
12966
|
+
return (React.createElement(SwiperSlide, { key: url },
|
12967
|
+
React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
|
12968
|
+
})));
|
12969
|
+
};
|
12970
|
+
var PictureGroup$1 = React.memo(PictureGroup);
|
12971
|
+
|
12972
|
+
const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, width }) => {
|
12973
|
+
const [isPauseVideo, setIsPauseVideo] = React.useState(false);
|
12974
|
+
const videoRef = React.useRef(null);
|
12975
|
+
const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
|
12976
|
+
const videoStartTime = React.useRef(0);
|
12977
|
+
const [isLoadFinish, setIsLoadFinish] = React.useState(false);
|
12978
|
+
const [isFirstPlay, setIsFirstPlay] = React.useState(true);
|
12979
|
+
const canvasRef = React.useRef(null);
|
12980
|
+
const [firstFrameSrc, setFirstFrameSrc] = React.useState('');
|
12981
|
+
React.useEffect(() => {
|
12982
|
+
if (!videoRef.current)
|
12983
|
+
return;
|
12984
|
+
videoRef.current.muted = muted;
|
12985
|
+
}, [muted]);
|
12986
|
+
const handleVideoStart = React.useCallback(() => {
|
12987
|
+
var _a;
|
12988
|
+
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
12989
|
+
}, []);
|
12990
|
+
const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');
|
12991
|
+
const handlePlaying = React.useCallback(() => {
|
12992
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
12993
|
+
setIsPauseVideo(false);
|
12994
|
+
const item = data[index];
|
12995
|
+
if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
|
12996
|
+
videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0;
|
12997
|
+
const videoDuration = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
12998
|
+
const videoCurrentTime = ((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
|
12999
|
+
const playType = isFirstPlay ? '0' : '1';
|
13000
|
+
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
13001
|
+
eventInfo: {
|
13002
|
+
eventSubject: 'playVideo',
|
13003
|
+
eventDescription: 'User played the video',
|
13004
|
+
contentId: (_h = (_g = item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
|
13005
|
+
contentName: (_k = (_j = item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
|
13006
|
+
playType,
|
13007
|
+
startTime: videoCurrentTime,
|
13008
|
+
videoDuration,
|
13009
|
+
contentTags: JSON.stringify((_m = (_l = item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
|
13010
|
+
position: index + '',
|
13011
|
+
contentFormat: 'video',
|
13012
|
+
traceInfo: (_o = item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
|
13013
|
+
}
|
13014
|
+
});
|
13015
|
+
setIsFirstPlay(false);
|
13016
|
+
}
|
13017
|
+
}, [bffEventReport, data, index, isFirstPlay]);
|
13018
|
+
const handleLoadedMetadata = React.useCallback(() => {
|
13019
|
+
setIsLoadFinish(true);
|
13020
|
+
}, []);
|
13021
|
+
const handleClickVideo = React.useCallback((type) => () => {
|
13022
|
+
var _a, _b, _c, _d, _e;
|
13023
|
+
if (!isLoadFinish)
|
13024
|
+
return;
|
13025
|
+
const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
|
13026
|
+
switch (type) {
|
13027
|
+
case 'start':
|
13028
|
+
if (!isPause)
|
13029
|
+
return;
|
13030
|
+
(_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.play();
|
13031
|
+
setIsPauseVideo(false);
|
13032
|
+
break;
|
13033
|
+
case 'pause':
|
13034
|
+
if (isPause)
|
13035
|
+
return;
|
13036
|
+
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.pause();
|
13037
|
+
setIsPauseVideo(true);
|
13038
|
+
break;
|
13039
|
+
default:
|
13040
|
+
if (isPause) {
|
13041
|
+
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.play();
|
13042
|
+
}
|
13043
|
+
else {
|
13044
|
+
(_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.pause();
|
13045
|
+
}
|
13046
|
+
setIsPauseVideo(!isPause);
|
13047
|
+
break;
|
13048
|
+
}
|
13049
|
+
}, [isLoadFinish]);
|
13050
|
+
const onPause = React.useCallback(() => {
|
13051
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
13052
|
+
const item = data[index];
|
13053
|
+
const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
|
13054
|
+
const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
13055
|
+
if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration) {
|
13056
|
+
const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime) - videoStartTime.current).toFixed(2);
|
13057
|
+
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
13058
|
+
eventInfo: {
|
13059
|
+
eventSubject: 'playOverVideo',
|
13060
|
+
eventDescription: 'User finished playing the video',
|
13061
|
+
contentId: (_h = (_g = item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
|
13062
|
+
contentName: (_k = (_j = item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
|
13063
|
+
endTime: videoCurrentTime,
|
13064
|
+
videoDuration,
|
13065
|
+
playDuration,
|
13066
|
+
contentTags: JSON.stringify((_m = (_l = item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
|
13067
|
+
position: index + '',
|
13068
|
+
contentFormat: 'video',
|
13069
|
+
traceInfo: (_o = item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
|
13070
|
+
}
|
13071
|
+
});
|
13072
|
+
}
|
13073
|
+
}, [data, index, bffEventReport]);
|
13074
|
+
const blur = React.useMemo(() => {
|
13075
|
+
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
|
13076
|
+
}, [videoPostConfig]);
|
13077
|
+
const translateY = React.useMemo(() => {
|
13078
|
+
var _a;
|
13079
|
+
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
|
13080
|
+
? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
|
13081
|
+
: 'translateY(-50%)';
|
13082
|
+
}, [videoPostConfig]);
|
13083
|
+
const blurBgSrc = React.useMemo(() => {
|
13084
|
+
var _a;
|
13085
|
+
return ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || firstFrameSrc;
|
13086
|
+
}, [firstFrameSrc, rec]);
|
13087
|
+
const handLoadeddata = React.useCallback(() => {
|
13088
|
+
if (!canvasRef || !videoRef || !videoRef.current || !canvasRef.current)
|
13089
|
+
return;
|
13090
|
+
const video = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current;
|
13091
|
+
const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
|
13092
|
+
const ctx = canvas.getContext('2d');
|
13093
|
+
const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
|
13094
|
+
const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
|
13095
|
+
canvas.height = targetHeight;
|
13096
|
+
canvas.width = targetWidth;
|
13097
|
+
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
13098
|
+
setFirstFrameSrc(canvas.toDataURL());
|
13099
|
+
}, []);
|
13100
|
+
React.useEffect(() => {
|
13101
|
+
var _a, _b, _c, _d;
|
13102
|
+
if (!videoRef.current)
|
13103
|
+
return;
|
13104
|
+
setIsPauseVideo(false);
|
13105
|
+
if (!videoRef.current.src) {
|
13106
|
+
const videoSrc = rec.video.url;
|
13107
|
+
if (videoSrc.includes('.m3u8')) {
|
13108
|
+
if (Hls.isSupported()) {
|
13109
|
+
const hls = new Hls();
|
13110
|
+
hls.loadSource(videoSrc);
|
13111
|
+
hls.attachMedia(videoRef.current);
|
13112
|
+
}
|
13113
|
+
else if (videoRef.current.canPlayType('application/vnd.apple.mpegurl')) {
|
13114
|
+
videoRef.current.src = videoSrc;
|
13115
|
+
}
|
13116
|
+
else {
|
13117
|
+
videoRef.current.src = videoSrc;
|
13118
|
+
}
|
13119
|
+
}
|
13120
|
+
else {
|
13121
|
+
videoRef.current.src = videoSrc;
|
13122
|
+
}
|
13123
|
+
videoRef.current.setAttribute('x5-playsinline', 'true');
|
13124
|
+
videoRef.current.setAttribute('webkit-playsinline', 'true');
|
13125
|
+
}
|
13126
|
+
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('loadedmetadata', handleLoadedMetadata);
|
13127
|
+
(_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('canplay', handleLoadedMetadata);
|
13128
|
+
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('playing', handlePlaying);
|
13129
|
+
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('loadeddata', handLoadeddata);
|
13130
|
+
return () => {
|
13131
|
+
var _a, _b, _c, _d;
|
13132
|
+
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedMetadata);
|
13133
|
+
(_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('canplay', handleLoadedMetadata);
|
13134
|
+
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('playing', handlePlaying);
|
13135
|
+
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('loadeddata', handLoadeddata);
|
13136
|
+
};
|
13137
|
+
}, [handleLoadedMetadata, handlePlaying, rec.video, handLoadeddata]);
|
13138
|
+
const renderPoster = React.useMemo(() => {
|
13139
|
+
if (!(sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image) || isLoadFinish) {
|
13140
|
+
return null;
|
13141
|
+
}
|
13142
|
+
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 }));
|
13143
|
+
}, [isLoadFinish, sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image]);
|
13144
|
+
React.useEffect(() => {
|
13145
|
+
const handleBeforeUnload = () => {
|
13146
|
+
var _a, _b;
|
13147
|
+
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) {
|
13148
|
+
handleClickVideo('pause')();
|
13149
|
+
}
|
13150
|
+
};
|
13151
|
+
window.addEventListener('beforeunload', handleBeforeUnload);
|
13152
|
+
return () => {
|
13153
|
+
window.removeEventListener('beforeunload', handleBeforeUnload);
|
13154
|
+
};
|
13155
|
+
}, [activeIndex, index, rec, videoRef, handleClickVideo, isPauseVideo]);
|
13156
|
+
const blurStyle = React.useMemo(() => {
|
13157
|
+
return blur
|
13158
|
+
? {
|
13159
|
+
filter: 'blur(10px)',
|
13160
|
+
transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
|
13161
|
+
}
|
13162
|
+
: {};
|
13163
|
+
}, [blur]);
|
13164
|
+
if (!rec.video) {
|
13165
|
+
return null;
|
13166
|
+
}
|
13167
|
+
return (React.createElement(React.Fragment, null, blur ? (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
|
13168
|
+
position: 'relative',
|
13169
|
+
width,
|
13170
|
+
height,
|
13171
|
+
overflow: 'hidden'
|
13172
|
+
} },
|
13173
|
+
React.createElement(FormatImage$1, { src: blurBgSrc, style: Object.assign({ height,
|
13174
|
+
width, objectFit: 'cover' }, blurStyle) }),
|
13175
|
+
React.createElement("canvas", { ref: canvasRef, style: { display: 'none' } }),
|
13176
|
+
React.createElement("div", { style: {
|
13177
|
+
position: 'absolute',
|
13178
|
+
width,
|
13179
|
+
height,
|
13180
|
+
top: '50%',
|
13181
|
+
transform: translateY,
|
13182
|
+
left: 0,
|
13183
|
+
right: 0
|
13184
|
+
} },
|
13185
|
+
React.createElement("div", { style: { position: 'relative', width, height: '100%' } },
|
13186
|
+
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: {
|
13187
|
+
width: '100%',
|
13188
|
+
height,
|
13189
|
+
objectFit: 'contain'
|
13190
|
+
} }),
|
13191
|
+
React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON }))),
|
13192
|
+
renderPoster)) : (React.createElement("div", { className: 'video-container', key: rec.video.itemId, onClick: handleClickVideo(), style: {
|
13193
|
+
position: 'relative',
|
13194
|
+
width,
|
13195
|
+
height,
|
13196
|
+
overflow: 'hidden'
|
13197
|
+
} },
|
13198
|
+
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 }),
|
13199
|
+
renderPoster,
|
13200
|
+
React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON })))));
|
13201
|
+
};
|
13202
|
+
var VideoWidget$1 = React.memo(VideoWidget);
|
13203
|
+
|
13204
|
+
const RESOLVER$1 = {};
|
13205
|
+
Object.values(_materials_).forEach((v) => {
|
13206
|
+
RESOLVER$1[v.extend.type] = v;
|
13207
|
+
});
|
13208
|
+
const defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
|
13209
|
+
const defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
|
13210
|
+
const DiyPortalPreview = ({ data, globalConfig, tipText, nudge, tempMap, descStyle, hashTagStyle, containerHeight = 664, containerWidth = 375, appDomain }) => {
|
13211
|
+
const height = React.useMemo(() => {
|
13212
|
+
return (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo) ? containerHeight - 45 : containerHeight;
|
13213
|
+
}, [globalConfig, containerHeight]);
|
13214
|
+
const renderContent = (rec, index) => {
|
13215
|
+
var _a, _b, _c, _d;
|
13216
|
+
if ((_a = rec.video) === null || _a === void 0 ? void 0 : _a.url) {
|
13217
|
+
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 }));
|
13218
|
+
}
|
13219
|
+
if ((_b = rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
|
13220
|
+
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 }));
|
13221
|
+
}
|
13222
|
+
if (rec.product) {
|
13223
|
+
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) {
|
13224
|
+
return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
|
13225
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
13226
|
+
const t = RESOLVER$1[(_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type];
|
13227
|
+
const Component = withBindDataSource(t);
|
13228
|
+
const defaulSetting = (_b = t === null || t === void 0 ? void 0 : t.extend) === null || _b === void 0 ? void 0 : _b.defaulSetting;
|
13229
|
+
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) || {},
|
13230
|
+
// schema={schema}
|
13231
|
+
id: value === null || value === void 0 ? void 0 : value.id,
|
13232
|
+
// viewTime={viewTime.current}
|
13233
|
+
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 })));
|
13234
|
+
});
|
13235
|
+
}
|
13236
|
+
}
|
13237
|
+
};
|
13238
|
+
const renderLogo = React.useMemo(() => {
|
13239
|
+
if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo)) {
|
13240
|
+
return (React.createElement("div", { className: 'clc-sxp-logo-banner', style: { backgroundColor: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.color } },
|
13241
|
+
React.createElement("img", { src: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl, alt: 'logo' })));
|
13242
|
+
}
|
13243
|
+
return null;
|
13244
|
+
}, [globalConfig]);
|
13245
|
+
const renderBottom = (rec, index) => {
|
13246
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
13247
|
+
if (rec.video) {
|
13248
|
+
return (React.createElement(React.Fragment, null,
|
13249
|
+
((_a = rec.video) === null || _a === void 0 ? void 0 : _a.title) && React.createElement("div", { className: 'clc-sxp-bottom-shadow' }),
|
13250
|
+
React.createElement("div", { className: 'clc-sxp-bottom' },
|
13251
|
+
React.createElement(Nudge, { nudge: nudge }),
|
13252
|
+
React.createElement("div", { className: 'clc-sxp-bottom-card' },
|
13253
|
+
React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1 })),
|
13254
|
+
React.createElement("div", null,
|
13255
|
+
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' }) })),
|
13256
|
+
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 }))));
|
13257
|
+
}
|
13258
|
+
return null;
|
13259
|
+
};
|
13260
|
+
const likeIcon = useIconLink(defaultLikeIconPath, appDomain);
|
13261
|
+
const unlikeIcon = useIconLink(defaultUnLikeIconPath, appDomain);
|
13262
|
+
const renderLikeButton = (rec, index) => {
|
13263
|
+
var _a, _b, _c, _d;
|
13264
|
+
if (!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLike))
|
13265
|
+
return;
|
13266
|
+
let top = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconY) !== null && _a !== void 0 ? _a : 400;
|
13267
|
+
if (top < 40) {
|
13268
|
+
top += 40;
|
13269
|
+
}
|
13270
|
+
if (rec.video) {
|
13271
|
+
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: {
|
13272
|
+
top,
|
13273
|
+
right: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconX) !== null && _d !== void 0 ? _d : 0
|
13274
|
+
} }));
|
13275
|
+
}
|
13276
|
+
return null;
|
13277
|
+
};
|
13278
|
+
const mutedIcon = useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png', appDomain);
|
13279
|
+
const unmutedIcon = useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png', appDomain);
|
13280
|
+
const renderView = (rec, index) => {
|
13281
|
+
var _a, _b, _c, _d;
|
13282
|
+
return (React.createElement("div", { style: { position: 'relative' } },
|
13283
|
+
renderLogo,
|
13284
|
+
React.createElement(ToggleButton$1, { style: {
|
13285
|
+
position: 'absolute',
|
13286
|
+
right: (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _a !== void 0 ? _a : 0,
|
13287
|
+
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',
|
13288
|
+
bottom: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _d !== void 0 ? _d : 23,
|
13289
|
+
zIndex: 999
|
13290
|
+
}, 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 }),
|
13291
|
+
renderContent(rec, index),
|
13292
|
+
renderBottom(rec, index),
|
13293
|
+
renderLikeButton(rec, index)));
|
13294
|
+
};
|
13295
|
+
return (React.createElement("div", { style: {
|
13296
|
+
width: '100%',
|
13297
|
+
height: containerHeight,
|
13298
|
+
display: 'flex',
|
13299
|
+
boxSizing: 'border-box',
|
13300
|
+
gap: 16,
|
13301
|
+
pointerEvents: 'none',
|
13302
|
+
userSelect: 'none'
|
13303
|
+
} }, data === null || data === void 0 ? void 0 : data.map((rec, index) => {
|
13304
|
+
return renderView(rec, index);
|
13305
|
+
})));
|
13306
|
+
};
|
13307
|
+
var index$1 = React.memo(DiyPortalPreview);
|
13308
|
+
|
12991
13309
|
/*
|
12992
13310
|
* @Author: binruan@chatlabs.com
|
12993
13311
|
* @Date: 2023-10-31 10:56:01
|
@@ -13128,12 +13446,13 @@ Made in Italy` })));
|
|
13128
13446
|
* @FilePath: \pb-sxp-ui\src\index.ts
|
13129
13447
|
*/
|
13130
13448
|
|
13449
|
+
exports.DiyPortalPreview = index$1;
|
13131
13450
|
exports.EditorDataProvider = EditorDataProvider;
|
13132
13451
|
exports.Modal = Modal$1;
|
13133
13452
|
exports.SxpDataSourceProvider = SxpDataSourceProvider$1;
|
13134
13453
|
exports.SxpPageCore = index;
|
13135
13454
|
exports.SxpPageRender = SxpPageRender;
|
13136
|
-
exports.core = index$
|
13455
|
+
exports.core = index$2;
|
13137
13456
|
exports.default = Pagebuilder;
|
13138
13457
|
exports.defaultSetting = defaultSetting;
|
13139
13458
|
exports.materials = _materials_;
|