@zync/zync-screnplay-player 0.1.232 → 0.1.233
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.
|
@@ -14,6 +14,7 @@ import { toFrames, toPascalCase } from "./main/lib/Sequence.js";
|
|
|
14
14
|
import { getCreatorCollabEffectProps } from "./main/lib/layouts/creatorCollabProps.js";
|
|
15
15
|
import { transitionThemes } from "./config.js";
|
|
16
16
|
import { normalizeDisabledTranscripts } from "./helpers/normalizeDisabledTranscripts.js";
|
|
17
|
+
import { coerceRenderableText, coerceRenderableTextProps, RENDERABLE_TEXT_PROP_KEYS } from "./helpers/coerceRenderableText.js";
|
|
17
18
|
export var RemotionRenderer = /*#__PURE__*/function () {
|
|
18
19
|
function RemotionRenderer(screenplay) {
|
|
19
20
|
_classCallCheck(this, RemotionRenderer);
|
|
@@ -109,7 +110,7 @@ export var RemotionRenderer = /*#__PURE__*/function () {
|
|
|
109
110
|
var from = this.fps * (screenPlaySegment.data.offset - trimLeft) || 0;
|
|
110
111
|
var durationInFrames = toFrames(this.fps * screenPlaySegment.data.duration);
|
|
111
112
|
var to = from + durationInFrames;
|
|
112
|
-
return _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, screenPlaySegment.data), creatorCollabProps), inheritedProps), {}, {
|
|
113
|
+
return coerceRenderableTextProps(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, screenPlaySegment.data), creatorCollabProps), inheritedProps), {}, {
|
|
113
114
|
component: component,
|
|
114
115
|
videoUrl: (_screenPlaySegment$da11 = (_screenPlaySegment$da12 = screenPlaySegment.data.sourceVideo) === null || _screenPlaySegment$da12 === void 0 ? void 0 : _screenPlaySegment$da12.videoUrl) !== null && _screenPlaySegment$da11 !== void 0 ? _screenPlaySegment$da11 : creatorCollabProps.videoUrl,
|
|
115
116
|
startVideoFrom: (_ref = typeof ((_screenPlaySegment$da13 = screenPlaySegment.data.sourceVideo) === null || _screenPlaySegment$da13 === void 0 ? void 0 : _screenPlaySegment$da13.start) === "number" ? toFrames(this.fps * screenPlaySegment.data.sourceVideo.start, false, true) : creatorCollabProps.startVideoFrom) !== null && _ref !== void 0 ? _ref : 0,
|
|
@@ -120,7 +121,7 @@ export var RemotionRenderer = /*#__PURE__*/function () {
|
|
|
120
121
|
offset: toFrames(this.fps * (screenPlaySegment.data.offset - trimLeft)) || 0,
|
|
121
122
|
theme: screenPlaySegment.theme,
|
|
122
123
|
themeSettings: screenPlaySegment === null || screenPlaySegment === void 0 ? void 0 : screenPlaySegment.themeSettings
|
|
123
|
-
});
|
|
124
|
+
}), RENDERABLE_TEXT_PROP_KEYS);
|
|
124
125
|
}
|
|
125
126
|
}, {
|
|
126
127
|
key: "toRemotionAudioFragment",
|
|
@@ -183,7 +184,7 @@ export var RemotionRenderer = /*#__PURE__*/function () {
|
|
|
183
184
|
var transcriptFrom = _this3.fps * (transcript.offset - trimLeft) || 0;
|
|
184
185
|
var transcriptDurationInFrames = toFrames(_this3.fps * transcript.duration);
|
|
185
186
|
return {
|
|
186
|
-
text: transcript.text,
|
|
187
|
+
text: coerceRenderableText(transcript.text),
|
|
187
188
|
from: transcriptFrom,
|
|
188
189
|
durationInFrames: transcriptDurationInFrames,
|
|
189
190
|
punctuations: transcript.punctuations ? transcript.punctuations.map(function (p) {
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
2
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
3
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
4
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
5
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
6
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
7
|
+
var TEXT_CANDIDATE_KEYS = ["text", "plainText", "name", "fullName", "title", "label", "value"];
|
|
8
|
+
export var RENDERABLE_TEXT_PROP_KEYS = ["text", "accentText", "name", "fullName", "title", "overrideName", "collaboratorName", "collaboratorTitle", "topicLabel", "speakerName", "responderName", "seekerName", "sentence", "sentenceText", "sentenceTextTwo", "hookText", "hookAccentText", "hookSubtext", "headline", "subtitle", "description", "question", "answer"];
|
|
9
|
+
var _coerceRenderableText = function coerceRenderableText(value) {
|
|
10
|
+
var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
11
|
+
if (value === null || value === undefined) {
|
|
12
|
+
return fallback;
|
|
13
|
+
}
|
|
14
|
+
if (typeof value === "string") {
|
|
15
|
+
return value;
|
|
16
|
+
}
|
|
17
|
+
if (typeof value === "number" || typeof value === "boolean") {
|
|
18
|
+
return String(value);
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(value)) {
|
|
21
|
+
return value.map(function (item) {
|
|
22
|
+
return _coerceRenderableText(item, "");
|
|
23
|
+
}).filter(Boolean).join(" ");
|
|
24
|
+
}
|
|
25
|
+
if (_typeof(value) === "object") {
|
|
26
|
+
if (Array.isArray(value.blocks)) {
|
|
27
|
+
return value.blocks.map(function (block) {
|
|
28
|
+
return _coerceRenderableText(block === null || block === void 0 ? void 0 : block.text, "");
|
|
29
|
+
}).filter(Boolean).join("\n");
|
|
30
|
+
}
|
|
31
|
+
for (var _i = 0, _TEXT_CANDIDATE_KEYS = TEXT_CANDIDATE_KEYS; _i < _TEXT_CANDIDATE_KEYS.length; _i++) {
|
|
32
|
+
var key = _TEXT_CANDIDATE_KEYS[_i];
|
|
33
|
+
if (value[key] !== undefined && value[key] !== value) {
|
|
34
|
+
return _coerceRenderableText(value[key], fallback);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return fallback;
|
|
39
|
+
};
|
|
40
|
+
export { _coerceRenderableText as coerceRenderableText };
|
|
41
|
+
export var coerceRenderableTextProps = function coerceRenderableTextProps(props, keys) {
|
|
42
|
+
if (!props) {
|
|
43
|
+
return props;
|
|
44
|
+
}
|
|
45
|
+
return keys.reduce(function (normalizedProps, key) {
|
|
46
|
+
if (Object.prototype.hasOwnProperty.call(normalizedProps, key)) {
|
|
47
|
+
normalizedProps[key] = _coerceRenderableText(normalizedProps[key]);
|
|
48
|
+
}
|
|
49
|
+
return normalizedProps;
|
|
50
|
+
}, _objectSpread({}, props));
|
|
51
|
+
};
|
|
@@ -20,6 +20,7 @@ import { IntroVideoLayout } from "./IntroVideoLayout";
|
|
|
20
20
|
import { DynamicTriangleLayout } from "./DynamicTriangleLayout.js";
|
|
21
21
|
import { HookVideoLayout } from "./HookVideoLayout.js";
|
|
22
22
|
import { MultiHandoffLayout } from "./MultiHandoffLayout.js";
|
|
23
|
+
import { coerceRenderableTextProps, RENDERABLE_TEXT_PROP_KEYS } from "../../../helpers/coerceRenderableText.js";
|
|
23
24
|
export var LayoutFactory = /*#__PURE__*/function () {
|
|
24
25
|
function LayoutFactory() {
|
|
25
26
|
_classCallCheck(this, LayoutFactory);
|
|
@@ -27,10 +28,12 @@ export var LayoutFactory = /*#__PURE__*/function () {
|
|
|
27
28
|
return _createClass(LayoutFactory, null, [{
|
|
28
29
|
key: "createObject",
|
|
29
30
|
value: function createObject(props) {
|
|
31
|
+
var layout;
|
|
30
32
|
switch (props.type) {
|
|
31
33
|
case "text_with_video":
|
|
32
34
|
{
|
|
33
|
-
|
|
35
|
+
layout = new TextWithVideoLayout(props).flatten();
|
|
36
|
+
break;
|
|
34
37
|
}
|
|
35
38
|
case "broll_background":
|
|
36
39
|
case "simple_frame_broll":
|
|
@@ -41,68 +44,83 @@ export var LayoutFactory = /*#__PURE__*/function () {
|
|
|
41
44
|
case "key_point_overlay_depth":
|
|
42
45
|
case "simple_frame":
|
|
43
46
|
{
|
|
44
|
-
|
|
47
|
+
layout = new SimpleFrameLayout(props).flatten();
|
|
48
|
+
break;
|
|
45
49
|
}
|
|
46
50
|
case "handoff":
|
|
47
51
|
{
|
|
48
|
-
|
|
52
|
+
layout = new HandoffLayout(props).flatten();
|
|
53
|
+
break;
|
|
49
54
|
}
|
|
50
55
|
case "multi_handoff":
|
|
51
56
|
{
|
|
52
|
-
|
|
57
|
+
layout = new MultiHandoffLayout(props).flatten();
|
|
58
|
+
break;
|
|
53
59
|
}
|
|
54
60
|
case "creator_collab_split":
|
|
55
61
|
{
|
|
56
|
-
|
|
62
|
+
layout = new CreatorCollabSplitLayout(props).flatten();
|
|
63
|
+
break;
|
|
57
64
|
}
|
|
58
65
|
case "creator_collab_cold_open":
|
|
59
66
|
{
|
|
60
|
-
|
|
67
|
+
layout = new CreatorCollabColdOpenLayout(props).flatten();
|
|
68
|
+
break;
|
|
61
69
|
}
|
|
62
70
|
case "creator_collab_documentary_inset":
|
|
63
71
|
{
|
|
64
|
-
|
|
72
|
+
layout = new CreatorCollabDocumentaryInsetLayout(props).flatten();
|
|
73
|
+
break;
|
|
65
74
|
}
|
|
66
75
|
case "creator_collab_rack_focus":
|
|
67
76
|
{
|
|
68
|
-
|
|
77
|
+
layout = new CreatorCollabRackFocusLayout(props).flatten();
|
|
78
|
+
break;
|
|
69
79
|
}
|
|
70
80
|
case "creator_collab_studio_set":
|
|
71
81
|
{
|
|
72
|
-
|
|
82
|
+
layout = new CreatorCollabStudioSetLayout(props).flatten();
|
|
83
|
+
break;
|
|
73
84
|
}
|
|
74
85
|
case "creator_collab_conversation_spine":
|
|
75
86
|
{
|
|
76
|
-
|
|
87
|
+
layout = new CreatorCollabConversationSpineLayout(props).flatten();
|
|
88
|
+
break;
|
|
77
89
|
}
|
|
78
90
|
case "motion_still":
|
|
79
91
|
case "motion_still_green_screen":
|
|
80
92
|
case "motion_still_full_screen":
|
|
81
93
|
case "motion_still_studio_backdrop":
|
|
82
94
|
{
|
|
83
|
-
|
|
95
|
+
layout = new MotionStillLayout(props).flatten();
|
|
96
|
+
break;
|
|
84
97
|
}
|
|
85
98
|
case "keyword":
|
|
86
99
|
{
|
|
87
|
-
|
|
100
|
+
layout = new KeywordLayout(props).flatten();
|
|
101
|
+
break;
|
|
88
102
|
}
|
|
89
103
|
case "intro_video":
|
|
90
104
|
{
|
|
91
|
-
|
|
105
|
+
layout = new IntroVideoLayout(props).flatten();
|
|
106
|
+
break;
|
|
92
107
|
}
|
|
93
108
|
case "dynamic_triangle":
|
|
94
109
|
{
|
|
95
|
-
|
|
110
|
+
layout = new DynamicTriangleLayout(props).flatten();
|
|
111
|
+
break;
|
|
96
112
|
}
|
|
97
113
|
case "hook_video":
|
|
98
114
|
{
|
|
99
|
-
|
|
115
|
+
layout = new HookVideoLayout(props).flatten();
|
|
116
|
+
break;
|
|
100
117
|
}
|
|
101
118
|
default:
|
|
102
119
|
{
|
|
103
|
-
|
|
120
|
+
layout = new Layout(props).flatten();
|
|
104
121
|
}
|
|
105
122
|
}
|
|
123
|
+
return coerceRenderableTextProps(layout, RENDERABLE_TEXT_PROP_KEYS);
|
|
106
124
|
}
|
|
107
125
|
}]);
|
|
108
126
|
}();
|