@remotion/studio 4.0.394 → 4.0.396
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/components/Modals.js +1 -1
- package/dist/components/RenderModal/RenderModalBasic.js +17 -5
- package/dist/components/RenderModal/WebRenderModal.js +14 -5
- package/dist/components/RenderModal/WebRenderModalBasic.js +17 -5
- package/dist/components/RenderModal/human-readable-loglevel.d.ts +2 -0
- package/dist/components/RenderModal/human-readable-loglevel.js +22 -0
- package/dist/components/WebRender/TriggerWebRender.js +5 -0
- package/dist/esm/{chunk-ate3k4rb.js → chunk-khjn7st6.js} +216 -95
- package/dist/esm/internals.mjs +216 -95
- package/dist/esm/previewEntry.mjs +216 -95
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/state/modals.d.ts +1 -0
- package/package.json +10 -10
|
@@ -23,7 +23,7 @@ const Modals = ({ readOnlyStudio }) => {
|
|
|
23
23
|
const { selectedModal: modalContextType } = (0, react_1.useContext)(modals_1.ModalsContext);
|
|
24
24
|
const canRender = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx).previewServerState.type ===
|
|
25
25
|
'connected';
|
|
26
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modalContextType && modalContextType.type === 'duplicate-comp' && ((0, jsx_runtime_1.jsx)(DuplicateComposition_1.DuplicateComposition, { compositionType: modalContextType.compositionType, compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'delete-comp' && ((0, jsx_runtime_1.jsx)(DeleteComposition_1.DeleteComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'rename-comp' && ((0, jsx_runtime_1.jsx)(RenameComposition_1.RenameComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'input-props-override' && ((0, jsx_runtime_1.jsx)(OverrideInputProps_1.OverrideInputPropsModal, {})), modalContextType && modalContextType.type === 'web-render' && ((0, jsx_runtime_1.jsx)(WebRenderModal_1.WebRenderModalWithLoader, { type: "web-render", initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId, defaultProps: modalContextType.defaultProps, inFrameMark: modalContextType.inFrameMark, outFrameMark: modalContextType.outFrameMark })), modalContextType &&
|
|
26
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [modalContextType && modalContextType.type === 'duplicate-comp' && ((0, jsx_runtime_1.jsx)(DuplicateComposition_1.DuplicateComposition, { compositionType: modalContextType.compositionType, compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'delete-comp' && ((0, jsx_runtime_1.jsx)(DeleteComposition_1.DeleteComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'rename-comp' && ((0, jsx_runtime_1.jsx)(RenameComposition_1.RenameComposition, { compositionId: modalContextType.compositionId })), modalContextType && modalContextType.type === 'input-props-override' && ((0, jsx_runtime_1.jsx)(OverrideInputProps_1.OverrideInputPropsModal, {})), modalContextType && modalContextType.type === 'web-render' && ((0, jsx_runtime_1.jsx)(WebRenderModal_1.WebRenderModalWithLoader, { type: "web-render", initialFrame: modalContextType.initialFrame, compositionId: modalContextType.compositionId, defaultProps: modalContextType.defaultProps, inFrameMark: modalContextType.inFrameMark, outFrameMark: modalContextType.outFrameMark, initialLogLevel: modalContextType.initialLogLevel })), modalContextType &&
|
|
27
27
|
canRender &&
|
|
28
28
|
modalContextType.type === 'server-render' && ((0, jsx_runtime_1.jsx)(ServerRenderModal_1.RenderModalWithLoader, { initialFrame: modalContextType.initialFrame, initialDarkMode: modalContextType.initialDarkMode, compositionId: modalContextType.compositionId, initialVideoImageFormat: modalContextType.initialVideoImageFormat, initialJpegQuality: modalContextType.initialJpegQuality, initialScale: modalContextType.initialScale, initialLogLevel: modalContextType.initialLogLevel, initialOffthreadVideoCacheSizeInBytes: modalContextType.initialOffthreadVideoCacheSizeInBytes, initialOffthreadVideoThreads: modalContextType.initialOffthreadVideoThreads, initialMediaCacheSizeInBytes: modalContextType.initialMediaCacheSizeInBytes, initialConcurrency: modalContextType.initialConcurrency, maxConcurrency: modalContextType.maxConcurrency, minConcurrency: modalContextType.minConcurrency, initialStillImageFormat: modalContextType.initialStillImageFormat, initialMuted: modalContextType.initialMuted, initialEnforceAudioTrack: modalContextType.initialEnforceAudioTrack, initialProResProfile: modalContextType.initialProResProfile, initialx264Preset: modalContextType.initialx264Preset, initialPixelFormat: modalContextType.initialPixelFormat, initialAudioBitrate: modalContextType.initialAudioBitrate, initialVideoBitrate: modalContextType.initialVideoBitrate, initialEveryNthFrame: modalContextType.initialEveryNthFrame, initialNumberOfGifLoops: modalContextType.initialNumberOfGifLoops, initialDelayRenderTimeout: modalContextType.initialDelayRenderTimeout, initialEnvVariables: modalContextType.initialEnvVariables, initialDisableWebSecurity: modalContextType.initialDisableWebSecurity, initialGl: modalContextType.initialOpenGlRenderer, initialHeadless: modalContextType.initialHeadless, initialIgnoreCertificateErrors: modalContextType.initialIgnoreCertificateErrors, initialEncodingBufferSize: modalContextType.initialEncodingBufferSize, initialEncodingMaxRate: modalContextType.initialEncodingMaxRate, initialUserAgent: modalContextType.initialUserAgent, initialColorSpace: modalContextType.initialColorSpace, initialMultiProcessOnLinux: modalContextType.initialMultiProcessOnLinux, initialRepro: modalContextType.initialRepro, initialBeep: modalContextType.initialBeep, initialForSeamlessAacConcatenation: modalContextType.initialForSeamlessAacConcatenation, defaultProps: modalContextType.defaultProps, inFrameMark: modalContextType.inFrameMark, outFrameMark: modalContextType.outFrameMark, defaultConfigurationAudioCodec: modalContextType.defaultConfigurationAudioCodec, defaultConfigurationVideoCodec: modalContextType.defaultConfigurationVideoCodec, renderTypeOfLastRender: modalContextType.renderTypeOfLastRender, defaultMetadata: modalContextType.defaulMetadata, initialHardwareAcceleration: modalContextType.initialHardwareAcceleration, initialChromeMode: modalContextType.initialChromeMode, renderDefaults: modalContextType.renderDefaults })), modalContextType &&
|
|
29
29
|
canRender &&
|
|
@@ -8,7 +8,6 @@ const react_1 = require("react");
|
|
|
8
8
|
const prores_labels_1 = require("../../helpers/prores-labels");
|
|
9
9
|
const use_file_existence_1 = require("../../helpers/use-file-existence");
|
|
10
10
|
const Checkmark_1 = require("../../icons/Checkmark");
|
|
11
|
-
const Checkbox_1 = require("../Checkbox");
|
|
12
11
|
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
13
12
|
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
14
13
|
const RemInput_1 = require("../NewComposition/RemInput");
|
|
@@ -18,6 +17,7 @@ const FrameRangeSetting_1 = require("./FrameRangeSetting");
|
|
|
18
17
|
const OptionExplainerBubble_1 = require("./OptionExplainerBubble");
|
|
19
18
|
const RenderModalOutputName_1 = require("./RenderModalOutputName");
|
|
20
19
|
const human_readable_codec_1 = require("./human-readable-codec");
|
|
20
|
+
const human_readable_loglevel_1 = require("./human-readable-loglevel");
|
|
21
21
|
const layout_2 = require("./layout");
|
|
22
22
|
const container = {
|
|
23
23
|
flex: 1,
|
|
@@ -76,9 +76,21 @@ const RenderModalBasic = ({ renderMode, imageFormatOptions, outName, codec, setV
|
|
|
76
76
|
const onValueChange = (0, react_1.useCallback)((e) => {
|
|
77
77
|
setOutName(e.target.value);
|
|
78
78
|
}, [setOutName]);
|
|
79
|
-
const
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
79
|
+
const logLevelOptions = (0, react_1.useMemo)(() => {
|
|
80
|
+
return ['trace', 'verbose', 'info', 'warn', 'error'].map((level) => {
|
|
81
|
+
return {
|
|
82
|
+
label: (0, human_readable_loglevel_1.humanReadableLogLevel)(level),
|
|
83
|
+
onClick: () => setVerboseLogging(level),
|
|
84
|
+
leftItem: logLevel === level ? (0, jsx_runtime_1.jsx)(Checkmark_1.Checkmark, {}) : null,
|
|
85
|
+
id: level,
|
|
86
|
+
keyHint: null,
|
|
87
|
+
quickSwitcherLabel: null,
|
|
88
|
+
subMenu: null,
|
|
89
|
+
type: 'item',
|
|
90
|
+
value: level,
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
}, [logLevel, setVerboseLogging]);
|
|
94
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [renderMode === 'still' || renderMode === 'sequence' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: imageFormatOptions, needsWrapping: true }) })] })) : ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: ["Codec", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: "videoCodecOption" })] }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: videoCodecOptions, selectedId: codec, title: "Codec" }) })] })), renderMode === 'still' && resolvedComposition.durationInFrames > 1 ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Frame" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(RemInput_1.RightAlignInput, { children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: frame, onTextChange: onFrameChanged, placeholder: `0-${resolvedComposition.durationInFrames - 1}`, onValueChange: onFrameSetDirectly, name: "frame", step: 1, min: 0, status: "ok", max: resolvedComposition.durationInFrames - 1, rightAlign: true }) }) })] })) : null, renderMode === 'video' && codec === 'prores' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "ProRes profile" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { title: 'proResProfile', selectedId: proResProfile, values: proResProfileOptions }) })] })) : null, renderMode === 'still' ? null : ((0, jsx_runtime_1.jsx)(FrameRangeSetting_1.FrameRangeSetting, { durationInFrames: resolvedComposition.durationInFrames, endFrame: endFrame, setEndFrame: setEndFrame, setStartFrame: setStartFrame, startFrame: startFrame })), (0, jsx_runtime_1.jsx)(RenderModalOutputName_1.RenderModalOutputName, { existence: existence, inputStyle: layout_2.input, outName: outName, onValueChange: onValueChange, validationMessage: validationMessage, label: renderMode === 'sequence' ? 'Folder name' : 'Output name' }), (0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: ["Log Level ", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: "logLevelOption" })] }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: logLevelOptions, selectedId: logLevel, title: "Log Level" }) })] })] }));
|
|
83
95
|
};
|
|
84
96
|
exports.RenderModalBasic = RenderModalBasic;
|
|
@@ -70,17 +70,22 @@ const validateOutnameForStill = ({ outName, stillImageFormat, }) => {
|
|
|
70
70
|
// TODO: Shortcut: Shift + R
|
|
71
71
|
// TODO: Apply defaultCodec
|
|
72
72
|
// TODO: Apply defaultOutName
|
|
73
|
-
const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark, }) => {
|
|
73
|
+
const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark, initialLogLevel, }) => {
|
|
74
74
|
const context = (0, react_1.useContext)(ResolveCompositionBeforeModal_1.ResolvedCompositionContext);
|
|
75
75
|
if (!context) {
|
|
76
76
|
throw new Error('Should not be able to render without resolving comp first');
|
|
77
77
|
}
|
|
78
78
|
const { resolved: { result: resolvedComposition }, unresolved: unresolvedComposition, } = context;
|
|
79
|
-
const [
|
|
79
|
+
const [isVideo] = (0, react_1.useState)(() => {
|
|
80
|
+
return typeof resolvedComposition.durationInFrames === 'undefined'
|
|
81
|
+
? true
|
|
82
|
+
: resolvedComposition.durationInFrames > 1;
|
|
83
|
+
});
|
|
84
|
+
const [renderMode, setRenderMode] = (0, react_1.useState)(isVideo ? 'video' : 'still');
|
|
80
85
|
const [tab, setTab] = (0, react_1.useState)('general');
|
|
81
86
|
const [imageFormat, setImageFormat] = (0, react_1.useState)('png');
|
|
82
87
|
const [frame, setFrame] = (0, react_1.useState)(() => initialFrame);
|
|
83
|
-
const [logLevel, setLogLevel] = (0, react_1.useState)(
|
|
88
|
+
const [logLevel, setLogLevel] = (0, react_1.useState)(() => initialLogLevel);
|
|
84
89
|
const [inputProps, setInputProps] = (0, react_1.useState)(() => defaultProps);
|
|
85
90
|
const [delayRenderTimeout, setDelayRenderTimeout] = (0, react_1.useState)(30000);
|
|
86
91
|
const [mediaCacheSizeInBytes, setMediaCacheSizeInBytes] = (0, react_1.useState)(null);
|
|
@@ -116,7 +121,11 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
|
|
|
116
121
|
const [initialOutName] = (0, react_1.useState)(() => {
|
|
117
122
|
return (0, studio_shared_1.getDefaultOutLocation)({
|
|
118
123
|
compositionName: resolvedComposition.id,
|
|
119
|
-
defaultExtension:
|
|
124
|
+
defaultExtension: renderMode === 'still'
|
|
125
|
+
? imageFormat
|
|
126
|
+
: isVideo
|
|
127
|
+
? container
|
|
128
|
+
: imageFormat,
|
|
120
129
|
type: 'asset',
|
|
121
130
|
compositionDefaultOutName: resolvedComposition.defaultOutName,
|
|
122
131
|
clientSideRender: true,
|
|
@@ -235,7 +244,7 @@ const WebRenderModal = ({ initialFrame, defaultProps, inFrameMark, outFrameMark,
|
|
|
235
244
|
}
|
|
236
245
|
}, [outName, imageFormat, renderMode, container]);
|
|
237
246
|
const onRenderStill = (0, react_1.useCallback)(async () => {
|
|
238
|
-
const blob = await (0, web_renderer_1.renderStillOnWeb)({
|
|
247
|
+
const { blob } = await (0, web_renderer_1.renderStillOnWeb)({
|
|
239
248
|
composition: {
|
|
240
249
|
component: unresolvedComposition.component,
|
|
241
250
|
width: resolvedComposition.width,
|
|
@@ -4,13 +4,13 @@ exports.WebRenderModalBasic = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const Checkmark_1 = require("../../icons/Checkmark");
|
|
7
|
-
const Checkbox_1 = require("../Checkbox");
|
|
8
7
|
const layout_1 = require("../layout");
|
|
9
8
|
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
10
9
|
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
11
10
|
const RemInput_1 = require("../NewComposition/RemInput");
|
|
12
11
|
const SegmentedControl_1 = require("../SegmentedControl");
|
|
13
12
|
const FrameRangeSetting_1 = require("./FrameRangeSetting");
|
|
13
|
+
const human_readable_loglevel_1 = require("./human-readable-loglevel");
|
|
14
14
|
const layout_2 = require("./layout");
|
|
15
15
|
const OptionExplainerBubble_1 = require("./OptionExplainerBubble");
|
|
16
16
|
const RenderModalOutputName_1 = require("./RenderModalOutputName");
|
|
@@ -40,6 +40,21 @@ const WebRenderModalBasic = ({ renderMode, resolvedComposition, imageFormat, set
|
|
|
40
40
|
},
|
|
41
41
|
];
|
|
42
42
|
}, [imageFormat, setStillFormat]);
|
|
43
|
+
const logLevelOptions = (0, react_1.useMemo)(() => {
|
|
44
|
+
return ['trace', 'verbose', 'info', 'warn', 'error'].map((level) => {
|
|
45
|
+
return {
|
|
46
|
+
label: (0, human_readable_loglevel_1.humanReadableLogLevel)(level),
|
|
47
|
+
onClick: () => setLogLevel(level),
|
|
48
|
+
leftItem: logLevel === level ? (0, jsx_runtime_1.jsx)(Checkmark_1.Checkmark, {}) : null,
|
|
49
|
+
id: level,
|
|
50
|
+
keyHint: null,
|
|
51
|
+
quickSwitcherLabel: null,
|
|
52
|
+
subMenu: null,
|
|
53
|
+
type: 'item',
|
|
54
|
+
value: level,
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
}, [logLevel, setLogLevel]);
|
|
43
58
|
const containerOptions = (0, react_1.useMemo)(() => {
|
|
44
59
|
return [
|
|
45
60
|
{
|
|
@@ -125,9 +140,6 @@ const WebRenderModalBasic = ({ renderMode, resolvedComposition, imageFormat, set
|
|
|
125
140
|
},
|
|
126
141
|
];
|
|
127
142
|
}, [codec, setCodec]);
|
|
128
|
-
|
|
129
|
-
setLogLevel(e.target.checked ? 'verbose' : 'info');
|
|
130
|
-
}, [setLogLevel]);
|
|
131
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: tabContainer, children: [renderMode === 'still' ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: imageFormatOptions, needsWrapping: true }) })] }), resolvedComposition.durationInFrames > 1 ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Frame" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(RemInput_1.RightAlignInput, { children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: frame, onTextChange: onFrameChanged, placeholder: `0-${resolvedComposition.durationInFrames - 1}`, onValueChange: onFrameSetDirectly, name: "frame", step: 1, min: 0, status: "ok", max: resolvedComposition.durationInFrames - 1, rightAlign: true }) }) })] })) : null] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Container" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: containerOptions, selectedId: container, title: "Container" }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: ["Codec", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: "videoCodecOption" })] }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: codecOptions, selectedId: codec, title: "Codec" }) })] }), (0, jsx_runtime_1.jsx)(FrameRangeSetting_1.FrameRangeSetting, { durationInFrames: resolvedComposition.durationInFrames, startFrame: startFrame !== null && startFrame !== void 0 ? startFrame : 0, endFrame: endFrame !== null && endFrame !== void 0 ? endFrame : resolvedComposition.durationInFrames - 1, setStartFrame: setStartFrame, setEndFrame: setEndFrame })] })), (0, jsx_runtime_1.jsx)(RenderModalOutputName_1.RenderModalOutputName, { existence: false, inputStyle: layout_2.input, outName: outName, onValueChange: onOutNameChange, validationMessage: validationMessage, label: "Download name" }), (0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: ["Verbose logging ", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: "logLevelOption" })] }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: logLevel === 'verbose', onChange: onVerboseLoggingChanged, name: "verbose-logging" }) })] })] }));
|
|
143
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: tabContainer, children: [renderMode === 'still' ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: imageFormatOptions, needsWrapping: true }) })] }), resolvedComposition.durationInFrames > 1 ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Frame" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(RemInput_1.RightAlignInput, { children: (0, jsx_runtime_1.jsx)(InputDragger_1.InputDragger, { value: frame, onTextChange: onFrameChanged, placeholder: `0-${resolvedComposition.durationInFrames - 1}`, onValueChange: onFrameSetDirectly, name: "frame", step: 1, min: 0, status: "ok", max: resolvedComposition.durationInFrames - 1, rightAlign: true }) }) })] })) : null] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Container" }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: containerOptions, selectedId: container, title: "Container" }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: ["Codec", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: "videoCodecOption" })] }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: codecOptions, selectedId: codec, title: "Codec" }) })] }), (0, jsx_runtime_1.jsx)(FrameRangeSetting_1.FrameRangeSetting, { durationInFrames: resolvedComposition.durationInFrames, startFrame: startFrame !== null && startFrame !== void 0 ? startFrame : 0, endFrame: endFrame !== null && endFrame !== void 0 ? endFrame : resolvedComposition.durationInFrames - 1, setStartFrame: setStartFrame, setEndFrame: setEndFrame })] })), (0, jsx_runtime_1.jsx)(RenderModalOutputName_1.RenderModalOutputName, { existence: false, inputStyle: layout_2.input, outName: outName, onValueChange: onOutNameChange, validationMessage: validationMessage, label: "Download name" }), (0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_2.label, children: ["Log Level ", (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(OptionExplainerBubble_1.OptionExplainerBubble, { id: "logLevelOption" })] }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: logLevelOptions, selectedId: logLevel, title: "Log Level" }) })] })] }));
|
|
132
144
|
};
|
|
133
145
|
exports.WebRenderModalBasic = WebRenderModalBasic;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.humanReadableLogLevel = void 0;
|
|
4
|
+
const humanReadableLogLevel = (logLevel) => {
|
|
5
|
+
if (logLevel === 'trace') {
|
|
6
|
+
return 'Trace';
|
|
7
|
+
}
|
|
8
|
+
if (logLevel === 'verbose') {
|
|
9
|
+
return 'Verbose';
|
|
10
|
+
}
|
|
11
|
+
if (logLevel === 'info') {
|
|
12
|
+
return 'Info';
|
|
13
|
+
}
|
|
14
|
+
if (logLevel === 'warn') {
|
|
15
|
+
return 'Warn';
|
|
16
|
+
}
|
|
17
|
+
if (logLevel === 'error') {
|
|
18
|
+
return 'Error';
|
|
19
|
+
}
|
|
20
|
+
throw new TypeError(`Got unexpected log level "${logLevel}"`);
|
|
21
|
+
};
|
|
22
|
+
exports.humanReadableLogLevel = humanReadableLogLevel;
|
|
@@ -26,6 +26,10 @@ const TriggerWebRender = () => {
|
|
|
26
26
|
if (!(video === null || video === void 0 ? void 0 : video.id)) {
|
|
27
27
|
return null;
|
|
28
28
|
}
|
|
29
|
+
const defaults = window.remotion_renderDefaults;
|
|
30
|
+
if (!defaults) {
|
|
31
|
+
throw new TypeError('Expected defaults');
|
|
32
|
+
}
|
|
29
33
|
const frame = getCurrentFrame();
|
|
30
34
|
setSelectedModal({
|
|
31
35
|
type: 'web-render',
|
|
@@ -34,6 +38,7 @@ const TriggerWebRender = () => {
|
|
|
34
38
|
defaultProps: video.defaultProps,
|
|
35
39
|
inFrameMark: inFrame,
|
|
36
40
|
outFrameMark: outFrame,
|
|
41
|
+
initialLogLevel: defaults.logLevel,
|
|
37
42
|
});
|
|
38
43
|
}, [
|
|
39
44
|
getCurrentFrame,
|