pb-sxp-ui 1.0.101 → 1.0.102
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 +166 -126
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +10 -3
- package/dist/index.js +167 -126
- package/dist/index.js.map +1 -1
- package/dist/index.min.cjs +3 -3
- package/dist/index.min.cjs.map +1 -1
- package/dist/index.min.js +3 -3
- package/dist/index.min.js.map +1 -1
- package/dist/pb-ui.js +166 -126
- package/dist/pb-ui.js.map +1 -1
- package/dist/pb-ui.min.js +3 -3
- package/dist/pb-ui.min.js.map +1 -1
- package/es/core/components/SxpPageRender/Nudge/index.d.ts +2 -0
- package/es/core/components/SxpPageRender/Nudge/index.js +5 -2
- package/es/core/components/SxpPageRender/VideoWidget/VideoPlayer.d.ts +1 -0
- package/es/core/components/SxpPageRender/VideoWidget/VideoPlayer.js +22 -0
- package/es/core/components/SxpPageRender/VideoWidget/index.d.ts +0 -1
- package/es/core/components/SxpPageRender/VideoWidget/index.js +93 -85
- package/es/core/components/SxpPageRender/index.js +3 -25
- package/es/materials/sxp/popup/AppointForm/settingRender.js +2 -2
- package/es/materials/sxp/popup/Prompt/index.d.ts +1 -0
- package/es/materials/sxp/popup/Prompt/index.js +4 -2
- package/es/materials/sxp/popup/Prompt/settingRender.d.ts +12 -0
- package/es/materials/sxp/popup/Prompt/settingRender.js +33 -4
- package/lib/core/components/SxpPageRender/Nudge/index.d.ts +2 -0
- package/lib/core/components/SxpPageRender/Nudge/index.js +5 -2
- package/lib/core/components/SxpPageRender/VideoWidget/VideoPlayer.d.ts +1 -0
- package/lib/core/components/SxpPageRender/VideoWidget/VideoPlayer.js +26 -0
- package/lib/core/components/SxpPageRender/VideoWidget/index.d.ts +0 -1
- package/lib/core/components/SxpPageRender/VideoWidget/index.js +93 -85
- package/lib/core/components/SxpPageRender/index.js +3 -25
- package/lib/materials/sxp/popup/AppointForm/settingRender.js +2 -2
- package/lib/materials/sxp/popup/Prompt/index.d.ts +1 -0
- package/lib/materials/sxp/popup/Prompt/index.js +4 -2
- package/lib/materials/sxp/popup/Prompt/settingRender.d.ts +12 -0
- package/lib/materials/sxp/popup/Prompt/settingRender.js +33 -4
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -6,6 +6,7 @@ import qs from 'qs';
|
|
6
6
|
import EventEmitter from 'eventemitter3';
|
7
7
|
import { css } from '@emotion/css';
|
8
8
|
import * as ReactDOM from 'react-dom';
|
9
|
+
import ReactDOM__default from 'react-dom';
|
9
10
|
|
10
11
|
/******************************************************************************
|
11
12
|
Copyright (c) Microsoft Corporation.
|
@@ -1090,7 +1091,7 @@ var interactionRender$8 = [
|
|
1090
1091
|
* @Author: binruan@chatlabs.com
|
1091
1092
|
* @Date: 2023-07-28 18:29:57
|
1092
1093
|
* @LastEditors: binruan@chatlabs.com
|
1093
|
-
* @LastEditTime: 2024-
|
1094
|
+
* @LastEditTime: 2024-07-02 10:01:21
|
1094
1095
|
* @FilePath: \pb-sxp-ui\src\materials\sxp\popup\AppointForm\settingRender.tsx
|
1095
1096
|
*
|
1096
1097
|
*/
|
@@ -1114,12 +1115,12 @@ var settingRender$6 = [
|
|
1114
1115
|
child: [
|
1115
1116
|
{
|
1116
1117
|
type: 'Select',
|
1117
|
-
name: ['
|
1118
|
+
name: ['textStyle', 'fontFamily-cn'],
|
1118
1119
|
bottomText: '中文字体'
|
1119
1120
|
},
|
1120
1121
|
{
|
1121
1122
|
type: 'Select',
|
1122
|
-
name: ['
|
1123
|
+
name: ['textStyle', 'fontFamily-en'],
|
1123
1124
|
bottomText: '英文/其他字体'
|
1124
1125
|
}
|
1125
1126
|
]
|
@@ -1346,7 +1347,7 @@ function useEventReport() {
|
|
1346
1347
|
* @Author: binruan@chatlabs.com
|
1347
1348
|
* @Date: 2024-06-27 16:22:34
|
1348
1349
|
* @LastEditors: binruan@chatlabs.com
|
1349
|
-
* @LastEditTime: 2024-
|
1350
|
+
* @LastEditTime: 2024-07-02 10:34:34
|
1350
1351
|
* @FilePath: \pb-sxp-ui\src\materials\sxp\popup\AppointForm\Form.tsx
|
1351
1352
|
*
|
1352
1353
|
*/
|
@@ -8905,7 +8906,7 @@ var interactionRender$7 = [
|
|
8905
8906
|
* @Author: binruan@chatlabs.com
|
8906
8907
|
* @Date: 2023-10-27 14:06:35
|
8907
8908
|
* @LastEditors: binruan@chatlabs.com
|
8908
|
-
* @LastEditTime: 2024-
|
8909
|
+
* @LastEditTime: 2024-07-02 09:58:06
|
8909
8910
|
* @FilePath: \pb-sxp-ui\src\materials\sxp\popup\Prompt\settingRender.tsx
|
8910
8911
|
*
|
8911
8912
|
*/
|
@@ -8925,9 +8926,37 @@ var settingRender$4 = [
|
|
8925
8926
|
name: ['props', 'content']
|
8926
8927
|
},
|
8927
8928
|
{
|
8928
|
-
type: '
|
8929
|
-
label: '
|
8930
|
-
|
8929
|
+
type: 'Group',
|
8930
|
+
label: '内容字体',
|
8931
|
+
child: [
|
8932
|
+
{
|
8933
|
+
type: 'Select',
|
8934
|
+
name: ['props', 'contentStyle', 'fontFamily-cn'],
|
8935
|
+
bottomText: '中文字体'
|
8936
|
+
},
|
8937
|
+
{
|
8938
|
+
type: 'Select',
|
8939
|
+
name: ['props', 'contentStyle', 'fontFamily-en'],
|
8940
|
+
bottomText: '英文/其他字体'
|
8941
|
+
}
|
8942
|
+
]
|
8943
|
+
},
|
8944
|
+
{
|
8945
|
+
type: 'Group',
|
8946
|
+
label: '',
|
8947
|
+
child: [
|
8948
|
+
{
|
8949
|
+
type: 'Color',
|
8950
|
+
name: ['props', 'contentStyle', 'color'],
|
8951
|
+
initialValue: '#000'
|
8952
|
+
},
|
8953
|
+
{
|
8954
|
+
type: 'Number',
|
8955
|
+
name: ['props', 'contentStyle', 'fontSize'],
|
8956
|
+
addonAfter: 'px',
|
8957
|
+
initialValue: 14
|
8958
|
+
}
|
8959
|
+
]
|
8931
8960
|
},
|
8932
8961
|
{
|
8933
8962
|
type: 'Group',
|
@@ -8973,7 +9002,8 @@ var settingRender$4 = [
|
|
8973
9002
|
{
|
8974
9003
|
label: '提交按钮颜色',
|
8975
9004
|
type: 'Color',
|
8976
|
-
name: ['props', 'submitButtonStyle', 'backgroundColor']
|
9005
|
+
name: ['props', 'submitButtonStyle', 'backgroundColor'],
|
9006
|
+
initialValue: '#000'
|
8977
9007
|
}
|
8978
9008
|
]
|
8979
9009
|
}
|
@@ -9014,7 +9044,7 @@ const getMediaValueByMode = (obj) => {
|
|
9014
9044
|
};
|
9015
9045
|
|
9016
9046
|
const Prompt$1 = (_a) => {
|
9017
|
-
var { content, btnText, style, icon, isPopup, isExternalLink, onClose, onClick, submitButtonStyle } = _a, props = __rest(_a, ["content", "btnText", "style", "icon", "isPopup", "isExternalLink", "onClose", "onClick", "submitButtonStyle"]);
|
9047
|
+
var { content, btnText, style, icon, isPopup, isExternalLink, onClose, onClick, submitButtonStyle, contentStyle } = _a, props = __rest(_a, ["content", "btnText", "style", "icon", "isPopup", "isExternalLink", "onClose", "onClick", "submitButtonStyle", "contentStyle"]);
|
9018
9048
|
const { popupDetailData } = useSxpDataSource();
|
9019
9049
|
const { jumpToWeb } = useEventReport();
|
9020
9050
|
const iconSrc = typeof icon === 'string' ? icon : getMediaValueByMode(icon);
|
@@ -9035,7 +9065,9 @@ const Prompt$1 = (_a) => {
|
|
9035
9065
|
return (React.createElement("div", Object.assign({ className: `pb-prompt ${css(Object.assign({}, style))}` }, props),
|
9036
9066
|
React.createElement("div", { className: 'pb-prompt-icon' },
|
9037
9067
|
React.createElement("img", { width: '100%', src: iconSrc !== null && iconSrc !== void 0 ? iconSrc : img$3, alt: 'success image' })),
|
9038
|
-
React.createElement("div", { className: 'pb-prompt-content'
|
9068
|
+
React.createElement("div", { className: 'pb-prompt-content', style: contentStyle, dangerouslySetInnerHTML: {
|
9069
|
+
__html: setFontForText(content, contentStyle)
|
9070
|
+
} }),
|
9039
9071
|
React.createElement("button", { "aria-label": btnText, className: 'pb-prompt-btn', style: submitButtonStyle, onClick: handleOk, dangerouslySetInnerHTML: {
|
9040
9072
|
__html: setFontForText(btnText, submitButtonStyle)
|
9041
9073
|
} })));
|
@@ -13060,7 +13092,29 @@ var LikeButton$1 = memo(LikeButton);
|
|
13060
13092
|
|
13061
13093
|
var img$1 = "data:image/gif;base64,R0lGODlhlgCWAPf/AAAAAICAgMzMzMzMzNXV1dXV1dXV1dfX19jOztjY2NvOztvb29zc3N/Pz9/V1d/f3+Pj4+bm5ubm5ujR0ejg4Ojo6Onp6erj4+rj4+rl5evr6+vr6+3k5O3t7e3t7e7u7u7u7u/v7/Dw8PDw8PHx8fHx8fHx8fLs7PLu7vLu7vLy8vPu7vPz8/Tp6fTx8fTx8fT09PT09PT09PXw8Pbx8fbz8/b29vb29vb29vb29vb29vf09Pf39/f39/f39/f39/f39/f39/f39/f39/f39/j09Pj09Pj19fj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pn29vn39/n5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fr09Pr4+Pr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vr6+vv39/v39/v4+Pv5+fv5+fv6+vv7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/z4+Pz5+fz5+fz5+fz6+vz6+vz6+vz6+vz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/P36+v36+v36+v37+/37+/37+/37+/38/P38/P38/P38/P39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f78/P78/P78/P78/P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v/V1f/39//4+P/6+v/7+//8/P/8/P/9/f/9/f/9/f/9/f/+/v/+/v/+/v/+/v///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD/ACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAwBLACxFABcADwAMAIYAAACAgIDMzMzV1dXX19fYzs7Y2Njbzs7b29vc3Nzfz8/f1dXf39/j4+Pm5ubo0dHo4ODo6Ojp6enq4+Pq5eXr6+vt5OTt7e3u7u7v7+/w8PDx8fHy7Ozy7u7y8vLz7u7z8/P06en08fH09PT18PD28fH28/P29vb39PT39/f49PT49fX4+Pj59vb59/f5+fn69PT6+Pj6+vr79/f7+Pj7+fn7+vr7+/v8+Pj8+fn8+vr8/Pz9+vr9+/v9/Pz9/f3+/Pz+/v7/1dX/9/f/+Pj/+vr/+/v//Pz//f3//v7///8A/wD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8IUgCXCNzxI8gOJQV3CFy4RIkMJTccQnQYZCGShAgNZiS45MfDiB8lglzSQyPGk0FCqpwY8iBKlyZFyly5xKRNmAJrzGQJcWFJmDB1MBQ4MwnDgAAAIfkECQQA/wAsRwAXAA8ADAAACFMA/wkslAhcqWKJsLkRyPAfODfgujyM+LAYQ4QGMR4sWGrhRIkQQVJcyFGjyYJrRqoU2aXYxowlS7L8SBNiIZg4XwqcGfIjw5g5G/6zUROcDYYBAQAh+QQJAwD/ACxIABcAEAAMAAAIWwD/CfzXqVSxRNgSlRrIEAm4LuDcPIz4sBNDcAYTYTy4MVEigRMlQhRJsYvAjB1TGuxio6RLkhJDaURJk+PCkDhHTvxXc6bNgzxh5ow40E3Pjm4Y/lszNKnAgAAAIfkECQMA/wAsSgAXABEADQAACGUA/wn856YLtkSlBioceAScG3BdHEJ0uLBLsUTgSl3MuLFUooESIz4UOfHhvzYYNabs2PFflJIwSUZcU0olx5U4SyEJyXNkyH84bwotFepfzJ4TB7IMqrGLwlIyeUZZuNAjR4UBAQAh+QQJBAD/ACxMABcAEgAOAAAIaAD/CRTYpdTAgwgFgusCzs1CcGvAJfwXBVypYoksYtSYqNjBhw4Zhmy4kJvAUhczpuTIEds/kSBjwiy4caXNmhhH6pRJEiVOlT8t/iM5kyhRk0NvAgX6cWfRKBNLLdXYZiLCiEhCHQwIACH5BAkDAP8ALE4AGAATAA4AAAhkAP8JBOcGXBeCxQQqXCiwWCJwpRxClMhwYMGDFwka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";
|
13062
13094
|
|
13063
|
-
const
|
13095
|
+
const mountVideoPlayerAtNode = (() => {
|
13096
|
+
if (typeof document === 'undefined')
|
13097
|
+
return;
|
13098
|
+
const playerContainer = document.createElement('div');
|
13099
|
+
const dom = ReactDOM__default.render(React.createElement("video", { id: 'player-container-id', playsInline: true, crossOrigin: 'anonymous', preload: 'auto', controls: false, muted: true, style: {
|
13100
|
+
backgroundColor: 'transparent',
|
13101
|
+
width: '100%',
|
13102
|
+
height: '100%',
|
13103
|
+
objectFit: 'cover',
|
13104
|
+
pointerEvents: 'none'
|
13105
|
+
} }), playerContainer);
|
13106
|
+
// 播放器的挂载节点
|
13107
|
+
return (domNode) => {
|
13108
|
+
if (!domNode)
|
13109
|
+
return;
|
13110
|
+
domNode.innerHTML = '';
|
13111
|
+
domNode.appendChild(dom);
|
13112
|
+
const videoPlayerWrapperNode = document.querySelector(`#player-container-id`);
|
13113
|
+
return videoPlayerWrapperNode;
|
13114
|
+
};
|
13115
|
+
})();
|
13116
|
+
|
13117
|
+
const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPostConfig, videoPlayIcon }) => {
|
13064
13118
|
const [isPauseVideo, setIsPauseVideo] = useState(false);
|
13065
13119
|
const { bffEventReport, sxpParameter, waterFallData, openHashtag, bffFbReport } = useSxpDataSource();
|
13066
13120
|
const videoStartTime = useRef(0);
|
@@ -13070,6 +13124,7 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
13070
13124
|
const canvasRef = useRef(null);
|
13071
13125
|
const [firstFrameSrc, setFirstFrameSrc] = useState('');
|
13072
13126
|
const [waiting, setWaiting] = useState(false);
|
13127
|
+
const videoRef = useRef();
|
13073
13128
|
const videoId = `pb-cache-video-${index}`;
|
13074
13129
|
const videoEleRef = useRef(null);
|
13075
13130
|
const blur = useMemo(() => {
|
@@ -13100,56 +13155,57 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
13100
13155
|
return isBgColor && (videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor) ? { backgroundColor: videoPostConfig === null || videoPostConfig === void 0 ? void 0 : videoPostConfig.bgColor } : {};
|
13101
13156
|
}, [videoPostConfig, isBgColor]);
|
13102
13157
|
useEffect(() => {
|
13103
|
-
if (!videoRef)
|
13158
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
13104
13159
|
return;
|
13105
|
-
videoRef.muted = muted;
|
13106
|
-
}, [muted, videoRef]);
|
13160
|
+
videoRef.current.muted = muted;
|
13161
|
+
}, [muted, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
|
13107
13162
|
const handlePlay = useCallback(() => {
|
13108
|
-
|
13163
|
+
var _a;
|
13164
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
13109
13165
|
return;
|
13110
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.play();
|
13111
|
-
}, [videoRef]);
|
13166
|
+
(_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
13167
|
+
}, [videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
|
13112
13168
|
const PAUSE_ICON = useIconLink('/pb_static/06f28a2025c74c1cb49be6767316d827.png');
|
13113
13169
|
const handlePlaying = useCallback(() => {
|
13114
|
-
if (!videoRef)
|
13170
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
13115
13171
|
return;
|
13116
13172
|
setWaiting(false);
|
13117
13173
|
setIsLoadFinish(true);
|
13118
13174
|
}, []);
|
13119
13175
|
const handleStartPlay = useCallback(() => {
|
13120
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
13121
|
-
if (!videoRef)
|
13176
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
13177
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
13122
13178
|
return;
|
13123
13179
|
setIsPauseVideo(false);
|
13124
13180
|
const item = data[index];
|
13125
|
-
if (item && (videoRef === null || videoRef === void 0 ? void 0 : videoRef.duration)) {
|
13126
|
-
videoStartTime.current = (videoRef === null || videoRef === void 0 ? void 0 : videoRef.currentTime) || 0;
|
13127
|
-
const videoDuration = ((
|
13128
|
-
const videoCurrentTime = ((
|
13181
|
+
if (item && ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration)) {
|
13182
|
+
videoStartTime.current = ((_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.currentTime) || 0;
|
13183
|
+
const videoDuration = ((_d = (_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.duration) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
13184
|
+
const videoCurrentTime = ((_f = (_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.currentTime) !== null && _f !== void 0 ? _f : 0).toFixed(2);
|
13129
13185
|
const playType = isFirstPlay ? '0' : '1';
|
13130
13186
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
13131
13187
|
eventInfo: {
|
13132
13188
|
eventSubject: 'playVideo',
|
13133
13189
|
eventDescription: 'User played the video',
|
13134
|
-
contentId: (
|
13135
|
-
contentName: (
|
13190
|
+
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 : '',
|
13191
|
+
contentName: (_k = (_j = item === null || item === void 0 ? void 0 : item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
|
13136
13192
|
playType,
|
13137
13193
|
startTime: videoCurrentTime,
|
13138
13194
|
videoDuration,
|
13139
|
-
contentTags: JSON.stringify((
|
13195
|
+
contentTags: JSON.stringify((_m = (_l = item === null || item === void 0 ? void 0 : item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
|
13140
13196
|
position: index + '',
|
13141
13197
|
contentFormat: 'video',
|
13142
|
-
traceInfo: (
|
13198
|
+
traceInfo: (_o = item === null || item === void 0 ? void 0 : item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
|
13143
13199
|
}
|
13144
13200
|
});
|
13145
13201
|
setIsFirstPlay(false);
|
13146
13202
|
}
|
13147
|
-
}, [bffEventReport, data, index, isFirstPlay, videoRef]);
|
13203
|
+
}, [bffEventReport, data, index, isFirstPlay, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
|
13148
13204
|
const handLoadeddata = useCallback(() => {
|
13149
13205
|
var _a;
|
13150
|
-
if (!videoRef || firstFrameSrc || !blur)
|
13206
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) || firstFrameSrc || !blur)
|
13151
13207
|
return;
|
13152
|
-
videoRef.style.objectFit = 'contain';
|
13208
|
+
videoRef.current.style.objectFit = 'contain';
|
13153
13209
|
if (((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.cover) || !canvasRef || !canvasRef.current || isBgColor)
|
13154
13210
|
return;
|
13155
13211
|
const setFrameImg = () => {
|
@@ -13159,158 +13215,163 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
13159
13215
|
const targetHeight = window === null || window === void 0 ? void 0 : window.innerHeight;
|
13160
13216
|
canvas.height = targetHeight;
|
13161
13217
|
canvas.width = targetWidth;
|
13162
|
-
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(videoRef, 0, 0, canvas.width, canvas.height);
|
13218
|
+
ctx === null || ctx === void 0 ? void 0 : ctx.drawImage(videoRef.current, 0, 0, canvas.width, canvas.height);
|
13163
13219
|
setFirstFrameSrc(canvas.toDataURL());
|
13164
13220
|
};
|
13165
13221
|
setFrameImg();
|
13166
13222
|
setTimeout(() => {
|
13167
13223
|
setFrameImg();
|
13168
13224
|
}, 500);
|
13169
|
-
}, [videoRef, isBgColor, rec, firstFrameSrc, blur]);
|
13225
|
+
}, [videoRef.current, isBgColor, rec, firstFrameSrc, blur]);
|
13170
13226
|
const handleLoadedmetadata = useCallback(() => {
|
13171
|
-
if (!videoRef)
|
13227
|
+
if (!videoRef.current)
|
13172
13228
|
return;
|
13173
13229
|
handleStartPlay();
|
13174
13230
|
handLoadeddata();
|
13175
|
-
}, [videoRef, handLoadeddata, handleStartPlay]);
|
13231
|
+
}, [videoRef.current, handLoadeddata, handleStartPlay]);
|
13176
13232
|
const handleClickVideo = useCallback((type) => () => {
|
13177
|
-
|
13233
|
+
var _a, _b, _c, _d, _e;
|
13234
|
+
if (!videoRef.current)
|
13178
13235
|
return;
|
13179
13236
|
if (!isLoadFinish)
|
13180
13237
|
return;
|
13181
|
-
const isPause = videoRef === null || videoRef === void 0 ? void 0 : videoRef.paused;
|
13238
|
+
const isPause = (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
|
13182
13239
|
switch (type) {
|
13183
13240
|
case 'start':
|
13184
13241
|
if (!isPause)
|
13185
13242
|
return;
|
13186
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.play();
|
13243
|
+
(_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.play();
|
13187
13244
|
setIsPauseVideo(false);
|
13188
13245
|
break;
|
13189
13246
|
case 'pause':
|
13190
13247
|
if (isPause)
|
13191
13248
|
return;
|
13192
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.pause();
|
13249
|
+
(_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.pause();
|
13193
13250
|
setIsPauseVideo(true);
|
13194
13251
|
break;
|
13195
13252
|
default:
|
13196
13253
|
if (isPause) {
|
13197
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.play();
|
13254
|
+
(_d = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _d === void 0 ? void 0 : _d.play();
|
13198
13255
|
}
|
13199
13256
|
else {
|
13200
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.pause();
|
13257
|
+
(_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.pause();
|
13201
13258
|
}
|
13202
13259
|
setIsPauseVideo(!isPause);
|
13203
13260
|
break;
|
13204
13261
|
}
|
13205
|
-
}, [isLoadFinish, videoRef]);
|
13262
|
+
}, [isLoadFinish, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
|
13206
13263
|
const handlePause = useCallback(() => {
|
13207
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
13208
|
-
if (!videoRef)
|
13264
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
13265
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
13209
13266
|
return;
|
13210
13267
|
if (activeIndex !== index)
|
13211
13268
|
return;
|
13212
13269
|
const item = data[index];
|
13213
|
-
const videoDuration = ((_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.duration) !== null &&
|
13214
|
-
const videoCurrentTime = ((
|
13215
|
-
if (videoRef === null || videoRef === void 0 ? void 0 : videoRef.duration) {
|
13216
|
-
const playDuration = ((videoRef === null || videoRef === void 0 ? void 0 : videoRef.currentTime) - videoStartTime.current).toFixed(2);
|
13270
|
+
const videoDuration = ((_b = (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0).toFixed(2);
|
13271
|
+
const videoCurrentTime = ((_d = (_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.currentTime) !== null && _d !== void 0 ? _d : 0).toFixed(2);
|
13272
|
+
if ((_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.duration) {
|
13273
|
+
const playDuration = (((_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.currentTime) - videoStartTime.current).toFixed(2);
|
13217
13274
|
bffEventReport === null || bffEventReport === void 0 ? void 0 : bffEventReport({
|
13218
13275
|
eventInfo: {
|
13219
13276
|
eventSubject: 'playOverVideo',
|
13220
13277
|
eventDescription: 'User finished playing the video',
|
13221
|
-
contentId: (
|
13222
|
-
contentName: (
|
13278
|
+
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 : '',
|
13279
|
+
contentName: (_k = (_j = item === null || item === void 0 ? void 0 : item.video) === null || _j === void 0 ? void 0 : _j.title) !== null && _k !== void 0 ? _k : '',
|
13223
13280
|
endTime: videoCurrentTime,
|
13224
13281
|
videoDuration,
|
13225
13282
|
playDuration,
|
13226
|
-
contentTags: JSON.stringify((
|
13283
|
+
contentTags: JSON.stringify((_m = (_l = item === null || item === void 0 ? void 0 : item.video) === null || _l === void 0 ? void 0 : _l.tags) !== null && _m !== void 0 ? _m : []),
|
13227
13284
|
position: index + '',
|
13228
13285
|
contentFormat: 'video',
|
13229
|
-
traceInfo: (
|
13286
|
+
traceInfo: (_o = item === null || item === void 0 ? void 0 : item.video) === null || _o === void 0 ? void 0 : _o.traceInfo
|
13230
13287
|
}
|
13231
13288
|
});
|
13232
13289
|
}
|
13233
|
-
}, [data, index, bffEventReport, videoRef, activeIndex]);
|
13290
|
+
}, [data, index, bffEventReport, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current, activeIndex]);
|
13234
13291
|
const handleWaiting = useCallback(() => {
|
13235
13292
|
setWaiting(true);
|
13236
13293
|
}, []);
|
13237
13294
|
useEffect(() => {
|
13238
|
-
|
13295
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
13296
|
+
if (!isActive)
|
13239
13297
|
return;
|
13240
13298
|
const videoSrc = rec === null || rec === void 0 ? void 0 : rec.video.url;
|
13241
13299
|
if (!videoSrc)
|
13242
13300
|
return;
|
13301
|
+
const videoPlayerWrapperNode = document.querySelector(`#${videoId}`);
|
13302
|
+
if (!videoPlayerWrapperNode)
|
13303
|
+
return;
|
13304
|
+
videoRef.current = mountVideoPlayerAtNode === null || mountVideoPlayerAtNode === void 0 ? void 0 : mountVideoPlayerAtNode(videoPlayerWrapperNode);
|
13305
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
13306
|
+
return;
|
13243
13307
|
const Hls = window === null || window === void 0 ? void 0 : window.Hls;
|
13244
13308
|
let hls = null;
|
13245
13309
|
if (videoSrc.includes('.m3u8') && Hls && Hls.isSupported()) {
|
13246
13310
|
hls = new Hls();
|
13247
13311
|
hls.loadSource(videoSrc);
|
13248
|
-
hls.attachMedia(videoRef);
|
13312
|
+
hls.attachMedia(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current);
|
13249
13313
|
hls.on(Hls.Events.MANIFEST_PARSED, function () {
|
13250
|
-
|
13314
|
+
var _a;
|
13315
|
+
(_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
13251
13316
|
});
|
13252
13317
|
}
|
13253
13318
|
else {
|
13254
|
-
videoRef.src = videoSrc;
|
13255
|
-
}
|
13256
|
-
|
13257
|
-
|
13258
|
-
|
13259
|
-
|
13260
|
-
|
13261
|
-
|
13262
|
-
videoRef.
|
13263
|
-
videoRef.
|
13264
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.addEventListener('
|
13265
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.addEventListener('
|
13266
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.addEventListener('play', handleStartPlay);
|
13267
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.addEventListener('playing', handlePlaying);
|
13268
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.addEventListener('pause', handlePause);
|
13269
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.addEventListener('ended', handlePlay);
|
13270
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.addEventListener('canplay', handlePlay);
|
13271
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.addEventListener('waiting', handleWaiting);
|
13319
|
+
videoRef.current.src = videoSrc;
|
13320
|
+
}
|
13321
|
+
(_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.setAttribute('x5-playsinline', 'true');
|
13322
|
+
(_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.setAttribute('webkit-playsinline', 'true');
|
13323
|
+
(_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.addEventListener('loadedmetadata', handleLoadedmetadata);
|
13324
|
+
(_d = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _d === void 0 ? void 0 : _d.addEventListener('loadeddata', handLoadeddata);
|
13325
|
+
(_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.addEventListener('play', handleStartPlay);
|
13326
|
+
(_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.addEventListener('playing', handlePlaying);
|
13327
|
+
(_g = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _g === void 0 ? void 0 : _g.addEventListener('pause', handlePause);
|
13328
|
+
(_h = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _h === void 0 ? void 0 : _h.addEventListener('ended', handlePlay);
|
13329
|
+
(_j = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _j === void 0 ? void 0 : _j.addEventListener('canplay', handlePlay);
|
13330
|
+
(_k = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _k === void 0 ? void 0 : _k.addEventListener('waiting', handleWaiting);
|
13272
13331
|
return () => {
|
13332
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
13273
13333
|
if (hls)
|
13274
13334
|
hls === null || hls === void 0 ? void 0 : hls.destroy();
|
13275
13335
|
setIsLoadFinish(false);
|
13276
|
-
|
13277
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.removeEventListener('
|
13278
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.removeEventListener('
|
13279
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.removeEventListener('
|
13280
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.removeEventListener('
|
13281
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.removeEventListener('
|
13282
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.removeEventListener('
|
13283
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.removeEventListener('
|
13284
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.removeEventListener('waiting', handleWaiting);
|
13336
|
+
(_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('loadedmetadata', handleLoadedmetadata);
|
13337
|
+
(_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.removeEventListener('loadeddata', handLoadeddata);
|
13338
|
+
(_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.removeEventListener('play', handleStartPlay);
|
13339
|
+
(_d = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _d === void 0 ? void 0 : _d.removeEventListener('playing', handlePlaying);
|
13340
|
+
(_e = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _e === void 0 ? void 0 : _e.removeEventListener('pause', handlePause);
|
13341
|
+
(_f = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _f === void 0 ? void 0 : _f.removeEventListener('ended', handlePlay);
|
13342
|
+
(_g = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _g === void 0 ? void 0 : _g.removeEventListener('canplay', handlePlay);
|
13343
|
+
(_h = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _h === void 0 ? void 0 : _h.removeEventListener('waiting', handleWaiting);
|
13285
13344
|
};
|
13286
|
-
}, [isActive, videoId, rec
|
13345
|
+
}, [isActive, videoId, rec]);
|
13287
13346
|
useEffect(() => {
|
13288
|
-
|
13347
|
+
var _a, _b;
|
13348
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) || !isLoadFinish)
|
13289
13349
|
return;
|
13290
13350
|
if (isActive) {
|
13291
13351
|
bffFbReport === null || bffFbReport === void 0 ? void 0 : bffFbReport({
|
13292
13352
|
eventName: 'ViewContent'
|
13293
13353
|
});
|
13294
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.play();
|
13354
|
+
(_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.play();
|
13295
13355
|
}
|
13296
13356
|
else {
|
13297
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.pause();
|
13357
|
+
(_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.pause();
|
13298
13358
|
}
|
13299
|
-
}, [isActive, isLoadFinish, videoRef]);
|
13359
|
+
}, [isActive, isLoadFinish, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
|
13300
13360
|
/*
|
13301
13361
|
打开/关闭hashtag暂停/播放视频
|
13302
13362
|
*/
|
13303
13363
|
useEffect(() => {
|
13304
|
-
|
13364
|
+
var _a, _b, _c;
|
13365
|
+
if (!isActive || !(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
13305
13366
|
return;
|
13306
|
-
const isPause = videoRef === null || videoRef === void 0 ? void 0 : videoRef.paused;
|
13367
|
+
const isPause = (_a = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _a === void 0 ? void 0 : _a.paused;
|
13307
13368
|
if (!isPause && openHashtag) {
|
13308
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.pause();
|
13369
|
+
(_b = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _b === void 0 ? void 0 : _b.pause();
|
13309
13370
|
}
|
13310
13371
|
else if (!openHashtag) {
|
13311
|
-
videoRef === null || videoRef === void 0 ? void 0 : videoRef.play();
|
13372
|
+
(_c = videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) === null || _c === void 0 ? void 0 : _c.play();
|
13312
13373
|
}
|
13313
|
-
}, [openHashtag, isActive, videoRef]);
|
13374
|
+
}, [openHashtag, isActive, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current]);
|
13314
13375
|
useEffect(() => {
|
13315
13376
|
if (!isActive)
|
13316
13377
|
return;
|
@@ -13357,11 +13418,11 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
13357
13418
|
}, src: img$1, alt: 'placeholder image' }));
|
13358
13419
|
}, [waiting, isLoadFinish]);
|
13359
13420
|
useEffect(() => {
|
13360
|
-
if (!videoRef)
|
13421
|
+
if (!(videoRef === null || videoRef === void 0 ? void 0 : videoRef.current))
|
13361
13422
|
return;
|
13362
13423
|
const handleBeforeUnload = () => {
|
13363
13424
|
var _a;
|
13364
|
-
if (activeIndex === index && ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.url) && videoRef && !isPauseVideo) {
|
13425
|
+
if (activeIndex === index && ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.url) && (videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) && !isPauseVideo) {
|
13365
13426
|
handleClickVideo('pause')();
|
13366
13427
|
}
|
13367
13428
|
};
|
@@ -13369,7 +13430,7 @@ const VideoWidget$2 = ({ rec, index, height, data, muted, activeIndex, videoPost
|
|
13369
13430
|
return () => {
|
13370
13431
|
window.removeEventListener('beforeunload', handleBeforeUnload);
|
13371
13432
|
};
|
13372
|
-
}, [activeIndex, index, rec, videoRef, handleClickVideo, isPauseVideo]);
|
13433
|
+
}, [activeIndex, index, rec, videoRef === null || videoRef === void 0 ? void 0 : videoRef.current, handleClickVideo, isPauseVideo]);
|
13373
13434
|
if (!(rec === null || rec === void 0 ? void 0 : rec.video)) {
|
13374
13435
|
return null;
|
13375
13436
|
}
|
@@ -13694,12 +13755,12 @@ var RenderCard$1 = memo(RenderCard);
|
|
13694
13755
|
* @Author: binruan@chatlabs.com
|
13695
13756
|
* @Date: 2024-03-26 10:07:41
|
13696
13757
|
* @LastEditors: binruan@chatlabs.com
|
13697
|
-
* @LastEditTime: 2024-
|
13758
|
+
* @LastEditTime: 2024-07-01 17:47:33
|
13698
13759
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\Nudge\index.tsx
|
13699
13760
|
*
|
13700
13761
|
*/
|
13701
13762
|
const Nudge = ({ nudge }) => {
|
13702
|
-
var _a, _b, _c, _d, _e, _f
|
13763
|
+
var _a, _b, _c, _d, _e, _f;
|
13703
13764
|
return (React.createElement(React.Fragment, null, (nudge === null || nudge === void 0 ? void 0 : nudge.isOpen) && (React.createElement("div", { className: 'clc-sxp-bottom-nudge', style: {
|
13704
13765
|
marginBottom: (_a = nudge === null || nudge === void 0 ? void 0 : nudge.marginBottom) !== null && _a !== void 0 ? _a : 5,
|
13705
13766
|
width: (_c = (_b = nudge === null || nudge === void 0 ? void 0 : nudge.size) === null || _b === void 0 ? void 0 : _b.width) !== null && _c !== void 0 ? _c : 212,
|
@@ -13708,7 +13769,9 @@ const Nudge = ({ nudge }) => {
|
|
13708
13769
|
borderRadius: (_f = nudge === null || nudge === void 0 ? void 0 : nudge.borderRadius) !== null && _f !== void 0 ? _f : 4
|
13709
13770
|
} },
|
13710
13771
|
(nudge === null || nudge === void 0 ? void 0 : nudge.icon) ? (React.createElement("img", { src: nudge.icon, alt: 'nudge icon', style: { height: '100%', objectFit: 'cover', flexShrink: 0 } })) : null,
|
13711
|
-
React.createElement("p", { style: Object.assign(Object.assign({}, nudge === null || nudge === void 0 ? void 0 : nudge.textStyle), { textWrap: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', flex: 1, marginBottom: 0 })
|
13772
|
+
React.createElement("p", { style: Object.assign(Object.assign({}, nudge === null || nudge === void 0 ? void 0 : nudge.textStyle), { textWrap: 'nowrap', textOverflow: 'ellipsis', overflow: 'hidden', whiteSpace: 'nowrap', flex: 1, marginBottom: 0 }), dangerouslySetInnerHTML: {
|
13773
|
+
__html: setFontForText(nudge === null || nudge === void 0 ? void 0 : nudge.content, nudge === null || nudge === void 0 ? void 0 : nudge.textStyle)
|
13774
|
+
} })))));
|
13712
13775
|
};
|
13713
13776
|
|
13714
13777
|
/*
|
@@ -13771,7 +13834,7 @@ var Tagbar$1 = memo(Tagbar);
|
|
13771
13834
|
* @Author: binruan@chatlabs.com
|
13772
13835
|
* @Date: 2024-01-15 19:03:09
|
13773
13836
|
* @LastEditors: binruan@chatlabs.com
|
13774
|
-
* @LastEditTime: 2024-
|
13837
|
+
* @LastEditTime: 2024-07-01 11:49:58
|
13775
13838
|
* @FilePath: \pb-sxp-ui\src\core\components\SxpPageRender\index.tsx
|
13776
13839
|
*
|
13777
13840
|
*/
|
@@ -13780,14 +13843,12 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
13780
13843
|
const { schema } = useEditor();
|
13781
13844
|
const [activeIndex, setActiveIndex] = useState(0);
|
13782
13845
|
const viewImageStartTime = useRef(0);
|
13783
|
-
useState(false);
|
13784
13846
|
const [isMuted, setIsMuted] = useState(true);
|
13785
13847
|
const viewTime = useRef();
|
13786
13848
|
const [isLoadMore, setIsLoadMore] = useState(false);
|
13787
13849
|
const [isShowMore, setIsShowMore] = useState(false);
|
13788
13850
|
const { loadVideos, bffEventReport, loading, setPopupDetailData, ctaEvent, swiperRef, waterFallData, setOpenHashtag, appDomain, openHashtag, loadingImage, isFromHashtag, popupDetailData, bffFbReport, curTime, h5EnterLink, isShowConsent, selectTag } = useSxpDataSource();
|
13789
13851
|
const { backMainFeed } = useEventReport();
|
13790
|
-
const videoRef = useRef();
|
13791
13852
|
const { productView } = useEventReport();
|
13792
13853
|
const isShowFingerTip = useMemo(() => {
|
13793
13854
|
return data.length > 0 && !loading && getFeUserId();
|
@@ -13815,16 +13876,6 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
13815
13876
|
});
|
13816
13877
|
}
|
13817
13878
|
}, [data.length, bffFbReport, h5EnterLink]);
|
13818
|
-
const firstRef = useRef();
|
13819
|
-
useEffect(() => {
|
13820
|
-
var _a, _b, _c, _d;
|
13821
|
-
if (!firstRef.current && (videoRef === null || videoRef === void 0 ? void 0 : videoRef.current) && (data === null || data === void 0 ? void 0 : data.length) > 0) {
|
13822
|
-
firstRef.current = true;
|
13823
|
-
if ((_b = (_a = data === null || data === void 0 ? void 0 : data[0]) === null || _a === void 0 ? void 0 : _a.video) === null || _b === void 0 ? void 0 : _b.url) {
|
13824
|
-
videoRef.current.src = (_d = (_c = data === null || data === void 0 ? void 0 : data[0]) === null || _c === void 0 ? void 0 : _c.video) === null || _d === void 0 ? void 0 : _d.url;
|
13825
|
-
}
|
13826
|
-
}
|
13827
|
-
}, [videoRef, data]);
|
13828
13879
|
useEffect(() => {
|
13829
13880
|
var _a;
|
13830
13881
|
const index = (data === null || data === void 0 ? void 0 : data.findIndex((item) => {
|
@@ -13945,7 +13996,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
13945
13996
|
const renderContent = useCallback((rec, index) => {
|
13946
13997
|
var _a, _b, _c, _d;
|
13947
13998
|
if ((_a = rec === null || rec === void 0 ? void 0 : rec.video) === null || _a === void 0 ? void 0 : _a.url) {
|
13948
|
-
return (React.createElement(VideoWidget$3, { rec: rec, index: index, muted: isMuted, data: data, height: height, activeIndex: activeIndex, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost,
|
13999
|
+
return (React.createElement(VideoWidget$3, { rec: rec, index: index, muted: isMuted, data: data, height: height, activeIndex: activeIndex, videoPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPost, videoPlayIcon: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.videoPlayIcon }));
|
13949
14000
|
}
|
13950
14001
|
if ((_b = rec === null || rec === void 0 ? void 0 : rec.video) === null || _b === void 0 ? void 0 : _b.imgUrls) {
|
13951
14002
|
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, onReportViewImageEnd: handleReportViewImageEnd, onViewImageStartEvent: handleViewImageStartEvent, imgUrlsPostConfig: globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.imgUrlsPost }));
|
@@ -13971,8 +14022,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
13971
14022
|
viewTime,
|
13972
14023
|
tipText,
|
13973
14024
|
resolver,
|
13974
|
-
schema
|
13975
|
-
videoRef.current
|
14025
|
+
schema
|
13976
14026
|
]);
|
13977
14027
|
const onExpandableChange = useCallback((v) => {
|
13978
14028
|
setIsShowMore(v);
|
@@ -14205,16 +14255,7 @@ const SxpPageRender = ({ globalConfig, descStyle, containerHeight = window.inner
|
|
14205
14255
|
[(_f = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconYPosit) !== null && _f !== void 0 ? _f : 'bottom']: (_g = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.muteIconY) !== null && _g !== void 0 ? _g : 23
|
14206
14256
|
}, defaultValue: isMuted, 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, onChange: setIsMuted }),
|
14207
14257
|
renderView),
|
14208
|
-
React.createElement(WaterFall$1, Object.assign({}, (_k = (_j = (_h = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.hashTag) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.item) === null || _k === void 0 ? void 0 : _k.props))
|
14209
|
-
React.createElement("div", { style: { position: 'absolute', zIndex: -100 } },
|
14210
|
-
React.createElement("video", { ref: videoRef, id: 'player-container-id', playsInline: true, crossOrigin: 'anonymous', preload: 'auto', controls: false, muted: true, style: {
|
14211
|
-
backgroundColor: 'transparent',
|
14212
|
-
width: '100%',
|
14213
|
-
height: '100%',
|
14214
|
-
objectFit: 'cover',
|
14215
|
-
pointerEvents: 'none'
|
14216
|
-
} }),
|
14217
|
-
React.createElement("div", { id: 'player-container-id-copy' }))));
|
14258
|
+
React.createElement(WaterFall$1, Object.assign({}, (_k = (_j = (_h = globalConfig === null || globalConfig === void 0 ? void 0 : globalConfig.hashTag) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.item) === null || _k === void 0 ? void 0 : _k.props))));
|
14218
14259
|
};
|
14219
14260
|
|
14220
14261
|
const PictureGroup = ({ imgUrls, width, height, imgUrlsPostConfig, rec, index }) => {
|