pb-sxp-ui 1.15.13-alpha.4 → 1.15.14
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 +129 -774
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +128 -772
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +6 -6
- package/dist/index.min.cjs.map +1 -1
- package/dist/index.min.js +6 -6
- package/dist/index.min.js.map +1 -1
- package/dist/pb-ui.js +129 -774
- package/dist/pb-ui.js.map +1 -1
- package/dist/pb-ui.min.js +6 -6
- package/dist/pb-ui.min.js.map +1 -1
- package/es/core/components/SxpPageCore/index.d.ts +0 -1
- package/es/core/components/SxpPageCore/index.js +7 -7
- package/es/core/components/SxpPageRender/ExpandableText.js +2 -10
- package/es/core/components/SxpPageRender/RenderCard.js +4 -4
- package/es/core/context/EditorContext.js +1 -1
- package/es/core/context/SxpDataSourceProvider.d.ts +1 -1
- package/es/core/context/SxpDataSourceProvider.js +41 -28
- package/es/index.d.ts +0 -1
- package/es/index.js +0 -1
- package/es/materials/sxp/template/MultiCommodity/index.js +1 -1
- package/es/materials/sxp/template/MultiCommodityDiro/index.js +1 -2
- package/es/materials/sxp/template/MultiCommodityDiroNew/index.js +1 -2
- package/es/materials/sxp/template/components/EventProvider.js +2 -2
- package/lib/core/components/SxpPageCore/index.d.ts +0 -1
- package/lib/core/components/SxpPageCore/index.js +7 -7
- package/lib/core/components/SxpPageRender/ExpandableText.js +2 -10
- package/lib/core/components/SxpPageRender/RenderCard.js +4 -4
- package/lib/core/context/EditorContext.js +1 -1
- package/lib/core/context/SxpDataSourceProvider.d.ts +1 -1
- package/lib/core/context/SxpDataSourceProvider.js +41 -28
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -3
- package/lib/materials/sxp/template/MultiCommodity/index.js +1 -1
- package/lib/materials/sxp/template/MultiCommodityDiro/index.js +1 -2
- package/lib/materials/sxp/template/MultiCommodityDiroNew/index.js +1 -2
- package/lib/materials/sxp/template/components/EventProvider.js +2 -2
- package/package.json +1 -1
- package/es/core/components/DiyStoryPreview/PictureGroup.d.ts +0 -16
- package/es/core/components/DiyStoryPreview/PictureGroup.js +0 -34
- package/es/core/components/DiyStoryPreview/VideoWidget.d.ts +0 -19
- package/es/core/components/DiyStoryPreview/VideoWidget.js +0 -198
- package/es/core/components/DiyStoryPreview/index.d.ts +0 -31
- package/es/core/components/DiyStoryPreview/index.js +0 -389
- package/lib/core/components/DiyStoryPreview/PictureGroup.d.ts +0 -16
- package/lib/core/components/DiyStoryPreview/PictureGroup.js +0 -37
- package/lib/core/components/DiyStoryPreview/VideoWidget.d.ts +0 -19
- package/lib/core/components/DiyStoryPreview/VideoWidget.js +0 -201
- package/lib/core/components/DiyStoryPreview/index.d.ts +0 -31
- package/lib/core/components/DiyStoryPreview/index.js +0 -392
package/dist/index.js
CHANGED
@@ -429,6 +429,39 @@ const Pagebuilder = {
|
|
429
429
|
})
|
430
430
|
};
|
431
431
|
|
432
|
+
function useEditor() {
|
433
|
+
return useContext(EditorContext);
|
434
|
+
}
|
435
|
+
|
436
|
+
function useDataSource() {
|
437
|
+
return useContext(DataSourceContext);
|
438
|
+
}
|
439
|
+
|
440
|
+
const feRealSessionIdKey = 'feRealSessionIdKey';
|
441
|
+
const generateFeSessionId = () => {
|
442
|
+
const uid = getUid(); // 32位长度
|
443
|
+
const timestamp = Date.now(); // 13位长度
|
444
|
+
const result = `${timestamp}${uid}`; // 总共45位长度的唯一ID
|
445
|
+
return result;
|
446
|
+
};
|
447
|
+
// 生成或者获取sessionID
|
448
|
+
const storeAndLoadFeSessionId = () => {
|
449
|
+
let result = getFeSessionId();
|
450
|
+
if (!result) {
|
451
|
+
result = generateFeSessionId();
|
452
|
+
window.localStorage.setItem(feRealSessionIdKey, result);
|
453
|
+
}
|
454
|
+
return result;
|
455
|
+
};
|
456
|
+
const refreshFeSessionId = () => {
|
457
|
+
const result = generateFeSessionId();
|
458
|
+
window.localStorage.setItem(feRealSessionIdKey, result);
|
459
|
+
};
|
460
|
+
// 获取 sessionID
|
461
|
+
const getFeSessionId = () => {
|
462
|
+
return window.localStorage.getItem(feRealSessionIdKey);
|
463
|
+
};
|
464
|
+
|
432
465
|
/*
|
433
466
|
* @Author: binruan@chatlabs.com
|
434
467
|
* @Date: 2024-03-20 10:27:31
|
@@ -480,39 +513,6 @@ const setUserConsentResult = () => {
|
|
480
513
|
window.localStorage.setItem(USER_CONSENT_RESULT_KEY, 'true');
|
481
514
|
};
|
482
515
|
|
483
|
-
function useEditor() {
|
484
|
-
return useContext(EditorContext);
|
485
|
-
}
|
486
|
-
|
487
|
-
function useDataSource() {
|
488
|
-
return useContext(DataSourceContext);
|
489
|
-
}
|
490
|
-
|
491
|
-
const feRealSessionIdKey = 'feRealSessionIdKey';
|
492
|
-
const generateFeSessionId = () => {
|
493
|
-
const uid = getUid(); // 32位长度
|
494
|
-
const timestamp = Date.now(); // 13位长度
|
495
|
-
const result = `${timestamp}${uid}`; // 总共45位长度的唯一ID
|
496
|
-
return result;
|
497
|
-
};
|
498
|
-
// 生成或者获取sessionID
|
499
|
-
const storeAndLoadFeSessionId = () => {
|
500
|
-
let result = getFeSessionId();
|
501
|
-
if (!result) {
|
502
|
-
result = generateFeSessionId();
|
503
|
-
window.localStorage.setItem(feRealSessionIdKey, result);
|
504
|
-
}
|
505
|
-
return result;
|
506
|
-
};
|
507
|
-
const refreshFeSessionId = () => {
|
508
|
-
const result = generateFeSessionId();
|
509
|
-
window.localStorage.setItem(feRealSessionIdKey, result);
|
510
|
-
};
|
511
|
-
// 获取 sessionID
|
512
|
-
const getFeSessionId = () => {
|
513
|
-
return window.localStorage.getItem(feRealSessionIdKey);
|
514
|
-
};
|
515
|
-
|
516
516
|
/*
|
517
517
|
* @Author: binruan@chatlabs.com
|
518
518
|
* @Date: 2024-03-20 10:27:31
|
@@ -725,8 +725,12 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
725
725
|
// Beacon API 用于发送异步和非阻塞请求到服务器。这类请求不需要响应。
|
726
726
|
if (options.type === 'beacon' && navigator.sendBeacon) {
|
727
727
|
return navigator.sendBeacon(`${url}/api/${path}`, new Blob([
|
728
|
-
JSON.stringify(
|
729
|
-
|
728
|
+
JSON.stringify({
|
729
|
+
body: btoa(encodeURIComponent(JSON.stringify(Object.assign(Object.assign(Object.assign({}, options.body), bffDataSource.headers), { 'x-user-id': fakeUserId }))))
|
730
|
+
})
|
731
|
+
], {
|
732
|
+
type: 'application/json;charset=UTF-8'
|
733
|
+
}));
|
730
734
|
}
|
731
735
|
return window
|
732
736
|
.fetch(`${url}/api/${path}`, {
|
@@ -757,16 +761,17 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
757
761
|
}, [bffDataSource]);
|
758
762
|
// 获取推荐视频数据
|
759
763
|
const getRecommendVideos = useCallback((query) => __awaiter(void 0, void 0, void 0, function* () {
|
760
|
-
var _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
761
|
-
query = Object.assign({ maxSize:
|
764
|
+
var _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u;
|
765
|
+
query = Object.assign({ maxSize: (_f = query === null || query === void 0 ? void 0 : query.maxSize) !== null && _f !== void 0 ? _f : maxSize, defaultSize: (_g = query === null || query === void 0 ? void 0 : query.defaultSize) !== null && _g !== void 0 ? _g : defaultSize, hashTag: query === null || query === void 0 ? void 0 : query.hashTag, traceInfo: query === null || query === void 0 ? void 0 : query.traceInfo, themeTag: query === null || query === void 0 ? void 0 : query.themeTag, pageNum: query === null || query === void 0 ? void 0 : query.pageNum, contentFilter: query === null || query === void 0 ? void 0 : query.contentFilter, productFilter: query === null || query === void 0 ? void 0 : query.productFilter }, (chatlabsId && { chatlabsId }));
|
762
766
|
if (channel) {
|
763
767
|
query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(channel) });
|
764
768
|
}
|
765
769
|
else if (utmVal) {
|
766
|
-
const val = (
|
770
|
+
const val = (_k = (_j = (_h = splitUrlParams(utmVal)) === null || _h === void 0 ? void 0 : _h.filter((val) => {
|
771
|
+
var _a, _b;
|
767
772
|
const key = val.split('=')[0];
|
768
|
-
return key;
|
769
|
-
})) === null ||
|
773
|
+
return (_b = ((_a = utmParameter === null || utmParameter === void 0 ? void 0 : utmParameter.channels) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.includes(key);
|
774
|
+
})) === null || _j === void 0 ? void 0 : _j.join('&')) !== null && _k !== void 0 ? _k : '';
|
770
775
|
if (val)
|
771
776
|
query = Object.assign(Object.assign({}, query), { channel: decodeURIComponent(val) });
|
772
777
|
}
|
@@ -780,19 +785,19 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
780
785
|
let list = [];
|
781
786
|
let result = null;
|
782
787
|
const recurveRecList = (query) => __awaiter(void 0, void 0, void 0, function* () {
|
783
|
-
var
|
788
|
+
var _v, _w, _x, _y, _z, _0;
|
784
789
|
query.pageNum = pageNum;
|
785
790
|
result = yield (bffFetchAdmin === null || bffFetchAdmin === void 0 ? void 0 : bffFetchAdmin('recommend/direct_page', { method: 'POST', body: query }));
|
786
791
|
if (!(result === null || result === void 0 ? void 0 : result.success)) {
|
787
792
|
return undefined;
|
788
793
|
}
|
789
794
|
setLoading(false);
|
790
|
-
list = list.concat((
|
795
|
+
list = list.concat((_y = (_x = (_w = (_v = result === null || result === void 0 ? void 0 : result.data) === null || _v === void 0 ? void 0 : _v.recList) === null || _w === void 0 ? void 0 : _w.filter) === null || _x === void 0 ? void 0 : _x.call(_w, (item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video))) !== null && _y !== void 0 ? _y : []);
|
791
796
|
if ((rtcList === null || rtcList === void 0 ? void 0 : rtcList.length) === 0) {
|
792
797
|
setRtcList(getFilterRecList(Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list })));
|
793
798
|
setCacheRtcList(getFilterRecList(Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list })));
|
794
799
|
}
|
795
|
-
const isNotNullList = (
|
800
|
+
const isNotNullList = (_0 = (_z = result === null || result === void 0 ? void 0 : result.data) === null || _z === void 0 ? void 0 : _z.recList) === null || _0 === void 0 ? void 0 : _0.some((item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video));
|
796
801
|
if (isNotNullList) {
|
797
802
|
pageNum = pageNum + 1;
|
798
803
|
yield recurveRecList(query);
|
@@ -800,13 +805,13 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
800
805
|
});
|
801
806
|
yield recurveRecList(query);
|
802
807
|
if (!(query === null || query === void 0 ? void 0 : query.hashTag) && result)
|
803
|
-
setCurReqInfo({ rtc: (
|
808
|
+
setCurReqInfo({ rtc: (_l = result === null || result === void 0 ? void 0 : result.data) === null || _l === void 0 ? void 0 : _l.rtc, requestId: (_m = result === null || result === void 0 ? void 0 : result.data) === null || _m === void 0 ? void 0 : _m.requestId });
|
804
809
|
return Object.assign(Object.assign({}, result === null || result === void 0 ? void 0 : result.data), { recList: list });
|
805
810
|
}
|
806
811
|
if (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) {
|
807
|
-
query = Object.assign(Object.assign({}, query), { directPage: true, level: 1, pageNum: (
|
812
|
+
query = Object.assign(Object.assign({}, query), { directPage: true, level: 1, pageNum: (_o = query === null || query === void 0 ? void 0 : query.pageNum) !== null && _o !== void 0 ? _o : 1 });
|
808
813
|
}
|
809
|
-
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('
|
814
|
+
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('v1/recommend/list', { method: 'POST', body: query }));
|
810
815
|
if (!(result === null || result === void 0 ? void 0 : result.success)) {
|
811
816
|
return undefined;
|
812
817
|
}
|
@@ -814,8 +819,8 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
814
819
|
setCurReqInfo({ rtc: result.data.rtc, requestId: result.data.requestId });
|
815
820
|
if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) && !isEditor) {
|
816
821
|
let list = [];
|
817
|
-
list = list.concat((
|
818
|
-
const isNotNullList = (
|
822
|
+
list = list.concat((_s = (_r = (_q = (_p = result === null || result === void 0 ? void 0 : result.data) === null || _p === void 0 ? void 0 : _p.recList) === null || _q === void 0 ? void 0 : _q.filter) === null || _r === void 0 ? void 0 : _r.call(_q, (item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video))) !== null && _s !== void 0 ? _s : []);
|
823
|
+
const isNotNullList = (_u = (_t = result === null || result === void 0 ? void 0 : result.data) === null || _t === void 0 ? void 0 : _t.recList) === null || _u === void 0 ? void 0 : _u.some((item) => (item === null || item === void 0 ? void 0 : item.product) || (item === null || item === void 0 ? void 0 : item.video));
|
819
824
|
if (!isNotNullList) {
|
820
825
|
setIsNoMoreData(true);
|
821
826
|
}
|
@@ -824,12 +829,12 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
824
829
|
return result === null || result === void 0 ? void 0 : result.data;
|
825
830
|
}), [bffFetch, utmVal, maxSize, defaultSize, channelQueryList, channel, chatlabsId, bffFetchAdmin]);
|
826
831
|
const loadVideos = useCallback((pageNum) => __awaiter(void 0, void 0, void 0, function* () {
|
827
|
-
var
|
832
|
+
var _1, _2, _3, _4;
|
828
833
|
if (rtcList.length <= 0) {
|
829
834
|
return;
|
830
835
|
}
|
831
836
|
const lastItem = rtcList === null || rtcList === void 0 ? void 0 : rtcList[(rtcList === null || rtcList === void 0 ? void 0 : rtcList.length) - 1];
|
832
|
-
const data = yield getRecommendVideos(Object.assign(Object.assign(Object.assign(Object.assign({ hashTag: waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag }, (((
|
837
|
+
const data = yield getRecommendVideos(Object.assign(Object.assign(Object.assign(Object.assign({ hashTag: waterFallData === null || waterFallData === void 0 ? void 0 : waterFallData.hashTag }, (((_1 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.product) === null || _1 === void 0 ? void 0 : _1.itemId) && { productFilter: [(_2 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.product) === null || _2 === void 0 ? void 0 : _2.itemId] })), (((_3 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.video) === null || _3 === void 0 ? void 0 : _3.itemId) && { contentFilter: [(_4 = lastItem === null || lastItem === void 0 ? void 0 : lastItem.video) === null || _4 === void 0 ? void 0 : _4.itemId] })), { themeTag: themeTag.current }), ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) && !isEditor && { pageNum })));
|
833
838
|
setRtcList(rtcList.concat(getFilterRecList(data)));
|
834
839
|
setCacheRtcList(cacheRtcList.concat(getFilterRecList(data)));
|
835
840
|
return data;
|
@@ -886,7 +891,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
886
891
|
console.log('userInfo:', userInfo);
|
887
892
|
console.log('eventInfo:', ef);
|
888
893
|
console.log('========= 结束 =========');
|
889
|
-
return bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch(`v2/
|
894
|
+
return bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch(`v2/cld/${(_b = bffDataSource === null || bffDataSource === void 0 ? void 0 : bffDataSource.headers) === null || _b === void 0 ? void 0 : _b['x-app-id']}/${eventInfo === null || eventInfo === void 0 ? void 0 : eventInfo.eventSubject}${cl_source ? `/${decodeURIComponent(cl_source)}` : ''}`, {
|
890
895
|
method: 'POST',
|
891
896
|
body: { userInfo: realUserInfo, eventInfo: realEventInfo },
|
892
897
|
type: 'beacon'
|
@@ -902,7 +907,7 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
902
907
|
bffDataSource
|
903
908
|
]);
|
904
909
|
const bffFbReport = useCallback(({ eventName, product }) => {
|
905
|
-
var _a, _b, _c, _d, _e, _f;
|
910
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
906
911
|
if (!enableReportEvent ||
|
907
912
|
!enabledMetaConversionApi ||
|
908
913
|
(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.enablePreview) ||
|
@@ -966,7 +971,15 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
966
971
|
}
|
967
972
|
};
|
968
973
|
getEventParams(jsonParams);
|
969
|
-
|
974
|
+
const params = {};
|
975
|
+
const queryString = location.search.slice(1);
|
976
|
+
(_f = splitUrlParams(queryString)) === null || _f === void 0 ? void 0 : _f.map((val) => {
|
977
|
+
const key = val.split('=')[0];
|
978
|
+
const value = val.split('=')[1];
|
979
|
+
params[key] = value;
|
980
|
+
});
|
981
|
+
const cl_source = params === null || params === void 0 ? void 0 : params.cl_source;
|
982
|
+
return bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch(`v2/fb/${(_g = bffDataSource === null || bffDataSource === void 0 ? void 0 : bffDataSource.headers) === null || _g === void 0 ? void 0 : _g['x-app-id']}/${eventName}${cl_source ? `/${decodeURIComponent(cl_source)}` : ''}`, {
|
970
983
|
method: 'POST',
|
971
984
|
body: jsonParams,
|
972
985
|
type: 'beacon'
|
@@ -994,18 +1007,18 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
994
1007
|
}), [bffFetch]);
|
995
1008
|
// 获取 Tag
|
996
1009
|
const bffGetTagList = useCallback((data) => __awaiter(void 0, void 0, void 0, function* () {
|
997
|
-
var
|
998
|
-
const isShowTag = !!((
|
1010
|
+
var _5, _6, _7, _8, _9, _10, _11, _12;
|
1011
|
+
const isShowTag = !!((_7 = (_6 = (_5 = data === null || data === void 0 ? void 0 : data.data) === null || _5 === void 0 ? void 0 : _5.sxpPageConf) === null || _6 === void 0 ? void 0 : _6.globalConfig) === null || _7 === void 0 ? void 0 : _7.isShowTag);
|
999
1012
|
if (!utmVal || !isShowTag)
|
1000
1013
|
return;
|
1001
1014
|
try {
|
1002
|
-
const val = (
|
1015
|
+
const val = (_10 = (_9 = (_8 = splitUrlParams(utmVal)) === null || _8 === void 0 ? void 0 : _8.filter((val) => {
|
1003
1016
|
var _a, _b;
|
1004
1017
|
const key = val.split('=')[0];
|
1005
1018
|
return (_b = ((_a = utmParameter === null || utmParameter === void 0 ? void 0 : utmParameter.channels) !== null && _a !== void 0 ? _a : [])) === null || _b === void 0 ? void 0 : _b.includes(key);
|
1006
|
-
})) === null ||
|
1019
|
+
})) === null || _9 === void 0 ? void 0 : _9.join('&')) !== null && _10 !== void 0 ? _10 : '';
|
1007
1020
|
const result = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('v1/tag/list', { method: 'GET', query: { channel: decodeURIComponent(val) } }));
|
1008
|
-
setTagList((
|
1021
|
+
setTagList((_12 = (_11 = result === null || result === void 0 ? void 0 : result.data) === null || _11 === void 0 ? void 0 : _11.tags) !== null && _12 !== void 0 ? _12 : []);
|
1009
1022
|
}
|
1010
1023
|
catch (e) {
|
1011
1024
|
console.log('e', e);
|
@@ -1065,10 +1078,10 @@ const SxpDataSourceProvider = ({ render, dataSources, utmVal, enableReportEvent
|
|
1065
1078
|
});
|
1066
1079
|
}, [bffEventReport]);
|
1067
1080
|
const getAccount = useCallback(() => __awaiter(void 0, void 0, void 0, function* () {
|
1068
|
-
var
|
1081
|
+
var _13, _14;
|
1069
1082
|
const res = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('v1/account', { method: 'GET' }));
|
1070
|
-
setChatlabsId((
|
1071
|
-
return ((
|
1083
|
+
setChatlabsId((_13 = res === null || res === void 0 ? void 0 : res.data) === null || _13 === void 0 ? void 0 : _13.chatLabsId);
|
1084
|
+
return ((_14 = res === null || res === void 0 ? void 0 : res.data) === null || _14 === void 0 ? void 0 : _14.consentResult) === 'true';
|
1072
1085
|
}), [bffFetch]);
|
1073
1086
|
const accountSonsent = useCallback((consentResult) => __awaiter(void 0, void 0, void 0, function* () {
|
1074
1087
|
const res = yield (bffFetch === null || bffFetch === void 0 ? void 0 : bffFetch('v1/account/consent', {
|
@@ -1463,7 +1476,7 @@ const EditorCore = forwardRef(({ children, resolver, isSsr, schema, enableDataSo
|
|
1463
1476
|
React.createElement(DataSourceProvider$1, { isSsr: isSsr, enable: enableDataSource }, children)));
|
1464
1477
|
});
|
1465
1478
|
|
1466
|
-
var index$
|
1479
|
+
var index$2 = /*#__PURE__*/Object.freeze({
|
1467
1480
|
__proto__: null,
|
1468
1481
|
EditorCore: EditorCore
|
1469
1482
|
});
|
@@ -10083,15 +10096,7 @@ const ExpandableText = ({ text, maxStr = 108, style, className, onClick, foldTex
|
|
10083
10096
|
wordBreak: 'break-word'
|
10084
10097
|
}, dangerouslySetInnerHTML: { __html: setFontForText(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
|
10085
10098
|
React.createElement("div", { ref: multiRowCopy, dangerouslySetInnerHTML: { __html: setFontForText(text === null || text === void 0 ? void 0 : text.replace(/\n/g, '</br>'), style) } }),
|
10086
|
-
text && isPost && isShow && (React.createElement("button", { "aria-label": isShowMore ? unfoldText || 'show less' : foldText || 'show more', style: {
|
10087
|
-
textDecoration: 'underline',
|
10088
|
-
cursor: 'pointer',
|
10089
|
-
outline: 'none',
|
10090
|
-
border: 'none',
|
10091
|
-
boxSizing: 'content-box',
|
10092
|
-
padding: 0,
|
10093
|
-
background: 'transparent'
|
10094
|
-
}, onClick: onClick !== null && onClick !== void 0 ? onClick : handleClick, dangerouslySetInnerHTML: {
|
10099
|
+
text && isPost && isShow && (React.createElement("button", { "aria-label": isShowMore ? unfoldText || 'show less' : foldText || 'show more', style: { textDecoration: 'underline', cursor: 'pointer' }, onClick: onClick !== null && onClick !== void 0 ? onClick : handleClick, dangerouslySetInnerHTML: {
|
10095
10100
|
__html: setFontForText(isShowMore ? unfoldText || 'show less' : foldText || 'show more', style)
|
10096
10101
|
} }))));
|
10097
10102
|
};
|
@@ -12449,7 +12454,7 @@ const EventProvider = (_a) => {
|
|
12449
12454
|
const handleClick = throttle((e) => {
|
12450
12455
|
var _a, _b, _c, _d, _e, _f;
|
12451
12456
|
e.preventDefault();
|
12452
|
-
const item = multItem
|
12457
|
+
const item = multItem ? multItem : (_b = (_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProduct) !== null && _b !== void 0 ? _b : rec === null || rec === void 0 ? void 0 : rec.video;
|
12453
12458
|
ctaEvent === null || ctaEvent === void 0 ? void 0 : ctaEvent({
|
12454
12459
|
eventSubject: 'clickCta',
|
12455
12460
|
eventDescription: 'User clicked the CTA'
|
@@ -12476,7 +12481,7 @@ const EventProvider = (_a) => {
|
|
12476
12481
|
setElement(null);
|
12477
12482
|
}
|
12478
12483
|
}, [element, popup]);
|
12479
|
-
return (React.createElement("button", { ref: ref, className: className, style: Object.assign({
|
12484
|
+
return (React.createElement("button", { ref: ref, className: className, style: Object.assign({ display: 'flex', alignItems: 'normal' }, style), onClick: handleClick, role: 'button', "aria-label": 'CTA', tabIndex: 0 }, children));
|
12480
12485
|
};
|
12481
12486
|
var EventProvider$1 = memo(EventProvider);
|
12482
12487
|
|
@@ -13072,7 +13077,6 @@ const MultiCommodityDiro$1 = (_a) => {
|
|
13072
13077
|
var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive", "index"]);
|
13073
13078
|
const { sxpParameter } = useSxpDataSource();
|
13074
13079
|
const [products] = useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
|
13075
|
-
console.log(recData, '222');
|
13076
13080
|
return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
|
13077
13081
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
13078
13082
|
return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
|
@@ -13279,7 +13283,6 @@ const MultiCommodityDiroNew$1 = (_a) => {
|
|
13279
13283
|
var { content, style, bgImg, recData, bottom_image, ctaTempStyles, translateY = 0, isActive, index } = _a, props = __rest(_a, ["content", "style", "bgImg", "recData", "bottom_image", "ctaTempStyles", "translateY", "isActive", "index"]);
|
13280
13284
|
const { sxpParameter } = useSxpDataSource();
|
13281
13285
|
const [products] = useState((_c = (_b = recData === null || recData === void 0 ? void 0 : recData.video) === null || _b === void 0 ? void 0 : _b.bindProducts) !== null && _c !== void 0 ? _c : [1, 2]);
|
13282
|
-
console.log(recData, '333');
|
13283
13286
|
return (React.createElement(Scroll$1, { isPadding: !!recData }, products === null || products === void 0 ? void 0 : products.map((item, itemIndex) => {
|
13284
13287
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
13285
13288
|
return (React.createElement(React.Fragment, null, recData && !(item === null || item === void 0 ? void 0 : item.bindCta) ? null : (React.createElement(SwiperSlide, { key: itemIndex, className: css(Object.assign(Object.assign({}, style), { flexShrink: 0, marginLeft: 0, marginRight: '8px' })), tag: 'li', role: 'listitem' },
|
@@ -17555,15 +17558,15 @@ var _materials_ = /*#__PURE__*/Object.freeze({
|
|
17555
17558
|
Swipe: Swipe
|
17556
17559
|
});
|
17557
17560
|
|
17558
|
-
const defaultUnLikeIconPath$
|
17559
|
-
const defaultLikeIconPath$
|
17561
|
+
const defaultUnLikeIconPath$1 = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
|
17562
|
+
const defaultLikeIconPath$1 = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
|
17560
17563
|
const LikeButton = (_a) => {
|
17561
17564
|
var _b;
|
17562
17565
|
var { active, activeIcon, unActicveIcon, recData, position } = _a, props = __rest(_a, ["active", "activeIcon", "unActicveIcon", "recData", "position"]);
|
17563
17566
|
const { mutateLike, mutateUnlike, bffEventReport, setCacheRtcList, cacheRtcList } = useSxpDataSource();
|
17564
17567
|
const [state, setState] = useState((_b = cacheRtcList === null || cacheRtcList === void 0 ? void 0 : cacheRtcList[position]) === null || _b === void 0 ? void 0 : _b.isCollected);
|
17565
|
-
const likeIcon = useIconLink(defaultLikeIconPath$
|
17566
|
-
const unlikeIcon = useIconLink(defaultUnLikeIconPath$
|
17568
|
+
const likeIcon = useIconLink(defaultLikeIconPath$1);
|
17569
|
+
const unlikeIcon = useIconLink(defaultUnLikeIconPath$1);
|
17567
17570
|
const handleClick = debounce(() => __awaiter(void 0, void 0, void 0, function* () {
|
17568
17571
|
var _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z;
|
17569
17572
|
if (state) {
|
@@ -17654,7 +17657,7 @@ const mountVideoPlayerAtNode = (() => {
|
|
17654
17657
|
};
|
17655
17658
|
})();
|
17656
17659
|
|
17657
|
-
const VideoWidget$
|
17660
|
+
const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, videoPlayIcon }) => {
|
17658
17661
|
const [isPauseVideo, setIsPauseVideo] = useState(false);
|
17659
17662
|
const { bffEventReport, sxpParameter, waterFallData, openHashtag, bffFbReport } = useSxpDataSource();
|
17660
17663
|
const videoStartTime = useRef(0);
|
@@ -17999,7 +18002,7 @@ const VideoWidget$4 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
17999
18002
|
renderLoading,
|
18000
18003
|
isPauseVideo && React.createElement(FormatImage$1, { className: 'clc-pb-video-pause', src: videoPlayIcon !== null && videoPlayIcon !== void 0 ? videoPlayIcon : PAUSE_ICON, alt: 'pause' })))));
|
18001
18004
|
};
|
18002
|
-
var VideoWidget$
|
18005
|
+
var VideoWidget$3 = memo(VideoWidget$2);
|
18003
18006
|
|
18004
18007
|
const ToggleButton = ({ defaultValue, activeIcon, unactiveIcon, onChange, style }) => {
|
18005
18008
|
const [isTrue, setIsTure] = useState(defaultValue);
|
@@ -18088,7 +18091,7 @@ const Picture = (props) => {
|
|
18088
18091
|
}, onLoad: onShowFirstImage }))));
|
18089
18092
|
};
|
18090
18093
|
|
18091
|
-
const PictureGroup$
|
18094
|
+
const PictureGroup$2 = ({ imgUrls, width, height, rec, index, onViewImageEndEvent, onViewImageStartEvent, imgUrlsPostConfig }) => {
|
18092
18095
|
var _a, _b;
|
18093
18096
|
const { isActive } = useSwiperSlide();
|
18094
18097
|
const { sxpParameter, openHashtag } = useSxpDataSource();
|
@@ -18182,7 +18185,7 @@ const PictureGroup$4 = ({ imgUrls, width, height, rec, index, onViewImageEndEven
|
|
18182
18185
|
React.createElement(Picture, { src: !isLoad && srcKey > 0 ? '' : url, height: height, imgUrlsPostConfig: imgUrlsPostConfig, onShowFirstImage: showFirstImageFn })));
|
18183
18186
|
}))));
|
18184
18187
|
};
|
18185
|
-
var PictureGroup$
|
18188
|
+
var PictureGroup$3 = memo(PictureGroup$2);
|
18186
18189
|
|
18187
18190
|
/*
|
18188
18191
|
* @Author: binruan@chatlabs.com
|
@@ -18298,7 +18301,7 @@ function withBindDataSource(Component) {
|
|
18298
18301
|
* @Author: binruan@chatlabs.com
|
18299
18302
|
* @Date: 2023-12-26 16:11:34
|
18300
18303
|
* @LastEditors: binruan@chatlabs.com
|
18301
|
-
* @LastEditTime:
|
18304
|
+
* @LastEditTime: 2024-10-31 10:30:55
|
18302
18305
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\RenderCard.tsx
|
18303
18306
|
*
|
18304
18307
|
*/
|
@@ -18308,10 +18311,10 @@ const RenderCard = ({ rec, index, tempMap, resolver, includesCtaType, isActive,
|
|
18308
18311
|
return null;
|
18309
18312
|
const renderComp = useMemo(() => {
|
18310
18313
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3;
|
18311
|
-
|
18314
|
+
//如果includesCtaType有值,则只渲染includesCtaType包含的cta类型组件,用于在页面某处只显示某一组件
|
18312
18315
|
if (includesCtaType && !(includesCtaType === null || includesCtaType === void 0 ? void 0 : includesCtaType.includes((_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type)))
|
18313
18316
|
return;
|
18314
|
-
|
18317
|
+
//默认不渲染category为cta类型的组件,该类型的组件只用于某一处
|
18315
18318
|
if (!includesCtaType && ((_b = value === null || value === void 0 ? void 0 : value.item) === null || _b === void 0 ? void 0 : _b.category) === 'cta')
|
18316
18319
|
return;
|
18317
18320
|
if ((((_c = value === null || value === void 0 ? void 0 : value.item) === null || _c === void 0 ? void 0 : _c.type) === 'CommodityDiro' && !((_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.bindProduct)) ||
|
@@ -18328,10 +18331,10 @@ const RenderCard = ({ rec, index, tempMap, resolver, includesCtaType, isActive,
|
|
18328
18331
|
const Component = withBindDataSource(t);
|
18329
18332
|
const defaulSetting = (_u = t === null || t === void 0 ? void 0 : t.extend) === null || _u === void 0 ? void 0 : _u.defaulSetting;
|
18330
18333
|
const isExternalLink = ((_x = (_w = (_v = value === null || value === void 0 ? void 0 : value.item) === null || _v === void 0 ? void 0 : _v.event) === null || _w === void 0 ? void 0 : _w.onClick) === null || _x === void 0 ? void 0 : _x.linkType) === 'externalLink';
|
18331
|
-
|
18334
|
+
let style = cloneDeep((_y = value === null || value === void 0 ? void 0 : value.item) === null || _y === void 0 ? void 0 : _y.style);
|
18332
18335
|
if (style.hasOwnProperty('backdropFilter')) {
|
18333
|
-
|
18334
|
-
style
|
18336
|
+
let sbf = style['backdropFilter'];
|
18337
|
+
style['backdropFilter'] = `blur(${sbf !== null && sbf !== void 0 ? sbf : 0}px)`;
|
18335
18338
|
}
|
18336
18339
|
return (React.createElement(Component, Object.assign({ style: Object.assign(Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.style), style), { zIndex: 50, marginLeft: '20px', boxSizing: 'border-box', transform: 'translate3d(0px, 0px, 0px)' }), textStyle: Object.assign(Object.assign({}, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.textStyle), (_z = value === null || value === void 0 ? void 0 : value.item) === null || _z === void 0 ? void 0 : _z.textStyle), bindDatas: (_1 = (_0 = value === null || value === void 0 ? void 0 : value.item) === null || _0 === void 0 ? void 0 : _0.bindDatas) !== null && _1 !== void 0 ? _1 : [] }, defaulSetting === null || defaulSetting === void 0 ? void 0 : defaulSetting.props, (_2 = value === null || value === void 0 ? void 0 : value.item) === null || _2 === void 0 ? void 0 : _2.props, { event: ((_3 = value === null || value === void 0 ? void 0 : value.item) === null || _3 === void 0 ? void 0 : _3.event) || {}, schema: schema, id: value === null || value === void 0 ? void 0 : value.id, key: value === null || value === void 0 ? void 0 : value.id, recData: rec, isExternalLink: isExternalLink, index: index, isActive: isActive })));
|
18337
18340
|
}
|
@@ -18692,10 +18695,10 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
18692
18695
|
return (React.createElement(MultiPosts$2, Object.assign({ recData: data === null || data === void 0 ? void 0 : data[1] }, (_c = (_b = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.multiPosts) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.item) === null || _c === void 0 ? void 0 : _c.props, (_f = (_e = (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.multiPosts) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.item) === null || _f === void 0 ? void 0 : _f.event)));
|
18693
18696
|
}
|
18694
18697
|
if ((_g = rec === null || rec === void 0 ? void 0 : rec.video) === null || _g === void 0 ? void 0 : _g.url) {
|
18695
|
-
return (React.createElement(VideoWidget$
|
18698
|
+
return (React.createElement(VideoWidget$3, { key: isReload, rec: rec, index: index, muted: isMuted, data: data, height: height, activeIndex: activeIndex, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost, videoPlayIcon: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPlayIcon }));
|
18696
18699
|
}
|
18697
18700
|
if ((_h = rec === null || rec === void 0 ? void 0 : rec.video) === null || _h === void 0 ? void 0 : _h.imgUrls) {
|
18698
|
-
return (React.createElement(PictureGroup$
|
18701
|
+
return (React.createElement(PictureGroup$3, { key: rec === null || rec === void 0 ? void 0 : rec.video.itemId, imgUrls: rec === null || rec === void 0 ? void 0 : rec.video.imgUrls, width: containerWidth, height: height, rec: rec, index: index, onViewImageEndEvent: handleViewImageStartEnd, onViewImageStartEvent: handleViewImageStartEvent, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost }));
|
18699
18702
|
}
|
18700
18703
|
if (rec.product && Array.isArray(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) && ((_j = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _j === void 0 ? void 0 : _j.length) > 0) {
|
18701
18704
|
return (_k = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _k === void 0 ? void 0 : _k.map((value, idx) => {
|
@@ -19063,9 +19066,9 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
19063
19066
|
React.createElement(ConsentPopup, { resolver: resolver, globalConfig: globalConfig }),
|
19064
19067
|
openMultiPosts && (React.createElement(MultiPosts$2, Object.assign({}, (_x = (_w = (_v = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.multiPosts) === null || _v === void 0 ? void 0 : _v[0]) === null || _w === void 0 ? void 0 : _w.item) === null || _x === void 0 ? void 0 : _x.props, (_0 = (_z = (_y = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.multiPosts) === null || _y === void 0 ? void 0 : _y[0]) === null || _z === void 0 ? void 0 : _z.item) === null || _0 === void 0 ? void 0 : _0.event, { style: { position: 'fixed', top: 0, left: 0, right: 0 } })))))));
|
19065
19068
|
};
|
19066
|
-
var
|
19069
|
+
var SxpPageRender$1 = memo(SxpPageRender);
|
19067
19070
|
|
19068
|
-
const PictureGroup
|
19071
|
+
const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
|
19069
19072
|
return (React.createElement(Swiper, { defaultValue: 0, direction: 'horizontal', modules: [Pagination, Autoplay], pagination: {
|
19070
19073
|
clickable: true,
|
19071
19074
|
bulletActiveClass: 'swipe-item-active-bullet',
|
@@ -19075,9 +19078,9 @@ const PictureGroup$2 = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index
|
|
19075
19078
|
React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig })));
|
19076
19079
|
})));
|
19077
19080
|
};
|
19078
|
-
var PictureGroup$
|
19081
|
+
var PictureGroup$1 = memo(PictureGroup);
|
19079
19082
|
|
19080
|
-
const VideoWidget
|
19083
|
+
const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, width }) => {
|
19081
19084
|
const [isPauseVideo, setIsPauseVideo] = useState(false);
|
19082
19085
|
const videoRef = useRef(null);
|
19083
19086
|
const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
|
@@ -19307,14 +19310,14 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
19307
19310
|
renderPoster,
|
19308
19311
|
React.createElement("img", { hidden: !isPauseVideo, className: 'clc-pb-video-pause', src: PAUSE_ICON, alt: 'video pause image' })))));
|
19309
19312
|
};
|
19310
|
-
var VideoWidget$
|
19313
|
+
var VideoWidget$1 = memo(VideoWidget);
|
19311
19314
|
|
19312
|
-
const RESOLVER$
|
19315
|
+
const RESOLVER$1 = {};
|
19313
19316
|
Object.values(_materials_).forEach((v) => {
|
19314
|
-
RESOLVER$
|
19317
|
+
RESOLVER$1[v.extend.type] = v;
|
19315
19318
|
});
|
19316
|
-
const defaultUnLikeIconPath
|
19317
|
-
const defaultLikeIconPath
|
19319
|
+
const defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
|
19320
|
+
const defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
|
19318
19321
|
const DiyPortalPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, descStyle, hashTagStyle, containerHeight = 664, containerWidth = 375, appDomain, tagList = [] }) => {
|
19319
19322
|
const height = useMemo(() => {
|
19320
19323
|
let minusHeight = 0;
|
@@ -19329,16 +19332,16 @@ const DiyPortalPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, de
|
|
19329
19332
|
const renderContent = (rec, index) => {
|
19330
19333
|
var _a, _b, _c, _d;
|
19331
19334
|
if ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.url) {
|
19332
|
-
return (React.createElement(VideoWidget$
|
19335
|
+
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 }));
|
19333
19336
|
}
|
19334
19337
|
if ((_b = rec === null || rec === void 0 ? void 0 : rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
|
19335
|
-
return (React.createElement(PictureGroup$
|
19338
|
+
return (React.createElement(PictureGroup$1, { key: rec === null || rec === void 0 ? void 0 : rec.video.itemId, imgUrls: rec === null || rec === void 0 ? void 0 : rec.video.imgUrls, width: containerWidth, height: height, rec: rec, index: index, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost }));
|
19336
19339
|
}
|
19337
19340
|
if (rec.product) {
|
19338
19341
|
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) {
|
19339
19342
|
return (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.productPost) === null || _d === void 0 ? void 0 : _d.map((value, idx) => {
|
19340
19343
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
19341
|
-
const t = RESOLVER$
|
19344
|
+
const t = RESOLVER$1[(_a = value === null || value === void 0 ? void 0 : value.item) === null || _a === void 0 ? void 0 : _a.type];
|
19342
19345
|
const Component = withBindDataSource(t);
|
19343
19346
|
const defaulSetting = (_b = t === null || t === void 0 ? void 0 : t.extend) === null || _b === void 0 ? void 0 : _b.defaulSetting;
|
19344
19347
|
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) || {},
|
@@ -19360,7 +19363,7 @@ const DiyPortalPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, de
|
|
19360
19363
|
const CTA = (rec, index) => {
|
19361
19364
|
if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA)) {
|
19362
19365
|
return (React.createElement("div", { className: 'clc-sxp-bottom-card' },
|
19363
|
-
React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$
|
19366
|
+
React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1 })));
|
19364
19367
|
}
|
19365
19368
|
return null;
|
19366
19369
|
};
|
@@ -19378,8 +19381,8 @@ const DiyPortalPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, de
|
|
19378
19381
|
}
|
19379
19382
|
return null;
|
19380
19383
|
};
|
19381
|
-
const likeIcon = useIconLink(defaultLikeIconPath
|
19382
|
-
const unlikeIcon = useIconLink(defaultUnLikeIconPath
|
19384
|
+
const likeIcon = useIconLink(defaultLikeIconPath, appDomain);
|
19385
|
+
const unlikeIcon = useIconLink(defaultUnLikeIconPath, appDomain);
|
19383
19386
|
const renderLikeButton = (rec, index) => {
|
19384
19387
|
var _a, _b, _c, _d;
|
19385
19388
|
if (!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLike))
|
@@ -19429,666 +19432,11 @@ const DiyPortalPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, de
|
|
19429
19432
|
};
|
19430
19433
|
var index$1 = memo(DiyPortalPreview);
|
19431
19434
|
|
19432
|
-
const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index, swiperRef, data = [], loopPlay }) => {
|
19433
|
-
const { isActive } = useSwiperSlide();
|
19434
|
-
const [isload, setIsLoad] = useState(false);
|
19435
|
-
useEffect(() => {
|
19436
|
-
if (isActive && isload && loopPlay) {
|
19437
|
-
setTimeout(() => {
|
19438
|
-
var _a, _b, _c, _d;
|
19439
|
-
if (index === (data === null || data === void 0 ? void 0 : data.length) - 1) {
|
19440
|
-
(_a = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper.slideTo(0);
|
19441
|
-
}
|
19442
|
-
else {
|
19443
|
-
const i = (_c = (_b = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _b === void 0 ? void 0 : _b.swiper) === null || _c === void 0 ? void 0 : _c.activeIndex;
|
19444
|
-
(_d = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _d === void 0 ? void 0 : _d.swiper.slideTo(i + 1);
|
19445
|
-
}
|
19446
|
-
}, 3000);
|
19447
|
-
}
|
19448
|
-
}, [isActive, isload, data, index, swiperRef, loopPlay]);
|
19449
|
-
const loadFinishImage = () => {
|
19450
|
-
setIsLoad(true);
|
19451
|
-
};
|
19452
|
-
return (React.createElement(Swiper, { defaultValue: 0, direction: 'horizontal', modules: [Pagination, Autoplay], pagination: {
|
19453
|
-
clickable: true,
|
19454
|
-
bulletActiveClass: 'swipe-item-active-bullet',
|
19455
|
-
bulletElement: 'button'
|
19456
|
-
}, height: height, style: { width }, loop: true, autoplay: false }, imgUrls === null || imgUrls === void 0 ? void 0 : imgUrls.map((url) => {
|
19457
|
-
return (React.createElement(SwiperSlide, { key: url },
|
19458
|
-
React.createElement(Picture, { src: url, height: height, imgUrlsPostConfig: imgUrlsPostConfig, onShowFirstImage: loadFinishImage })));
|
19459
|
-
})));
|
19460
|
-
};
|
19461
|
-
var PictureGroup$1 = memo(PictureGroup);
|
19462
|
-
|
19463
|
-
const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, width, swiperRef, loopPlay, videoPlayIcon, isPlay }) => {
|
19464
|
-
const { isActive } = useSwiperSlide();
|
19465
|
-
const [isPauseVideo, setIsPauseVideo] = useState(false);
|
19466
|
-
const videoRef = useRef(null);
|
19467
|
-
const { bffEventReport, sxpParameter, waterFallData, openHashtag } = useSxpDataSource();
|
19468
|
-
const videoStartTime = useRef(0);
|
19469
|
-
const [isLoadFinish, setIsLoadFinish] = useState(false);
|
19470
|
-
const [isFirstPlay, setIsFirstPlay] = useState(true);
|
19471
|
-
const canvasRef = useRef(null);
|
19472
|
-
const [firstFrameSrc, setFirstFrameSrc] = useState('');
|
19473
|
-
const videoId = `pb-cache-video-${index}`;
|
19474
|
-
const hlsRef = useRef(null);
|
19475
|
-
useEffect(() => {
|
19476
|
-
if (!videoRef.current)
|
19477
|
-
return;
|
19478
|
-
videoRef.current.muted = muted;
|
19479
|
-
}, [muted]);
|
19480
|
-
useCallback(() => {
|
19481
|
-
var _a;
|
19482
|
-
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
19483
|
-
}, []);
|
19484
|
-
const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');
|
19485
|
-
const handlePlaying = useCallback(() => {
|
19486
|
-
var _a, _b, _c, _d, _e, _f;
|
19487
|
-
setIsPauseVideo(false);
|
19488
|
-
const item = data[index];
|
19489
|
-
if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
|
19490
|
-
videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0;
|
19491
|
-
((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
19492
|
-
((_f = (_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
|
19493
|
-
setIsFirstPlay(false);
|
19494
|
-
}
|
19495
|
-
}, [bffEventReport, data, index, isFirstPlay]);
|
19496
|
-
const handleLoadedMetadata = useCallback(() => {
|
19497
|
-
var _a;
|
19498
|
-
videoRef.current.currentTime = rec === null || rec === void 0 ? void 0 : rec.startTime;
|
19499
|
-
(_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
19500
|
-
setIsLoadFinish(true);
|
19501
|
-
}, []);
|
19502
|
-
useCallback((type) => () => {
|
19503
|
-
var _a, _b, _c, _d, _e;
|
19504
|
-
if (!isLoadFinish)
|
19505
|
-
return;
|
19506
|
-
const isPause = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
|
19507
|
-
switch (type) {
|
19508
|
-
case 'start':
|
19509
|
-
if (!isPause)
|
19510
|
-
return;
|
19511
|
-
(_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.play();
|
19512
|
-
setIsPauseVideo(false);
|
19513
|
-
break;
|
19514
|
-
case 'pause':
|
19515
|
-
if (isPause)
|
19516
|
-
return;
|
19517
|
-
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.pause();
|
19518
|
-
setIsPauseVideo(true);
|
19519
|
-
break;
|
19520
|
-
default:
|
19521
|
-
if (isPause) {
|
19522
|
-
// if (videoRef?.current?.currentTime >= rec?.endTime) {
|
19523
|
-
// videoRef.current.currentTime = rec?.startTime;
|
19524
|
-
// }
|
19525
|
-
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.play();
|
19526
|
-
}
|
19527
|
-
else {
|
19528
|
-
(_e = videoRef.current) === null || _e === void 0 ? void 0 : _e.pause();
|
19529
|
-
}
|
19530
|
-
setIsPauseVideo(!isPause);
|
19531
|
-
break;
|
19532
|
-
}
|
19533
|
-
}, [isLoadFinish]);
|
19534
|
-
useCallback(() => {
|
19535
|
-
var _a, _b, _c, _d, _e, _f;
|
19536
|
-
data[index];
|
19537
|
-
((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
|
19538
|
-
((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
19539
|
-
if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration) {
|
19540
|
-
(((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime) - videoStartTime.current).toFixed(2);
|
19541
|
-
}
|
19542
|
-
}, [data, index, bffEventReport]);
|
19543
|
-
const blur = useMemo(() => {
|
19544
|
-
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2';
|
19545
|
-
}, [videoPostConfig]);
|
19546
|
-
useMemo(() => {
|
19547
|
-
var _a;
|
19548
|
-
return (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.mode) === '2'
|
19549
|
-
? `translateY(-${50 + ((_a = videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.offsetTop) !== null && _a !== void 0 ? _a : 0)}%) translate3d(0px, 0px, 0px)`
|
19550
|
-
: 'translateY(-50%)';
|
19551
|
-
}, [videoPostConfig]);
|
19552
|
-
const handLoadeddata = useCallback(() => {
|
19553
|
-
if (!canvasRef || !videoRef || !videoRef.current || !canvasRef.current)
|
19554
|
-
return;
|
19555
|
-
const video = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current;
|
19556
|
-
const canvas = canvasRef === null || canvasRef === void 0 ? void 0 : canvasRef.current;
|
19557
|
-
const ctx = canvas.getContext('2d');
|
19558
|
-
const targetWidth = window === null || window === void 0 ? void 0 : window.innerWidth;
|
19559
|
-
const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
|
19560
|
-
canvas.height = targetHeight;
|
19561
|
-
canvas.width = targetWidth;
|
19562
|
-
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
|
19563
|
-
setFirstFrameSrc(canvas.toDataURL());
|
19564
|
-
}, []);
|
19565
|
-
const handleTimeUpload = useCallback(() => {
|
19566
|
-
var _a, _b, _c;
|
19567
|
-
if (!videoRef.current)
|
19568
|
-
return;
|
19569
|
-
if (((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.currentTime) >= ((_b = rec === null || rec === void 0 ? void 0 : rec.endTime) !== null && _b !== void 0 ? _b : 0)) {
|
19570
|
-
(_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.pause();
|
19571
|
-
}
|
19572
|
-
}, []);
|
19573
|
-
// useEffect(() => {
|
19574
|
-
// if (!videoRef.current || !isActive) return;
|
19575
|
-
// if (isPlay) {
|
19576
|
-
// videoRef.current?.play();
|
19577
|
-
// } else {
|
19578
|
-
// videoRef.current?.pause();
|
19579
|
-
// }
|
19580
|
-
// }, [isPlay, isActive]);
|
19581
|
-
const handlePause = () => {
|
19582
|
-
var _a, _b, _c, _d, _e, _f;
|
19583
|
-
if (!videoRef.current || !isActive)
|
19584
|
-
return;
|
19585
|
-
if (!loopPlay)
|
19586
|
-
return;
|
19587
|
-
if (index === (data === null || data === void 0 ? void 0 : data.length) - 1) {
|
19588
|
-
(_b = (_a = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper) === null || _b === void 0 ? void 0 : _b.slideTo(0);
|
19589
|
-
}
|
19590
|
-
else {
|
19591
|
-
const i = (_d = (_c = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _c === void 0 ? void 0 : _c.swiper) === null || _d === void 0 ? void 0 : _d.activeIndex;
|
19592
|
-
(_f = (_e = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _e === void 0 ? void 0 : _e.swiper) === null || _f === void 0 ? void 0 : _f.slideTo(i + 1);
|
19593
|
-
}
|
19594
|
-
};
|
19595
|
-
useEffect(() => {
|
19596
|
-
var _a, _b, _c;
|
19597
|
-
if (!isActive)
|
19598
|
-
return;
|
19599
|
-
const videoSrc = rec === null || rec === void 0 ? void 0 : rec.mediaUrl;
|
19600
|
-
if (!videoSrc)
|
19601
|
-
return;
|
19602
|
-
setIsPauseVideo(false);
|
19603
|
-
const videoPlayerWrapperNode = document.querySelector(`#${videoId}`);
|
19604
|
-
if (!videoPlayerWrapperNode)
|
19605
|
-
return;
|
19606
|
-
videoRef.current = mountVideoPlayerAtNode === null || mountVideoPlayerAtNode === void 0 ? void 0 : mountVideoPlayerAtNode(videoPlayerWrapperNode);
|
19607
|
-
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
19608
|
-
return;
|
19609
|
-
const Hls = window === null || window === void 0 ? void 0 : window.Hls;
|
19610
|
-
let hls = hlsRef === null || hlsRef === void 0 ? void 0 : hlsRef.current;
|
19611
|
-
if (videoSrc.includes('.m3u8') && Hls && Hls.isSupported()) {
|
19612
|
-
hls = new Hls();
|
19613
|
-
hls === null || hls === void 0 ? void 0 : hls.loadSource(videoSrc);
|
19614
|
-
hls === null || hls === void 0 ? void 0 : hls.attachMedia(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current);
|
19615
|
-
hls === null || hls === void 0 ? void 0 : hls.on(Hls.Events.MANIFEST_PARSED, function () {
|
19616
|
-
var _a;
|
19617
|
-
videoRef.current.currentTime = rec === null || rec === void 0 ? void 0 : rec.startTime;
|
19618
|
-
(_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
19619
|
-
});
|
19620
|
-
}
|
19621
|
-
else {
|
19622
|
-
videoRef.current.src = videoSrc;
|
19623
|
-
}
|
19624
|
-
(_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('loadedmetadata', handleLoadedMetadata);
|
19625
|
-
// videoRef.current?.addEventListener('playing', handlePlaying);
|
19626
|
-
// videoRef.current?.addEventListener('loadeddata', handLoadeddata);
|
19627
|
-
(_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.addEventListener('pause', handlePause);
|
19628
|
-
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('timeupdate', handleTimeUpload);
|
19629
|
-
return () => {
|
19630
|
-
var _a, _b, _c, _d;
|
19631
|
-
if (hlsRef === null || hlsRef === void 0 ? void 0 : hlsRef.current)
|
19632
|
-
(_a = hlsRef === null || hlsRef === void 0 ? void 0 : hlsRef.current) === null || _a === void 0 ? void 0 : _a.destroy();
|
19633
|
-
setIsLoadFinish(false);
|
19634
|
-
(_b = videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('loadedmetadata', handleLoadedMetadata);
|
19635
|
-
// videoRef.current?.removeEventListener('playing', handlePlaying);
|
19636
|
-
// videoRef.current?.removeEventListener('loadeddata', handLoadeddata);
|
19637
|
-
(_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('pause', handlePause);
|
19638
|
-
(_d = videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('timeupdate', handleTimeUpload);
|
19639
|
-
};
|
19640
|
-
}, [handleLoadedMetadata, handlePlaying, rec, handLoadeddata, isActive, loopPlay]);
|
19641
|
-
const renderPoster = useMemo(() => {
|
19642
|
-
if (!(sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image) || isLoadFinish) {
|
19643
|
-
return null;
|
19644
|
-
}
|
19645
|
-
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, alt: 'video poster' }));
|
19646
|
-
}, [isLoadFinish, sxpParameter === null || sxpParameter === void 0 ? void 0 : sxpParameter.placeholder_image]);
|
19647
|
-
useMemo(() => {
|
19648
|
-
return blur
|
19649
|
-
? {
|
19650
|
-
filter: 'blur(10px)',
|
19651
|
-
transform: 'translate3d(0px, 0px, 0px) scale(1.2)'
|
19652
|
-
}
|
19653
|
-
: {};
|
19654
|
-
}, [blur]);
|
19655
|
-
if (!(rec === null || rec === void 0 ? void 0 : rec.mediaUrl)) {
|
19656
|
-
return null;
|
19657
|
-
}
|
19658
|
-
// const renderLoading = useMemo(() => {
|
19659
|
-
// if (!waiting || !isLoadFinish) return;
|
19660
|
-
// return (
|
19661
|
-
// <img
|
19662
|
-
// style={{
|
19663
|
-
// position: 'absolute',
|
19664
|
-
// top: '50%',
|
19665
|
-
// left: 0,
|
19666
|
-
// right: 0,
|
19667
|
-
// transform: 'translateY(-100%)',
|
19668
|
-
// margin: 'auto',
|
19669
|
-
// width: '50px',
|
19670
|
-
// height: '50px',
|
19671
|
-
// objectFit: 'contain'
|
19672
|
-
// }}
|
19673
|
-
// src={loading_gif}
|
19674
|
-
// alt='placeholder image'
|
19675
|
-
// />
|
19676
|
-
// );
|
19677
|
-
// }, [waiting, isLoadFinish]);
|
19678
|
-
return (React.createElement("div", { className: 'video-container', key: rec.itemId, style: {
|
19679
|
-
position: 'relative',
|
19680
|
-
width: '100%',
|
19681
|
-
height,
|
19682
|
-
overflow: 'hidden'
|
19683
|
-
} },
|
19684
|
-
React.createElement("div", { className: 'n-full-screen', id: videoId, style: { width: '100%', height: '100%' } }),
|
19685
|
-
renderPoster,
|
19686
|
-
isPauseVideo && React.createElement(FormatImage$1, { className: 'clc-pb-video-pause', src: videoPlayIcon !== null && videoPlayIcon !== void 0 ? videoPlayIcon : PAUSE_ICON, alt: 'pause' })));
|
19687
|
-
};
|
19688
|
-
var VideoWidget$1 = memo(VideoWidget);
|
19689
|
-
|
19690
|
-
/*
|
19691
|
-
* @Author: binruan@chatlabs.com
|
19692
|
-
* @Date: 2025-03-25 13:54:27
|
19693
|
-
* @LastEditors: binruan@chatlabs.com
|
19694
|
-
* @LastEditTime: 2025-03-28 18:08:02
|
19695
|
-
* @FilePath: \pb-sxp-ui\src\core\components\DiyStoryPreview\index.tsx
|
19696
|
-
*
|
19697
|
-
*/
|
19698
|
-
const recData = {
|
19699
|
-
position: 0,
|
19700
|
-
isCollected: false,
|
19701
|
-
product: null,
|
19702
|
-
video: {
|
19703
|
-
appId: null,
|
19704
|
-
itemId: 'VIDEOSsRgI1695278974368',
|
19705
|
-
title: '8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片8张尺寸不一样的图片',
|
19706
|
-
enTitle: null,
|
19707
|
-
icon: null,
|
19708
|
-
cover: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20231017/fsJFWmW1dGyW7XmDspbJPTn5esL3U1697538777398.png',
|
19709
|
-
link: null,
|
19710
|
-
linkTitle: null,
|
19711
|
-
linkType: null,
|
19712
|
-
menuCategoryId: null,
|
19713
|
-
remark: null,
|
19714
|
-
tags: [
|
19715
|
-
'Gift-Giving',
|
19716
|
-
'Daily Wear',
|
19717
|
-
'Business Formal',
|
19718
|
-
'Sports/Casual',
|
19719
|
-
'Anniversary Gifts',
|
19720
|
-
'Wedding/Engagement',
|
19721
|
-
'Formal Dinner/Party'
|
19722
|
-
],
|
19723
|
-
traceInfo: ':VIDEO:VIDEOSsRgI1695278974368:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
|
19724
|
-
value: 385,
|
19725
|
-
weight: null,
|
19726
|
-
bindCta: null,
|
19727
|
-
bindProduct: null,
|
19728
|
-
bindProducts: [
|
19729
|
-
{
|
19730
|
-
appId: 'wx448578f8851f3dce',
|
19731
|
-
itemId: 'test02178888',
|
19732
|
-
title: 'christian dior小包包 新CDN',
|
19733
|
-
enTitle: null,
|
19734
|
-
icon: null,
|
19735
|
-
cover: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fs2jqiurjftpoaba67iiwr9jt5sc31726213277754.avif',
|
19736
|
-
link: '/pages/details/index?spu_id=1702262707659534338',
|
19737
|
-
linkTitle: '',
|
19738
|
-
linkType: 'MP',
|
19739
|
-
menuCategoryId: null,
|
19740
|
-
remark: null,
|
19741
|
-
tags: [],
|
19742
|
-
traceInfo: ':PRODUCT:test02178888:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
|
19743
|
-
value: null,
|
19744
|
-
weight: null,
|
19745
|
-
bindCta: {
|
19746
|
-
appId: 'wx448578f8851f3dce',
|
19747
|
-
itemId: 'CTA3KofE1716186622249',
|
19748
|
-
title: 'SHOP NOW 立即购买',
|
19749
|
-
enTitle: 'BUY NOW立即购买,选择你所喜爱的;',
|
19750
|
-
icon: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240520/fssfxbmiwghixmgblz9uriwennd2r1716186615574.avif',
|
19751
|
-
cover: null,
|
19752
|
-
link: '/pages/details/index?spu_id=1702262707659534338',
|
19753
|
-
linkTitle: '',
|
19754
|
-
linkType: 'MP',
|
19755
|
-
menuCategoryId: '64b60b202caf0e1c1ce1e17d',
|
19756
|
-
remark: null,
|
19757
|
-
tags: [
|
19758
|
-
"Woman's Perfumes",
|
19759
|
-
'Plates & Bowls',
|
19760
|
-
'Glasses',
|
19761
|
-
'Multicolor',
|
19762
|
-
'Carafes',
|
19763
|
-
'Tea & Coffee',
|
19764
|
-
'Green',
|
19765
|
-
'Grey',
|
19766
|
-
'Cutlery'
|
19767
|
-
],
|
19768
|
-
traceInfo: ':CTA:CTA3KofE1716186622249:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
|
19769
|
-
value: null,
|
19770
|
-
weight: null
|
19771
|
-
},
|
19772
|
-
collection: 'Ricco',
|
19773
|
-
currency: 'INR-₹',
|
19774
|
-
homePage: [
|
19775
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fs2jqiurjftpoaba67iiwr9jt5sc31726213277754.avif',
|
19776
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fsr9ttuzuljs85smqi6lsidovnyoy1726213285994.avif',
|
19777
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fsknmfhx2lxukxews05guwwxr8rju1726213281108.avif',
|
19778
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20240913/fs0acnua4f1clamdpwdsrh0v5dgc61726213289247.avif'
|
19779
|
-
],
|
19780
|
-
info: 'test',
|
19781
|
-
price: 53200,
|
19782
|
-
shippingInfo: null,
|
19783
|
-
taxInfo: null
|
19784
|
-
},
|
19785
|
-
{
|
19786
|
-
appId: null,
|
19787
|
-
itemId: '113J631A0684_C520',
|
19788
|
-
title: 'Sweatshirt à capuche Dior Oblique, coupe relax',
|
19789
|
-
enTitle: null,
|
19790
|
-
icon: null,
|
19791
|
-
cover: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241115/fsaf0xq8vx8gkkl30y1h1swpinmbt1731661943891.avif',
|
19792
|
-
link: 'https://www.dior.com/fr_fr/fashion/products/113J631A0684_C520',
|
19793
|
-
linkTitle: null,
|
19794
|
-
linkType: 'WEB',
|
19795
|
-
menuCategoryId: null,
|
19796
|
-
remark: null,
|
19797
|
-
tags: [],
|
19798
|
-
traceInfo: ':PRODUCT:113J631A0684_C520:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
|
19799
|
-
value: null,
|
19800
|
-
weight: null,
|
19801
|
-
bindCta: {
|
19802
|
-
appId: null,
|
19803
|
-
itemId: 'CTAAfaKf1730796437032',
|
19804
|
-
title: 'test',
|
19805
|
-
enTitle: 'test',
|
19806
|
-
icon: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241105/fsjblxoud2tmehpiqqomh0oktwqrd1730796431496.avif',
|
19807
|
-
cover: null,
|
19808
|
-
link: null,
|
19809
|
-
linkTitle: null,
|
19810
|
-
linkType: null,
|
19811
|
-
menuCategoryId: '64b60b202caf0e1c1ce1e17d',
|
19812
|
-
remark: '',
|
19813
|
-
tags: [],
|
19814
|
-
traceInfo: ':CTA:CTAAfaKf1730796437032:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
|
19815
|
-
value: null,
|
19816
|
-
weight: null
|
19817
|
-
},
|
19818
|
-
collection: 'Jacquard de coton éponge bleu',
|
19819
|
-
currency: 'EUR-€',
|
19820
|
-
homePage: [
|
19821
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241115/fsaf0xq8vx8gkkl30y1h1swpinmbt1731661943891.avif',
|
19822
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241115/fszxkdcjfjql2oiy90ffbal5tsfd81731661964913.avif',
|
19823
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20241115/fs1jhd9jwxvfqmrbjwy5abfzb0fde1731661994996.avif'
|
19824
|
-
],
|
19825
|
-
info: "Le sweatshirt à capuche bleu met à l'honneur l'emblématique motif dior oblique. Confectionné en jacquard de coton éponge bleu, il présente une coupe relax très confortable. Doté de poches latérales fendues, ce sweatshirt à capuche s'associera à tous vos jeans ou pantalons de survêtement pour un look décontracté.. Sweatshirt à capuche dior oblique, coupe relax Jacquard de coton éponge bleu",
|
19826
|
-
price: 1800,
|
19827
|
-
shippingInfo: null,
|
19828
|
-
taxInfo: null
|
19829
|
-
},
|
19830
|
-
{
|
19831
|
-
appId: null,
|
19832
|
-
itemId: 'S5573CRIW_M928',
|
19833
|
-
title: 'Mini Dior Book Tote',
|
19834
|
-
enTitle: null,
|
19835
|
-
icon: null,
|
19836
|
-
cover: 'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fsvewk9etrawxrzznmvvewgt1bctu1739415576729.avif',
|
19837
|
-
link: 'https://www.dior.com/en_gb/fashion/products/S5573CRIW_M928',
|
19838
|
-
linkTitle: null,
|
19839
|
-
linkType: 'WEB',
|
19840
|
-
menuCategoryId: null,
|
19841
|
-
remark: null,
|
19842
|
-
tags: ['ダイヤモンド'],
|
19843
|
-
traceInfo: ':PRODUCT:S5573CRIW_M928:regular:1:VPRHSkRS1697701789894:main::0:EXPMW20250305155940:COMBTh20250305160047:',
|
19844
|
-
value: null,
|
19845
|
-
weight: null,
|
19846
|
-
bindCta: null,
|
19847
|
-
collection: null,
|
19848
|
-
currency: 'GBP-£',
|
19849
|
-
homePage: [
|
19850
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fsvewk9etrawxrzznmvvewgt1bctu1739415576729.avif',
|
19851
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fsngtlvhid7xwt5if0viw7vqanm831739415582147.avif',
|
19852
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fs4hotdvyzjtnqb9vszlynuzplddc1739415586910.avif',
|
19853
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fswffx9kwexf3z3vcnxisut1qxtez1739415591629.avif',
|
19854
|
-
'https://graff-cdn.chatlabs.net/dev/img/8922b5b8-a954-4a61-9ffc-80edebdf02b4/sxp-portal/20250213/fsbfsi7tttx1hnzldoiw7eoea7fvh1739415597388.avif'
|
19855
|
-
],
|
19856
|
-
info: "The Dior Book Tote is a House classic and original design by Maria Grazia Chiuri, Creative Director of Christian Dior. The style is fully embroidered with the House's hallmark blue Dior Oblique motif and showcases the Christian Dior Paris signature. Exemplifying House savoir-faire, the miniature style features an adjustable and removable strap that allows it to be carried by hand, worn over the shoulder or crossbody.",
|
19857
|
-
price: 1950,
|
19858
|
-
shippingInfo: null,
|
19859
|
-
taxInfo: null
|
19860
|
-
}
|
19861
|
-
],
|
19862
|
-
url: null,
|
19863
|
-
blockCta: 1,
|
19864
|
-
blockProduct: 1,
|
19865
|
-
hashTags: [
|
19866
|
-
'Sports/Casual',
|
19867
|
-
'Formal Dinner/Party',
|
19868
|
-
'Business Formal',
|
19869
|
-
'Wedding/Engagement',
|
19870
|
-
'Gift-Giving',
|
19871
|
-
'Daily Wear',
|
19872
|
-
'Anniversary Gifts'
|
19873
|
-
]
|
19874
|
-
}
|
19875
|
-
};
|
19876
|
-
const RESOLVER$1 = {};
|
19877
|
-
Object.values(_materials_).forEach((v) => {
|
19878
|
-
RESOLVER$1[v.extend.type] = v;
|
19879
|
-
});
|
19880
|
-
const defaultUnLikeIconPath = '/pb_static/f71266d2c64446c5ae6a5a7f5489cc0a.png';
|
19881
|
-
const defaultLikeIconPath = '/pb_static/f07900fe3f0f4ae188ea1611d4801a44.png';
|
19882
|
-
const DiyStoryPreview = ({ data = [], globalConfig, tipText, nudge, tempMap, descStyle, hashTagStyle, containerHeight = 664, containerWidth = 375, appDomain, tagList = [], scenes, onActiveChange, activeIndex, loopPlay = false, pointerEvents = 'none', isPlay }) => {
|
19883
|
-
const [loopPlaySwiper, setLooPlaySwiper] = useState(loopPlay);
|
19884
|
-
const swiperRef = useRef(null);
|
19885
|
-
useMemo(() => {
|
19886
|
-
let minusHeight = 0;
|
19887
|
-
if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo)) {
|
19888
|
-
minusHeight += 45;
|
19889
|
-
}
|
19890
|
-
if (tagList.length > 0) {
|
19891
|
-
minusHeight += 45;
|
19892
|
-
}
|
19893
|
-
return containerHeight - minusHeight;
|
19894
|
-
}, [globalConfig, containerHeight, tagList]);
|
19895
|
-
// 判断是否是视频
|
19896
|
-
const isVideoUrl = (url) => {
|
19897
|
-
if (url && url !== '' && typeof url === 'string') {
|
19898
|
-
const imageExtensions = ['.mp4', '.m3u8'];
|
19899
|
-
const lowerCaseUrl = url === null || url === void 0 ? void 0 : url.toLowerCase();
|
19900
|
-
return imageExtensions.some((ext) => lowerCaseUrl === null || lowerCaseUrl === void 0 ? void 0 : lowerCaseUrl.endsWith(ext));
|
19901
|
-
}
|
19902
|
-
else {
|
19903
|
-
return false;
|
19904
|
-
}
|
19905
|
-
};
|
19906
|
-
const renderContent = (rec, index) => {
|
19907
|
-
const isVideo = isVideoUrl(rec === null || rec === void 0 ? void 0 : rec.mediaUrl);
|
19908
|
-
if (isVideo) {
|
19909
|
-
return (React.createElement(VideoWidget$1, { isPlay: isPlay, rec: rec, index: index, muted: true, width: containerWidth, data: scenes !== null && scenes !== void 0 ? scenes : [], height: containerHeight, activeIndex: index, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost, videoPlayIcon: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPlayIcon, swiperRef: swiperRef, loopPlay: loopPlaySwiper }));
|
19910
|
-
}
|
19911
|
-
else {
|
19912
|
-
return (React.createElement(PictureGroup$1, { key: rec.itemId, imgUrls: [rec === null || rec === void 0 ? void 0 : rec.mediaUrl], width: containerWidth, height: containerHeight, rec: rec, index: index, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost, data: scenes !== null && scenes !== void 0 ? scenes : [], swiperRef: swiperRef, loopPlay: loopPlaySwiper }));
|
19913
|
-
}
|
19914
|
-
};
|
19915
|
-
useMemo(() => {
|
19916
|
-
if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl) && (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLogo)) {
|
19917
|
-
return (React.createElement("div", { className: 'clc-sxp-logo-banner', style: { backgroundColor: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.color } },
|
19918
|
-
React.createElement("img", { src: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.logoUrl, alt: 'logo' })));
|
19919
|
-
}
|
19920
|
-
return null;
|
19921
|
-
}, [globalConfig]);
|
19922
|
-
const renderBottom = (rec, index) => {
|
19923
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
19924
|
-
if (rec === null || rec === void 0 ? void 0 : rec.video) {
|
19925
|
-
let cta = null;
|
19926
|
-
if ((_b = (_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.bindProducts) === null || _b === void 0 ? void 0 : _b.length) {
|
19927
|
-
cta = '多商品CTA';
|
19928
|
-
}
|
19929
|
-
else if ((_c = rec === null || rec === void 0 ? void 0 : rec.video) === null || _c === void 0 ? void 0 : _c.bindProduct) {
|
19930
|
-
cta = '商品CTA';
|
19931
|
-
}
|
19932
|
-
else {
|
19933
|
-
cta = (_e = (_d = rec === null || rec === void 0 ? void 0 : rec.video) === null || _d === void 0 ? void 0 : _d.bindCta) === null || _e === void 0 ? void 0 : _e.itemId;
|
19934
|
-
}
|
19935
|
-
const value = tempMap === null || tempMap === void 0 ? void 0 : tempMap[cta];
|
19936
|
-
return (React.createElement(React.Fragment, null,
|
19937
|
-
((_f = rec === null || rec === void 0 ? void 0 : rec.video) === null || _f === void 0 ? void 0 : _f.title) && (React.createElement("div", { style: {
|
19938
|
-
background: 'repeating-linear-gradient(0deg, rgba(26, 26, 25, 0.7), hsla(0, 0%, 100%, 0))',
|
19939
|
-
height: '130px',
|
19940
|
-
position: 'absolute',
|
19941
|
-
bottom: 0,
|
19942
|
-
width: '100%',
|
19943
|
-
willChange: 'transform',
|
19944
|
-
zIndex: 2,
|
19945
|
-
pointerEvents
|
19946
|
-
} })),
|
19947
|
-
React.createElement("div", { style: {
|
19948
|
-
marginBottom: `${(_g = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.bottomInfoDist) !== null && _g !== void 0 ? _g : 40}px`,
|
19949
|
-
zIndex: 999,
|
19950
|
-
position: 'absolute',
|
19951
|
-
bottom: 0,
|
19952
|
-
left: 0,
|
19953
|
-
right: 0,
|
19954
|
-
paddingTop: '20px'
|
19955
|
-
} },
|
19956
|
-
(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowCTA) ? (React.createElement("div", { style: {} },
|
19957
|
-
React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1, isActive: index === activeIndex, value: value }))) : null,
|
19958
|
-
React.createElement("div", null,
|
19959
|
-
React.createElement(ExpandableText$1
|
19960
|
-
// className='clc-sxp-bottom-text'
|
19961
|
-
, {
|
19962
|
-
// className='clc-sxp-bottom-text'
|
19963
|
-
isPost: true, foldText: tipText === null || tipText === void 0 ? void 0 : tipText.foldText, unfoldText: tipText === null || tipText === void 0 ? void 0 : tipText.unfoldText, text: (_j = (_h = rec === null || rec === void 0 ? void 0 : rec.video) === null || _h === void 0 ? void 0 : _h.title) !== null && _j !== void 0 ? _j : '', style: Object.assign(Object.assign({}, descStyle), { textShadow: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isOpenTextShadow) ? '2px 2px 4px rgba(0, 0, 0, 0.5)' : 'none', padding: '0 20px', fontSize: '12px' }) }),
|
19964
|
-
React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1, includesCtaType: ['AniLink'], isActive: index === activeIndex, value: value }))),
|
19965
|
-
React.createElement(RenderCard$1, { rec: rec, index: index, tempMap: tempMap, resolver: RESOLVER$1, includesCtaType: ['AniLinkPopup'], isActive: index === activeIndex, value: value })));
|
19966
|
-
}
|
19967
|
-
return null;
|
19968
|
-
};
|
19969
|
-
const likeIcon = useIconLink(defaultLikeIconPath, appDomain);
|
19970
|
-
const unlikeIcon = useIconLink(defaultUnLikeIconPath, appDomain);
|
19971
|
-
const renderLikeButton = (rec, index) => {
|
19972
|
-
var _a, _b, _c, _d;
|
19973
|
-
if (!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowLike))
|
19974
|
-
return;
|
19975
|
-
let top = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconY) !== null && _a !== void 0 ? _a : 400;
|
19976
|
-
if (top < 40) {
|
19977
|
-
top += 40;
|
19978
|
-
}
|
19979
|
-
if (rec === null || rec === void 0 ? void 0 : rec.video) {
|
19980
|
-
return (React.createElement(LikeButton$1, { key: rec.position, activeIcon: (_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIcon) !== null && _b !== void 0 ? _b : likeIcon, unActicveIcon: (_c = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unlikeIcon) !== null && _c !== void 0 ? _c : unlikeIcon, position: index, active: rec.isCollected, recData: rec,
|
19981
|
-
// className={style['clc-sxp-like-button']}
|
19982
|
-
style: {
|
19983
|
-
top,
|
19984
|
-
right: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.likeIconX) !== null && _d !== void 0 ? _d : 0,
|
19985
|
-
position: 'absolute',
|
19986
|
-
zIndex: 999,
|
19987
|
-
backgroundColor: 'transparent',
|
19988
|
-
width: '50px',
|
19989
|
-
height: '50px',
|
19990
|
-
outline: 'none',
|
19991
|
-
border: 'none',
|
19992
|
-
boxSizing: 'content-box',
|
19993
|
-
padding: 0,
|
19994
|
-
transform: 'translate3d(0px, 0px, 0px)'
|
19995
|
-
} }));
|
19996
|
-
}
|
19997
|
-
return null;
|
19998
|
-
};
|
19999
|
-
const mutedIcon = useIconLink('/pb_static/5beaaa5ce7f3477b99db3838619cc471.png', appDomain);
|
20000
|
-
const unmutedIcon = useIconLink('/pb_static/fea8668a8a894e4aa3a86bcc775e895e.png', appDomain);
|
20001
|
-
const renderToggleButton = (visible) => {
|
20002
|
-
var _a, _b, _c, _d;
|
20003
|
-
if (!visible)
|
20004
|
-
return;
|
20005
|
-
let top = (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _a !== void 0 ? _a : 23;
|
20006
|
-
if ((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconYPosit) === 'top') {
|
20007
|
-
top += 45;
|
20008
|
-
}
|
20009
|
-
return (((globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowMute) === undefined || (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.isShowMute) === true) && (React.createElement(ToggleButton$1, { style: {
|
20010
|
-
position: 'absolute',
|
20011
|
-
visibility: 'visible',
|
20012
|
-
zIndex: 999,
|
20013
|
-
transform: 'translate3d(0px,0px,0px)',
|
20014
|
-
[(_b = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconXPosit) !== null && _b !== void 0 ? _b : 'right']: (_c = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _c !== void 0 ? _c : 0,
|
20015
|
-
[(_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconYPosit) !== null && _d !== void 0 ? _d : 'bottom']: top,
|
20016
|
-
backgroundColor: 'transparent',
|
20017
|
-
width: '50px',
|
20018
|
-
height: '50px',
|
20019
|
-
outline: 'none',
|
20020
|
-
border: 'none',
|
20021
|
-
boxSizing: 'content-box',
|
20022
|
-
padding: 0
|
20023
|
-
}, defaultValue: true, activeIcon: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unMuteIcon) ? globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.unMuteIcon : mutedIcon, unactiveIcon: (globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIcon) ? globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIcon : unmutedIcon })));
|
20024
|
-
};
|
20025
|
-
const renderView = (item, index) => {
|
20026
|
-
var _a, _b, _c, _d;
|
20027
|
-
const rec = cloneDeep(recData);
|
20028
|
-
rec.video.bindProducts = item === null || item === void 0 ? void 0 : item.bindProducts;
|
20029
|
-
rec.video.title = (item === null || item === void 0 ? void 0 : item.title) || '';
|
20030
|
-
return (React.createElement("div", { style: { position: 'relative' } },
|
20031
|
-
React.createElement(SwiperSlide, { key: index, virtualIndex: index, style: { overflow: 'hidden', position: 'relative' } },
|
20032
|
-
renderBottom(rec, index),
|
20033
|
-
renderLikeButton(rec, index),
|
20034
|
-
renderToggleButton(!(globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconFixed)),
|
20035
|
-
React.createElement(ToggleButton$1, { style: {
|
20036
|
-
position: 'absolute',
|
20037
|
-
right: (_a = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconX) !== null && _a !== void 0 ? _a : 0,
|
20038
|
-
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',
|
20039
|
-
bottom: (_d = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _d !== void 0 ? _d : 23,
|
20040
|
-
zIndex: 999
|
20041
|
-
}, 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 }),
|
20042
|
-
renderContent(item, index))));
|
20043
|
-
};
|
20044
|
-
useEffect(() => {
|
20045
|
-
var _a, _b;
|
20046
|
-
if (!(swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current))
|
20047
|
-
return;
|
20048
|
-
(_b = (_a = swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper) === null || _b === void 0 ? void 0 : _b.slideTo(activeIndex);
|
20049
|
-
}, [activeIndex]);
|
20050
|
-
useEffect(() => {
|
20051
|
-
if (!(swiperRef === null || swiperRef === void 0 ? void 0 : swiperRef.current))
|
20052
|
-
return;
|
20053
|
-
// swiperRef?.current?.swiper?.slideTo(0);
|
20054
|
-
setLooPlaySwiper(loopPlay);
|
20055
|
-
}, [loopPlay]);
|
20056
|
-
const handleSessionExpire = useCallback(debounce(() => {
|
20057
|
-
setLooPlaySwiper(false);
|
20058
|
-
}, 1000), []);
|
20059
|
-
useEffect(() => {
|
20060
|
-
const events = ['touchstart', 'touchcancel'];
|
20061
|
-
events.forEach((event) => {
|
20062
|
-
window.addEventListener(event, handleSessionExpire);
|
20063
|
-
});
|
20064
|
-
return () => {
|
20065
|
-
events.forEach((event) => {
|
20066
|
-
window.removeEventListener(event, handleSessionExpire);
|
20067
|
-
});
|
20068
|
-
};
|
20069
|
-
}, [handleSessionExpire]);
|
20070
|
-
return (React.createElement("div", { id: 'sxp-render',
|
20071
|
-
// className={style['clc-sxp-container']}
|
20072
|
-
style: { height: containerHeight, position: 'relative', pointerEvents } },
|
20073
|
-
React.createElement(Swiper, { ref: swiperRef, allowTouchMove: pointerEvents !== 'none', onSlideChange: () => {
|
20074
|
-
swiperRef.current.swiper.allowTouchMove = false;
|
20075
|
-
setTimeout(() => {
|
20076
|
-
swiperRef.current.swiper.allowTouchMove = true;
|
20077
|
-
}, 500);
|
20078
|
-
}, onActiveIndexChange: (swiper) => {
|
20079
|
-
// setActiveIndex(swiper.activeIndex);
|
20080
|
-
onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(swiper.activeIndex);
|
20081
|
-
}, direction: 'vertical', style: { overflow: 'hidden', height: containerHeight }, height: containerHeight }, scenes === null || scenes === void 0 ? void 0 : scenes.map((rec, index) => {
|
20082
|
-
return renderView(rec, index);
|
20083
|
-
}))));
|
20084
|
-
};
|
20085
|
-
var DiyStoryPreview$1 = memo(DiyStoryPreview);
|
20086
|
-
|
20087
19435
|
/*
|
20088
19436
|
* @Author: binruan@chatlabs.com
|
20089
19437
|
* @Date: 2023-10-31 10:56:01
|
20090
19438
|
* @LastEditors: binruan@chatlabs.com
|
20091
|
-
* @LastEditTime:
|
19439
|
+
* @LastEditTime: 2024-10-23 15:07:29
|
20092
19440
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Popup\index.tsx
|
20093
19441
|
*
|
20094
19442
|
*/
|
@@ -20180,9 +19528,17 @@ const Popup = () => {
|
|
20180
19528
|
|
20181
19529
|
/*
|
20182
19530
|
* @Author: binruan@chatlabs.com
|
20183
|
-
* @Date: 2024-
|
19531
|
+
* @Date: 2024-01-15 19:03:09
|
20184
19532
|
* @LastEditors: binruan@chatlabs.com
|
20185
|
-
* @LastEditTime: 2025-
|
19533
|
+
* @LastEditTime: 2025-02-24 15:47:44
|
19534
|
+
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageCore\index.tsx
|
19535
|
+
*
|
19536
|
+
*/
|
19537
|
+
/*
|
19538
|
+
* @Author: binruan@chatlabs.com
|
19539
|
+
* @Date: 2023-11-24 15:58:00
|
19540
|
+
* @LastEditors: binruan@chatlabs.com
|
19541
|
+
* @LastEditTime: 2023-12-26 10:24:42
|
20186
19542
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageCore\index.tsx
|
20187
19543
|
*
|
20188
19544
|
*/
|
@@ -20190,20 +19546,20 @@ const RESOLVER = {};
|
|
20190
19546
|
Object.values(_materials_).forEach((v) => {
|
20191
19547
|
RESOLVER[v.extend.type] = v;
|
20192
19548
|
});
|
20193
|
-
const SxpPageCore = ({ data, maxSize = 10, defaultSize = 10, hashTagSize = 20, loadingImage, appDomain, enabledMetaConversionApi, dataList
|
20194
|
-
var _a, _b, _c, _d, _e, _f
|
19549
|
+
const SxpPageCore = ({ data, maxSize = 10, defaultSize = 10, hashTagSize = 20, loadingImage, appDomain, enabledMetaConversionApi, dataList }) => {
|
19550
|
+
var _a, _b, _c, _d, _e, _f;
|
20195
19551
|
const utmVal = useMemo(() => {
|
20196
19552
|
var _a;
|
20197
19553
|
const searchParams = (location === null || location === void 0 ? void 0 : location.search) ? (_a = location === null || location === void 0 ? void 0 : location.search) === null || _a === void 0 ? void 0 : _a.replace('?', '') : '';
|
20198
19554
|
return searchParams;
|
20199
19555
|
}, []);
|
20200
|
-
const [_schema, setSchema] = useState(
|
19556
|
+
const [_schema, setSchema] = useState(data === null || data === void 0 ? void 0 : data.data);
|
20201
19557
|
const [channel, setChannel] = useState();
|
20202
19558
|
return (React.createElement(EditorCore, { resolver: RESOLVER, enableDataSource: false, schema: _schema, utmVal: channel || utmVal },
|
20203
|
-
React.createElement(SxpDataSourceProvider$1, { utmVal: utmVal, dataSources: data === null || data === void 0 ? void 0 : data.data_sources, sxpParameter: data === null || data === void 0 ? void 0 : data.sxp_parameter, maxSize: (
|
20204
|
-
var _a
|
19559
|
+
React.createElement(SxpDataSourceProvider$1, { utmVal: utmVal, dataSources: data === null || data === void 0 ? void 0 : data.data_sources, sxpParameter: data === null || data === void 0 ? void 0 : data.sxp_parameter, maxSize: (_b = (_a = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _a === void 0 ? void 0 : _a.personalized_recommend) !== null && _b !== void 0 ? _b : maxSize, defaultSize: (_d = (_c = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _c === void 0 ? void 0 : _c.default_recommend) !== null && _d !== void 0 ? _d : defaultSize, hashTagSize: (_f = (_e = data === null || data === void 0 ? void 0 : data.sxp_parameter) === null || _e === void 0 ? void 0 : _e.hash_tag_size) !== null && _f !== void 0 ? _f : hashTagSize, loadingImage: loadingImage, appDomain: appDomain, enabledMetaConversionApi: enabledMetaConversionApi, utmParameter: data === null || data === void 0 ? void 0 : data.utm_parameter, data: data, dataList: dataList, onUpdateSchema: (d) => setSchema(d), onUpdateChannel: (d) => setChannel(d), render: ({ rtcList, tagList, pageData }) => {
|
19560
|
+
var _a;
|
20205
19561
|
return (React.createElement(React.Fragment, null,
|
20206
|
-
React.createElement(
|
19562
|
+
React.createElement(SxpPageRender$1, Object.assign({ defaultData: data }, (_a = pageData === null || pageData === void 0 ? void 0 : pageData.data) === null || _a === void 0 ? void 0 : _a.sxpPageConf, { tagList: tagList, data: rtcList, resolver: RESOLVER })),
|
20207
19563
|
React.createElement(Popup, null)));
|
20208
19564
|
} })));
|
20209
19565
|
};
|
@@ -20213,9 +19569,9 @@ var index = memo(SxpPageCore);
|
|
20213
19569
|
* @Author : haocanweng@chatlabs.cn
|
20214
19570
|
* @Date : 2023-08-21 16:31:58
|
20215
19571
|
* @LastEditors: binruan@chatlabs.com
|
20216
|
-
* @LastEditTime:
|
19572
|
+
* @LastEditTime: 2024-06-25 11:37:48
|
20217
19573
|
* @FilePath: \pb-sxp-ui\src\index.ts
|
20218
19574
|
*/
|
20219
19575
|
|
20220
|
-
export { index$1 as DiyPortalPreview,
|
19576
|
+
export { index$1 as DiyPortalPreview, EditorDataProvider, Modal$1 as Modal, SxpDataSourceProvider$1 as SxpDataSourceProvider, index as SxpPageCore, SxpPageRender$1 as SxpPageRender, index$2 as core, Pagebuilder as default, _materials_ as materials, useEditorDataProvider };
|
20221
19577
|
//# sourceMappingURL=index.js.map
|