pds-dev-kit-web 2.2.177 → 2.2.179
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/src/sub/DynamicLayout/components/Section/components/VideoBGMedia.js +16 -1
- package/dist/src/sub/DynamicLayout/mock_video_cb.d.ts +1 -0
- package/dist/src/sub/DynamicLayout/mock_video_cb.js +5 -4
- package/dist/src/sub/DynamicLayout/mocks.d.ts +1 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/VideoPlayer/VideoPlayer.js +27 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/types.d.ts +2 -0
- package/package.json +1 -1
- package/release-note.md +2 -2
|
@@ -20,10 +20,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
22
22
|
var react_1 = require("react");
|
|
23
|
+
var helper_1 = require("../../../../DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/VideoPlayer/helper");
|
|
23
24
|
var styled_components_1 = __importDefault(require("styled-components"));
|
|
24
25
|
function VideoBGMedia(_a) {
|
|
25
26
|
var src = _a.src, startTime = _a.startTime, endTime = _a.endTime, loop = _a.loop;
|
|
26
27
|
var videoRef = (0, react_1.useRef)(null);
|
|
28
|
+
var _b = (0, react_1.useState)(function () {
|
|
29
|
+
return (0, helper_1.parseTargetUrl)(src).encodedURL;
|
|
30
|
+
}), videoURL = _b[0], setVideoURL = _b[1];
|
|
31
|
+
(0, react_1.useEffect)(function () {
|
|
32
|
+
setVideoURL((0, helper_1.parseTargetUrl)(src).encodedURL);
|
|
33
|
+
}, [src]);
|
|
27
34
|
var onLoadedMetadata = function () {
|
|
28
35
|
var video = videoRef.current;
|
|
29
36
|
if (!video)
|
|
@@ -55,7 +62,15 @@ function VideoBGMedia(_a) {
|
|
|
55
62
|
video.play();
|
|
56
63
|
}
|
|
57
64
|
};
|
|
58
|
-
|
|
65
|
+
var onVideoError = function () {
|
|
66
|
+
var fallbackURL = (0, helper_1.parseTargetUrl)(src).fallbackURL;
|
|
67
|
+
var isFallbackURL = fallbackURL === videoURL;
|
|
68
|
+
if (fallbackURL && !isFallbackURL) {
|
|
69
|
+
setVideoURL(fallbackURL);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
return ((0, jsx_runtime_1.jsx)(S_Video, __assign({ "data-src": src, ref: videoRef, onLoadedMetadata: onLoadedMetadata, onTimeUpdate: onTimeUpdate, onEnded: onEnded, onError: onVideoError, autoPlay: true, muted: true, playsInline: true }, { children: (0, jsx_runtime_1.jsx)("source", { src: videoURL }) }), videoURL));
|
|
59
74
|
}
|
|
60
75
|
var S_Video = styled_components_1.default.video(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 100%;\n left: 0;\n object-fit: cover;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: -9999;\n"], ["\n height: 100%;\n left: 0;\n object-fit: cover;\n position: absolute;\n top: 0;\n width: 100%;\n z-index: -9999;\n"])));
|
|
61
76
|
exports.default = VideoBGMedia;
|
|
@@ -23,6 +23,7 @@ export declare const MOCK_VIDEO_CB: {
|
|
|
23
23
|
CB_CONTENT_PROP_VIDEO_SPEC_THUMB: string;
|
|
24
24
|
CB_CONTENT_PROP_VIDEO_SPEC_TYPE: string;
|
|
25
25
|
CB_CONTENT_PROP_VIDEO_SPEC_VALUETYPE: string;
|
|
26
|
+
CB_CONTENT_PROP_VIDEO_SPEC_AUTOPLAY: boolean;
|
|
26
27
|
};
|
|
27
28
|
CB_CONTENT_PROP_VISIBILITY: {
|
|
28
29
|
CB_CONTENT_PROP_VISIBILITY_SPEC_DESKTOP: boolean;
|
|
@@ -18,14 +18,15 @@ exports.MOCK_VIDEO_CB = {
|
|
|
18
18
|
},
|
|
19
19
|
CB_CONTENT_PROP_VIDEO: {
|
|
20
20
|
CB_CONTENT_PROP_VIDEO_SPEC_CONNECTDATA: 'NONE',
|
|
21
|
-
CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME:
|
|
21
|
+
CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME: 10,
|
|
22
22
|
CB_CONTENT_PROP_VIDEO_SPEC_MPLAY: true,
|
|
23
23
|
CB_CONTENT_PROP_VIDEO_SPEC_REPLAY: true,
|
|
24
|
-
CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR: 'http://
|
|
25
|
-
CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME:
|
|
24
|
+
CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR: 'http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/ForBiggerBlazes.mp4',
|
|
25
|
+
CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME: 5,
|
|
26
26
|
CB_CONTENT_PROP_VIDEO_SPEC_THUMB: '',
|
|
27
27
|
CB_CONTENT_PROP_VIDEO_SPEC_TYPE: 'FILE',
|
|
28
|
-
CB_CONTENT_PROP_VIDEO_SPEC_VALUETYPE: 'VALUE'
|
|
28
|
+
CB_CONTENT_PROP_VIDEO_SPEC_VALUETYPE: 'VALUE',
|
|
29
|
+
CB_CONTENT_PROP_VIDEO_SPEC_AUTOPLAY: true
|
|
29
30
|
},
|
|
30
31
|
CB_CONTENT_PROP_VISIBILITY: {
|
|
31
32
|
CB_CONTENT_PROP_VISIBILITY_SPEC_DESKTOP: true,
|
|
@@ -26,6 +26,7 @@ export declare const MOCK_SECTIONS: {
|
|
|
26
26
|
CB_CONTENT_PROP_VIDEO_SPEC_THUMB: string;
|
|
27
27
|
CB_CONTENT_PROP_VIDEO_SPEC_TYPE: string;
|
|
28
28
|
CB_CONTENT_PROP_VIDEO_SPEC_VALUETYPE: string;
|
|
29
|
+
CB_CONTENT_PROP_VIDEO_SPEC_AUTOPLAY: boolean;
|
|
29
30
|
};
|
|
30
31
|
CB_CONTENT_PROP_VISIBILITY: {
|
|
31
32
|
CB_CONTENT_PROP_VISIBILITY_SPEC_DESKTOP: boolean;
|
|
@@ -53,7 +53,7 @@ function VideoPlayer(props) {
|
|
|
53
53
|
: CB_EFFECT_PROP_ENTANIM['CB_EFFECT_PROP_ENTANIM_SPEC_TYPE:MOBILE'] === 'NONE';
|
|
54
54
|
var hasEffect = !isNoneEffectType;
|
|
55
55
|
var effectVisibleStyle = hasEffect ? { opacity: isVisible ? 1 : 0 } : {};
|
|
56
|
-
var CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR, CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME, CB_CONTENT_PROP_VIDEO_SPEC_THUMB = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_THUMB, CB_CONTENT_PROP_VIDEO_SPEC_MAUTOPLAY = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_MAUTOPLAY, CB_CONTENT_PROP_VIDEO_SPEC_AUTOPLAY = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_AUTOPLAY;
|
|
56
|
+
var CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR, CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME, CB_CONTENT_PROP_VIDEO_SPEC_THUMB = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_THUMB, CB_CONTENT_PROP_VIDEO_SPEC_MAUTOPLAY = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_MAUTOPLAY, CB_CONTENT_PROP_VIDEO_SPEC_AUTOPLAY = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_AUTOPLAY, CB_CONTENT_PROP_VIDEO_SPEC_REPLAY = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_REPLAY, CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME;
|
|
57
57
|
var shouldAutoplay = (CB_CONTENT_PROP_VIDEO_SPEC_AUTOPLAY && device === 'DESKTOP') ||
|
|
58
58
|
(CB_CONTENT_PROP_VIDEO_SPEC_MAUTOPLAY && device === 'MOBILE');
|
|
59
59
|
var videoRef = (0, react_1.useRef)(null);
|
|
@@ -115,6 +115,31 @@ function VideoPlayer(props) {
|
|
|
115
115
|
(0, react_1.useEffect)(function () {
|
|
116
116
|
setVideoURL((0, helper_1.parseTargetUrl)(CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR).encodedURL);
|
|
117
117
|
}, [CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR]);
|
|
118
|
+
var onTimeUpdate = function () {
|
|
119
|
+
var video = videoRef.current;
|
|
120
|
+
if (!video) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
var currentTimeFloor = Math.floor(video.currentTime);
|
|
124
|
+
if (typeof CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME === 'number' &&
|
|
125
|
+
currentTimeFloor === CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME) {
|
|
126
|
+
if (CB_CONTENT_PROP_VIDEO_SPEC_REPLAY) {
|
|
127
|
+
video.currentTime = CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
video.pause();
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
var onEnded = function () {
|
|
135
|
+
var video = videoRef.current;
|
|
136
|
+
if (!video || !CB_CONTENT_PROP_VIDEO_SPEC_REPLAY) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
video.currentTime = CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME;
|
|
140
|
+
video.play();
|
|
141
|
+
return;
|
|
142
|
+
};
|
|
118
143
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [isEditModeAndHidden && (0, jsx_runtime_1.jsx)(S_HiddenCover_1.S_HiddenCover, {}), (0, jsx_runtime_1.jsx)(S_CB_AnimationObserverBox_1.S_CB_AnimationObserverBox, __assign({ ref: hasEffect ? cbRef : null, effectVisibleStyle: effectVisibleStyle }, { children: (0, jsx_runtime_1.jsxs)(S_CB_BoxWithShadow_1.S_CB_BoxWithShadow, __assign({ className: "cb-layout-box", normalStyle: __assign(__assign(__assign(__assign({}, propsStyle), layoutStyle), effectCssProperties), bgColorStyle), hoverStyle: __assign(__assign({}, propsHoverStyle), bgColorHoverStyle), cbStylePropsShadowSpecs: CB_STYLE_PROP_SHADOW, device: device }, { children: [isEditMode && ((0, jsx_runtime_1.jsx)("div", __assign({ style: {
|
|
119
144
|
position: 'absolute',
|
|
120
145
|
top: '50%',
|
|
@@ -125,7 +150,7 @@ function VideoPlayer(props) {
|
|
|
125
150
|
alignItems: 'center',
|
|
126
151
|
justifyContent: 'center',
|
|
127
152
|
transform: 'translate(-50%, -50%)'
|
|
128
|
-
} }, { children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { iconName: "ic_video_play_circle", fillType: "fill", colorKey: "ui_cpnt_icon_sys_white", size: 48 }) }))), (0, jsx_runtime_1.jsxs)(S_Video, __assign({ muted: true, playsInline: true, controls: !isEditMode, isEditMode: isEditMode, ref: videoRef,
|
|
153
|
+
} }, { children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { iconName: "ic_video_play_circle", fillType: "fill", colorKey: "ui_cpnt_icon_sys_white", size: 48 }) }))), (0, jsx_runtime_1.jsxs)(S_Video, __assign({ muted: true, playsInline: true, controls: !isEditMode, isEditMode: isEditMode, ref: videoRef, "data-src": CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR, poster: CB_CONTENT_PROP_VIDEO_SPEC_THUMB, onPlay: onPlay, onEnded: onEnded, onError: onVideoError, onTimeUpdate: onTimeUpdate, onLoadedMetadata: onLoadedMetadata }, { children: [(0, jsx_runtime_1.jsx)("source", { src: videoURL }), "Your browser does not support the video tag."] }), videoURL + CB_CONTENT_PROP_VIDEO_SPEC_THUMB)] })) }))] }));
|
|
129
154
|
}
|
|
130
155
|
function getBGColorStyles(props, device) {
|
|
131
156
|
var availableSpecCodes = [
|
|
@@ -108,4 +108,6 @@ export type CB_CONTENT_PROP_VIDEO = {
|
|
|
108
108
|
CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME: number;
|
|
109
109
|
CB_CONTENT_PROP_VIDEO_SPEC_THUMB: string;
|
|
110
110
|
CB_CONTENT_PROP_VIDEO_SPEC_TYPE: 'FILE' | 'URL';
|
|
111
|
+
CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME: number;
|
|
112
|
+
CB_CONTENT_PROP_VIDEO_SPEC_REPLAY: boolean;
|
|
111
113
|
};
|
package/package.json
CHANGED
package/release-note.md
CHANGED