pds-dev-kit-web-test 2.5.359 → 2.5.361

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.
@@ -37,6 +37,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
37
37
  __setModuleDefault(result, mod);
38
38
  return result;
39
39
  };
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
40
43
  Object.defineProperty(exports, "__esModule", { value: true });
41
44
  exports.CustomSectionBackgroundMedia = void 0;
42
45
  var jsx_runtime_1 = require("react/jsx-runtime");
@@ -45,6 +48,7 @@ var utils_1 = require("../../../../DynamicLayout/utils");
45
48
  var styled_components_1 = __importStar(require("styled-components"));
46
49
  var YouTubeIframe_1 = require("../../YouTubeIframe");
47
50
  var util_1 = require("../util");
51
+ var VideoBGMedia_1 = __importDefault(require("./VideoBGMedia"));
48
52
  function CustomSectionBackgroundMedia(_a) {
49
53
  var specs = _a.specs, playerId = _a.playerId, mediaType = _a.mediaType, componentStyle = _a.componentStyle, device = _a.device, backgroundRef = _a.backgroundRef;
50
54
  var _b = (0, util_1.parseSectionBackgroundMediaData)(specs, device), CB_STYLE_PROP_BGMEDIA_SPEC_YSRC = _b.CB_STYLE_PROP_BGMEDIA_SPEC_YSRC, CB_STYLE_PROP_BGMEDIA_SPEC_REPLAY = _b.CB_STYLE_PROP_BGMEDIA_SPEC_REPLAY, CB_STYLE_PROP_BGMEDIA_SPEC_STARTTIME = _b.CB_STYLE_PROP_BGMEDIA_SPEC_STARTTIME, CB_STYLE_PROP_BGMEDIA_SPEC_ENDTIME = _b.CB_STYLE_PROP_BGMEDIA_SPEC_ENDTIME, CB_STYLE_PROP_BGMEDIA_SPEC_IMAGESELECTOR = _b.CB_STYLE_PROP_BGMEDIA_SPEC_IMAGESELECTOR, CB_STYLE_PROP_BGMEDIA_SPEC_VIDEOSELECTOR = _b.CB_STYLE_PROP_BGMEDIA_SPEC_VIDEOSELECTOR;
@@ -99,38 +103,36 @@ function CustomSectionBackgroundMedia(_a) {
99
103
  if ('background' in componentStyle) {
100
104
  delete componentStyle.background;
101
105
  }
102
- console.log('media type', mediaType);
103
106
  switch (mediaType) {
104
107
  case 'IMAGE':
105
108
  return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: CB_STYLE_PROP_BGMEDIA_SPEC_IMAGESELECTOR && ((0, jsx_runtime_1.jsx)(S_Image, __assign({ src: String(CB_STYLE_PROP_BGMEDIA_SPEC_IMAGESELECTOR), normalStyle: componentStyle }, { children: (0, jsx_runtime_1.jsx)("img", { src: String(CB_STYLE_PROP_BGMEDIA_SPEC_IMAGESELECTOR), style: { visibility: 'hidden', width: '100%', height: '100%' } }) }))) }));
106
109
  case 'YOUTUBE':
107
110
  return ((0, jsx_runtime_1.jsx)(S_YoutubeContainer, __assign({}, youtubeSize, { children: youtubeSize.height > 0 && youtubeSize.width > 0 && ((0, jsx_runtime_1.jsx)(YouTubeIframe_1.YouTubeIframe, { src: String(CB_STYLE_PROP_BGMEDIA_SPEC_YSRC), id: playerId, loopMode: CB_STYLE_PROP_BGMEDIA_SPEC_REPLAY ? 'use' : 'none', startSeconds: Number(CB_STYLE_PROP_BGMEDIA_SPEC_STARTTIME), endSeconds: Number(CB_STYLE_PROP_BGMEDIA_SPEC_ENDTIME), customHeight: youtubeSize.height, customWidth: youtubeSize.width }, youTubeIframeKey)) })));
108
- case 'NONE':
109
111
  case 'VIDEO':
