@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
- return new TextWithVideoLayout(props).flatten();
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
- return new SimpleFrameLayout(props).flatten();
47
+ layout = new SimpleFrameLayout(props).flatten();
48
+ break;
45
49
  }
46
50
  case "handoff":
47
51
  {
48
- return new HandoffLayout(props).flatten();
52
+ layout = new HandoffLayout(props).flatten();
53
+ break;
49
54
  }
50
55
  case "multi_handoff":
51
56
  {
52
- return new MultiHandoffLayout(props).flatten();
57
+ layout = new MultiHandoffLayout(props).flatten();
58
+ break;
53
59
  }
54
60
  case "creator_collab_split":
55
61
  {
56
- return new CreatorCollabSplitLayout(props).flatten();
62
+ layout = new CreatorCollabSplitLayout(props).flatten();
63
+ break;
57
64
  }
58
65
  case "creator_collab_cold_open":
59
66
  {
60
- return new CreatorCollabColdOpenLayout(props).flatten();
67
+ layout = new CreatorCollabColdOpenLayout(props).flatten();
68
+ break;
61
69
  }
62
70
  case "creator_collab_documentary_inset":
63
71
  {
64
- return new CreatorCollabDocumentaryInsetLayout(props).flatten();
72
+ layout = new CreatorCollabDocumentaryInsetLayout(props).flatten();
73
+ break;
65
74
  }
66
75
  case "creator_collab_rack_focus":
67
76
  {
68
- return new CreatorCollabRackFocusLayout(props).flatten();
77
+ layout = new CreatorCollabRackFocusLayout(props).flatten();
78
+ break;
69
79
  }
70
80
  case "creator_collab_studio_set":
71
81
  {
72
- return new CreatorCollabStudioSetLayout(props).flatten();
82
+ layout = new CreatorCollabStudioSetLayout(props).flatten();
83
+ break;
73
84
  }
74
85
  case "creator_collab_conversation_spine":
75
86
  {
76
- return new CreatorCollabConversationSpineLayout(props).flatten();
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
- return new MotionStillLayout(props).flatten();
95
+ layout = new MotionStillLayout(props).flatten();
96
+ break;
84
97
  }
85
98
  case "keyword":
86
99
  {
87
- return new KeywordLayout(props).flatten();
100
+ layout = new KeywordLayout(props).flatten();
101
+ break;
88
102
  }
89
103
  case "intro_video":
90
104
  {
91
- return new IntroVideoLayout(props).flatten();
105
+ layout = new IntroVideoLayout(props).flatten();
106
+ break;
92
107
  }
93
108
  case "dynamic_triangle":
94
109
  {
95
- return new DynamicTriangleLayout(props).flatten();
110
+ layout = new DynamicTriangleLayout(props).flatten();
111
+ break;
96
112
  }
97
113
  case "hook_video":
98
114
  {
99
- return new HookVideoLayout(props).flatten();
115
+ layout = new HookVideoLayout(props).flatten();
116
+ break;
100
117
  }
101
118
  default:
102
119
  {
103
- return new Layout(props).flatten();
120
+ layout = new Layout(props).flatten();
104
121
  }
105
122
  }
123
+ return coerceRenderableTextProps(layout, RENDERABLE_TEXT_PROP_KEYS);
106
124
  }
107
125
  }]);
108
126
  }();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zync/zync-screnplay-player",
3
- "version": "0.1.232",
3
+ "version": "0.1.233",
4
4
  "files": [
5
5
  "dist"
6
6
  ],