pb-sxp-ui 1.20.13 → 1.20.15
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/LICENSE +21 -21
- package/README.md +111 -111
- package/dist/index.cjs +1187 -383
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +73 -72
- package/dist/index.js +1187 -384
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +7 -7
- package/dist/index.min.cjs.map +1 -1
- package/dist/index.min.js +7 -7
- package/dist/index.min.js.map +1 -1
- package/dist/pb-ui.js +1187 -383
- package/dist/pb-ui.js.map +1 -1
- package/dist/pb-ui.min.js +7 -7
- package/dist/pb-ui.min.js.map +1 -1
- package/es/core/components/DiyPortalPreview/VideoWidget.js +10 -8
- package/es/core/components/DiyStoryPreview/index.js +10 -4
- package/es/core/components/StructurePage/index.d.ts +89 -0
- package/es/core/components/StructurePage/index.js +700 -0
- package/es/core/components/SxpPageRender/LikeButton/index.js +20 -18
- package/es/core/components/SxpPageRender/PictureGroup/index.d.ts +5 -0
- package/es/core/components/SxpPageRender/PictureGroup/index.js +39 -13
- package/es/core/components/SxpPageRender/VideoWidget/index.js +33 -46
- package/es/core/components/SxpPageRender/WaterFall/index.js +4 -3
- package/es/core/components/SxpPageRender/fakeData.js +1 -1
- package/es/core/components/SxpPageRender/index.js +66 -44
- package/es/core/context/SxpDataSourceProvider.d.ts +5 -12
- package/es/core/context/SxpDataSourceProvider.js +84 -38
- package/es/core/hooks/useEventReport.js +6 -5
- package/es/core/hooks/useVisibleHeight.js +7 -7
- package/es/core/index.d.ts +2 -0
- package/es/core/index.js +1 -0
- package/es/core/utils/materials.d.ts +1 -1
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- package/es/materials/sxp/MultiPosts/index.js +4 -4
- package/es/materials/sxp/popup/CommodityDetail/index.js +4 -4
- package/es/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
- package/lib/core/components/DiyPortalPreview/VideoWidget.js +10 -8
- package/lib/core/components/DiyStoryPreview/index.js +10 -4
- package/lib/core/components/StructurePage/index.d.ts +89 -0
- package/lib/core/components/StructurePage/index.js +702 -0
- package/lib/core/components/SxpPageRender/LikeButton/index.js +20 -18
- package/lib/core/components/SxpPageRender/PictureGroup/index.d.ts +5 -0
- package/lib/core/components/SxpPageRender/PictureGroup/index.js +38 -12
- package/lib/core/components/SxpPageRender/VideoWidget/index.js +33 -46
- package/lib/core/components/SxpPageRender/WaterFall/index.js +4 -3
- package/lib/core/components/SxpPageRender/fakeData.js +1 -1
- package/lib/core/components/SxpPageRender/index.js +66 -44
- package/lib/core/context/SxpDataSourceProvider.d.ts +5 -12
- package/lib/core/context/SxpDataSourceProvider.js +84 -38
- package/lib/core/hooks/useEventReport.js +6 -5
- package/lib/core/hooks/useVisibleHeight.js +7 -7
- package/lib/core/index.d.ts +2 -0
- package/lib/core/index.js +6 -1
- package/lib/core/utils/materials.d.ts +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +3 -1
- package/lib/materials/sxp/MultiPosts/index.js +4 -4
- package/lib/materials/sxp/popup/CommodityDetail/index.js +4 -4
- package/lib/materials/sxp/popup/CommodityDetailDiroNew/index.js +1 -1
- package/package.json +111 -111
|
@@ -22,7 +22,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
|
|
|
22
22
|
}, []);
|
|
23
23
|
const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');
|
|
24
24
|
const handlePlaying = useCallback(() => {
|
|
25
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
25
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
26
26
|
setIsPauseVideo(false);
|
|
27
27
|
const item = data[index];
|
|
28
28
|
if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
|
|
@@ -35,14 +35,15 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
|
|
|
35
35
|
eventSubject: 'playVideo',
|
|
36
36
|
eventDescription: 'User played the video',
|
|
37
37
|
contentId: (_h = (_g = item === null || item === void 0 ? void 0 : item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
|
|
38
|
-
|
|
38
|
+
sceneId: (_l = (_k = (_j = item === null || item === void 0 ? void 0 : item.video) === null || _j === void 0 ? void 0 : _j.scene) === null || _k === void 0 ? void 0 : _k.sceneId) !== null && _l !== void 0 ? _l : '',
|
|
39
|
+
contentName: (_o = (_m = item === null || item === void 0 ? void 0 : item.video) === null || _m === void 0 ? void 0 : _m.title) !== null && _o !== void 0 ? _o : '',
|
|
39
40
|
playType,
|
|
40
41
|
startTime: videoCurrentTime,
|
|
41
42
|
videoDuration,
|
|
42
|
-
contentTags: JSON.stringify((
|
|
43
|
+
contentTags: JSON.stringify((_q = (_p = item === null || item === void 0 ? void 0 : item.video) === null || _p === void 0 ? void 0 : _p.tags) !== null && _q !== void 0 ? _q : []),
|
|
43
44
|
position: index + '',
|
|
44
45
|
contentFormat: 'video',
|
|
45
|
-
traceInfo: (
|
|
46
|
+
traceInfo: (_r = item === null || item === void 0 ? void 0 : item.video) === null || _r === void 0 ? void 0 : _r.traceInfo
|
|
46
47
|
}
|
|
47
48
|
});
|
|
48
49
|
setIsFirstPlay(false);
|
|
@@ -81,7 +82,7 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
|
|
|
81
82
|
}
|
|
82
83
|
}, [isLoadFinish]);
|
|
83
84
|
const onPause = useCallback(() => {
|
|
84
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
85
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
85
86
|
const item = data[index];
|
|
86
87
|
const videoDuration = ((_b = (_a = videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
|
|
87
88
|
const videoCurrentTime = ((_d = (_c = videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
|
@@ -92,14 +93,15 @@ const VideoWidget = ({ rec, index, height, data, muted, activeIndex, videoPostCo
|
|
|
92
93
|
eventSubject: 'playOverVideo',
|
|
93
94
|
eventDescription: 'User finished playing the video',
|
|
94
95
|
contentId: (_h = (_g = item === null || item === void 0 ? void 0 : item.video) === null || _g === void 0 ? void 0 : _g.itemId) !== null && _h !== void 0 ? _h : '',
|
|
95
|
-
|
|
96
|
+
sceneId: (_l = (_k = (_j = item === null || item === void 0 ? void 0 : item.video) === null || _j === void 0 ? void 0 : _j.scene) === null || _k === void 0 ? void 0 : _k.sceneId) !== null && _l !== void 0 ? _l : '',
|
|
97
|
+
contentName: (_o = (_m = item === null || item === void 0 ? void 0 : item.video) === null || _m === void 0 ? void 0 : _m.title) !== null && _o !== void 0 ? _o : '',
|
|
96
98
|
endTime: videoCurrentTime,
|
|
97
99
|
videoDuration,
|
|
98
100
|
playDuration,
|
|
99
|
-
contentTags: JSON.stringify((
|
|
101
|
+
contentTags: JSON.stringify((_q = (_p = item === null || item === void 0 ? void 0 : item.video) === null || _p === void 0 ? void 0 : _p.tags) !== null && _q !== void 0 ? _q : []),
|
|
100
102
|
position: index + '',
|
|
101
103
|
contentFormat: 'video',
|
|
102
|
-
traceInfo: (
|
|
104
|
+
traceInfo: (_r = item === null || item === void 0 ? void 0 : item.video) === null || _r === void 0 ? void 0 : _r.traceInfo
|
|
103
105
|
}
|
|
104
106
|
});
|
|
105
107
|
}
|
|
@@ -207,10 +207,16 @@ const DiyStoryPreview = forwardRef(({ data = [], globalConfig, tipText, nudge, t
|
|
|
207
207
|
}, [handleSessionExpire, disabledListener]);
|
|
208
208
|
return (React.createElement("div", { id: 'sxp-render', style: { height: containerHeight, position: 'relative', pointerEvents } },
|
|
209
209
|
React.createElement(Swiper, { ref: swiperRef, allowTouchMove: pointerEvents !== 'none', onSlideChange: () => {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
swiperRef.current.swiper.allowTouchMove =
|
|
213
|
-
|
|
210
|
+
var _a;
|
|
211
|
+
if ((_a = swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper) {
|
|
212
|
+
swiperRef.current.swiper.allowTouchMove = false;
|
|
213
|
+
setTimeout(() => {
|
|
214
|
+
var _a;
|
|
215
|
+
if ((_a = swiperRef.current) === null || _a === void 0 ? void 0 : _a.swiper) {
|
|
216
|
+
swiperRef.current.swiper.allowTouchMove = true;
|
|
217
|
+
}
|
|
218
|
+
}, 500);
|
|
219
|
+
}
|
|
214
220
|
}, onActiveIndexChange: (swiper) => {
|
|
215
221
|
setCurIndex(swiper === null || swiper === void 0 ? void 0 : swiper.activeIndex);
|
|
216
222
|
onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(swiper.activeIndex);
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { FC, CSSProperties } from 'react';
|
|
2
|
+
export interface IPostData {
|
|
3
|
+
traceInfo: string;
|
|
4
|
+
itemId: string;
|
|
5
|
+
tags?: string[] | null;
|
|
6
|
+
cover?: string | null;
|
|
7
|
+
url?: string | null;
|
|
8
|
+
title?: string | null;
|
|
9
|
+
imgUrls?: string[] | null;
|
|
10
|
+
text?: string;
|
|
11
|
+
bindCta?: {
|
|
12
|
+
title: string;
|
|
13
|
+
link?: string | null;
|
|
14
|
+
} | null;
|
|
15
|
+
bindProduct?: any;
|
|
16
|
+
bindProducts?: any[];
|
|
17
|
+
scene?: {
|
|
18
|
+
cta?: string;
|
|
19
|
+
position?: number;
|
|
20
|
+
type?: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface IProductData {
|
|
24
|
+
traceInfo: string;
|
|
25
|
+
itemId: string;
|
|
26
|
+
title: string;
|
|
27
|
+
cover: string;
|
|
28
|
+
homePage: string[];
|
|
29
|
+
price: number;
|
|
30
|
+
currency: string;
|
|
31
|
+
link?: string | null;
|
|
32
|
+
info?: string;
|
|
33
|
+
description?: string | null;
|
|
34
|
+
text?: string | null;
|
|
35
|
+
landingImageUrl?: string;
|
|
36
|
+
position?: string | null;
|
|
37
|
+
bindCta?: {
|
|
38
|
+
title: string;
|
|
39
|
+
link?: string | null;
|
|
40
|
+
} | null;
|
|
41
|
+
}
|
|
42
|
+
export interface IMultiCtaData {
|
|
43
|
+
heroSection?: IPostData;
|
|
44
|
+
carouselSection?: IPostData[];
|
|
45
|
+
highlightRevealSection?: IProductData;
|
|
46
|
+
productGridSection?: IProductData[];
|
|
47
|
+
footerSection?: IProductData;
|
|
48
|
+
}
|
|
49
|
+
export interface IApiResponse {
|
|
50
|
+
code: string;
|
|
51
|
+
message: string;
|
|
52
|
+
data: {
|
|
53
|
+
recList?: Array<{
|
|
54
|
+
position: number;
|
|
55
|
+
video: any;
|
|
56
|
+
product: any;
|
|
57
|
+
multiCta: IMultiCtaData;
|
|
58
|
+
isCollected: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
channel?: string;
|
|
61
|
+
productUserId?: string;
|
|
62
|
+
multiCta?: IMultiCtaData;
|
|
63
|
+
position?: number;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export interface IStructurePageProps {
|
|
67
|
+
containerStyle?: CSSProperties;
|
|
68
|
+
containerHeight?: number;
|
|
69
|
+
containerWidth?: number;
|
|
70
|
+
className?: string;
|
|
71
|
+
apiUrl?: string;
|
|
72
|
+
requestBody?: {
|
|
73
|
+
maxSize?: number;
|
|
74
|
+
defaultSize?: number;
|
|
75
|
+
type?: string;
|
|
76
|
+
channel?: string;
|
|
77
|
+
productUserId?: string;
|
|
78
|
+
[key: string]: any;
|
|
79
|
+
};
|
|
80
|
+
editorMode?: boolean;
|
|
81
|
+
multiCTAConfig?: Record<string, any>;
|
|
82
|
+
videoPlayIcon?: string;
|
|
83
|
+
isCmsMode?: boolean;
|
|
84
|
+
storyId?: string;
|
|
85
|
+
customHeaders?: Record<string, string>;
|
|
86
|
+
[key: string]: any;
|
|
87
|
+
}
|
|
88
|
+
declare const StructurePage: FC<IStructurePageProps>;
|
|
89
|
+
export default StructurePage;
|