110
- return ((0, jsx_runtime_1.jsx)(S_Video, __assign({ autoPlay: true, loop: true, muted: true, playsInline: true }, { children: (0, jsx_runtime_1.jsx)("source", { src: String(CB_STYLE_PROP_BGMEDIA_SPEC_VIDEOSELECTOR), type: "video/mp4" }) }), String(CB_STYLE_PROP_BGMEDIA_SPEC_VIDEOSELECTOR)));
112
+ return ((0, jsx_runtime_1.jsx)(VideoBGMedia_1.default, { src: String(CB_STYLE_PROP_BGMEDIA_SPEC_VIDEOSELECTOR), startTime: Number(CB_STYLE_PROP_BGMEDIA_SPEC_STARTTIME), endTime: Number(CB_STYLE_PROP_BGMEDIA_SPEC_ENDTIME), loop: !!CB_STYLE_PROP_BGMEDIA_SPEC_REPLAY }));
113
+ case 'NONE':
111
114
  default:
112
115
  return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
113
116
  }
114
117
  }
115
118
  exports.CustomSectionBackgroundMedia = CustomSectionBackgroundMedia;
116
- 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"])));
117
- var S_Image = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n background-image: ", ";\n background-repeat: no-repeat;\n height: 100%;\n width: 100%;\n\n ", ";\n\n & img {\n ", ";\n }\n"], ["\n background-image: ", ";\n background-repeat: no-repeat;\n height: 100%;\n width: 100%;\n\n ", ";\n\n & img {\n ", ";\n }\n"])), function (_a) {
119
+ var S_Image = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-image: ", ";\n background-repeat: no-repeat;\n height: 100%;\n width: 100%;\n\n ", ";\n\n & img {\n ", ";\n }\n"], ["\n background-image: ", ";\n background-repeat: no-repeat;\n height: 100%;\n width: 100%;\n\n ", ";\n\n & img {\n ", ";\n }\n"])), function (_a) {
118
120
  var src = _a.src;
119
121
  return "url(".concat(src, ")");
120
122
  }, function (_a) {
121
123
  var normalStyle = _a.normalStyle;
122
124
  var isContain = normalStyle.backgroundSize === 'contain';
123
- return (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n ", "\n "], ["\n ", "\n "])), __assign(__assign({}, normalStyle), { backgroundPosition: isContain ? 'center' : normalStyle.backgroundPosition }));
125
+ return (0, styled_components_1.css)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n "], ["\n ", "\n "])), __assign(__assign({}, normalStyle), { backgroundPosition: isContain ? 'center' : normalStyle.backgroundPosition }));
124
126
  }, function (_a) {
125
127
  var normalStyle = _a.normalStyle;
126
128
  var isContain = normalStyle.backgroundSize === 'contain';
127
- return (0, styled_components_1.css)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n object-fit: ", ";\n "], ["\n object-fit: ", ";\n "])), isContain ? 'contain' : 'cover');
129
+ return (0, styled_components_1.css)(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n object-fit: ", ";\n "], ["\n object-fit: ", ";\n "])), isContain ? 'contain' : 'cover');
128
130
  });
129
- var S_YoutubeContainer = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n height: ", ";\n width: ", ";\n"], ["\n height: ", ";\n width: ", ";\n"])), function (_a) {
131
+ var S_YoutubeContainer = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n height: ", ";\n width: ", ";\n"], ["\n height: ", ";\n width: ", ";\n"])), function (_a) {
130
132
  var height = _a.height;
131
133
  return "".concat(height, "px");
132
134
  }, function (_a) {
133
135
  var width = _a.width;
134
136
  return "".concat(width, "px");
135
137
  });
