@remotion/cli 3.3.79 → 3.3.81
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/codemods/update-default-props.d.ts +5 -0
- package/dist/codemods/update-default-props.js +144 -0
- package/dist/convert-entry-point-to-serve-url.d.ts +1 -0
- package/dist/convert-entry-point-to-serve-url.js +15 -0
- package/dist/editor/components/Checkbox.d.ts +6 -0
- package/dist/editor/components/Checkbox.js +42 -0
- package/dist/editor/components/CollapsableOptions.d.ts +6 -0
- package/dist/editor/components/CollapsableOptions.js +35 -0
- package/dist/editor/components/CollapsedSidebarExpander.d.ts +5 -0
- package/dist/editor/components/CollapsedSidebarExpander.js +41 -0
- package/dist/editor/components/CurrentCompositionSideEffects.d.ts +3 -0
- package/dist/editor/components/CurrentCompositionSideEffects.js +51 -0
- package/dist/editor/components/InlineAction.d.ts +5 -0
- package/dist/editor/components/InlineAction.js +35 -0
- package/dist/editor/components/Modals.d.ts +2 -0
- package/dist/editor/components/Modals.js +23 -0
- package/dist/editor/components/NewComposition/RemTextarea.d.ts +7 -0
- package/dist/editor/components/NewComposition/RemTextarea.js +92 -0
- package/dist/editor/components/RenderButton.d.ts +6 -0
- package/dist/editor/components/RenderButton.js +73 -0
- package/dist/editor/components/RenderModal/CliCopyButton.d.ts +4 -0
- package/dist/editor/components/RenderModal/CliCopyButton.js +22 -0
- package/dist/editor/components/RenderModal/CrfSetting.d.ts +16 -0
- package/dist/editor/components/RenderModal/CrfSetting.js +43 -0
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.d.ts +8 -0
- package/dist/editor/components/RenderModal/EnforceAudioTrackSetting.js +16 -0
- package/dist/editor/components/RenderModal/EnvInput.d.ts +11 -0
- package/dist/editor/components/RenderModal/EnvInput.js +74 -0
- package/dist/editor/components/RenderModal/FrameRangeSetting.d.ts +8 -0
- package/dist/editor/components/RenderModal/FrameRangeSetting.js +42 -0
- package/dist/editor/components/RenderModal/GuiRenderStatus.d.ts +5 -0
- package/dist/editor/components/RenderModal/GuiRenderStatus.js +78 -0
- package/dist/editor/components/RenderModal/InfoBubble.d.ts +5 -0
- package/dist/editor/components/RenderModal/InfoBubble.js +115 -0
- package/dist/editor/components/RenderModal/InfoTooltip.d.ts +5 -0
- package/dist/editor/components/RenderModal/InfoTooltip.js +40 -0
- package/dist/editor/components/RenderModal/InlineEyeIcon.d.ts +5 -0
- package/dist/editor/components/RenderModal/InlineEyeIcon.js +14 -0
- package/dist/editor/components/RenderModal/InlineRemoveButton.d.ts +4 -0
- package/dist/editor/components/RenderModal/InlineRemoveButton.js +12 -0
- package/dist/editor/components/RenderModal/JpegQualitySetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/JpegQualitySetting.js +12 -0
- package/dist/editor/components/RenderModal/MutedSetting.d.ts +8 -0
- package/dist/editor/components/RenderModal/MutedSetting.js +16 -0
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/NumberOfLoopsSetting.js +26 -0
- package/dist/editor/components/RenderModal/NumberSetting.d.ts +12 -0
- package/dist/editor/components/RenderModal/NumberSetting.js +29 -0
- package/dist/editor/components/RenderModal/OptionExplainer.d.ts +5 -0
- package/dist/editor/components/RenderModal/OptionExplainer.js +45 -0
- package/dist/editor/components/RenderModal/RenderModal.d.ts +34 -0
- package/dist/editor/components/RenderModal/RenderModal.js +566 -0
- package/dist/editor/components/RenderModal/RenderModalAdvanced.d.ts +26 -0
- package/dist/editor/components/RenderModal/RenderModalAdvanced.js +59 -0
- package/dist/editor/components/RenderModal/RenderModalAudio.d.ts +17 -0
- package/dist/editor/components/RenderModal/RenderModalAudio.js +46 -0
- package/dist/editor/components/RenderModal/RenderModalBasic.d.ts +23 -0
- package/dist/editor/components/RenderModal/RenderModalBasic.js +79 -0
- package/dist/editor/components/RenderModal/RenderModalData.d.ts +9 -0
- package/dist/editor/components/RenderModal/RenderModalData.js +63 -0
- package/dist/editor/components/RenderModal/RenderModalEnvironmentVariables.d.ts +5 -0
- package/dist/editor/components/RenderModal/RenderModalEnvironmentVariables.js +55 -0
- package/dist/editor/components/RenderModal/RenderModalGif.d.ts +9 -0
- package/dist/editor/components/RenderModal/RenderModalGif.js +19 -0
- package/dist/editor/components/RenderModal/RenderModalHr.d.ts +2 -0
- package/dist/editor/components/RenderModal/RenderModalHr.js +18 -0
- package/dist/editor/components/RenderModal/RenderModalInput.d.ts +10 -0
- package/dist/editor/components/RenderModal/RenderModalInput.js +13 -0
- package/dist/editor/components/RenderModal/RenderModalJSONInputPropsEditor.d.ts +10 -0
- package/dist/editor/components/RenderModal/RenderModalJSONInputPropsEditor.js +98 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.d.ts +28 -0
- package/dist/editor/components/RenderModal/RenderModalPicture.js +56 -0
- package/dist/editor/components/RenderModal/RenderStatusModal.d.ts +4 -0
- package/dist/editor/components/RenderModal/RenderStatusModal.js +72 -0
- package/dist/editor/components/RenderModal/ScaleSetting.d.ts +5 -0
- package/dist/editor/components/RenderModal/ScaleSetting.js +17 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.d.ts +12 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaEditor.js +70 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaEmptyStateGraphic.d.ts +2 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaEmptyStateGraphic.js +15 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.d.ts +15 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaLabel.js +41 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaResetButton.d.ts +4 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaResetButton.js +12 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaSaveButton.d.ts +4 -0
- package/dist/editor/components/RenderModal/SchemaEditor/SchemaSaveButton.js +12 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayEditor.js +71 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayItemEditor.d.ts +13 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodArrayItemEditor.js +28 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodBooleanEditor.d.ts +12 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +27 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDateEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodDateEditor.js +76 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodEffectEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodEffectEditor.js +51 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodEnumEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodEnumEditor.js +69 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodErrorMessages.d.ts +5 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodErrorMessages.js +23 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNonEditableValue.d.ts +8 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +27 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNumberEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodNumberEditor.js +89 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodObjectEditor.js +57 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodStringEditor.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodStringEditor.js +43 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.d.ts +14 -0
- package/dist/editor/components/RenderModal/SchemaEditor/ZodSwitch.js +61 -0
- package/dist/editor/components/RenderModal/SchemaEditor/date-serialization.d.ts +2 -0
- package/dist/editor/components/RenderModal/SchemaEditor/date-serialization.js +21 -0
- package/dist/editor/components/RenderModal/SchemaEditor/get-schema-label.d.ts +2 -0
- package/dist/editor/components/RenderModal/SchemaEditor/get-schema-label.js +15 -0
- package/dist/editor/components/RenderModal/SchemaEditor/schema-serialization.d.ts +2 -0
- package/dist/editor/components/RenderModal/SchemaEditor/schema-serialization.js +21 -0
- package/dist/editor/components/RenderModal/SchemaEditor/zod-types.d.ts +1 -0
- package/dist/editor/components/RenderModal/SchemaEditor/zod-types.js +2 -0
- package/dist/editor/components/RenderModal/human-readable-audio-codecs.d.ts +2 -0
- package/dist/editor/components/RenderModal/human-readable-audio-codecs.js +18 -0
- package/dist/editor/components/RenderModal/human-readable-codec.d.ts +2 -0
- package/dist/editor/components/RenderModal/human-readable-codec.js +36 -0
- package/dist/editor/components/RenderModal/layout.d.ts +7 -0
- package/dist/editor/components/RenderModal/layout.js +46 -0
- package/dist/editor/components/RenderModal/out-name-checker.d.ts +15 -0
- package/dist/editor/components/RenderModal/out-name-checker.js +80 -0
- package/dist/editor/components/RenderQueue/CircularProgress.d.ts +5 -0
- package/dist/editor/components/RenderQueue/CircularProgress.js +18 -0
- package/dist/editor/components/RenderQueue/RenderQueueError.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueError.js +26 -0
- package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueItem.js +40 -0
- package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +22 -0
- package/dist/editor/components/RenderQueue/RenderQueueItemStatus.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +43 -0
- package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.js +22 -0
- package/dist/editor/components/RenderQueue/RenderQueueOutputName.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +26 -0
- package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueProgressMessage.js +26 -0
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +33 -0
- package/dist/editor/components/RenderQueue/RenderQueueRepeat.d.ts +5 -0
- package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +22 -0
- package/dist/editor/components/RenderQueue/SuccessIcon.d.ts +2 -0
- package/dist/editor/components/RenderQueue/SuccessIcon.js +14 -0
- package/dist/editor/components/RenderQueue/actions.d.ts +59 -0
- package/dist/editor/components/RenderQueue/actions.js +114 -0
- package/dist/editor/components/RenderQueue/context.d.ts +18 -0
- package/dist/editor/components/RenderQueue/context.js +49 -0
- package/dist/editor/components/RenderQueue/index.d.ts +2 -0
- package/dist/editor/components/RenderQueue/index.js +19 -0
- package/dist/editor/components/RenderQueue/item-style.d.ts +2 -0
- package/dist/editor/components/RenderQueue/item-style.js +21 -0
- package/dist/editor/components/RenderToolbarIcon.d.ts +2 -0
- package/dist/editor/components/RenderToolbarIcon.js +84 -0
- package/dist/editor/components/RendersTab.d.ts +6 -0
- package/dist/editor/components/RendersTab.js +43 -0
- package/dist/editor/components/RightPanel.d.ts +8 -0
- package/dist/editor/components/RightPanel.js +81 -0
- package/dist/editor/components/SegmentedControl.d.ts +16 -0
- package/dist/editor/components/SegmentedControl.js +63 -0
- package/dist/editor/components/Tabs/index.d.ts +11 -0
- package/dist/editor/components/Tabs/index.js +51 -0
- package/dist/editor/helpers/client-id.d.ts +17 -0
- package/dist/editor/helpers/client-id.js +46 -0
- package/dist/editor/helpers/convert-env-variables.d.ts +2 -0
- package/dist/editor/helpers/convert-env-variables.js +20 -0
- package/dist/editor/helpers/prores-labels.d.ts +2 -0
- package/dist/editor/helpers/prores-labels.js +25 -0
- package/dist/editor/helpers/render-modal-sections.d.ts +9 -0
- package/dist/editor/helpers/render-modal-sections.js +32 -0
- package/dist/editor/helpers/use-breakpoint.d.ts +1 -0
- package/dist/editor/helpers/use-breakpoint.js +17 -0
- package/dist/editor/helpers/use-file-existence.d.ts +1 -0
- package/dist/editor/helpers/use-file-existence.js +66 -0
- package/dist/editor/icons/RenderStillIcon.d.ts +3 -0
- package/dist/editor/icons/RenderStillIcon.js +8 -0
- package/dist/editor/icons/audio.d.ts +2 -0
- package/dist/editor/icons/audio.js +6 -0
- package/dist/editor/icons/data.d.ts +2 -0
- package/dist/editor/icons/data.js +8 -0
- package/dist/editor/icons/file.d.ts +2 -0
- package/dist/editor/icons/file.js +6 -0
- package/dist/editor/icons/frame.d.ts +2 -0
- package/dist/editor/icons/frame.js +6 -0
- package/dist/editor/icons/gear.d.ts +2 -0
- package/dist/editor/icons/gear.js +6 -0
- package/dist/editor/icons/gif.d.ts +2 -0
- package/dist/editor/icons/gif.js +6 -0
- package/dist/editor/icons/render.d.ts +8 -0
- package/dist/editor/icons/render.js +12 -0
- package/dist/editor/icons/video.d.ts +5 -0
- package/dist/editor/icons/video.js +8 -0
- package/dist/ffmpeg.d.ts +2 -0
- package/dist/ffmpeg.js +21 -0
- package/dist/file-watcher.d.ts +9 -0
- package/dist/file-watcher.js +35 -0
- package/dist/get-default-out-name.d.ts +5 -0
- package/dist/get-default-out-name.js +10 -0
- package/dist/preview-server/api-routes.d.ts +4 -0
- package/dist/preview-server/api-routes.js +19 -0
- package/dist/preview-server/api-types.d.ts +28 -0
- package/dist/preview-server/api-types.js +2 -0
- package/dist/preview-server/file-existence-watchers.d.ts +13 -0
- package/dist/preview-server/file-existence-watchers.js +62 -0
- package/dist/preview-server/handler.d.ts +9 -0
- package/dist/preview-server/handler.js +34 -0
- package/dist/preview-server/parse-body.d.ts +2 -0
- package/dist/preview-server/parse-body.js +16 -0
- package/dist/preview-server/render-queue/get-default-video-contexts.d.ts +10 -0
- package/dist/preview-server/render-queue/get-default-video-contexts.js +13 -0
- package/dist/preview-server/render-queue/job.d.ts +129 -0
- package/dist/preview-server/render-queue/job.js +2 -0
- package/dist/preview-server/render-queue/make-retry-payload.d.ts +3 -0
- package/dist/preview-server/render-queue/make-retry-payload.js +89 -0
- package/dist/preview-server/render-queue/open-directory-in-finder.d.ts +1 -0
- package/dist/preview-server/render-queue/open-directory-in-finder.js +43 -0
- package/dist/preview-server/render-queue/process-still.d.ts +8 -0
- package/dist/preview-server/render-queue/process-still.js +46 -0
- package/dist/preview-server/render-queue/process-video.d.ts +8 -0
- package/dist/preview-server/render-queue/process-video.js +63 -0
- package/dist/preview-server/render-queue/queue.d.ts +21 -0
- package/dist/preview-server/render-queue/queue.js +208 -0
- package/dist/preview-server/routes/add-render.d.ts +3 -0
- package/dist/preview-server/routes/add-render.js +76 -0
- package/dist/preview-server/routes/cancel-render.d.ts +3 -0
- package/dist/preview-server/routes/cancel-render.js +9 -0
- package/dist/preview-server/routes/open-in-file-explorer.d.ts +3 -0
- package/dist/preview-server/routes/open-in-file-explorer.js +8 -0
- package/dist/preview-server/routes/remove-render.d.ts +3 -0
- package/dist/preview-server/routes/remove-render.js +9 -0
- package/dist/preview-server/routes/subscribe-to-file-existence.d.ts +3 -0
- package/dist/preview-server/routes/subscribe-to-file-existence.js +13 -0
- package/dist/preview-server/routes/unsubscribe-from-file-existence.d.ts +3 -0
- package/dist/preview-server/routes/unsubscribe-from-file-existence.js +13 -0
- package/dist/preview-server/routes/update-default-props.d.ts +3 -0
- package/dist/preview-server/routes/update-default-props.js +22 -0
- package/dist/progress-types.d.ts +32 -0
- package/dist/progress-types.js +17 -0
- package/dist/render-flows/render.d.ts +47 -0
- package/dist/render-flows/render.js +290 -0
- package/dist/render-flows/still.d.ts +29 -0
- package/dist/render-flows/still.js +168 -0
- package/dist/required-chromium-options.d.ts +3 -0
- package/dist/required-chromium-options.js +2 -0
- package/package.json +6 -6
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AudioCodec, Codec } from '@remotion/renderer';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { RenderType } from './RenderModalAdvanced';
|
|
4
|
+
export declare const RenderModalAudio: React.FC<{
|
|
5
|
+
muted: boolean;
|
|
6
|
+
setMuted: React.Dispatch<React.SetStateAction<boolean>>;
|
|
7
|
+
renderMode: RenderType;
|
|
8
|
+
enforceAudioTrack: boolean;
|
|
9
|
+
setEnforceAudioTrackState: React.Dispatch<React.SetStateAction<boolean>>;
|
|
10
|
+
shouldHaveCustomTargetAudioBitrate: boolean;
|
|
11
|
+
setShouldHaveCustomTargetAudioBitrate: React.Dispatch<React.SetStateAction<boolean>>;
|
|
12
|
+
setCustomTargetAudioBitrateValue: React.Dispatch<React.SetStateAction<string>>;
|
|
13
|
+
customTargetAudioBitrate: string;
|
|
14
|
+
audioCodec: AudioCodec;
|
|
15
|
+
setAudioCodec: (newAudioCodec: AudioCodec) => void;
|
|
16
|
+
codec: Codec;
|
|
17
|
+
}>;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderModalAudio = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const client_1 = require("@remotion/renderer/client");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const Checkmark_1 = require("../../icons/Checkmark");
|
|
8
|
+
const Checkbox_1 = require("../Checkbox");
|
|
9
|
+
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
10
|
+
const RemInput_1 = require("../NewComposition/RemInput");
|
|
11
|
+
const EnforceAudioTrackSetting_1 = require("./EnforceAudioTrackSetting");
|
|
12
|
+
const human_readable_audio_codecs_1 = require("./human-readable-audio-codecs");
|
|
13
|
+
const InfoBubble_1 = require("./InfoBubble");
|
|
14
|
+
const layout_1 = require("./layout");
|
|
15
|
+
const MutedSetting_1 = require("./MutedSetting");
|
|
16
|
+
const OptionExplainer_1 = require("./OptionExplainer");
|
|
17
|
+
const RenderModalHr_1 = require("./RenderModalHr");
|
|
18
|
+
const container = {
|
|
19
|
+
flex: 1,
|
|
20
|
+
};
|
|
21
|
+
const RenderModalAudio = ({ muted, setMuted, renderMode, enforceAudioTrack, setEnforceAudioTrackState, setShouldHaveCustomTargetAudioBitrate, shouldHaveCustomTargetAudioBitrate, setCustomTargetAudioBitrateValue, customTargetAudioBitrate, audioCodec, codec, setAudioCodec, }) => {
|
|
22
|
+
const onShouldHaveTargetAudioBitrateChanged = (0, react_1.useCallback)((e) => {
|
|
23
|
+
setShouldHaveCustomTargetAudioBitrate(e.target.checked);
|
|
24
|
+
}, [setShouldHaveCustomTargetAudioBitrate]);
|
|
25
|
+
const onTargetAudioBitrateChanged = (0, react_1.useCallback)((e) => {
|
|
26
|
+
setCustomTargetAudioBitrateValue(e.target.value);
|
|
27
|
+
}, [setCustomTargetAudioBitrateValue]);
|
|
28
|
+
const audioCodecOptions = (0, react_1.useCallback)((currentCodec) => {
|
|
29
|
+
return client_1.BrowserSafeApis.supportedAudioCodecs[currentCodec].map((audioCodecOption) => {
|
|
30
|
+
return {
|
|
31
|
+
label: (0, human_readable_audio_codecs_1.humanReadableAudioCodec)(audioCodecOption),
|
|
32
|
+
onClick: () => setAudioCodec(audioCodecOption),
|
|
33
|
+
key: audioCodecOption,
|
|
34
|
+
leftItem: codec === audioCodecOption ? (0, jsx_runtime_1.jsx)(Checkmark_1.Checkmark, {}) : null,
|
|
35
|
+
id: audioCodecOption,
|
|
36
|
+
keyHint: null,
|
|
37
|
+
quickSwitcherLabel: null,
|
|
38
|
+
subMenu: null,
|
|
39
|
+
type: 'item',
|
|
40
|
+
value: audioCodecOption,
|
|
41
|
+
};
|
|
42
|
+
});
|
|
43
|
+
}, [codec, setAudioCodec]);
|
|
44
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [renderMode === 'video' && audioCodecOptions(codec).length >= 2 ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Audio Codec" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: audioCodecOptions(codec), selectedId: audioCodec, title: "AudioCodec" }) })] })) : null, renderMode === 'video' && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(MutedSetting_1.MutedSetting, { enforceAudioTrack: enforceAudioTrack, muted: muted, setMuted: setMuted, hint: client_1.BrowserSafeApis.options.muteOption }), (0, jsx_runtime_1.jsx)(EnforceAudioTrackSetting_1.EnforceAudioTrackSetting, { muted: muted, enforceAudioTrack: enforceAudioTrack, setEnforceAudioTrack: setEnforceAudioTrackState, option: client_1.BrowserSafeApis.options.enforceAudioOption }), (0, jsx_runtime_1.jsx)(RenderModalHr_1.RenderModalHr, {})] })), renderMode === 'still' ? null : ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Custom audio bitrate" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: shouldHaveCustomTargetAudioBitrate, onChange: onShouldHaveTargetAudioBitrateChanged }) })] })), shouldHaveCustomTargetAudioBitrate && renderMode !== 'still' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Target audio bitrate" }), (0, jsx_runtime_1.jsx)(InfoBubble_1.InfoBubble, { title: "Learn more about this option", children: (0, jsx_runtime_1.jsx)(OptionExplainer_1.OptionExplainer, { option: client_1.BrowserSafeApis.options.audioBitrateOption }) }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { style: layout_1.input, value: customTargetAudioBitrate, onChange: onTargetAudioBitrateChanged, status: "ok" }) }) })] })) : null] }));
|
|
45
|
+
};
|
|
46
|
+
exports.RenderModalAudio = RenderModalAudio;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Codec, ProResProfile } from '@remotion/renderer';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { AnyComposition } from 'remotion';
|
|
4
|
+
import type { SegmentedControlItem } from '../SegmentedControl';
|
|
5
|
+
import type { RenderType } from './RenderModalAdvanced';
|
|
6
|
+
export declare const RenderModalBasic: React.FC<{
|
|
7
|
+
renderMode: RenderType;
|
|
8
|
+
imageFormatOptions: SegmentedControlItem[];
|
|
9
|
+
codec: Codec;
|
|
10
|
+
setVideoCodec: (newCodec: Codec) => void;
|
|
11
|
+
outName: string;
|
|
12
|
+
proResProfile: ProResProfile | null;
|
|
13
|
+
setProResProfile: React.Dispatch<React.SetStateAction<ProResProfile>>;
|
|
14
|
+
frame: number;
|
|
15
|
+
setFrame: React.Dispatch<React.SetStateAction<number>>;
|
|
16
|
+
currentComposition: AnyComposition;
|
|
17
|
+
setOutName: (value: React.SetStateAction<string>) => void;
|
|
18
|
+
setEndFrame: React.Dispatch<React.SetStateAction<number | null>>;
|
|
19
|
+
startFrame: number;
|
|
20
|
+
endFrame: number;
|
|
21
|
+
setStartFrame: React.Dispatch<React.SetStateAction<number | null>>;
|
|
22
|
+
validationMessage: string | null;
|
|
23
|
+
}>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderModalBasic = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const client_1 = require("@remotion/renderer/client");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const prores_labels_1 = require("../../helpers/prores-labels");
|
|
8
|
+
const use_file_existence_1 = require("../../helpers/use-file-existence");
|
|
9
|
+
const Checkmark_1 = require("../../icons/Checkmark");
|
|
10
|
+
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
11
|
+
const InputDragger_1 = require("../NewComposition/InputDragger");
|
|
12
|
+
const RemInput_1 = require("../NewComposition/RemInput");
|
|
13
|
+
const SegmentedControl_1 = require("../SegmentedControl");
|
|
14
|
+
const FrameRangeSetting_1 = require("./FrameRangeSetting");
|
|
15
|
+
const human_readable_codec_1 = require("./human-readable-codec");
|
|
16
|
+
const InfoBubble_1 = require("./InfoBubble");
|
|
17
|
+
const layout_1 = require("./layout");
|
|
18
|
+
const OptionExplainer_1 = require("./OptionExplainer");
|
|
19
|
+
const RenderModalInput_1 = require("./RenderModalInput");
|
|
20
|
+
const container = {
|
|
21
|
+
flex: 1,
|
|
22
|
+
};
|
|
23
|
+
const RenderModalBasic = ({ renderMode, imageFormatOptions, outName, codec, setVideoCodec: setCodec, proResProfile, setProResProfile, frame, setFrame, currentComposition, setOutName, setEndFrame, endFrame, setStartFrame, startFrame, validationMessage, }) => {
|
|
24
|
+
const existence = (0, use_file_existence_1.useFileExistence)(outName);
|
|
25
|
+
const videoCodecOptions = (0, react_1.useMemo)(() => {
|
|
26
|
+
return client_1.BrowserSafeApis.validCodecs
|
|
27
|
+
.filter((c) => {
|
|
28
|
+
return client_1.BrowserSafeApis.isAudioCodec(c) === (renderMode === 'audio');
|
|
29
|
+
})
|
|
30
|
+
.map((codecOption) => {
|
|
31
|
+
return {
|
|
32
|
+
label: (0, human_readable_codec_1.humanReadableCodec)(codecOption),
|
|
33
|
+
onClick: () => setCodec(codecOption),
|
|
34
|
+
key: codecOption,
|
|
35
|
+
leftItem: codec === codecOption ? (0, jsx_runtime_1.jsx)(Checkmark_1.Checkmark, {}) : null,
|
|
36
|
+
id: codecOption,
|
|
37
|
+
keyHint: null,
|
|
38
|
+
quickSwitcherLabel: null,
|
|
39
|
+
subMenu: null,
|
|
40
|
+
type: 'item',
|
|
41
|
+
value: codecOption,
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
}, [renderMode, setCodec, codec]);
|
|
45
|
+
const proResProfileOptions = (0, react_1.useMemo)(() => {
|
|
46
|
+
return client_1.BrowserSafeApis.proResProfileOptions.map((option) => {
|
|
47
|
+
return {
|
|
48
|
+
label: (0, prores_labels_1.labelProResProfile)(option),
|
|
49
|
+
onClick: () => setProResProfile(option),
|
|
50
|
+
key: option,
|
|
51
|
+
selected: proResProfile === option,
|
|
52
|
+
type: 'item',
|
|
53
|
+
id: option,
|
|
54
|
+
keyHint: null,
|
|
55
|
+
leftItem: null,
|
|
56
|
+
quickSwitcherLabel: null,
|
|
57
|
+
subMenu: null,
|
|
58
|
+
value: option,
|
|
59
|
+
};
|
|
60
|
+
});
|
|
61
|
+
}, [proResProfile, setProResProfile]);
|
|
62
|
+
const onFrameSetDirectly = (0, react_1.useCallback)((newFrame) => {
|
|
63
|
+
setFrame(newFrame);
|
|
64
|
+
}, [setFrame]);
|
|
65
|
+
const onFrameChanged = (0, react_1.useCallback)((e) => {
|
|
66
|
+
setFrame((q) => {
|
|
67
|
+
const newFrame = parseFloat(e);
|
|
68
|
+
if (Number.isNaN(newFrame)) {
|
|
69
|
+
return q;
|
|
70
|
+
}
|
|
71
|
+
return newFrame;
|
|
72
|
+
});
|
|
73
|
+
}, [setFrame]);
|
|
74
|
+
const onValueChange = (0, react_1.useCallback)((e) => {
|
|
75
|
+
setOutName(e.target.value);
|
|
76
|
+
}, [setOutName]);
|
|
77
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [renderMode === 'still' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: imageFormatOptions, needsWrapping: true }) })] })) : ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsxs)("div", { style: layout_1.label, children: ["Codec", (0, jsx_runtime_1.jsx)(InfoBubble_1.InfoBubble, { title: "Learn more about this option", children: (0, jsx_runtime_1.jsx)(OptionExplainer_1.OptionExplainer, { option: client_1.BrowserSafeApis.options.videoCodecOption }) })] }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: videoCodecOptions, selectedId: codec, title: "Codec" }) })] })), renderMode === 'still' && currentComposition.durationInFrames > 1 ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Frame" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.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-${currentComposition.durationInFrames - 1}`, onValueChange: onFrameSetDirectly, name: "frame", step: 1, min: 0, status: "ok", max: currentComposition.durationInFrames - 1 }) }) })] })) : null, renderMode === 'video' && codec === 'prores' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "ProRes profile" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.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: currentComposition.durationInFrames, endFrame: endFrame, setEndFrame: setEndFrame, setStartFrame: setStartFrame, startFrame: startFrame })), (0, jsx_runtime_1.jsx)(RenderModalInput_1.RenderModalInput, { existence: existence, inputStyle: layout_1.input, outName: outName, onValueChange: onValueChange, validationMessage: validationMessage })] }));
|
|
78
|
+
};
|
|
79
|
+
exports.RenderModalBasic = RenderModalBasic;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { AnyComposition } from 'remotion';
|
|
3
|
+
export declare const RenderModalData: React.FC<{
|
|
4
|
+
composition: AnyComposition;
|
|
5
|
+
inputProps: unknown;
|
|
6
|
+
setInputProps: React.Dispatch<React.SetStateAction<unknown>>;
|
|
7
|
+
compact: boolean;
|
|
8
|
+
showSaveButton: boolean;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderModalData = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const colors_1 = require("../../helpers/colors");
|
|
7
|
+
const actions_1 = require("../RenderQueue/actions");
|
|
8
|
+
const SegmentedControl_1 = require("../SegmentedControl");
|
|
9
|
+
const RenderModalJSONInputPropsEditor_1 = require("./RenderModalJSONInputPropsEditor");
|
|
10
|
+
const SchemaEditor_1 = require("./SchemaEditor/SchemaEditor");
|
|
11
|
+
const outer = {
|
|
12
|
+
display: 'flex',
|
|
13
|
+
flexDirection: 'column',
|
|
14
|
+
flex: 1,
|
|
15
|
+
overflow: 'hidden',
|
|
16
|
+
};
|
|
17
|
+
const controlContainer = {
|
|
18
|
+
flexDirection: 'row',
|
|
19
|
+
display: 'flex',
|
|
20
|
+
paddingLeft: 12,
|
|
21
|
+
paddingTop: 12,
|
|
22
|
+
paddingBottom: 12,
|
|
23
|
+
borderBottom: `1px solid ${colors_1.BORDER_COLOR}`,
|
|
24
|
+
};
|
|
25
|
+
const RenderModalData = ({ composition, inputProps, setInputProps, compact, showSaveButton }) => {
|
|
26
|
+
const [mode, setMode] = (0, react_1.useState)('schema');
|
|
27
|
+
const [valBeforeSafe, setValBeforeSafe] = (0, react_1.useState)(inputProps);
|
|
28
|
+
const zodValidationResult = (0, react_1.useMemo)(() => {
|
|
29
|
+
return composition.schema.safeParse(inputProps);
|
|
30
|
+
}, [composition.schema, inputProps]);
|
|
31
|
+
const modeItems = (0, react_1.useMemo)(() => {
|
|
32
|
+
return [
|
|
33
|
+
{
|
|
34
|
+
key: 'schema',
|
|
35
|
+
label: 'Schema',
|
|
36
|
+
onClick: () => {
|
|
37
|
+
setMode('schema');
|
|
38
|
+
},
|
|
39
|
+
selected: mode === 'schema',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
key: 'json',
|
|
43
|
+
label: 'JSON',
|
|
44
|
+
onClick: () => {
|
|
45
|
+
setMode('json');
|
|
46
|
+
},
|
|
47
|
+
selected: mode === 'json',
|
|
48
|
+
},
|
|
49
|
+
];
|
|
50
|
+
}, [mode]);
|
|
51
|
+
const switchToSchema = (0, react_1.useCallback)(() => {
|
|
52
|
+
setMode('schema');
|
|
53
|
+
}, []);
|
|
54
|
+
const onUpdate = (0, react_1.useCallback)(() => {
|
|
55
|
+
setValBeforeSafe(inputProps);
|
|
56
|
+
(0, actions_1.updateDefaultProps)(composition.id, inputProps);
|
|
57
|
+
}, [composition.id, inputProps]);
|
|
58
|
+
const onSave = (0, react_1.useCallback)((updater) => {
|
|
59
|
+
(0, actions_1.updateDefaultProps)(composition.id, updater(composition.defaultProps));
|
|
60
|
+
}, [composition.defaultProps, composition.id]);
|
|
61
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: outer, children: [(0, jsx_runtime_1.jsx)("div", { style: controlContainer, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: modeItems, needsWrapping: false }) }), mode === 'schema' ? ((0, jsx_runtime_1.jsx)(SchemaEditor_1.SchemaEditor, { value: inputProps, setValue: setInputProps, schema: composition.schema, zodValidationResult: zodValidationResult, compact: compact, defaultProps: composition.defaultProps, onSave: onSave, showSaveButton: showSaveButton })) : ((0, jsx_runtime_1.jsx)(RenderModalJSONInputPropsEditor_1.RenderModalJSONInputPropsEditor, { value: inputProps !== null && inputProps !== void 0 ? inputProps : {}, setValue: setInputProps, zodValidationResult: zodValidationResult, switchToSchema: switchToSchema, onSave: onUpdate, valBeforeSafe: valBeforeSafe }))] }));
|
|
62
|
+
};
|
|
63
|
+
exports.RenderModalData = RenderModalData;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderModalEnvironmentVariables = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const Button_1 = require("../../../preview-server/error-overlay/remotion-overlay/Button");
|
|
7
|
+
const colors_1 = require("../../helpers/colors");
|
|
8
|
+
const layout_1 = require("../layout");
|
|
9
|
+
const EnvInput_1 = require("./EnvInput");
|
|
10
|
+
const title = {
|
|
11
|
+
fontSize: 14,
|
|
12
|
+
fontWeight: 'bold',
|
|
13
|
+
color: colors_1.LIGHT_TEXT,
|
|
14
|
+
marginLeft: 16,
|
|
15
|
+
};
|
|
16
|
+
const container = {
|
|
17
|
+
marginTop: 20,
|
|
18
|
+
};
|
|
19
|
+
const button = {
|
|
20
|
+
marginLeft: 16,
|
|
21
|
+
};
|
|
22
|
+
const RenderModalEnvironmentVariables = ({ envVariables, setEnvVariables }) => {
|
|
23
|
+
const onEnvValChange = (0, react_1.useCallback)((index, value) => {
|
|
24
|
+
setEnvVariables((oldEnv) => {
|
|
25
|
+
const newEnv = [...oldEnv];
|
|
26
|
+
newEnv[index][1] = value;
|
|
27
|
+
return newEnv;
|
|
28
|
+
});
|
|
29
|
+
}, [setEnvVariables]);
|
|
30
|
+
const onEnvKeyChange = (0, react_1.useCallback)((index, value) => {
|
|
31
|
+
setEnvVariables((oldEnv) => {
|
|
32
|
+
const newEnv = [...oldEnv];
|
|
33
|
+
newEnv[index][0] = value;
|
|
34
|
+
return newEnv;
|
|
35
|
+
});
|
|
36
|
+
}, [setEnvVariables]);
|
|
37
|
+
const onDelete = (0, react_1.useCallback)((index) => {
|
|
38
|
+
setEnvVariables((oldEnv) => oldEnv.filter((_, idx) => idx !== index));
|
|
39
|
+
}, [setEnvVariables]);
|
|
40
|
+
const addField = (0, react_1.useCallback)(() => {
|
|
41
|
+
setEnvVariables((oldEnv) => [...oldEnv, ['', '']]);
|
|
42
|
+
}, [setEnvVariables]);
|
|
43
|
+
const usedKeys = [];
|
|
44
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)("strong", { style: title, children: "Environment variables" }), envVariables.map((env, i) => {
|
|
45
|
+
let isDuplicate = false;
|
|
46
|
+
if (usedKeys.includes(env[0].toUpperCase())) {
|
|
47
|
+
isDuplicate = true;
|
|
48
|
+
}
|
|
49
|
+
usedKeys.push(env[0].toUpperCase());
|
|
50
|
+
return ((0, jsx_runtime_1.jsx)(EnvInput_1.EnvInput
|
|
51
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
52
|
+
, { onEnvKeyChange: onEnvKeyChange, onEnvValChange: onEnvValChange, envKey: env[0], envVal: env[1], onDelete: onDelete, index: i, isDuplicate: isDuplicate, autoFocus: i === envVariables.length - 1 && env[0] === '' }, i));
|
|
53
|
+
}), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1, block: true }), (0, jsx_runtime_1.jsx)(Button_1.Button, { style: button, onClick: addField, children: "+ Add env variable" }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1, block: true })] }));
|
|
54
|
+
};
|
|
55
|
+
exports.RenderModalEnvironmentVariables = RenderModalEnvironmentVariables;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare const RenderModalGif: React.FC<{
|
|
3
|
+
limitNumberOfGifLoops: boolean;
|
|
4
|
+
setLimitNumberOfGifLoops: (value: React.SetStateAction<boolean>) => void;
|
|
5
|
+
numberOfGifLoopsSetting: number;
|
|
6
|
+
setNumberOfGifLoopsSetting: React.Dispatch<React.SetStateAction<number>>;
|
|
7
|
+
everyNthFrame: number;
|
|
8
|
+
setEveryNthFrameSetting: React.Dispatch<React.SetStateAction<number>>;
|
|
9
|
+
}>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderModalGif = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const Checkbox_1 = require("../Checkbox");
|
|
7
|
+
const layout_1 = require("./layout");
|
|
8
|
+
const NumberOfLoopsSetting_1 = require("./NumberOfLoopsSetting");
|
|
9
|
+
const NumberSetting_1 = require("./NumberSetting");
|
|
10
|
+
const container = {
|
|
11
|
+
flex: 1,
|
|
12
|
+
};
|
|
13
|
+
const RenderModalGif = ({ everyNthFrame, limitNumberOfGifLoops, numberOfGifLoopsSetting, setEveryNthFrameSetting, setLimitNumberOfGifLoops, setNumberOfGifLoopsSetting, }) => {
|
|
14
|
+
const onShouldLimitNumberOfGifLoops = (0, react_1.useCallback)((e) => {
|
|
15
|
+
setLimitNumberOfGifLoops(e.target.checked);
|
|
16
|
+
}, [setLimitNumberOfGifLoops]);
|
|
17
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(NumberSetting_1.NumberSetting, { name: "Every nth frame", min: 1, onValueChanged: setEveryNthFrameSetting, value: everyNthFrame, step: 1 }), (0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Limit GIF loops" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(Checkbox_1.Checkbox, { checked: limitNumberOfGifLoops, onChange: onShouldLimitNumberOfGifLoops }) })] }), limitNumberOfGifLoops ? ((0, jsx_runtime_1.jsx)(NumberOfLoopsSetting_1.NumberOfLoopsSetting, { numberOfGifLoops: numberOfGifLoopsSetting, setNumberOfGifLoops: setNumberOfGifLoopsSetting })) : null] }));
|
|
18
|
+
};
|
|
19
|
+
exports.RenderModalGif = RenderModalGif;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderModalHr = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const hrStyle = {
|
|
6
|
+
margin: '0 0 0 0',
|
|
7
|
+
padding: '0 0 0 0',
|
|
8
|
+
border: 'none',
|
|
9
|
+
borderTop: '1px solid #000',
|
|
10
|
+
marginRight: 16,
|
|
11
|
+
marginLeft: 16,
|
|
12
|
+
marginTop: 8,
|
|
13
|
+
marginBottom: 8,
|
|
14
|
+
};
|
|
15
|
+
const RenderModalHr = () => {
|
|
16
|
+
return (0, jsx_runtime_1.jsx)("div", { style: hrStyle });
|
|
17
|
+
};
|
|
18
|
+
exports.RenderModalHr = RenderModalHr;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare type Props = {
|
|
3
|
+
existence: boolean;
|
|
4
|
+
inputStyle: React.CSSProperties;
|
|
5
|
+
outName: string;
|
|
6
|
+
onValueChange: React.ChangeEventHandler<HTMLInputElement>;
|
|
7
|
+
validationMessage: string | null;
|
|
8
|
+
};
|
|
9
|
+
export declare function RenderModalInput({ existence, inputStyle, outName, onValueChange, validationMessage, }: Props): JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderModalInput = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const layout_1 = require("../layout");
|
|
6
|
+
const RemInput_1 = require("../NewComposition/RemInput");
|
|
7
|
+
const ValidationMessage_1 = require("../NewComposition/ValidationMessage");
|
|
8
|
+
const layout_2 = require("./layout");
|
|
9
|
+
// eslint-disable-next-line react/function-component-definition
|
|
10
|
+
function RenderModalInput({ existence, inputStyle, outName, onValueChange, validationMessage, }) {
|
|
11
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: layout_2.optionRow, children: [(0, jsx_runtime_1.jsx)(layout_1.Column, { children: (0, jsx_runtime_1.jsx)("div", { style: layout_2.label, children: "Output name" }) }), (0, jsx_runtime_1.jsx)("div", { style: layout_2.rightRow, children: (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { status: validationMessage ? 'error' : existence ? 'warning' : 'ok', style: inputStyle, type: "text", value: outName, onChange: onValueChange }), validationMessage ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1, block: true }), (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-end", message: validationMessage, type: 'error' })] })) : existence ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1, block: true }), (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-end", message: "Will be overwritten", type: 'warning' })] })) : null] }) })] }));
|
|
12
|
+
}
|
|
13
|
+
exports.RenderModalInput = RenderModalInput;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { z } from 'remotion';
|
|
3
|
+
export declare const RenderModalJSONInputPropsEditor: React.FC<{
|
|
4
|
+
value: unknown;
|
|
5
|
+
setValue: React.Dispatch<React.SetStateAction<unknown>>;
|
|
6
|
+
zodValidationResult: z.SafeParseReturnType<unknown, unknown>;
|
|
7
|
+
switchToSchema: () => void;
|
|
8
|
+
onSave: () => void;
|
|
9
|
+
valBeforeSafe: unknown;
|
|
10
|
+
}>;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.RenderModalJSONInputPropsEditor = void 0;
|
|
27
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
|
+
const react_1 = __importStar(require("react"));
|
|
29
|
+
const Button_1 = require("../../../preview-server/error-overlay/remotion-overlay/Button");
|
|
30
|
+
const layout_1 = require("../layout");
|
|
31
|
+
const RemTextarea_1 = require("../NewComposition/RemTextarea");
|
|
32
|
+
const ValidationMessage_1 = require("../NewComposition/ValidationMessage");
|
|
33
|
+
const date_serialization_1 = require("./SchemaEditor/date-serialization");
|
|
34
|
+
const parseJSON = (str) => {
|
|
35
|
+
try {
|
|
36
|
+
const value = (0, date_serialization_1.deserializeJSONWithDate)(str);
|
|
37
|
+
return { str, value, validJSON: true };
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
return { str, validJSON: false, error: e.message };
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const style = {
|
|
44
|
+
fontFamily: 'monospace',
|
|
45
|
+
flex: 1,
|
|
46
|
+
};
|
|
47
|
+
const schemaButton = {
|
|
48
|
+
border: 'none',
|
|
49
|
+
padding: 0,
|
|
50
|
+
display: 'inline-block',
|
|
51
|
+
cursor: 'pointer',
|
|
52
|
+
backgroundColor: 'transparent',
|
|
53
|
+
};
|
|
54
|
+
const scrollable = {
|
|
55
|
+
padding: '8px 12px',
|
|
56
|
+
display: 'flex',
|
|
57
|
+
flexDirection: 'column',
|
|
58
|
+
flex: 1,
|
|
59
|
+
};
|
|
60
|
+
// TODO: Note if custom 'remotion-date:' pattern has been used
|
|
61
|
+
const RenderModalJSONInputPropsEditor = ({ setValue, value, zodValidationResult, switchToSchema, onSave, valBeforeSafe, }) => {
|
|
62
|
+
const [localValue, setLocalValue] = react_1.default.useState(() => {
|
|
63
|
+
return parseJSON((0, date_serialization_1.serializeJSONWithDate)(value, 2));
|
|
64
|
+
});
|
|
65
|
+
const onPretty = (0, react_1.useCallback)(() => {
|
|
66
|
+
if (!localValue.validJSON) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const parsed = JSON.parse(localValue.str);
|
|
70
|
+
setLocalValue({ ...localValue, str: JSON.stringify(parsed, null, 2) });
|
|
71
|
+
}, [localValue]);
|
|
72
|
+
const onChange = (0, react_1.useCallback)((e) => {
|
|
73
|
+
const parsed = parseJSON(e.target.value);
|
|
74
|
+
if (parsed.validJSON) {
|
|
75
|
+
setLocalValue({
|
|
76
|
+
str: e.target.value,
|
|
77
|
+
value: parsed.value,
|
|
78
|
+
validJSON: parsed.validJSON,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
setLocalValue({
|
|
83
|
+
str: e.target.value,
|
|
84
|
+
validJSON: parsed.validJSON,
|
|
85
|
+
error: parsed.error,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
if (parsed.validJSON) {
|
|
89
|
+
setValue(parsed.value);
|
|
90
|
+
}
|
|
91
|
+
}, [setValue]);
|
|
92
|
+
const hasChanged = (0, react_1.useMemo)(() => {
|
|
93
|
+
return value && JSON.stringify(value) !== JSON.stringify(valBeforeSafe);
|
|
94
|
+
}, [valBeforeSafe, value]);
|
|
95
|
+
// TODO: Indicate saving progress
|
|
96
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: scrollable, children: [(0, jsx_runtime_1.jsx)(RemTextarea_1.RemTextarea, { onChange: onChange, value: localValue.str, status: localValue.validJSON ? 'ok' : 'error', style: style }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1 }), localValue.validJSON === false ? ((0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-start", message: localValue.error, type: "error" })) : zodValidationResult.success === false ? ((0, jsx_runtime_1.jsx)("button", { type: "button", style: schemaButton, onClick: switchToSchema, children: (0, jsx_runtime_1.jsx)(ValidationMessage_1.ValidationMessage, { align: "flex-start", message: "Does not match schema", type: "warning" }) })) : null, (0, jsx_runtime_1.jsx)(layout_1.Spacing, { y: 1 }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { disabled: !localValue.validJSON, onClick: onPretty, children: "Format JSON" }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)(Button_1.Button, { onClick: onSave, disabled: !zodValidationResult.success || !hasChanged, children: "Save" })] })] }));
|
|
97
|
+
};
|
|
98
|
+
exports.RenderModalJSONInputPropsEditor = RenderModalJSONInputPropsEditor;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { PixelFormat, StillImageFormat, VideoImageFormat } from '@remotion/renderer';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { SegmentedControlItem } from '../SegmentedControl';
|
|
4
|
+
import type { RenderType } from './RenderModalAdvanced';
|
|
5
|
+
declare const qualityControlModes: readonly ["crf", "bitrate"];
|
|
6
|
+
export declare type QualityControl = typeof qualityControlModes[number];
|
|
7
|
+
export declare const RenderModalPicture: React.FC<{
|
|
8
|
+
renderMode: RenderType;
|
|
9
|
+
scale: number;
|
|
10
|
+
setScale: React.Dispatch<React.SetStateAction<number>>;
|
|
11
|
+
pixelFormat: PixelFormat;
|
|
12
|
+
setPixelFormat: React.Dispatch<React.SetStateAction<PixelFormat>>;
|
|
13
|
+
imageFormatOptions: SegmentedControlItem[];
|
|
14
|
+
setQualityControl: React.Dispatch<React.SetStateAction<QualityControl>>;
|
|
15
|
+
qualityControlType: QualityControl;
|
|
16
|
+
videoImageFormat: VideoImageFormat;
|
|
17
|
+
stillImageFormat: StillImageFormat;
|
|
18
|
+
setQuality: React.Dispatch<React.SetStateAction<number>>;
|
|
19
|
+
quality: number;
|
|
20
|
+
maxCrf: number;
|
|
21
|
+
minCrf: number;
|
|
22
|
+
setCrf: React.Dispatch<React.SetStateAction<number>>;
|
|
23
|
+
shouldDisplayCrfOption: boolean;
|
|
24
|
+
setCustomTargetVideoBitrateValue: React.Dispatch<React.SetStateAction<string>>;
|
|
25
|
+
crf: number;
|
|
26
|
+
customTargetVideoBitrate: string;
|
|
27
|
+
}>;
|
|
28
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RenderModalPicture = void 0;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const client_1 = require("@remotion/renderer/client");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const Checkmark_1 = require("../../icons/Checkmark");
|
|
8
|
+
const ComboBox_1 = require("../NewComposition/ComboBox");
|
|
9
|
+
const RemInput_1 = require("../NewComposition/RemInput");
|
|
10
|
+
const SegmentedControl_1 = require("../SegmentedControl");
|
|
11
|
+
const CrfSetting_1 = require("./CrfSetting");
|
|
12
|
+
const InfoBubble_1 = require("./InfoBubble");
|
|
13
|
+
const JpegQualitySetting_1 = require("./JpegQualitySetting");
|
|
14
|
+
const layout_1 = require("./layout");
|
|
15
|
+
const OptionExplainer_1 = require("./OptionExplainer");
|
|
16
|
+
const RenderModalHr_1 = require("./RenderModalHr");
|
|
17
|
+
const ScaleSetting_1 = require("./ScaleSetting");
|
|
18
|
+
const qualityControlModes = ['crf', 'bitrate'];
|
|
19
|
+
const container = {
|
|
20
|
+
flex: 1,
|
|
21
|
+
};
|
|
22
|
+
const RenderModalPicture = ({ renderMode, scale, setScale, pixelFormat, setPixelFormat, imageFormatOptions, setQualityControl, qualityControlType, videoImageFormat, setQuality, quality, maxCrf, minCrf, setCrf, shouldDisplayCrfOption, setCustomTargetVideoBitrateValue, crf, customTargetVideoBitrate, stillImageFormat, }) => {
|
|
23
|
+
const pixelFormatOptions = (0, react_1.useMemo)(() => {
|
|
24
|
+
return client_1.BrowserSafeApis.validPixelFormats.map((option) => {
|
|
25
|
+
return {
|
|
26
|
+
label: option,
|
|
27
|
+
onClick: () => setPixelFormat(option),
|
|
28
|
+
key: option,
|
|
29
|
+
id: option,
|
|
30
|
+
keyHint: null,
|
|
31
|
+
leftItem: pixelFormat === option ? (0, jsx_runtime_1.jsx)(Checkmark_1.Checkmark, {}) : null,
|
|
32
|
+
quickSwitcherLabel: null,
|
|
33
|
+
subMenu: null,
|
|
34
|
+
type: 'item',
|
|
35
|
+
value: option,
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}, [pixelFormat, setPixelFormat]);
|
|
39
|
+
const qualityControlOptions = (0, react_1.useMemo)(() => {
|
|
40
|
+
return qualityControlModes.map((option) => {
|
|
41
|
+
return {
|
|
42
|
+
label: option === 'crf' ? 'CRF' : 'Bitrate',
|
|
43
|
+
onClick: () => setQualityControl(option),
|
|
44
|
+
key: option,
|
|
45
|
+
selected: qualityControlType === option,
|
|
46
|
+
};
|
|
47
|
+
});
|
|
48
|
+
}, [qualityControlType, setQualityControl]);
|
|
49
|
+
const onTargetVideoBitrateChanged = (0, react_1.useCallback)((e) => {
|
|
50
|
+
setCustomTargetVideoBitrateValue(e.target.value);
|
|
51
|
+
}, [setCustomTargetVideoBitrateValue]);
|
|
52
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [renderMode === 'video' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Image Format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: imageFormatOptions, needsWrapping: false }) })] })) : null, renderMode === 'video' && videoImageFormat === 'jpeg' && ((0, jsx_runtime_1.jsx)(JpegQualitySetting_1.JpegQualitySetting, { quality: quality, setQuality: setQuality })), renderMode === 'still' && stillImageFormat === 'jpeg' && ((0, jsx_runtime_1.jsx)(JpegQualitySetting_1.JpegQualitySetting, { quality: quality, setQuality: setQuality })), renderMode === 'video' ? (0, jsx_runtime_1.jsx)(RenderModalHr_1.RenderModalHr, {}) : null, renderMode === 'video' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Quality control" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(SegmentedControl_1.SegmentedControl, { items: qualityControlOptions, needsWrapping: true }) })] })) : null, shouldDisplayCrfOption &&
|
|
53
|
+
qualityControlType === 'crf' &&
|
|
54
|
+
renderMode !== 'still' ? ((0, jsx_runtime_1.jsx)(CrfSetting_1.CrfSetting, { crf: crf, min: minCrf, max: maxCrf, setCrf: setCrf, option: client_1.BrowserSafeApis.options.crfOption })) : null, qualityControlType === 'bitrate' && renderMode !== 'still' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Target video bitrate" }), (0, jsx_runtime_1.jsx)(InfoBubble_1.InfoBubble, { title: "Learn more about this option", children: (0, jsx_runtime_1.jsx)(OptionExplainer_1.OptionExplainer, { option: client_1.BrowserSafeApis.options.videoBitrate }) }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(RemInput_1.RemotionInput, { style: layout_1.input, value: customTargetVideoBitrate, onChange: onTargetVideoBitrateChanged, status: "ok" }) }) })] })) : null, renderMode === 'video' ? (0, jsx_runtime_1.jsx)(RenderModalHr_1.RenderModalHr, {}) : null, (0, jsx_runtime_1.jsx)(ScaleSetting_1.ScaleSetting, { scale: scale, setScale: setScale }), renderMode === 'video' ? (0, jsx_runtime_1.jsx)(RenderModalHr_1.RenderModalHr, {}) : null, renderMode === 'video' ? ((0, jsx_runtime_1.jsxs)("div", { style: layout_1.optionRow, children: [(0, jsx_runtime_1.jsx)("div", { style: layout_1.label, children: "Pixel format" }), (0, jsx_runtime_1.jsx)("div", { style: layout_1.rightRow, children: (0, jsx_runtime_1.jsx)(ComboBox_1.Combobox, { values: pixelFormatOptions, selectedId: pixelFormat, title: "Pixel Format" }) })] })) : null] }));
|
|
55
|
+
};
|
|
56
|
+
exports.RenderModalPicture = RenderModalPicture;
|