@remotion/cli 4.0.43 → 4.0.45
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/config/index.d.ts +1 -1
- package/dist/config/log.d.ts +1 -1
- package/dist/editor/components/AssetSelector.js +19 -3
- package/dist/editor/components/AssetSelectorItem.d.ts +6 -4
- package/dist/editor/components/AssetSelectorItem.js +48 -23
- package/dist/editor/components/Canvas.d.ts +4 -1
- package/dist/editor/components/Canvas.js +54 -30
- package/dist/editor/components/CanvasOrLoading.js +9 -1
- package/dist/editor/components/CompositionSelector.js +8 -6
- package/dist/editor/components/CompositionSelectorItem.d.ts +1 -1
- package/dist/editor/components/CompositionSelectorItem.js +1 -7
- package/dist/editor/components/CurrentCompositionSideEffects.js +15 -4
- package/dist/editor/components/DownloadButton.d.ts +0 -0
- package/dist/editor/components/DownloadButton.js +1 -0
- package/dist/editor/components/EditorContent.js +6 -1
- package/dist/editor/components/ExplorerPanel.js +0 -13
- package/dist/editor/components/FilePreview.d.ts +9 -0
- package/dist/editor/components/FilePreview.js +40 -0
- package/dist/editor/components/FramePersistor.d.ts +0 -1
- package/dist/editor/components/FramePersistor.js +1 -5
- package/dist/editor/components/InitialCompositionLoader.js +68 -18
- package/dist/editor/components/LoopToggle.js +0 -5
- package/dist/editor/components/MuteToggle.js +0 -5
- package/dist/editor/components/NewComposition/RemInput.d.ts +2 -2
- package/dist/editor/components/NewComposition/RemInputTypeColor.d.ts +1 -1
- package/dist/editor/components/NewComposition/RemTextarea.d.ts +1 -1
- package/dist/editor/components/OptionsPanel.js +7 -7
- package/dist/editor/components/PlayPause.js +0 -3
- package/dist/editor/components/PlaybackRateSelector.js +3 -1
- package/dist/editor/components/Preview.d.ts +8 -0
- package/dist/editor/components/Preview.js +97 -30
- package/dist/editor/components/PreviewToolbar.js +4 -1
- package/dist/editor/components/RenderPreview.d.ts +6 -0
- package/dist/editor/components/RenderPreview.js +31 -0
- package/dist/editor/components/RenderQueue/RenderQueueCopyToClipboard.js +3 -2
- package/dist/editor/components/RenderQueue/RenderQueueItem.d.ts +1 -0
- package/dist/editor/components/RenderQueue/RenderQueueItem.js +55 -2
- package/dist/editor/components/RenderQueue/RenderQueueItemCancelButton.js +2 -1
- package/dist/editor/components/RenderQueue/RenderQueueItemStatus.js +35 -4
- package/dist/editor/components/RenderQueue/RenderQueueOpenInFolder.js +3 -2
- package/dist/editor/components/RenderQueue/RenderQueueOutputName.js +3 -11
- package/dist/editor/components/RenderQueue/RenderQueueRemoveItem.js +2 -1
- package/dist/editor/components/RenderQueue/RenderQueueRepeat.js +2 -1
- package/dist/editor/components/RenderQueue/index.js +16 -1
- package/dist/editor/components/RendersTab.js +9 -1
- package/dist/editor/components/SizeSelector.js +24 -0
- package/dist/editor/components/StaticFilePreview.d.ts +6 -0
- package/dist/editor/components/StaticFilePreview.js +39 -0
- package/dist/editor/components/TextViewer.d.ts +4 -0
- package/dist/editor/components/TextViewer.js +26 -0
- package/dist/editor/components/Timeline/TimelineZoomControls.js +3 -1
- package/dist/editor/components/TimelineInOutToggle.js +0 -5
- package/dist/editor/components/ZoomPersistor.d.ts +2 -0
- package/dist/editor/components/ZoomPersistor.js +35 -7
- package/dist/editor/components/layout.d.ts +2 -1
- package/dist/editor/components/layout.js +2 -2
- package/dist/editor/helpers/checkerboard-background.d.ts +1 -1
- package/dist/editor/helpers/colors.d.ts +1 -1
- package/dist/editor/helpers/create-folder-tree.d.ts +4 -3
- package/dist/editor/helpers/create-folder-tree.js +6 -3
- package/dist/editor/helpers/document-title.d.ts +1 -1
- package/dist/editor/helpers/document-title.js +14 -8
- package/dist/editor/helpers/get-asset-metadata.d.ts +11 -0
- package/dist/editor/helpers/get-asset-metadata.js +64 -0
- package/dist/editor/helpers/is-current-selected-still.d.ts +4 -3
- package/dist/editor/helpers/is-current-selected-still.js +12 -13
- package/dist/editor/helpers/persist-open-folders.d.ts +4 -2
- package/dist/editor/helpers/persist-open-folders.js +7 -5
- package/dist/editor/state/folders.d.ts +4 -2
- package/dist/editor/state/folders.js +13 -6
- package/dist/get-cli-options.d.ts +2 -2
- package/dist/index.d.ts +10 -10
- package/dist/log.d.ts +4 -4
- package/dist/preview-server/routes.d.ts +5 -3
- package/dist/preview-server/routes.js +52 -8
- package/dist/preview-server/serve-static.d.ts +6 -1
- package/dist/preview-server/serve-static.js +1 -4
- package/dist/preview-server/start-server.d.ts +4 -2
- package/dist/preview-server/start-server.js +4 -2
- package/dist/studio.js +9 -4
- package/package.json +8 -8
package/dist/config/index.d.ts
CHANGED
|
@@ -295,7 +295,7 @@ export declare const ConfigInternals: {
|
|
|
295
295
|
getOutputCodecOrUndefined: () => CodecOrUndefined;
|
|
296
296
|
getBrowser: () => null;
|
|
297
297
|
getPixelFormat: () => "yuv420p" | "yuva420p" | "yuv422p" | "yuv444p" | "yuv420p10le" | "yuv422p10le" | "yuv444p10le" | "yuva444p10le";
|
|
298
|
-
getProResProfile: () => "
|
|
298
|
+
getProResProfile: () => "4444-xq" | "4444" | "hq" | "standard" | "light" | "proxy" | undefined;
|
|
299
299
|
getPresetProfile: () => "medium" | "ultrafast" | "superfast" | "veryfast" | "faster" | "fast" | "slow" | "slower" | "veryslow" | "placebo" | undefined;
|
|
300
300
|
getShouldOverwrite: ({ defaultValue, }: {
|
|
301
301
|
defaultValue: boolean;
|
package/dist/config/log.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const getLogLevel: () => "
|
|
1
|
+
export declare const getLogLevel: () => "verbose" | "info" | "warn" | "error", setLogLevel: (newLogLevel: "verbose" | "info" | "warn" | "error") => void;
|
|
@@ -30,6 +30,8 @@ const remotion_1 = require("remotion");
|
|
|
30
30
|
const event_source_1 = require("../../event-source");
|
|
31
31
|
const colors_1 = require("../helpers/colors");
|
|
32
32
|
const create_folder_tree_1 = require("../helpers/create-folder-tree");
|
|
33
|
+
const persist_open_folders_1 = require("../helpers/persist-open-folders");
|
|
34
|
+
const folders_1 = require("../state/folders");
|
|
33
35
|
const z_index_1 = require("../state/z-index");
|
|
34
36
|
const AssetSelectorItem_1 = require("./AssetSelectorItem");
|
|
35
37
|
const styles_1 = require("./Menu/styles");
|
|
@@ -60,6 +62,7 @@ const list = {
|
|
|
60
62
|
};
|
|
61
63
|
const AssetSelector = () => {
|
|
62
64
|
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
65
|
+
const { assetFoldersExpanded, setAssetFoldersExpanded } = (0, react_1.useContext)(folders_1.FolderContext);
|
|
63
66
|
const [{ publicFolderExists, staticFiles }, setState] = react_1.default.useState(() => {
|
|
64
67
|
return {
|
|
65
68
|
staticFiles: (0, remotion_1.getStaticFiles)(),
|
|
@@ -67,8 +70,8 @@ const AssetSelector = () => {
|
|
|
67
70
|
};
|
|
68
71
|
});
|
|
69
72
|
const assetTree = (0, react_1.useMemo)(() => {
|
|
70
|
-
return (0, create_folder_tree_1.buildAssetFolderStructure)(staticFiles);
|
|
71
|
-
}, [staticFiles]);
|
|
73
|
+
return (0, create_folder_tree_1.buildAssetFolderStructure)(staticFiles, null, assetFoldersExpanded);
|
|
74
|
+
}, [assetFoldersExpanded, staticFiles]);
|
|
72
75
|
(0, react_1.useEffect)(() => {
|
|
73
76
|
const onUpdate = () => {
|
|
74
77
|
setState({
|
|
@@ -81,6 +84,19 @@ const AssetSelector = () => {
|
|
|
81
84
|
unsub();
|
|
82
85
|
};
|
|
83
86
|
}, []);
|
|
84
|
-
|
|
87
|
+
const toggleFolder = (0, react_1.useCallback)((folderName, parentName) => {
|
|
88
|
+
setAssetFoldersExpanded((p) => {
|
|
89
|
+
var _a;
|
|
90
|
+
const key = [parentName, folderName].filter(Boolean).join('/');
|
|
91
|
+
const prev = (_a = p[key]) !== null && _a !== void 0 ? _a : false;
|
|
92
|
+
const foldersExpandedState = {
|
|
93
|
+
...p,
|
|
94
|
+
[key]: !prev,
|
|
95
|
+
};
|
|
96
|
+
(0, persist_open_folders_1.persistExpandedFolders)('assets', foldersExpandedState);
|
|
97
|
+
return foldersExpandedState;
|
|
98
|
+
});
|
|
99
|
+
}, [setAssetFoldersExpanded]);
|
|
100
|
+
return ((0, jsx_runtime_1.jsx)("div", { style: container, children: staticFiles.length === 0 ? (publicFolderExists ? ((0, jsx_runtime_1.jsx)("div", { style: emptyState, children: (0, jsx_runtime_1.jsxs)("div", { style: label, children: ["To add assets, place a file in the", ' ', (0, jsx_runtime_1.jsx)("code", { style: styles_1.inlineCodeSnippet, children: "public" }), " folder of your project."] }) })) : ((0, jsx_runtime_1.jsx)("div", { style: emptyState, children: (0, jsx_runtime_1.jsxs)("div", { style: label, children: ["To add assets, create a folder called", ' ', (0, jsx_runtime_1.jsx)("code", { style: styles_1.inlineCodeSnippet, children: "public" }), " in the root of your project and place a file in it."] }) }))) : ((0, jsx_runtime_1.jsx)("div", { className: "__remotion-vertical-scrollbar", style: list, children: (0, jsx_runtime_1.jsx)(AssetSelectorItem_1.AssetFolderTree, { item: assetTree, level: 0, parentFolder: null, name: null, tabIndex: tabIndex, toggleFolder: toggleFolder }) })) }));
|
|
85
101
|
};
|
|
86
102
|
exports.AssetSelector = AssetSelector;
|
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type
|
|
3
|
-
import type { AssetFolder,
|
|
2
|
+
import { type StaticFile } from 'remotion';
|
|
3
|
+
import type { AssetFolder, AssetStructure } from '../helpers/create-folder-tree';
|
|
4
4
|
export declare const AssetFolderItem: React.FC<{
|
|
5
5
|
item: AssetFolder;
|
|
6
6
|
tabIndex: number;
|
|
7
7
|
level: number;
|
|
8
8
|
parentFolder: string;
|
|
9
|
+
toggleFolder: (folderName: string, parentName: string | null) => void;
|
|
9
10
|
}>;
|
|
10
|
-
export declare const
|
|
11
|
-
item:
|
|
11
|
+
export declare const AssetFolderTree: React.FC<{
|
|
12
|
+
item: AssetStructure;
|
|
12
13
|
name: string | null;
|
|
13
14
|
parentFolder: string | null;
|
|
14
15
|
level: number;
|
|
15
16
|
tabIndex: number;
|
|
17
|
+
toggleFolder: (folderName: string, parentName: string | null) => void;
|
|
16
18
|
}>;
|
|
17
19
|
export declare const AssetSelectorItem: React.FC<{
|
|
18
20
|
item: StaticFile | AssetFolder;
|
|
@@ -23,9 +23,10 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.AssetSelectorItem = exports.
|
|
26
|
+
exports.AssetSelectorItem = exports.AssetFolderTree = exports.AssetFolderItem = void 0;
|
|
27
27
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
28
28
|
const react_1 = __importStar(require("react"));
|
|
29
|
+
const remotion_1 = require("remotion");
|
|
29
30
|
const truthy_1 = require("../../truthy");
|
|
30
31
|
const colors_1 = require("../helpers/colors");
|
|
31
32
|
const copy_text_1 = require("../helpers/copy-text");
|
|
@@ -58,6 +59,7 @@ const itemStyle = {
|
|
|
58
59
|
textAlign: 'left',
|
|
59
60
|
backgroundColor: colors_1.BACKGROUND,
|
|
60
61
|
height: ASSET_ITEM_HEIGHT,
|
|
62
|
+
userSelect: 'none',
|
|
61
63
|
};
|
|
62
64
|
const labelStyle = {
|
|
63
65
|
textAlign: 'left',
|
|
@@ -72,9 +74,8 @@ const revealIconStyle = {
|
|
|
72
74
|
height: 12,
|
|
73
75
|
color: 'currentColor',
|
|
74
76
|
};
|
|
75
|
-
const AssetFolderItem = ({ tabIndex, item, level, parentFolder }) => {
|
|
77
|
+
const AssetFolderItem = ({ tabIndex, item, level, parentFolder, toggleFolder }) => {
|
|
76
78
|
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
77
|
-
const [expanded, setExpanded] = (0, react_1.useState)(false);
|
|
78
79
|
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
79
80
|
setHovered(true);
|
|
80
81
|
}, []);
|
|
@@ -91,56 +92,78 @@ const AssetFolderItem = ({ tabIndex, item, level, parentFolder }) => {
|
|
|
91
92
|
const label = (0, react_1.useMemo)(() => {
|
|
92
93
|
return {
|
|
93
94
|
...labelStyle,
|
|
94
|
-
color: colors_1.LIGHT_TEXT,
|
|
95
|
+
color: hovered ? 'white' : colors_1.LIGHT_TEXT,
|
|
95
96
|
};
|
|
96
|
-
}, []);
|
|
97
|
+
}, [hovered]);
|
|
97
98
|
const onClick = (0, react_1.useCallback)(() => {
|
|
98
|
-
|
|
99
|
-
}, []);
|
|
100
|
-
const Icon = expanded ? folder_1.ExpandedFolderIcon : folder_1.CollapsedFolderIcon;
|
|
101
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: folderStyle, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, tabIndex: tabIndex, title: item.name, onClick: onClick, children: (0, jsx_runtime_1.jsxs)(layout_1.Row, { children: [(0, jsx_runtime_1.jsx)(Icon, { style: iconStyle, color: colors_1.LIGHT_TEXT }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: item.name })] }) }), expanded ? ((0, jsx_runtime_1.jsx)(exports.
|
|
99
|
+
toggleFolder(item.name, parentFolder);
|
|
100
|
+
}, [item.name, parentFolder, toggleFolder]);
|
|
101
|
+
const Icon = item.expanded ? folder_1.ExpandedFolderIcon : folder_1.CollapsedFolderIcon;
|
|
102
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { style: folderStyle, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, tabIndex: tabIndex, title: item.name, onClick: onClick, children: (0, jsx_runtime_1.jsxs)(layout_1.Row, { children: [(0, jsx_runtime_1.jsx)(Icon, { style: iconStyle, color: hovered ? 'white' : colors_1.LIGHT_TEXT }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: item.name })] }) }), item.expanded ? ((0, jsx_runtime_1.jsx)(exports.AssetFolderTree, { item: item.items, name: item.name, level: level, parentFolder: parentFolder, tabIndex: tabIndex, toggleFolder: toggleFolder }, item.name)) : null] }));
|
|
102
103
|
};
|
|
103
104
|
exports.AssetFolderItem = AssetFolderItem;
|
|
104
|
-
const
|
|
105
|
+
const AssetFolderTree = ({ item, level, name, parentFolder, toggleFolder, tabIndex }) => {
|
|
105
106
|
const combinedParents = (0, react_1.useMemo)(() => {
|
|
106
107
|
return [parentFolder, name].filter(truthy_1.truthy).join('/');
|
|
107
108
|
}, [name, parentFolder]);
|
|
108
109
|
return ((0, jsx_runtime_1.jsxs)("div", { children: [item.folders.map((folder) => {
|
|
109
|
-
return ((0, jsx_runtime_1.jsx)(exports.AssetFolderItem, { item: folder, tabIndex: tabIndex, level: level + 1, parentFolder: combinedParents }, folder.name));
|
|
110
|
+
return ((0, jsx_runtime_1.jsx)(exports.AssetFolderItem, { item: folder, tabIndex: tabIndex, level: level + 1, parentFolder: combinedParents, toggleFolder: toggleFolder }, folder.name));
|
|
110
111
|
}), item.files.map((file) => {
|
|
111
112
|
return ((0, jsx_runtime_1.jsx)(exports.AssetSelectorItem, { item: file, tabIndex: tabIndex, level: level, parentFolder: combinedParents }, file.src));
|
|
112
113
|
})] }));
|
|
113
114
|
};
|
|
114
|
-
exports.
|
|
115
|
+
exports.AssetFolderTree = AssetFolderTree;
|
|
115
116
|
const AssetSelectorItem = ({ item, tabIndex, level, parentFolder }) => {
|
|
116
117
|
const [hovered, setHovered] = (0, react_1.useState)(false);
|
|
117
118
|
const onPointerEnter = (0, react_1.useCallback)(() => {
|
|
118
119
|
setHovered(true);
|
|
119
120
|
}, []);
|
|
121
|
+
const { canvasContent, setCanvasContent } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
122
|
+
const selected = (0, react_1.useMemo)(() => {
|
|
123
|
+
if (canvasContent && canvasContent.type === 'asset') {
|
|
124
|
+
const nameWOParent = canvasContent.asset.split('/').pop();
|
|
125
|
+
return nameWOParent === item.name;
|
|
126
|
+
}
|
|
127
|
+
return false;
|
|
128
|
+
}, [canvasContent, item.name]);
|
|
120
129
|
const onPointerLeave = (0, react_1.useCallback)(() => {
|
|
121
130
|
setHovered(false);
|
|
122
131
|
}, []);
|
|
132
|
+
const onClick = (0, react_1.useCallback)(() => {
|
|
133
|
+
const relativePath = parentFolder
|
|
134
|
+
? parentFolder + '/' + item.name
|
|
135
|
+
: item.name;
|
|
136
|
+
setCanvasContent({ type: 'asset', asset: relativePath });
|
|
137
|
+
window.history.pushState({}, 'Studio', `/assets/${relativePath}`);
|
|
138
|
+
}, [item.name, parentFolder, setCanvasContent]);
|
|
123
139
|
const style = (0, react_1.useMemo)(() => {
|
|
124
140
|
return {
|
|
125
141
|
...itemStyle,
|
|
126
|
-
color: colors_1.LIGHT_TEXT,
|
|
127
|
-
backgroundColor: hovered
|
|
142
|
+
color: hovered || selected ? 'white' : colors_1.LIGHT_TEXT,
|
|
143
|
+
backgroundColor: hovered
|
|
144
|
+
? selected
|
|
145
|
+
? colors_1.SELECTED_BACKGROUND
|
|
146
|
+
: colors_1.CLEAR_HOVER
|
|
147
|
+
: selected
|
|
148
|
+
? colors_1.SELECTED_BACKGROUND
|
|
149
|
+
: 'transparent',
|
|
128
150
|
paddingLeft: 12 + level * 8,
|
|
129
151
|
};
|
|
130
|
-
}, [hovered, level]);
|
|
152
|
+
}, [hovered, level, selected]);
|
|
131
153
|
const label = (0, react_1.useMemo)(() => {
|
|
132
154
|
return {
|
|
133
155
|
...labelStyle,
|
|
134
|
-
color: colors_1.LIGHT_TEXT,
|
|
156
|
+
color: hovered || selected ? 'white' : colors_1.LIGHT_TEXT,
|
|
135
157
|
};
|
|
136
|
-
}, []);
|
|
158
|
+
}, [hovered, selected]);
|
|
137
159
|
const renderFileExplorerAction = (0, react_1.useCallback)((color) => {
|
|
138
160
|
return (0, jsx_runtime_1.jsx)(folder_1.ExpandedFolderIcon, { style: revealIconStyle, color: color });
|
|
139
161
|
}, []);
|
|
140
162
|
const renderCopyAction = (0, react_1.useCallback)((color) => {
|
|
141
163
|
return (0, jsx_runtime_1.jsx)(clipboard_1.ClipboardIcon, { style: revealIconStyle, color: color });
|
|
142
164
|
}, []);
|
|
143
|
-
const revealInExplorer = react_1.default.useCallback(() => {
|
|
165
|
+
const revealInExplorer = react_1.default.useCallback((e) => {
|
|
166
|
+
e.stopPropagation();
|
|
144
167
|
(0, actions_1.openInFileExplorer)({
|
|
145
168
|
directory: window.remotion_publicFolderExists +
|
|
146
169
|
'/' +
|
|
@@ -151,12 +174,14 @@ const AssetSelectorItem = ({ item, tabIndex, level, parentFolder }) => {
|
|
|
151
174
|
(0, NotificationCenter_1.sendErrorNotification)(`Could not open file: ${err.message}`);
|
|
152
175
|
});
|
|
153
176
|
}, [item.name, parentFolder]);
|
|
154
|
-
const copyToClipboard = (0, react_1.useCallback)(() => {
|
|
155
|
-
|
|
177
|
+
const copyToClipboard = (0, react_1.useCallback)((e) => {
|
|
178
|
+
e.stopPropagation();
|
|
179
|
+
const content = `staticFile("${[parentFolder, item.name].join('/')}")`;
|
|
180
|
+
(0, copy_text_1.copyText)(content)
|
|
156
181
|
.then(() => {
|
|
157
182
|
var _a;
|
|
158
183
|
(_a = NotificationCenter_1.notificationCenter.current) === null || _a === void 0 ? void 0 : _a.addNotification({
|
|
159
|
-
content: `Copied '
|
|
184
|
+
content: `Copied '${content}' to clipboard`,
|
|
160
185
|
created: Date.now(),
|
|
161
186
|
duration: 1000,
|
|
162
187
|
id: String(Math.random()),
|
|
@@ -165,7 +190,7 @@ const AssetSelectorItem = ({ item, tabIndex, level, parentFolder }) => {
|
|
|
165
190
|
.catch((err) => {
|
|
166
191
|
(0, NotificationCenter_1.sendErrorNotification)(`Could not copy: ${err.message}`);
|
|
167
192
|
});
|
|
168
|
-
}, [item.name]);
|
|
169
|
-
return ((0, jsx_runtime_1.jsx)(layout_1.Row, { align: "center", children: (0, jsx_runtime_1.jsxs)("div", { style: style, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, tabIndex: tabIndex, title: item.name, children: [(0, jsx_runtime_1.jsx)(file_1.FileIcon, { style: iconStyle, color: colors_1.LIGHT_TEXT }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: item.name }), hovered ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { title: "Copy staticFile() name", renderAction: renderCopyAction, onClick: copyToClipboard }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { title: "Open in Explorer", renderAction: renderFileExplorerAction, onClick: revealInExplorer })] })) : null] }) }));
|
|
193
|
+
}, [item.name, parentFolder]);
|
|
194
|
+
return ((0, jsx_runtime_1.jsx)(layout_1.Row, { align: "center", children: (0, jsx_runtime_1.jsxs)("div", { style: style, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, onClick: onClick, tabIndex: tabIndex, title: item.name, children: [(0, jsx_runtime_1.jsx)(file_1.FileIcon, { style: iconStyle, color: colors_1.LIGHT_TEXT }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 1 }), (0, jsx_runtime_1.jsx)("div", { style: label, children: item.name }), hovered ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { title: "Copy staticFile() name", renderAction: renderCopyAction, onClick: copyToClipboard }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.5 }), (0, jsx_runtime_1.jsx)(InlineAction_1.InlineAction, { title: "Open in Explorer", renderAction: renderFileExplorerAction, onClick: revealInExplorer })] })) : null] }) }));
|
|
170
195
|
};
|
|
171
196
|
exports.AssetSelectorItem = AssetSelectorItem;
|
|
@@ -4,10 +4,11 @@ exports.Canvas = void 0;
|
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const player_1 = require("@remotion/player");
|
|
6
6
|
const react_1 = require("react");
|
|
7
|
+
const remotion_1 = require("remotion");
|
|
7
8
|
const smooth_zoom_1 = require("../../smooth-zoom");
|
|
8
9
|
const colors_1 = require("../helpers/colors");
|
|
10
|
+
const get_asset_metadata_1 = require("../helpers/get-asset-metadata");
|
|
9
11
|
const get_effective_translation_1 = require("../helpers/get-effective-translation");
|
|
10
|
-
const is_current_selected_still_1 = require("../helpers/is-current-selected-still");
|
|
11
12
|
const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
12
13
|
const canvas_ref_1 = require("../state/canvas-ref");
|
|
13
14
|
const editor_zoom_gestures_1 = require("../state/editor-zoom-gestures");
|
|
@@ -28,11 +29,23 @@ const resetZoom = {
|
|
|
28
29
|
right: layout_1.SPACING_UNIT * 2,
|
|
29
30
|
};
|
|
30
31
|
const ZOOM_PX_FACTOR = 0.003;
|
|
31
|
-
const Canvas = () => {
|
|
32
|
-
const dimensions = (0, is_current_selected_still_1.useDimensions)();
|
|
32
|
+
const Canvas = ({ canvasContent }) => {
|
|
33
33
|
const { setSize, size: previewSize } = (0, react_1.useContext)(preview_size_1.PreviewSizeContext);
|
|
34
34
|
const { editorZoomGestures } = (0, react_1.useContext)(editor_zoom_gestures_1.EditorZoomGesturesContext);
|
|
35
35
|
const keybindings = (0, use_keybinding_1.useKeybinding)();
|
|
36
|
+
const config = remotion_1.Internals.useUnsafeVideoConfig();
|
|
37
|
+
const [assetResolution, setAssetResolution] = (0, react_1.useState)(null);
|
|
38
|
+
const contentDimensions = (0, react_1.useMemo)(() => {
|
|
39
|
+
if ((canvasContent.type === 'asset' || canvasContent.type === 'output') &&
|
|
40
|
+
assetResolution &&
|
|
41
|
+
assetResolution.type === 'found') {
|
|
42
|
+
return assetResolution.dimensions;
|
|
43
|
+
}
|
|
44
|
+
if (config) {
|
|
45
|
+
return { width: config.width, height: config.height };
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}, [assetResolution, config, canvasContent]);
|
|
36
49
|
const size = player_1.PlayerInternals.useElementSize(canvas_ref_1.canvasRef, {
|
|
37
50
|
triggerOnWindowResize: false,
|
|
38
51
|
shouldApplyCssTransforms: true,
|
|
@@ -45,7 +58,7 @@ const Canvas = () => {
|
|
|
45
58
|
if (!size) {
|
|
46
59
|
return;
|
|
47
60
|
}
|
|
48
|
-
if (!
|
|
61
|
+
if (!contentDimensions || contentDimensions === 'none') {
|
|
49
62
|
return;
|
|
50
63
|
}
|
|
51
64
|
const wantsToZoom = e.ctrlKey || e.metaKey;
|
|
@@ -56,8 +69,8 @@ const Canvas = () => {
|
|
|
56
69
|
setSize((prevSize) => {
|
|
57
70
|
const scale = player_1.PlayerInternals.calculateScale({
|
|
58
71
|
canvasSize: size,
|
|
59
|
-
compositionHeight:
|
|
60
|
-
compositionWidth:
|
|
72
|
+
compositionHeight: contentDimensions.height,
|
|
73
|
+
compositionWidth: contentDimensions.width,
|
|
61
74
|
previewSize: prevSize.size,
|
|
62
75
|
});
|
|
63
76
|
// Zoom in/out
|
|
@@ -70,18 +83,18 @@ const Canvas = () => {
|
|
|
70
83
|
size,
|
|
71
84
|
clientX: e.clientX,
|
|
72
85
|
clientY: e.clientY,
|
|
73
|
-
compositionWidth:
|
|
74
|
-
compositionHeight:
|
|
86
|
+
compositionWidth: contentDimensions.width,
|
|
87
|
+
compositionHeight: contentDimensions.height,
|
|
75
88
|
scale,
|
|
76
89
|
translation: prevSize.translation,
|
|
77
90
|
});
|
|
78
91
|
const zoomDifference = unsmoothened - oldSize;
|
|
79
|
-
const uvCoordinatesX = centerX /
|
|
80
|
-
const uvCoordinatesY = centerY /
|
|
81
|
-
const correctionLeft = -uvCoordinatesX * (zoomDifference *
|
|
82
|
-
(1 - uvCoordinatesX) * zoomDifference *
|
|
83
|
-
const correctionTop = -uvCoordinatesY * (zoomDifference *
|
|
84
|
-
(1 - uvCoordinatesY) * zoomDifference *
|
|
92
|
+
const uvCoordinatesX = centerX / contentDimensions.width;
|
|
93
|
+
const uvCoordinatesY = centerY / contentDimensions.height;
|
|
94
|
+
const correctionLeft = -uvCoordinatesX * (zoomDifference * contentDimensions.width) +
|
|
95
|
+
(1 - uvCoordinatesX) * zoomDifference * contentDimensions.width;
|
|
96
|
+
const correctionTop = -uvCoordinatesY * (zoomDifference * contentDimensions.height) +
|
|
97
|
+
(1 - uvCoordinatesY) * zoomDifference * contentDimensions.height;
|
|
85
98
|
return {
|
|
86
99
|
translation: (0, get_effective_translation_1.getEffectiveTranslation)({
|
|
87
100
|
translation: {
|
|
@@ -89,8 +102,8 @@ const Canvas = () => {
|
|
|
89
102
|
y: prevSize.translation.y - correctionTop / 2,
|
|
90
103
|
},
|
|
91
104
|
canvasSize: size,
|
|
92
|
-
compositionHeight:
|
|
93
|
-
compositionWidth:
|
|
105
|
+
compositionHeight: contentDimensions.height,
|
|
106
|
+
compositionWidth: contentDimensions.width,
|
|
94
107
|
scale,
|
|
95
108
|
}),
|
|
96
109
|
size: unsmoothened,
|
|
@@ -99,8 +112,8 @@ const Canvas = () => {
|
|
|
99
112
|
const effectiveTranslation = (0, get_effective_translation_1.getEffectiveTranslation)({
|
|
100
113
|
translation: prevSize.translation,
|
|
101
114
|
canvasSize: size,
|
|
102
|
-
compositionHeight:
|
|
103
|
-
compositionWidth:
|
|
115
|
+
compositionHeight: contentDimensions.height,
|
|
116
|
+
compositionWidth: contentDimensions.width,
|
|
104
117
|
scale,
|
|
105
118
|
});
|
|
106
119
|
// Pan
|
|
@@ -112,13 +125,13 @@ const Canvas = () => {
|
|
|
112
125
|
y: effectiveTranslation.y + e.deltaY,
|
|
113
126
|
},
|
|
114
127
|
canvasSize: size,
|
|
115
|
-
compositionHeight:
|
|
116
|
-
compositionWidth:
|
|
128
|
+
compositionHeight: contentDimensions.height,
|
|
129
|
+
compositionWidth: contentDimensions.width,
|
|
117
130
|
scale,
|
|
118
131
|
}),
|
|
119
132
|
};
|
|
120
133
|
});
|
|
121
|
-
}, [editorZoomGestures,
|
|
134
|
+
}, [editorZoomGestures, contentDimensions, isFit, setSize, size]);
|
|
122
135
|
(0, react_1.useEffect)(() => {
|
|
123
136
|
const { current } = canvas_ref_1.canvasRef;
|
|
124
137
|
if (!current) {
|
|
@@ -143,7 +156,7 @@ const Canvas = () => {
|
|
|
143
156
|
});
|
|
144
157
|
}, [setSize]);
|
|
145
158
|
const onZoomIn = (0, react_1.useCallback)(() => {
|
|
146
|
-
if (!
|
|
159
|
+
if (!contentDimensions || contentDimensions === 'none') {
|
|
147
160
|
return;
|
|
148
161
|
}
|
|
149
162
|
if (!size) {
|
|
@@ -152,8 +165,8 @@ const Canvas = () => {
|
|
|
152
165
|
setSize((prevSize) => {
|
|
153
166
|
const scale = player_1.PlayerInternals.calculateScale({
|
|
154
167
|
canvasSize: size,
|
|
155
|
-
compositionHeight:
|
|
156
|
-
compositionWidth:
|
|
168
|
+
compositionHeight: contentDimensions.height,
|
|
169
|
+
compositionWidth: contentDimensions.width,
|
|
157
170
|
previewSize: prevSize.size,
|
|
158
171
|
});
|
|
159
172
|
return {
|
|
@@ -164,9 +177,9 @@ const Canvas = () => {
|
|
|
164
177
|
size: Math.min(smooth_zoom_1.MAX_ZOOM, scale * 2),
|
|
165
178
|
};
|
|
166
179
|
});
|
|
167
|
-
}, [
|
|
180
|
+
}, [contentDimensions, setSize, size]);
|
|
168
181
|
const onZoomOut = (0, react_1.useCallback)(() => {
|
|
169
|
-
if (!
|
|
182
|
+
if (!contentDimensions || contentDimensions === 'none') {
|
|
170
183
|
return;
|
|
171
184
|
}
|
|
172
185
|
if (!size) {
|
|
@@ -175,8 +188,8 @@ const Canvas = () => {
|
|
|
175
188
|
setSize((prevSize) => {
|
|
176
189
|
const scale = player_1.PlayerInternals.calculateScale({
|
|
177
190
|
canvasSize: size,
|
|
178
|
-
compositionHeight:
|
|
179
|
-
compositionWidth:
|
|
191
|
+
compositionHeight: contentDimensions.height,
|
|
192
|
+
compositionWidth: contentDimensions.width,
|
|
180
193
|
previewSize: prevSize.size,
|
|
181
194
|
});
|
|
182
195
|
return {
|
|
@@ -187,7 +200,7 @@ const Canvas = () => {
|
|
|
187
200
|
size: Math.max(smooth_zoom_1.MIN_ZOOM, scale / 2),
|
|
188
201
|
};
|
|
189
202
|
});
|
|
190
|
-
}, [
|
|
203
|
+
}, [contentDimensions, setSize, size]);
|
|
191
204
|
(0, react_1.useEffect)(() => {
|
|
192
205
|
const resetBinding = keybindings.registerKeybinding({
|
|
193
206
|
event: 'keydown',
|
|
@@ -219,6 +232,17 @@ const Canvas = () => {
|
|
|
219
232
|
zoomOut.unregister();
|
|
220
233
|
};
|
|
221
234
|
}, [keybindings, onReset, onZoomIn, onZoomOut]);
|
|
222
|
-
|
|
235
|
+
const fetchMetadata = (0, react_1.useCallback)(async () => {
|
|
236
|
+
setAssetResolution(null);
|
|
237
|
+
if (canvasContent.type === 'composition') {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
const metadata = await (0, get_asset_metadata_1.getAssetMetadata)(canvasContent);
|
|
241
|
+
setAssetResolution(metadata);
|
|
242
|
+
}, [canvasContent]);
|
|
243
|
+
(0, react_1.useEffect)(() => {
|
|
244
|
+
fetchMetadata();
|
|
245
|
+
}, [fetchMetadata]);
|
|
246
|
+
return ((0, jsx_runtime_1.jsxs)("div", { ref: canvas_ref_1.canvasRef, style: container, children: [size ? ((0, jsx_runtime_1.jsx)(Preview_1.VideoPreview, { canvasContent: canvasContent, contentDimensions: contentDimensions, canvasSize: size, assetMetadata: assetResolution })) : null, isFit ? null : ((0, jsx_runtime_1.jsx)("div", { style: resetZoom, className: "css-reset", children: (0, jsx_runtime_1.jsx)(ResetZoomButton_1.ResetZoomButton, { onClick: onReset }) }))] }));
|
|
223
247
|
};
|
|
224
248
|
exports.Canvas = Canvas;
|
|
@@ -28,6 +28,7 @@ const CanvasOrLoading = () => {
|
|
|
28
28
|
const resolved = remotion_1.Internals.useResolvedVideoConfig(null);
|
|
29
29
|
const [takesALongTime, setTakesALongTime] = (0, react_1.useState)(false);
|
|
30
30
|
const { setZoom } = (0, react_1.useContext)(timeline_zoom_1.TimelineZoomCtx);
|
|
31
|
+
const { canvasContent } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
31
32
|
(0, react_1.useEffect)(() => {
|
|
32
33
|
const timeout = setTimeout(() => {
|
|
33
34
|
setTakesALongTime(true);
|
|
@@ -56,6 +57,13 @@ const CanvasOrLoading = () => {
|
|
|
56
57
|
transition: 'opacity 0.3s',
|
|
57
58
|
};
|
|
58
59
|
}, [takesALongTime]);
|
|
60
|
+
if (!canvasContent) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const content = ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ZoomPersistor_1.ZoomPersistor, {}), (0, jsx_runtime_1.jsx)(Canvas_1.Canvas, { canvasContent: canvasContent })] }));
|
|
64
|
+
if (canvasContent.type === 'asset' || canvasContent.type === 'output') {
|
|
65
|
+
return content;
|
|
66
|
+
}
|
|
59
67
|
if (!resolved) {
|
|
60
68
|
return null;
|
|
61
69
|
}
|
|
@@ -65,7 +73,7 @@ const CanvasOrLoading = () => {
|
|
|
65
73
|
if (resolved.type === 'error') {
|
|
66
74
|
return (0, jsx_runtime_1.jsx)(exports.ErrorLoading, { error: resolved.error });
|
|
67
75
|
}
|
|
68
|
-
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FramePersistor_1.FramePersistor, {}),
|
|
76
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(FramePersistor_1.FramePersistor, {}), " ", content] }));
|
|
69
77
|
};
|
|
70
78
|
exports.CanvasOrLoading = CanvasOrLoading;
|
|
71
79
|
const loaderLabel = {
|
|
@@ -33,8 +33,8 @@ const getKeysToExpand = (initialFolderName, parentFolderName, initial = []) => {
|
|
|
33
33
|
exports.getKeysToExpand = getKeysToExpand;
|
|
34
34
|
exports.compositionSelectorRef = (0, react_1.createRef)();
|
|
35
35
|
const CompositionSelector = () => {
|
|
36
|
-
const { compositions,
|
|
37
|
-
const [foldersExpanded, setFoldersExpanded] = (0, react_1.useState)((0, persist_open_folders_1.loadExpandedFolders)());
|
|
36
|
+
const { compositions, canvasContent, folders } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
37
|
+
const [foldersExpanded, setFoldersExpanded] = (0, react_1.useState)((0, persist_open_folders_1.loadExpandedFolders)('compositions'));
|
|
38
38
|
const { tabIndex } = (0, z_index_1.useZIndex)();
|
|
39
39
|
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
40
40
|
const toggleFolder = (0, react_1.useCallback)((folderName, parentName) => {
|
|
@@ -46,7 +46,7 @@ const CompositionSelector = () => {
|
|
|
46
46
|
...p,
|
|
47
47
|
[key]: !prev,
|
|
48
48
|
};
|
|
49
|
-
(0, persist_open_folders_1.persistExpandedFolders)(foldersExpandedState);
|
|
49
|
+
(0, persist_open_folders_1.persistExpandedFolders)('compositions', foldersExpandedState);
|
|
50
50
|
return foldersExpandedState;
|
|
51
51
|
});
|
|
52
52
|
}, []);
|
|
@@ -81,7 +81,7 @@ const CompositionSelector = () => {
|
|
|
81
81
|
currentFolder = (_b = parentFolder === null || parentFolder === void 0 ? void 0 : parentFolder.name) !== null && _b !== void 0 ? _b : null;
|
|
82
82
|
currentParentName = (_c = parentFolder === null || parentFolder === void 0 ? void 0 : parentFolder.parent) !== null && _c !== void 0 ? _c : null;
|
|
83
83
|
}
|
|
84
|
-
(0, persist_open_folders_1.persistExpandedFolders)(foldersExpandedState);
|
|
84
|
+
(0, persist_open_folders_1.persistExpandedFolders)('compositions', foldersExpandedState);
|
|
85
85
|
return foldersExpandedState;
|
|
86
86
|
});
|
|
87
87
|
},
|
|
@@ -90,8 +90,10 @@ const CompositionSelector = () => {
|
|
|
90
90
|
const items = (0, react_1.useMemo)(() => {
|
|
91
91
|
return (0, create_folder_tree_1.createFolderTree)(compositions, folders, foldersExpanded);
|
|
92
92
|
}, [compositions, folders, foldersExpanded]);
|
|
93
|
-
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [(0, jsx_runtime_1.jsx)(CurrentComposition_1.CurrentComposition, {}), (0, jsx_runtime_1.jsx)("div", { className: "__remotion-vertical-scrollbar", style: list, children: items.map((c) => {
|
|
94
|
-
return ((0, jsx_runtime_1.jsx)(CompositionSelectorItem_1.CompositionSelectorItem, { level: 0, currentComposition:
|
|
93
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: container, children: [canvasContent && canvasContent.type === 'composition' ? ((0, jsx_runtime_1.jsx)(CurrentComposition_1.CurrentComposition, {})) : null, (0, jsx_runtime_1.jsx)("div", { className: "__remotion-vertical-scrollbar", style: list, children: items.map((c) => {
|
|
94
|
+
return ((0, jsx_runtime_1.jsx)(CompositionSelectorItem_1.CompositionSelectorItem, { level: 0, currentComposition: canvasContent && canvasContent.type === 'composition'
|
|
95
|
+
? canvasContent.compositionId
|
|
96
|
+
: null, selectComposition: selectComposition, toggleFolder: toggleFolder, tabIndex: tabIndex, item: c }, c.key + c.type));
|
|
95
97
|
}) })] }));
|
|
96
98
|
};
|
|
97
99
|
exports.CompositionSelector = CompositionSelector;
|
|
@@ -59,13 +59,7 @@ const CompositionSelectorItem = ({ item, level, currentComposition, tabIndex, se
|
|
|
59
59
|
const style = (0, react_1.useMemo)(() => {
|
|
60
60
|
return {
|
|
61
61
|
...itemStyle,
|
|
62
|
-
backgroundColor: hovered
|
|
63
|
-
? selected
|
|
64
|
-
? colors_1.SELECTED_BACKGROUND
|
|
65
|
-
: colors_1.CLEAR_HOVER
|
|
66
|
-
: selected
|
|
67
|
-
? colors_1.SELECTED_BACKGROUND
|
|
68
|
-
: 'transparent',
|
|
62
|
+
backgroundColor: (0, colors_1.getBackgroundFromHoverState)({ hovered, selected }),
|
|
69
63
|
paddingLeft: 12 + level * 8,
|
|
70
64
|
};
|
|
71
65
|
}, [hovered, level, selected]);
|
|
@@ -9,13 +9,24 @@ const use_keybinding_1 = require("../helpers/use-keybinding");
|
|
|
9
9
|
const NotificationCenter_1 = require("./Notifications/NotificationCenter");
|
|
10
10
|
const context_1 = require("./RenderQueue/context");
|
|
11
11
|
const TitleUpdater = () => {
|
|
12
|
-
const video = remotion_1.Internals.useVideo();
|
|
13
12
|
const renderQueue = (0, react_1.useContext)(context_1.RenderQueueContext);
|
|
13
|
+
const { canvasContent } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
14
14
|
const { jobs } = renderQueue;
|
|
15
15
|
(0, react_1.useEffect)(() => {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
if (!canvasContent) {
|
|
17
|
+
(0, document_title_1.setCurrentCanvasContentId)(null);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
if (canvasContent.type === 'composition') {
|
|
21
|
+
(0, document_title_1.setCurrentCanvasContentId)(canvasContent.compositionId);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (canvasContent.type === 'output') {
|
|
25
|
+
(0, document_title_1.setCurrentCanvasContentId)(canvasContent.path);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
(0, document_title_1.setCurrentCanvasContentId)(canvasContent.asset);
|
|
29
|
+
}, [canvasContent]);
|
|
19
30
|
(0, react_1.useEffect)(() => {
|
|
20
31
|
(0, document_title_1.setRenderJobs)(jobs);
|
|
21
32
|
}, [jobs]);
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EditorContent = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const remotion_1 = require("remotion");
|
|
5
7
|
const is_current_selected_still_1 = require("../helpers/is-current-selected-still");
|
|
6
8
|
const SplitterContainer_1 = require("./Splitter/SplitterContainer");
|
|
7
9
|
const SplitterElement_1 = require("./Splitter/SplitterElement");
|
|
@@ -11,7 +13,10 @@ const TopPanel_1 = require("./TopPanel");
|
|
|
11
13
|
const noop = () => undefined;
|
|
12
14
|
const EditorContent = () => {
|
|
13
15
|
const isStill = (0, is_current_selected_still_1.useIsStill)();
|
|
14
|
-
|
|
16
|
+
const { canvasContent } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
17
|
+
if (canvasContent === null ||
|
|
18
|
+
isStill ||
|
|
19
|
+
canvasContent.type !== 'composition') {
|
|
15
20
|
return (0, jsx_runtime_1.jsx)(TopPanel_1.TopPanel, {});
|
|
16
21
|
}
|
|
17
22
|
return ((0, jsx_runtime_1.jsxs)(SplitterContainer_1.SplitterContainer, { orientation: "horizontal", id: "top-to-bottom", maxFlex: 0.9, minFlex: 0.2, defaultFlex: 0.75, children: [(0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "flexer", children: (0, jsx_runtime_1.jsx)(TopPanel_1.TopPanel, {}) }), (0, jsx_runtime_1.jsx)(SplitterHandle_1.SplitterHandle, { allowToCollapse: "none", onCollapse: noop }), (0, jsx_runtime_1.jsx)(SplitterElement_1.SplitterElement, { type: "anti-flexer", children: (0, jsx_runtime_1.jsx)(Timeline_1.Timeline, {}) })] }));
|
|
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ExplorerPanel = exports.optionsSidebarTabs = exports.persistSelectedOptionsSidebarPanel = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
-
const remotion_1 = require("remotion");
|
|
7
6
|
const colors_1 = require("../helpers/colors");
|
|
8
7
|
const AssetSelector_1 = require("./AssetSelector");
|
|
9
8
|
const CompositionSelector_1 = require("./CompositionSelector");
|
|
@@ -50,18 +49,6 @@ const ExplorerPanel = () => {
|
|
|
50
49
|
},
|
|
51
50
|
};
|
|
52
51
|
}, []);
|
|
53
|
-
const { compositions, currentComposition } = (0, react_1.useContext)(remotion_1.Internals.CompositionManager);
|
|
54
|
-
const composition = (0, react_1.useMemo)(() => {
|
|
55
|
-
for (const comp of compositions) {
|
|
56
|
-
if (comp.id === currentComposition) {
|
|
57
|
-
return comp;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return null;
|
|
61
|
-
}, [compositions, currentComposition]);
|
|
62
|
-
if (composition === null) {
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
52
|
return ((0, jsx_runtime_1.jsxs)("div", { style: container, className: "css-reset", children: [(0, jsx_runtime_1.jsx)("div", { style: tabsContainer, children: (0, jsx_runtime_1.jsxs)(Tabs_1.Tabs, { children: [(0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: panel === 'compositions', onClick: onCompositionsSelected, children: "Compositions" }), (0, jsx_runtime_1.jsx)(Tabs_1.Tab, { selected: panel === 'assets', onClick: onAssetsSelected, children: "Assets" })] }) }), panel === 'compositions' ? (0, jsx_runtime_1.jsx)(CompositionSelector_1.CompositionSelector, {}) : (0, jsx_runtime_1.jsx)(AssetSelector_1.AssetSelector, {})] }));
|
|
66
53
|
};
|
|
67
54
|
exports.ExplorerPanel = ExplorerPanel;
|