136
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
138
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ declare function VideoBGMedia({ src, startTime, endTime, loop }: {
3
+ src: string;
4
+ startTime?: number;
5
+ endTime?: number;
6
+ loop?: boolean;
7
+ }): JSX.Element;
8
+ export default VideoBGMedia;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
3
+ if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
4
+ return cooked;
5
+ };
6
+ var __assign = (this && this.__assign) || function () {
7
+ __assign = Object.assign || function(t) {
8
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
9
+ s = arguments[i];
10
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
11
+ t[p] = s[p];
12
+ }
13
+ return t;
14
+ };
15
+ return __assign.apply(this, arguments);
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var jsx_runtime_1 = require("react/jsx-runtime");
22
+ var react_1 = require("react");
23
+ var styled_components_1 = __importDefault(require("styled-components"));
24
+ function VideoBGMedia(_a) {
25
+ var src = _a.src, startTime = _a.startTime, endTime = _a.endTime, loop = _a.loop;
26
+ var videoRef = (0, react_1.useRef)(null);
27
+ (0, react_1.useEffect)(function () {
28
+ var video = videoRef.current;
29
+ if (!video)
30
+ return;
31
+ // 시작 시간으로 이동
32
+ var handleLoadedMetadata = function () {
33
+ if (typeof startTime === 'number') {
34
+ video.currentTime = startTime;
35
+ video.play();
36
+ }
37
+ };
38
+ // 구간 반복
39
+ var handleTimeUpdate = function () {
40
+ if (typeof startTime === 'number' && typeof endTime === 'number') {
41
+ if (video.currentTime < startTime) {
42
+ video.currentTime = startTime;
43
+ }
44
+ if (video.currentTime >= endTime) {
45
+ video.currentTime = startTime;
46
+ video.play();
47
+ }
48
+ }
49
+ };
50
+ video.addEventListener('loadedmetadata', handleLoadedMetadata);
51
+ video.addEventListener('timeupdate', handleTimeUpdate);
52
+ return function () {
53
+ video.removeEventListener('loadedmetadata', handleLoadedMetadata);
54
+ video.removeEventListener('timeupdate', handleTimeUpdate);
55
+ };
56
+ }, [startTime, loop, endTime]);
57
+ return ((0, jsx_runtime_1.jsx)(S_Video, __assign({ ref: videoRef, autoPlay: true, muted: true, playsInline: true }, { children: (0, jsx_runtime_1.jsx)("source", { src: src, type: "video/mp4" }) }), src));
58
+ }
59
+ 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"])));
60
+ exports.default = VideoBGMedia;
61
+ var templateObject_1;
@@ -4360,7 +4360,7 @@ exports.MOCK_SECTIONS = [
4360
4360
  CB_STYLE_PROP_BGMEDIA_SPEC_REPLAY: true,
4361
4361
  'CB_STYLE_PROP_BGMEDIA_SPEC_REPLAY:MOBILE': null,
4362
4362
  'CB_STYLE_PROP_BGMEDIA_SPEC_ENDTIME:HOVER': null,
4363
- CB_STYLE_PROP_BGMEDIA_SPEC_ENDTIME: 600,
4363
+ CB_STYLE_PROP_BGMEDIA_SPEC_ENDTIME: 10,
4364
4364
  CB_STYLE_PROP_BGMEDIA_SPEC_IMAGEFIT: 'COVER',
4365
4365
  'CB_STYLE_PROP_BGMEDIA_SPEC_TYPE:HOVER': null,
4366
4366
  'CB_STYLE_PROP_BGMEDIA_SPEC_STARTTIME:MOBILE': null,
@@ -53,16 +53,6 @@ function VideoPlayer(props) {
53
53
  var hasEffect = !isNoneEffectType;
54
54
  var effectVisibleStyle = hasEffect ? { opacity: isVisible ? 1 : 0 } : {};
55
55
  var CB_CONTENT_PROP_VIDEO_SPEC_CONNECTDATA = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_CONNECTDATA, CB_CONTENT_PROP_VIDEO_SPEC_MPLAY = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_MPLAY, CB_CONTENT_PROP_VIDEO_SPEC_REPLAY = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_REPLAY, 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_ENDTIME = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME, CB_CONTENT_PROP_VIDEO_SPEC_THUMB = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_THUMB, CB_CONTENT_PROP_VIDEO_SPEC_TYPE = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_TYPE, CB_CONTENT_PROP_VIDEO_SPEC_VALUETYPE = CB_CONTENT_PROP_VIDEO.CB_CONTENT_PROP_VIDEO_SPEC_VALUETYPE;
56
- var getTimeHash = function () {
57
- if (typeof CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME === 'number' &&
58
- typeof CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME === 'number') {
59
- return "#t=".concat(CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME, ",").concat(CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME);
60
- }
61
- if (typeof CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME === 'number') {
62
- return "#t=".concat(CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME);
63
- }
64
- return '';
65
- };
66
56
  var getVideoSrc = function () {
67
57
  if (CB_CONTENT_PROP_VIDEO_SPEC_VALUETYPE === 'DATA') {
68
58
  if (!(queryContext === null || queryContext === void 0 ? void 0 : queryContext.queryData)) {
@@ -74,32 +64,42 @@ function VideoPlayer(props) {
74
64
  return CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR;
75
65
  };
76
66
  var videoRef = (0, react_1.useRef)(null);
77
- var containerRef = (0, react_1.useRef)(null);
78
- // viewport 진입 시 자동재생
79
67
  (0, react_1.useEffect)(function () {
80
68
  var video = videoRef.current;
81
- // const container = containerRef.current;
82
69
  if (!video)
83
70
  return;
84
- var handleIntersection = function (entries) {
85
- entries.forEach(function (entry) {
86
- if (entry.isIntersecting) {
87
- video.play().catch(console.error);
71
+ // 시작 시간으로 이동
72
+ var handleLoadedMetadata = function () {
73
+ if (typeof CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME === 'number') {
74
+ video.currentTime = CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME;
75
+ video.play();
76
+ }
77
+ };
78
+ // 구간 반복
79
+ var handleTimeUpdate = function () {
80
+ if (typeof CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME === 'number' &&
81
+ typeof CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME === 'number') {
82
+ if (video.currentTime < CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME) {
83
+ video.currentTime = CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME;
88
84
  }
89
- else {
90
- video.pause();
85
+ if (video.currentTime >= CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME) {
86
+ video.currentTime = CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME;
87
+ video.play();
91
88
  }
92
- });
89
+ }
93
90
  };
94
- var observer = new IntersectionObserver(handleIntersection, {
95
- threshold: 0.3 // 30% 이상 보이면 재생
96
- });
97
- observer.observe(video);
91
+ video.addEventListener('loadedmetadata', handleLoadedMetadata);
92
+ video.addEventListener('timeupdate', handleTimeUpdate);
98
93
  return function () {
99
- observer.disconnect();
94
+ video.removeEventListener('loadedmetadata', handleLoadedMetadata);
95
+ video.removeEventListener('timeupdate', handleTimeUpdate);
100
96
  };
101
- }, []);
102
- 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({ 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: (0, jsx_runtime_1.jsxs)(S_Video, __assign({ isEditMode: isEditMode, ref: videoRef, controls: true, poster: CB_CONTENT_PROP_VIDEO_SPEC_THUMB, preload: "auto", loop: true, muted: true }, { children: [(0, jsx_runtime_1.jsx)("source", { src: getVideoSrc() + getTimeHash(), type: "video/mp4" }), "Your browser does not support the video tag."] }), CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR) })) }))] }));
97
+ }, [
98
+ CB_CONTENT_PROP_VIDEO_SPEC_STARTTIME,
99
+ CB_CONTENT_PROP_VIDEO_SPEC_ENDTIME,
100
+ CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR
101
+ ]);
102
+ 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({ 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: (0, jsx_runtime_1.jsxs)(S_Video, __assign({ isEditMode: isEditMode, ref: videoRef, controls: !isEditMode, poster: CB_CONTENT_PROP_VIDEO_SPEC_THUMB, preload: "auto", loop: false, muted: true }, { children: [(0, jsx_runtime_1.jsx)("source", { src: getVideoSrc(), type: "video/mp4" }), "Your browser does not support the video tag."] }), CB_CONTENT_PROP_VIDEO_SPEC_SELECTOR) })) }))] }));
103
103
  }
104
104
  function getBGColorStyles(props, device) {
105
105
  var availableSpecCodes = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pds-dev-kit-web-test",
3
- "version": "2.5.359",
3
+ "version": "2.5.361",
4
4
  "license": "MIT",
5
5
  "private": false,
6
6
  "main": "dist/index.js",