pds-dev-kit-web-test 0.3.10 → 0.3.12
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.
|
@@ -694,9 +694,9 @@ exports.sampleCustomsection1 = {
|
|
|
694
694
|
},
|
|
695
695
|
CB_PLACEMENT_PROP_PLACEMENT: {
|
|
696
696
|
CB_PLACEMENT_PROP_PLACEMENT_SPEC_COLS: 8,
|
|
697
|
-
'CB_PLACEMENT_PROP_PLACEMENT_SPEC_COLS:MOBILE':
|
|
697
|
+
'CB_PLACEMENT_PROP_PLACEMENT_SPEC_COLS:MOBILE': 8,
|
|
698
698
|
CB_PLACEMENT_PROP_PLACEMENT_SPEC_ROWS: 12,
|
|
699
|
-
'CB_PLACEMENT_PROP_PLACEMENT_SPEC_ROWS:MOBILE':
|
|
699
|
+
'CB_PLACEMENT_PROP_PLACEMENT_SPEC_ROWS:MOBILE': 8,
|
|
700
700
|
CB_PLACEMENT_PROP_PLACEMENT_SPEC_STARTX: 1,
|
|
701
701
|
'CB_PLACEMENT_PROP_PLACEMENT_SPEC_STARTX:MOBILE': 2,
|
|
702
702
|
CB_PLACEMENT_PROP_PLACEMENT_SPEC_STARTY: 1,
|
|
@@ -1147,7 +1147,7 @@ exports.sampleCustomsection1 = {
|
|
|
1147
1147
|
availableTemplates: [],
|
|
1148
1148
|
schema: 'GENERAL'
|
|
1149
1149
|
},
|
|
1150
|
-
order:
|
|
1150
|
+
order: 5,
|
|
1151
1151
|
program: '',
|
|
1152
1152
|
programData: {},
|
|
1153
1153
|
properties: {
|
|
@@ -19,6 +19,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
19
19
|
};
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
22
|
+
/* eslint-disable no-console */
|
|
22
23
|
var react_1 = require("react");
|
|
23
24
|
var DynamicLayout_1 = require("../../../../../../../DynamicLayout");
|
|
24
25
|
var hooks_1 = require("../../../../../../../DynamicLayout/sections/CustomSection/hooks");
|
|
@@ -50,23 +51,41 @@ function Youtube(props) {
|
|
|
50
51
|
: CB_EFFECT_PROP_ENTANIM['CB_EFFECT_PROP_ENTANIM_SPEC_TYPE:MOBILE'] === 'NONE';
|
|
51
52
|
var hasEffect = !isNoneEffectType;
|
|
52
53
|
var effectVisibleStyle = hasEffect ? { opacity: isVisible ? 1 : 0 } : {};
|
|
54
|
+
var iframeRef = (0, react_1.useRef)(null);
|
|
53
55
|
var autoplayRef = (0, react_1.useRef)(null);
|
|
54
56
|
var autoplayEntry = (0, hooks_1.useIntersectionObserver)(autoplayRef, {
|
|
55
57
|
freezeOnceVisible: youtubeAutoplayMode === 'VIEWPORT-FREEZE' ? true : false
|
|
56
58
|
});
|
|
57
59
|
var shouldAutoPlay = function () {
|
|
60
|
+
var _a, _b;
|
|
58
61
|
if (youtubeAutoplayMode === 'ALWAYS') {
|
|
59
62
|
return true;
|
|
60
63
|
}
|
|
61
64
|
if (youtubeAutoplayMode === 'VIEWPORT' && (autoplayEntry === null || autoplayEntry === void 0 ? void 0 : autoplayEntry.isIntersecting)) {
|
|
65
|
+
if (!((_a = iframeRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow)) {
|
|
66
|
+
console.log('ERROR: no CONTENT WINDOW');
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
iframeRef.current.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
|
|
70
|
+
console.log('VIEWPORT & intersecting');
|
|
62
71
|
return true;
|
|
63
72
|
}
|
|
64
73
|
if (youtubeAutoplayMode === 'VIEWPORT-FREEZE' && (autoplayEntry === null || autoplayEntry === void 0 ? void 0 : autoplayEntry.isIntersecting)) {
|
|
65
74
|
return true;
|
|
66
75
|
}
|
|
76
|
+
if (youtubeAutoplayMode === 'VIEWPORT' && !(autoplayEntry === null || autoplayEntry === void 0 ? void 0 : autoplayEntry.isIntersecting)) {
|
|
77
|
+
console.log('viewport and NOT intersecting');
|
|
78
|
+
if (!((_b = iframeRef.current) === null || _b === void 0 ? void 0 : _b.contentWindow)) {
|
|
79
|
+
console.log('no window, return true');
|
|
80
|
+
return true;
|
|
81
|
+
}
|
|
82
|
+
iframeRef.current.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}', '*');
|
|
83
|
+
console.log('send pause');
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
67
86
|
return false;
|
|
68
87
|
};
|
|
69
|
-
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.jsx)(S_CB_BoxWithShadow_1.S_CB_BoxWithShadow, __assign({ ref: autoplayRef, 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.jsxs)(S_ThumbnailBox, { children: [(0, jsx_runtime_1.jsx)(YoutubeButton, {}), (0, jsx_runtime_1.jsx)(S_Thumbnail, { src: thumbnailSrc })] })) : ((0, jsx_runtime_1.jsx)(S_Iframe, { title: id, src: shouldAutoPlay() ? getAutoplaySrc(youtubeSrc) : youtubeSrc, allow: "accelerometer; encrypted-media; gyroscope; picture-in-picture" })) })) }))] }));
|
|
88
|
+
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.jsx)(S_CB_BoxWithShadow_1.S_CB_BoxWithShadow, __assign({ ref: autoplayRef, 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.jsxs)(S_ThumbnailBox, { children: [(0, jsx_runtime_1.jsx)(YoutubeButton, {}), (0, jsx_runtime_1.jsx)(S_Thumbnail, { src: thumbnailSrc })] })) : ((0, jsx_runtime_1.jsx)(S_Iframe, { ref: iframeRef, title: id, src: shouldAutoPlay() ? getAutoplaySrc(youtubeSrc, youtubeAutoplayMode) : youtubeSrc, allow: "accelerometer; encrypted-media; gyroscope; picture-in-picture" })) })) }))] }));
|
|
70
89
|
}
|
|
71
90
|
function getBGColorStyles(props, device) {
|
|
72
91
|
var availableSpecCodes = [
|
|
@@ -88,12 +107,17 @@ var S_YoutubeButton = styled_components_1.default.div(templateObject_4 || (templ
|
|
|
88
107
|
function YoutubeButton() {
|
|
89
108
|
return ((0, jsx_runtime_1.jsx)(S_YoutubeButton, { children: (0, jsx_runtime_1.jsxs)("svg", __assign({ height: "100%", version: "1.1", viewBox: "0 0 68 48", width: "100%" }, { children: [(0, jsx_runtime_1.jsx)("path", { className: "ytp-large-play-button-bg", d: "M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z", fill: "#f00" }), (0, jsx_runtime_1.jsx)("path", { d: "M 45,24 27,14 27,34", fill: "#fff" })] })) }));
|
|
90
109
|
}
|
|
91
|
-
function getAutoplaySrc(youtubeSrc) {
|
|
110
|
+
function getAutoplaySrc(youtubeSrc, youtubeAutoplayMode) {
|
|
92
111
|
try {
|
|
93
112
|
var url = new URL(youtubeSrc);
|
|
94
113
|
if (url.hostname.includes('youtube.com') || url.hostname.includes('youtu.be')) {
|
|
95
114
|
var id = utils_1.YouTubeLinkParser.getId(youtubeSrc);
|
|
96
|
-
|
|
115
|
+
if (youtubeAutoplayMode === 'VIEWPORT') {
|
|
116
|
+
url.searchParams.set('enablejsapi', '1');
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
url.searchParams.set('autoplay', '1');
|
|
120
|
+
}
|
|
97
121
|
url.searchParams.set('mute', '1');
|
|
98
122
|
url.searchParams.set('loop', '1');
|
|
99
123
|
url.searchParams.set('playlist', "".concat(id));
|
package/package.json
CHANGED
package/release-note.md
CHANGED