@remotion/studio 4.0.504 → 4.0.506
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/api/install-package.d.ts +2 -3
- package/dist/api/install-package.js +1 -3
- package/dist/api/visual-control.d.ts +3 -0
- package/dist/api/visual-control.js +3 -0
- package/dist/components/AssetSelectorItem.js +3 -3
- package/dist/components/AudioWaveform.d.ts +1 -1
- package/dist/components/AudioWaveform.js +36 -3
- package/dist/components/Canvas.js +2 -0
- package/dist/components/CompositionContextButton.d.ts +1 -1
- package/dist/components/CompositionContextButton.js +2 -2
- package/dist/components/CompositionSelector.js +3 -3
- package/dist/components/CompositionSelectorItem.js +5 -5
- package/dist/components/ConfigureDefaultEditorModal.d.ts +3 -1
- package/dist/components/ConfigureDefaultEditorModal.js +90 -32
- package/dist/components/ConfigureLicenseModal.d.ts +2 -1
- package/dist/components/ConfigureLicenseModal.js +40 -32
- package/dist/components/ConfirmationDialog.js +2 -2
- package/dist/components/ContextMenu.d.ts +5 -7
- package/dist/components/ContextMenu.js +54 -21
- package/dist/components/Editor.js +2 -0
- package/dist/components/EditorGuides/Guide.js +2 -2
- package/dist/components/EffectPickerModal.js +3 -3
- package/dist/components/GlobalKeybindings.js +3 -2
- package/dist/components/InlineAction.d.ts +1 -1
- package/dist/components/InlineAction.js +14 -13
- package/dist/components/InlineCaptionInspector.d.ts +2 -2
- package/dist/components/InlineDropdown.d.ts +4 -2
- package/dist/components/InlineDropdown.js +23 -6
- package/dist/components/InspectorOpenInEditor.d.ts +1 -0
- package/dist/components/InspectorOpenInEditor.js +33 -9
- package/dist/components/InspectorPanel/AlignmentControls.js +5 -2
- package/dist/components/InspectorPanel/CompositionInspector.js +15 -1
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +3 -3
- package/dist/components/InspectorPanel/EasingInspector.js +7 -4
- package/dist/components/InspectorPanel/KeyframeInspector.js +5 -1
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +1 -1
- package/dist/components/InspectorPanel/common.d.ts +1 -0
- package/dist/components/InspectorPanel/common.js +25 -35
- package/dist/components/InspectorPanel/use-composition-actions.js +4 -1
- package/dist/components/InspectorSequenceSection.js +5 -5
- package/dist/components/InstallPackage.js +1 -1
- package/dist/components/Menu/MenuItem.js +16 -12
- package/dist/components/MenuBuildIndicator.js +12 -58
- package/dist/components/MenuCompositionName.js +3 -63
- package/dist/components/MenuToolbar.js +22 -2
- package/dist/components/ModalFooter.d.ts +1 -0
- package/dist/components/ModalFooter.js +6 -2
- package/dist/components/ModalHeader.js +1 -1
- package/dist/components/Modals.js +18 -7
- package/dist/components/ModalsProvider.js +5 -6
- package/dist/components/NewComposition/CodemodFooter.js +1 -1
- package/dist/components/NewComposition/DismissableModal.js +1 -1
- package/dist/components/NewComposition/InputDragger.d.ts +1 -0
- package/dist/components/NewComposition/InputDragger.js +5 -4
- package/dist/components/NewComposition/MenuContent.d.ts +1 -1
- package/dist/components/NewComposition/RenameStaticFile.js +1 -1
- package/dist/components/NewComposition/menu-typeahead.d.ts +1 -1
- package/dist/components/OverrideInputProps.js +1 -1
- package/dist/components/PlayPause.js +3 -2
- package/dist/components/PlaybackKeyboardShortcutsManager.js +7 -5
- package/dist/components/PlaybackRateSelector.js +3 -9
- package/dist/components/PreviewToolbar.js +7 -4
- package/dist/components/PreviewToolbarOverflowButton.js +4 -2
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +1 -1
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +1 -1
- package/dist/components/RenderButton.d.ts +3 -2
- package/dist/components/RenderButton.js +95 -43
- package/dist/components/RenderModal/RenderStatusModal.js +1 -1
- package/dist/components/RenderModal/ServerRenderModal.js +1 -1
- package/dist/components/RenderModal/WebRenderModal.js +3 -2
- package/dist/components/RenderQueue/RenderQueueError.js +1 -1
- package/dist/components/RenderQueue/RenderQueueItemStatus.js +1 -1
- package/dist/components/RenderQueue/RenderQueueProgressMessage.js +1 -1
- package/dist/components/RenderQueue/RenderQueueRepeat.js +1 -1
- package/dist/components/SelectedOutlineElement.js +10 -11
- package/dist/components/SelectedOutlineOverlay.js +67 -20
- package/dist/components/SettingsModal.d.ts +7 -0
- package/dist/components/SettingsModal.js +50 -0
- package/dist/components/SettingsModalFooter.d.ts +4 -0
- package/dist/components/SettingsModalFooter.js +46 -0
- package/dist/components/SidebarRenderButton.js +1 -1
- package/dist/components/SizeSelector.js +3 -9
- package/dist/components/SvgImportDialog.js +2 -2
- package/dist/components/TimeValue.js +1 -1
- package/dist/components/Timeline/Timeline.js +5 -4
- package/dist/components/Timeline/TimelineAssetField.js +1 -1
- package/dist/components/Timeline/TimelineDragHandler.js +6 -3
- package/dist/components/Timeline/TimelineEffectItem.js +6 -2
- package/dist/components/Timeline/TimelineEffectPropItem.js +11 -6
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.d.ts +6 -6
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +32 -1
- package/dist/components/Timeline/TimelineExpandedRow.d.ts +4 -2
- package/dist/components/Timeline/TimelineExpandedRow.js +2 -2
- package/dist/components/Timeline/TimelineFontFamilyField.js +3 -1
- package/dist/components/Timeline/TimelineHeightContainer.d.ts +1 -0
- package/dist/components/Timeline/TimelineHeightContainer.js +2 -2
- package/dist/components/Timeline/TimelineInOutDragHandler.js +3 -3
- package/dist/components/Timeline/TimelineKeyframeControls.js +1 -0
- package/dist/components/Timeline/TimelineKeyframeEasingLine.d.ts +4 -2
- package/dist/components/Timeline/TimelineKeyframeEasingLine.js +30 -28
- package/dist/components/Timeline/TimelineList.d.ts +1 -0
- package/dist/components/Timeline/TimelineList.js +2 -3
- package/dist/components/Timeline/TimelineScaleField.js +1 -1
- package/dist/components/Timeline/TimelineSelection.js +1 -0
- package/dist/components/Timeline/TimelineSequence.js +34 -28
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +3 -3
- package/dist/components/Timeline/TimelineSequenceItem.js +61 -56
- package/dist/components/Timeline/TimelineSequencePropItem.d.ts +10 -2
- package/dist/components/Timeline/TimelineSequencePropItem.js +64 -12
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +2 -2
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +39 -6
- package/dist/components/Timeline/TimelineTimeIndicators.js +36 -3
- package/dist/components/Timeline/TimelineVideoInfo.d.ts +1 -1
- package/dist/components/Timeline/TimelineVideoInfo.js +36 -3
- package/dist/components/Timeline/TimelineZoomControls.d.ts +2 -2
- package/dist/components/Timeline/TimelineZoomControls.js +39 -12
- package/dist/components/Timeline/reset-selected-timeline-props.js +1 -1
- package/dist/components/Timeline/should-subscribe-to-sequence-props.d.ts +1 -1
- package/dist/components/Timeline/timeline-asset-link.d.ts +2 -2
- package/dist/components/Timeline/timeline-asset-link.js +2 -2
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +4 -0
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.d.ts +1 -1
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.js +7 -18
- package/dist/components/Timeline/use-timeline-asset-drop.js +1 -0
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +1 -0
- package/dist/components/Timeline/use-timeline-expanded-tree.js +5 -0
- package/dist/components/Timeline/use-timeline-height.d.ts +2 -1
- package/dist/components/Timeline/use-timeline-height.js +23 -2
- package/dist/components/TimelineCombobox.d.ts +11 -0
- package/dist/components/TimelineCombobox.js +181 -0
- package/dist/components/TimelineInOutToggle.js +5 -1
- package/dist/components/TopPanel.js +22 -7
- package/dist/components/UpdateCheck.js +1 -1
- package/dist/components/effect-drag-and-drop.js +1 -1
- package/dist/components/handle-drop.d.ts +2 -1
- package/dist/components/handle-drop.js +12 -2
- package/dist/components/import-assets.d.ts +18 -6
- package/dist/components/import-assets.js +76 -32
- package/dist/components/selected-outline-types.d.ts +1 -1
- package/dist/esm/{chunk-43m68z1k.js → chunk-b49ec3nz.js} +12436 -11482
- package/dist/esm/internals.mjs +12436 -11482
- package/dist/esm/previewEntry.mjs +9671 -8717
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/client-id.d.ts +3 -1
- package/dist/helpers/client-id.js +21 -4
- package/dist/helpers/hoverable.d.ts +11 -0
- package/dist/helpers/hoverable.js +70 -0
- package/dist/helpers/inject-css.js +3 -0
- package/dist/helpers/install-required-package.d.ts +3 -3
- package/dist/helpers/install-required-package.js +1 -6
- package/dist/helpers/studio-fit-padding.d.ts +1 -1
- package/dist/helpers/studio-fit-padding.js +1 -1
- package/dist/helpers/timeline-layout.d.ts +2 -1
- package/dist/helpers/timeline-layout.js +5 -2
- package/dist/helpers/use-is-fullscreen.d.ts +1 -0
- package/dist/helpers/use-is-fullscreen.js +25 -0
- package/dist/helpers/use-menu-structure.js +26 -43
- package/dist/helpers/use-runtime-values.d.ts +11 -0
- package/dist/helpers/use-runtime-values.js +76 -0
- package/dist/icons/apps.d.ts +2 -0
- package/dist/icons/apps.js +7 -0
- package/dist/icons/browse-elements.d.ts +4 -0
- package/dist/icons/browse-elements.js +10 -0
- package/dist/icons/canvas-zoom.d.ts +10 -0
- package/dist/icons/canvas-zoom.js +21 -0
- package/dist/icons/playback-rate.d.ts +5 -0
- package/dist/icons/playback-rate.js +31 -0
- package/dist/icons/search.d.ts +5 -0
- package/dist/icons/search.js +10 -0
- package/dist/state/modals.d.ts +5 -6
- package/dist/state/modals.js +5 -3
- package/package.json +12 -12
|
@@ -35,6 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.TimelineExpandedKeyframeRow = void 0;
|
|
37
37
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
|
+
const studio_shared_1 = require("@remotion/studio-shared");
|
|
38
39
|
const react_1 = __importStar(require("react"));
|
|
39
40
|
const timeline_layout_1 = require("../../helpers/timeline-layout");
|
|
40
41
|
const get_timeline_easing_segments_1 = require("./get-timeline-easing-segments");
|
|
@@ -65,4 +66,34 @@ const TimelineExpandedKeyframeRowUnmemoized = ({ height, keyframes, canEditEasin
|
|
|
65
66
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [showSeparator ? jsx_runtime_1.jsx("div", { style: rowSeparator }) : null, jsx_runtime_1.jsx("div", { style: { ...rowClipper, height, width: timelineWidth !== null && timelineWidth !== void 0 ? timelineWidth : undefined }, children: jsx_runtime_1.jsxs("div", { style: { ...row, height }, children: [rowHighlightBackground && timelineWidth !== null ? (jsx_runtime_1.jsx("div", { style: (0, TimelineSelection_1.getTimelineSelectedTrackHighlightStyle)(timelineWidth, rowHighlightBackground) })) : null, easingSegments.map((segment) => (jsx_runtime_1.jsx(TimelineKeyframeEasingLine_1.TimelineKeyframeEasingLine, { fromFrame: segment.fromFrame, toFrame: segment.toFrame, rowHeight: height, nodePathInfo: nodePathInfo, segmentIndex: segment.segmentIndex }, `${segment.segmentIndex}-${segment.fromFrame}-${segment.toFrame}`))), keyframes.map((keyframe) => (jsx_runtime_1.jsx(TimelineKeyframeDiamond_1.TimelineKeyframeDiamond, { frame: keyframe.frame, rowHeight: height, nodePathInfo: nodePathInfo }, keyframe.frame)))] }) })
|
|
66
67
|
] }));
|
|
67
68
|
};
|
|
68
|
-
|
|
69
|
+
const areTimelineExpandedKeyframeRowPropsEqual = (prevProps, nextProps) => {
|
|
70
|
+
if (prevProps.height !== nextProps.height ||
|
|
71
|
+
prevProps.canEditEasing !== nextProps.canEditEasing ||
|
|
72
|
+
prevProps.showSeparator !== nextProps.showSeparator ||
|
|
73
|
+
prevProps.keyframes.length !== nextProps.keyframes.length ||
|
|
74
|
+
prevProps.nodePathInfo.index !== nextProps.nodePathInfo.index ||
|
|
75
|
+
prevProps.nodePathInfo.numberOfSequencesWithThisNodePath !==
|
|
76
|
+
nextProps.nodePathInfo.numberOfSequencesWithThisNodePath ||
|
|
77
|
+
prevProps.nodePathInfo.supportsEffects !==
|
|
78
|
+
nextProps.nodePathInfo.supportsEffects ||
|
|
79
|
+
(0, studio_shared_1.stringifySequenceSubscriptionKey)(prevProps.nodePathInfo.sequenceSubscriptionKey) !==
|
|
80
|
+
(0, studio_shared_1.stringifySequenceSubscriptionKey)(nextProps.nodePathInfo.sequenceSubscriptionKey) ||
|
|
81
|
+
prevProps.nodePathInfo.auxiliaryKeys.length !==
|
|
82
|
+
nextProps.nodePathInfo.auxiliaryKeys.length) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
const prevVideoConfig = prevProps.nodePathInfo.sequenceSubscriptionKey.videoConfigValues;
|
|
86
|
+
const nextVideoConfig = nextProps.nodePathInfo.sequenceSubscriptionKey.videoConfigValues;
|
|
87
|
+
if (prevVideoConfig !== nextVideoConfig &&
|
|
88
|
+
(prevVideoConfig === null ||
|
|
89
|
+
nextVideoConfig === null ||
|
|
90
|
+
prevVideoConfig.durationInFrames !== nextVideoConfig.durationInFrames ||
|
|
91
|
+
prevVideoConfig.fps !== nextVideoConfig.fps ||
|
|
92
|
+
prevVideoConfig.height !== nextVideoConfig.height ||
|
|
93
|
+
prevVideoConfig.width !== nextVideoConfig.width)) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return (prevProps.keyframes.every((keyframe, index) => keyframe.frame === nextProps.keyframes[index].frame) &&
|
|
97
|
+
prevProps.nodePathInfo.auxiliaryKeys.every((key, index) => key === nextProps.nodePathInfo.auxiliaryKeys[index]));
|
|
98
|
+
};
|
|
99
|
+
exports.TimelineExpandedKeyframeRow = react_1.default.memo(TimelineExpandedKeyframeRowUnmemoized, areTimelineExpandedKeyframeRowPropsEqual);
|
|
@@ -5,7 +5,7 @@ import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-s
|
|
|
5
5
|
import type { TimelineTreeNode } from '../../helpers/timeline-layout';
|
|
6
6
|
import type { GetIsExpanded } from '../ExpandedTracksProvider';
|
|
7
7
|
import type { TimelineKeyframeControlsMode } from './TimelineKeyframeControls';
|
|
8
|
-
|
|
8
|
+
type TimelineExpandedRowProps = {
|
|
9
9
|
readonly node: TimelineTreeNode;
|
|
10
10
|
readonly depth: number;
|
|
11
11
|
readonly nestedDepth: number;
|
|
@@ -17,4 +17,6 @@ export declare const TimelineExpandedRow: React.FC<{
|
|
|
17
17
|
readonly schema: InteractivitySchema;
|
|
18
18
|
readonly keyframeDisplayOffset: number;
|
|
19
19
|
readonly keyframeControlsMode?: TimelineKeyframeControlsMode;
|
|
20
|
-
}
|
|
20
|
+
};
|
|
21
|
+
export declare const TimelineExpandedRow: React.NamedExoticComponent<TimelineExpandedRowProps>;
|
|
22
|
+
export {};
|
|
@@ -21,7 +21,7 @@ const rowLabel = {
|
|
|
21
21
|
color: colors_1.WHITE_ALPHA_80,
|
|
22
22
|
userSelect: 'none',
|
|
23
23
|
};
|
|
24
|
-
const
|
|
24
|
+
const TimelineExpandedRowInner = ({ node, depth, nestedDepth, rowDepthBase, getIsExpanded, toggleTrack, validatedLocation, nodePath, schema, keyframeDisplayOffset, keyframeControlsMode, }) => {
|
|
25
25
|
const rowDepth = (rowDepthBase !== null && rowDepthBase !== void 0 ? rowDepthBase : (0, timeline_row_layout_1.getExpandedRowDepth)({ nestedDepth, treeDepth: 0 })) + depth;
|
|
26
26
|
const selection = (0, TimelineSelection_1.useTimelineRowSelection)(node.nodePathInfo);
|
|
27
27
|
const labelStyle = react_1.default.useMemo(() => ({
|
|
@@ -60,4 +60,4 @@ const TimelineExpandedRow = ({ node, depth, nestedDepth, rowDepthBase, getIsExpa
|
|
|
60
60
|
height: (0, timeline_layout_1.getTreeRowHeight)(node),
|
|
61
61
|
}, selected: selection.selected, selectable: selection.selectable, selectionItem: selection.selectionItem, onSelect: selection.onSelect, showSelectedBackground: true, containsSelection: false, outerHeight: null, children: jsx_runtime_1.jsx("span", { style: labelStyle, children: node.label }) }));
|
|
62
62
|
};
|
|
63
|
-
exports.TimelineExpandedRow =
|
|
63
|
+
exports.TimelineExpandedRow = react_1.default.memo(TimelineExpandedRowInner);
|
|
@@ -343,7 +343,9 @@ const TimelineFontFamilyField = ({ field, propStatus, effectiveValue, onSave, on
|
|
|
343
343
|
await onSave(option.value);
|
|
344
344
|
return;
|
|
345
345
|
}
|
|
346
|
-
await (0, install_required_package_1.installRequiredPackages)([
|
|
346
|
+
await (0, install_required_package_1.installRequiredPackages)([
|
|
347
|
+
{ name: '@remotion/google-fonts', version: null },
|
|
348
|
+
]);
|
|
347
349
|
const googleFont = getGoogleFontSourceEdit({
|
|
348
350
|
fontFamily: (_a = option.value) !== null && _a !== void 0 ? _a : option.label,
|
|
349
351
|
importName: option.googleFontImportName,
|
|
@@ -3,5 +3,6 @@ import type { TimelineTrackData } from '../../helpers/get-timeline-sequence-sort
|
|
|
3
3
|
export declare const TimelineHeightContainer: React.NamedExoticComponent<{
|
|
4
4
|
readonly shown: TimelineTrackData[];
|
|
5
5
|
readonly hasBeenCut: boolean;
|
|
6
|
+
readonly isStill: boolean;
|
|
6
7
|
readonly children: React.ReactNode;
|
|
7
8
|
}>;
|
|
@@ -45,8 +45,8 @@ const baseStyle = {
|
|
|
45
45
|
overflowX: 'hidden',
|
|
46
46
|
backgroundColor: TimelineSelection_1.TIMELINE_BACKGROUND,
|
|
47
47
|
};
|
|
48
|
-
const TimelineHeightContainerInner = ({ shown, hasBeenCut, children }) => {
|
|
49
|
-
const height = (0, use_timeline_height_1.useTimelineHeight)({ shown, hasBeenCut });
|
|
48
|
+
const TimelineHeightContainerInner = ({ shown, hasBeenCut, isStill, children }) => {
|
|
49
|
+
const height = (0, use_timeline_height_1.useTimelineHeight)({ shown, hasBeenCut, isStill });
|
|
50
50
|
const style = (0, react_1.useMemo)(() => ({ ...baseStyle, height }), [height]);
|
|
51
51
|
return jsx_runtime_1.jsx("div", { style: style, children: children });
|
|
52
52
|
};
|
|
@@ -302,7 +302,7 @@ const TimelineInOutDragHandlerInner = () => {
|
|
|
302
302
|
(0, ForceSpecificCursor_1.stopForcingSpecificCursor)();
|
|
303
303
|
};
|
|
304
304
|
}, []);
|
|
305
|
-
const
|
|
305
|
+
const getInContextMenuItems = (0, react_1.useCallback)(() => {
|
|
306
306
|
return [
|
|
307
307
|
{
|
|
308
308
|
id: 'hide-in',
|
|
@@ -330,7 +330,7 @@ const TimelineInOutDragHandlerInner = () => {
|
|
|
330
330
|
},
|
|
331
331
|
];
|
|
332
332
|
}, [setInAndOutFrames, videoConfig.id]);
|
|
333
|
-
const
|
|
333
|
+
const getOutContextMenuItems = (0, react_1.useCallback)(() => {
|
|
334
334
|
return [
|
|
335
335
|
{
|
|
336
336
|
id: 'hide-out',
|
|
@@ -358,6 +358,6 @@ const TimelineInOutDragHandlerInner = () => {
|
|
|
358
358
|
},
|
|
359
359
|
];
|
|
360
360
|
}, [setInAndOutFrames, videoConfig.id]);
|
|
361
|
-
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [inFrame !== null && (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, {
|
|
361
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [inFrame !== null && (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getInContextMenuItems, children: jsx_runtime_1.jsx(TimelineInOutPointerHandle_1.TimelineInOutPointerHandle, { type: "in", atFrame: inFrame, dragging: inOutDragging.dragging === 'in', onPointerDown: onInPointerDown }) })), outFrame !== null && (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getOutContextMenuItems, children: jsx_runtime_1.jsx(TimelineInOutPointerHandle_1.TimelineInOutPointerHandle, { type: "out", dragging: inOutDragging.dragging === 'out', atFrame: outFrame, onPointerDown: onOutPointerDown }) }))] }));
|
|
362
362
|
};
|
|
363
363
|
const TimelineInOutDragHandlerInnerMemo = react_1.default.memo(TimelineInOutDragHandlerInner);
|
|
@@ -131,6 +131,7 @@ const resolveKeyframeControlTarget = ({ nodePathInfo, tracks, propStatuses, getD
|
|
|
131
131
|
propStatuses,
|
|
132
132
|
includeTextContent: false,
|
|
133
133
|
includeSourceControls: false,
|
|
134
|
+
runtimeValues: null,
|
|
134
135
|
});
|
|
135
136
|
const fieldNode = findFieldNode(tree, (0, timeline_node_path_key_1.timelineNodePathInfoToKey)(nodePathInfo));
|
|
136
137
|
if (fieldNode === null || fieldNode.field === null) {
|
|
@@ -4,10 +4,12 @@ export declare const getTimelineKeyframeEasingLineStyle: (selected: boolean) =>
|
|
|
4
4
|
export declare const TimelineKeyframeEasingLineVisual: React.NamedExoticComponent<{
|
|
5
5
|
readonly selected: boolean;
|
|
6
6
|
}>;
|
|
7
|
-
|
|
7
|
+
type TimelineKeyframeEasingLineProps = {
|
|
8
8
|
readonly fromFrame: number;
|
|
9
9
|
readonly toFrame: number;
|
|
10
10
|
readonly rowHeight: number;
|
|
11
11
|
readonly nodePathInfo: SequenceNodePathInfo;
|
|
12
12
|
readonly segmentIndex: number;
|
|
13
|
-
}
|
|
13
|
+
};
|
|
14
|
+
export declare const TimelineKeyframeEasingLine: React.NamedExoticComponent<TimelineKeyframeEasingLineProps>;
|
|
15
|
+
export {};
|
|
@@ -77,10 +77,8 @@ const TimelineKeyframeEasingLineVisualUnmemoized = ({ selected }) => {
|
|
|
77
77
|
return jsx_runtime_1.jsx("div", { style: lineStyle });
|
|
78
78
|
};
|
|
79
79
|
exports.TimelineKeyframeEasingLineVisual = react_1.default.memo(TimelineKeyframeEasingLineVisualUnmemoized);
|
|
80
|
-
const
|
|
80
|
+
const TimelineKeyframeEasingLineInteraction = ({ fromFrame, toFrame, nodePathInfo, segmentIndex, style }) => {
|
|
81
81
|
const buttonRef = (0, react_1.useRef)(null);
|
|
82
|
-
const videoConfig = (0, remotion_1.useVideoConfig)();
|
|
83
|
-
const timelineWidth = (0, react_1.useContext)(TimelineWidthProvider_1.TimelineWidthContext);
|
|
84
82
|
const { selected, onSelect, selectable, selectionItem } = (0, TimelineSelection_1.useTimelineEasingSelection)({
|
|
85
83
|
nodePathInfo,
|
|
86
84
|
fromFrame,
|
|
@@ -88,6 +86,10 @@ const TimelineKeyframeEasingLineUnmemoized = ({ fromFrame, toFrame, rowHeight, n
|
|
|
88
86
|
segmentIndex,
|
|
89
87
|
});
|
|
90
88
|
(0, TimelineSelection_1.useTimelineMarqueeSelectableItem)(selectionItem, buttonRef);
|
|
89
|
+
const interactiveStyle = (0, react_1.useMemo)(() => ({
|
|
90
|
+
...style,
|
|
91
|
+
pointerEvents: selectable ? 'auto' : 'none',
|
|
92
|
+
}), [selectable, style]);
|
|
91
93
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
92
94
|
const sequencesRef = (0, react_1.useContext)(remotion_1.Internals.SequenceManagerRefContext);
|
|
93
95
|
const propStatusesRef = (0, react_1.useContext)(remotion_1.Internals.VisualModePropStatusesRefContext);
|
|
@@ -120,7 +122,16 @@ const TimelineKeyframeEasingLineUnmemoized = ({ fromFrame, toFrame, rowHeight, n
|
|
|
120
122
|
sequencesRef,
|
|
121
123
|
setPropStatuses,
|
|
122
124
|
]);
|
|
123
|
-
const
|
|
125
|
+
const getContextMenuItems = (0, react_1.useCallback)((event) => {
|
|
126
|
+
if (!selectable) {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
if (!selected) {
|
|
130
|
+
onSelect({
|
|
131
|
+
shiftKey: event.shiftKey,
|
|
132
|
+
toggleKey: event.metaKey || event.ctrlKey,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
124
135
|
return [
|
|
125
136
|
{
|
|
126
137
|
type: 'item',
|
|
@@ -147,19 +158,20 @@ const TimelineKeyframeEasingLineUnmemoized = ({ fromFrame, toFrame, rowHeight, n
|
|
|
147
158
|
value: preset.id,
|
|
148
159
|
})),
|
|
149
160
|
];
|
|
150
|
-
}, [previewServerState.type, updateEasing]);
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
161
|
+
}, [onSelect, previewServerState.type, selectable, selected, updateEasing]);
|
|
162
|
+
const onPointerDown = (0, use_timeline_keyframe_drag_1.useTimelineEasingKeyframeDrag)({
|
|
163
|
+
onSelect,
|
|
164
|
+
selectable,
|
|
165
|
+
selected,
|
|
166
|
+
selectionItem,
|
|
167
|
+
});
|
|
168
|
+
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
169
|
+
jsx_runtime_1.jsx("button", { ref: buttonRef, [TimelineSelection_1.TIMELINE_MARQUEE_ITEM_ATTR]: true, type: "button", style: interactiveStyle, title: `Easing from frame ${fromFrame} to ${toFrame}`, "aria-label": `Select easing from frame ${fromFrame} to ${toFrame}`, onPointerDown: selectable ? onPointerDown : undefined, children: jsx_runtime_1.jsx(exports.TimelineKeyframeEasingLineVisual, { selected: selected }) }), jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: buttonRef, getItems: getContextMenuItems })
|
|
170
|
+
] }));
|
|
171
|
+
};
|
|
172
|
+
const TimelineKeyframeEasingLineUnmemoized = ({ fromFrame, toFrame, rowHeight, nodePathInfo, segmentIndex }) => {
|
|
173
|
+
const videoConfig = (0, remotion_1.useVideoConfig)();
|
|
174
|
+
const timelineWidth = (0, react_1.useContext)(TimelineWidthProvider_1.TimelineWidthContext);
|
|
163
175
|
const style = (0, react_1.useMemo)(() => {
|
|
164
176
|
if (timelineWidth === null) {
|
|
165
177
|
return null;
|
|
@@ -174,29 +186,19 @@ const TimelineKeyframeEasingLineUnmemoized = ({ fromFrame, toFrame, rowHeight, n
|
|
|
174
186
|
return {
|
|
175
187
|
...easingLineButton,
|
|
176
188
|
left,
|
|
177
|
-
pointerEvents: selectable ? 'auto' : 'none',
|
|
178
189
|
top: rowHeight / 2,
|
|
179
190
|
width,
|
|
180
191
|
};
|
|
181
192
|
}, [
|
|
182
193
|
fromFrame,
|
|
183
194
|
rowHeight,
|
|
184
|
-
selectable,
|
|
185
195
|
timelineWidth,
|
|
186
196
|
toFrame,
|
|
187
197
|
videoConfig.durationInFrames,
|
|
188
198
|
]);
|
|
189
|
-
const onPointerDown = (0, use_timeline_keyframe_drag_1.useTimelineEasingKeyframeDrag)({
|
|
190
|
-
onSelect,
|
|
191
|
-
selectable,
|
|
192
|
-
selected,
|
|
193
|
-
selectionItem,
|
|
194
|
-
});
|
|
195
199
|
if (style === null) {
|
|
196
200
|
return null;
|
|
197
201
|
}
|
|
198
|
-
return (jsx_runtime_1.
|
|
199
|
-
jsx_runtime_1.jsx("button", { ref: buttonRef, [TimelineSelection_1.TIMELINE_MARQUEE_ITEM_ATTR]: true, type: "button", style: style, title: `Easing from frame ${fromFrame} to ${toFrame}`, "aria-label": `Select easing from frame ${fromFrame} to ${toFrame}`, onPointerDown: selectable ? onPointerDown : undefined, children: jsx_runtime_1.jsx(exports.TimelineKeyframeEasingLineVisual, { selected: selected }) }), jsx_runtime_1.jsx(ContextMenu_1.ContextMenuForTarget, { triggerRef: buttonRef, values: contextMenuValues, onOpen: onOpenContextMenu })
|
|
200
|
-
] }));
|
|
202
|
+
return (jsx_runtime_1.jsx(TimelineKeyframeEasingLineInteraction, { fromFrame: fromFrame, toFrame: toFrame, rowHeight: rowHeight, nodePathInfo: nodePathInfo, segmentIndex: segmentIndex, style: style }));
|
|
201
203
|
};
|
|
202
204
|
exports.TimelineKeyframeEasingLine = react_1.default.memo(TimelineKeyframeEasingLineUnmemoized);
|
|
@@ -16,9 +16,8 @@ const TimelineListTrack = ({ nestedTrack }) => {
|
|
|
16
16
|
const { track, children, siblingIndex } = nestedTrack;
|
|
17
17
|
return (jsx_runtime_1.jsx("div", { children: jsx_runtime_1.jsx(TimelineSequenceItem_1.TimelineSequenceItem, { siblingIndex: siblingIndex, connectedCompositions: (_a = track.connectedCompositions) !== null && _a !== void 0 ? _a : [], nestedDepth: track.depth, sequence: track.sequence, nodePathInfo: track.nodePathInfo, keyframeDisplayOffset: track.keyframeDisplayOffset, sequenceFrameOffset: track.sequenceFrameOffset, children: children.map((child) => (jsx_runtime_1.jsx(TimelineListTrack, { nestedTrack: child }, child.track.sequence.id))) }) }));
|
|
18
18
|
};
|
|
19
|
-
const TimelineList = ({ timeline }) => {
|
|
19
|
+
const TimelineList = ({ timeline, showTimePadding }) => {
|
|
20
20
|
const nestedTimeline = (0, react_1.useMemo)(() => (0, nest_timeline_tracks_1.nestTimelineTracks)(timeline), [timeline]);
|
|
21
|
-
return (jsx_runtime_1.jsxs("div", { style: container, children: [
|
|
22
|
-
jsx_runtime_1.jsx(TimelineTimeIndicators_1.TimelineTimePadding, {}), nestedTimeline.map((nestedTrack) => (jsx_runtime_1.jsx(TimelineListTrack, { nestedTrack: nestedTrack }, nestedTrack.track.sequence.id)))] }));
|
|
21
|
+
return (jsx_runtime_1.jsxs("div", { style: container, children: [showTimePadding ? jsx_runtime_1.jsx(TimelineTimeIndicators_1.TimelineTimePadding, {}) : null, nestedTimeline.map((nestedTrack) => (jsx_runtime_1.jsx(TimelineListTrack, { nestedTrack: nestedTrack }, nestedTrack.track.sequence.id)))] }));
|
|
23
22
|
};
|
|
24
23
|
exports.TimelineList = TimelineList;
|
|
@@ -308,7 +308,7 @@ const TimelineScaleField = ({ field, propStatus, effectiveValue, onSave, onDragV
|
|
|
308
308
|
});
|
|
309
309
|
}, [field.key, linked, scaleLockNodePath, setScaleLockState]);
|
|
310
310
|
return (jsx_runtime_1.jsxs("span", { style: containerStyle, children: [
|
|
311
|
-
jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragX !== null && dragX !== void 0 ? dragX : codeX, style: leftDraggerStyle, status: "ok", small: true, onValueChange: onXChange, onValueChangeEnd: onXChangeEnd, onTextChange: onXTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false }), jsx_runtime_1.jsx("div", { style: gapStyle }), jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragY !== null && dragY !== void 0 ? dragY : codeY, style: rightDraggerStyle, status: "ok", small: true, onValueChange: onYChange, onValueChangeEnd: onYChangeEnd, onTextChange: onYTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false }), jsx_runtime_1.jsx(LinkToggle, { linked: linked, onToggle: onToggleLink })
|
|
311
|
+
jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragX !== null && dragX !== void 0 ? dragX : codeX, style: leftDraggerStyle, status: "ok", small: true, onValueChange: onXChange, onValueChangeEnd: onXChangeEnd, onTextChange: onXTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false, allowStepMismatch: true }), jsx_runtime_1.jsx("div", { style: gapStyle }), jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: "number", value: dragY !== null && dragY !== void 0 ? dragY : codeY, style: rightDraggerStyle, status: "ok", small: true, onValueChange: onYChange, onValueChangeEnd: onYChangeEnd, onTextChange: onYTextChange, min: min, max: max, step: step, formatter: formatter, rightAlign: false, allowStepMismatch: true }), jsx_runtime_1.jsx(LinkToggle, { linked: linked, onToggle: onToggleLink })
|
|
312
312
|
] }));
|
|
313
313
|
};
|
|
314
314
|
exports.TimelineScaleField = TimelineScaleField;
|
|
@@ -448,6 +448,7 @@ const getSelectableTimelineItems = ({ getDragOverrides, getEffectDragOverrides,
|
|
|
448
448
|
propStatuses,
|
|
449
449
|
includeTextContent: false,
|
|
450
450
|
includeSourceControls: false,
|
|
451
|
+
runtimeValues: null,
|
|
451
452
|
});
|
|
452
453
|
const filteredTree = (0, timeline_expanded_filter_1.filterTimelineExpandedTree)({
|
|
453
454
|
nodes: tree,
|
|
@@ -59,6 +59,7 @@ const disable_sequence_interactivity_1 = require("./disable-sequence-interactivi
|
|
|
59
59
|
const duplicate_selected_timeline_item_1 = require("./duplicate-selected-timeline-item");
|
|
60
60
|
const get_sequence_context_menu_items_1 = require("./get-sequence-context-menu-items");
|
|
61
61
|
const get_timeline_media_visualization_layout_1 = require("./get-timeline-media-visualization-layout");
|
|
62
|
+
const imperative_state_1 = require("./imperative-state");
|
|
62
63
|
const LoopedTimelineIndicators_1 = require("./LoopedTimelineIndicators");
|
|
63
64
|
const timeline_asset_link_1 = require("./timeline-asset-link");
|
|
64
65
|
const TimelineImageInfo_1 = require("./TimelineImageInfo");
|
|
@@ -158,7 +159,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
158
159
|
// Some compositions may not be longer than their media duration,
|
|
159
160
|
// if that is the case, it needs to be asynchronously determined
|
|
160
161
|
var _a, _b, _c;
|
|
161
|
-
var _d, _e, _f, _g, _h
|
|
162
|
+
var _d, _e, _f, _g, _h;
|
|
162
163
|
const video = remotion_1.Internals.useVideo();
|
|
163
164
|
const maxMediaDuration = (0, use_max_media_duration_1.useMaxMediaDuration)(s, (_d = video === null || video === void 0 ? void 0 : video.fps) !== null && _d !== void 0 ? _d : 30);
|
|
164
165
|
const effectiveMaxMediaDuration = s.loopDisplay ? null : maxMediaDuration;
|
|
@@ -200,7 +201,6 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
200
201
|
const previewInteractive = previewConnected && (0, interactivity_enabled_1.isStudioInteractivityEnabled)();
|
|
201
202
|
const editorInfo = (0, use_default_editor_info_1.useDefaultEditorInfo)((0, use_default_editor_info_1.canUseEditorPicker)(previewConnected));
|
|
202
203
|
const { setPropStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
|
|
203
|
-
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
204
204
|
const selectAsset = (0, use_select_asset_1.useSelectAsset)();
|
|
205
205
|
const selectComposition = (0, InitialCompositionLoader_1.useSelectComposition)();
|
|
206
206
|
const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
|
|
@@ -233,6 +233,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
233
233
|
}
|
|
234
234
|
e.stopPropagation();
|
|
235
235
|
if (action === 'open-connected-composition') {
|
|
236
|
+
const timelinePosition = (0, imperative_state_1.getCurrentFrame)();
|
|
236
237
|
selectComposition(connectedCompositions[0], true, (0, get_sequence_double_click_action_1.getConnectedCompositionFrame)({
|
|
237
238
|
timelinePosition,
|
|
238
239
|
sequence: s,
|
|
@@ -248,7 +249,6 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
248
249
|
s,
|
|
249
250
|
selectComposition,
|
|
250
251
|
sequenceFrameOffset,
|
|
251
|
-
timelinePosition,
|
|
252
252
|
]);
|
|
253
253
|
const canHandleSequenceDoubleClick = connectedCompositions.length === 1 || canOpenInEditor;
|
|
254
254
|
const canDeleteFromSource = Boolean(nodePath && (validatedLocation === null || validatedLocation === void 0 ? void 0 : validatedLocation.source));
|
|
@@ -261,7 +261,6 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
261
261
|
const mediaSrc = s.type === 'audio' || s.type === 'video' || s.type === 'image'
|
|
262
262
|
? s.src
|
|
263
263
|
: null;
|
|
264
|
-
const assetLinkInfo = (0, react_1.useMemo)(() => (mediaSrc ? (0, timeline_asset_link_1.getTimelineAssetLinkInfo)(mediaSrc) : null), [mediaSrc]);
|
|
265
264
|
const onDuplicateSequenceFromSource = (0, react_1.useCallback)(() => {
|
|
266
265
|
if (!(validatedLocation === null || validatedLocation === void 0 ? void 0 : validatedLocation.source) || !nodePathInfo || duplicateDisabled) {
|
|
267
266
|
return;
|
|
@@ -327,21 +326,25 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
327
326
|
setPropStatuses,
|
|
328
327
|
validatedLocation === null || validatedLocation === void 0 ? void 0 : validatedLocation.source,
|
|
329
328
|
]);
|
|
330
|
-
const
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
:
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
329
|
+
const getContextMenuItems = (0, react_1.useCallback)(() => {
|
|
330
|
+
var _a;
|
|
331
|
+
if (selectable) {
|
|
332
|
+
onSelect({ shiftKey: false, toggleKey: false });
|
|
333
|
+
}
|
|
334
|
+
const freezeFrameMenuItem = (0, use_sequence_freeze_frame_menu_item_1.getSequenceFreezeFrameMenuItem)({
|
|
335
|
+
clientId: previewInteractive && previewServerState.type === 'connected'
|
|
336
|
+
? previewServerState.clientId
|
|
337
|
+
: null,
|
|
338
|
+
nodePath,
|
|
339
|
+
propStatusesForOverride,
|
|
340
|
+
sequence: s,
|
|
341
|
+
sequenceFrameOffset,
|
|
342
|
+
setPropStatuses,
|
|
343
|
+
timelinePosition: (0, imperative_state_1.getCurrentFrame)(),
|
|
344
|
+
validatedSource: (_a = validatedLocation === null || validatedLocation === void 0 ? void 0 : validatedLocation.source) !== null && _a !== void 0 ? _a : null,
|
|
345
|
+
});
|
|
343
346
|
return (0, get_sequence_context_menu_items_1.getSequenceContextMenuItems)({
|
|
344
|
-
assetLinkInfo,
|
|
347
|
+
assetLinkInfo: mediaSrc ? (0, timeline_asset_link_1.getTimelineAssetLinkInfo)(mediaSrc) : null,
|
|
345
348
|
canOpenInEditor,
|
|
346
349
|
deleteDisabled,
|
|
347
350
|
disableInteractivityDisabled,
|
|
@@ -361,32 +364,35 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
361
364
|
: [],
|
|
362
365
|
});
|
|
363
366
|
}, [
|
|
364
|
-
assetLinkInfo,
|
|
365
367
|
canOpenInEditor,
|
|
366
368
|
deleteDisabled,
|
|
367
369
|
disableInteractivityDisabled,
|
|
368
370
|
duplicateDisabled,
|
|
369
371
|
editorInfo,
|
|
370
372
|
fileLocation,
|
|
371
|
-
|
|
373
|
+
mediaSrc,
|
|
374
|
+
nodePath,
|
|
375
|
+
onSelect,
|
|
372
376
|
onDeleteSequenceFromSource,
|
|
373
377
|
onDisableSequenceInteractivity,
|
|
374
378
|
onDuplicateSequenceFromSource,
|
|
375
379
|
openInEditor,
|
|
376
380
|
originalLocation,
|
|
381
|
+
previewInteractive,
|
|
382
|
+
previewServerState,
|
|
383
|
+
propStatusesForOverride,
|
|
377
384
|
s,
|
|
378
385
|
selectAsset,
|
|
386
|
+
selectable,
|
|
387
|
+
sequenceFrameOffset,
|
|
388
|
+
setPropStatuses,
|
|
389
|
+
validatedLocation === null || validatedLocation === void 0 ? void 0 : validatedLocation.source,
|
|
379
390
|
]);
|
|
380
|
-
const onContextMenuOpen = (0, react_1.useCallback)(() => {
|
|
381
|
-
if (selectable) {
|
|
382
|
-
onSelect({ shiftKey: false, toggleKey: false });
|
|
383
|
-
}
|
|
384
|
-
}, [onSelect, selectable]);
|
|
385
391
|
const { frozenFrame } = s;
|
|
386
392
|
const { onPointerDown: onMoveDragPointerDown } = (0, TimelineSequenceRightEdgeDragHandle_1.useTimelineSequenceFromDrag)({
|
|
387
393
|
nodePathInfo,
|
|
388
394
|
windowWidth,
|
|
389
|
-
timelineDurationInFrames: (
|
|
395
|
+
timelineDurationInFrames: (_f = video === null || video === void 0 ? void 0 : video.durationInFrames) !== null && _f !== void 0 ? _f : 1,
|
|
390
396
|
});
|
|
391
397
|
if (!video) {
|
|
392
398
|
throw new TypeError('Expected video config');
|
|
@@ -458,7 +464,7 @@ const TimelineSequenceInner = ({ s, connectedCompositions, windowWidth, nodePath
|
|
|
458
464
|
if (maxMediaDuration === null && !s.loopDisplay) {
|
|
459
465
|
return null;
|
|
460
466
|
}
|
|
461
|
-
const sequence = (jsx_runtime_1.jsxs(TimelineSequenceCurrentFrame, { s: s, displayDurationInFrames: displayDurationInFrames, premountWidth: premountWidth, postmountWidth: postmountWidth, style: style, nodePathInfo: nodePathInfo, sequenceFrameOffset: sequenceFrameOffset, fromCanUpdate: fromCanUpdate, frozenFrame: frozenFrame, onMoveDragPointerDown: onMoveDragPointerDown, onDoubleClick: canHandleSequenceDoubleClick ? onSequenceDoubleClick : undefined, children: [s.type === 'audio' ? (jsx_runtime_1.jsx("div", { style: mediaVisualizationStyle, children: jsx_runtime_1.jsx(AudioWaveform_1.AudioWaveform, { src: s.src, height: timeline_layout_1.TIMELINE_LAYER_HEIGHT_AUDIO, doesVolumeChange: s.doesVolumeChange, visualizationWidth: mediaVisualizationLayout.width, startFrom: s.startMediaFrom, durationInFrames: s.duration, volume: s.volume, playbackRate: s.playbackRate, loopDisplay: s.loopDisplay }) })) : null, s.type === 'video' ? (jsx_runtime_1.jsx(TimelineVideoInfo_1.TimelineVideoInfo, { src: s.src, visualizationWidth: width, naturalWidth: naturalWidth, startMediaFrom: s.startMediaFrom, mediaFrameAtSequenceZero: s.mediaFrameAtSequenceZero, sequenceFrameOffset: sequenceFrameOffset, durationInFrames: s.duration, playbackRate: s.playbackRate, volume: s.volume, doesVolumeChange: s.doesVolumeChange, premountWidth: premountWidth !== null && premountWidth !== void 0 ? premountWidth : 0, postmountWidth: postmountWidth !== null && postmountWidth !== void 0 ? postmountWidth : 0, loopDisplay: s.loopDisplay, frozenMediaFrame: s.frozenMediaFrame, extendLastFrame: extendVideoLastFrame })) : null, s.type === 'image' ? (jsx_runtime_1.jsx("div", { style: mediaVisualizationStyle, children: jsx_runtime_1.jsx(TimelineImageInfo_1.TimelineImageInfo, { src: s.src, visualizationWidth: mediaVisualizationLayout.width }) })) : null, s.loopDisplay === undefined ? null : (jsx_runtime_1.jsx(LoopedTimelineIndicators_1.LoopedTimelineIndicator, { loops: s.loopDisplay.numberOfTimes })), showLeftEdgeDragHandle && nodePathInfo && validatedLocation ? (jsx_runtime_1.jsx(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceLeftEdgeDragHandle, { nodePathInfo: nodePathInfo, windowWidth: windowWidth, timelineDurationInFrames: (
|
|
462
|
-
return previewConnected || window.remotion_isReadOnlyStudio ? (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, {
|
|
467
|
+
const sequence = (jsx_runtime_1.jsxs(TimelineSequenceCurrentFrame, { s: s, displayDurationInFrames: displayDurationInFrames, premountWidth: premountWidth, postmountWidth: postmountWidth, style: style, nodePathInfo: nodePathInfo, sequenceFrameOffset: sequenceFrameOffset, fromCanUpdate: fromCanUpdate, frozenFrame: frozenFrame, onMoveDragPointerDown: onMoveDragPointerDown, onDoubleClick: canHandleSequenceDoubleClick ? onSequenceDoubleClick : undefined, children: [s.type === 'audio' ? (jsx_runtime_1.jsx("div", { style: mediaVisualizationStyle, children: jsx_runtime_1.jsx(AudioWaveform_1.AudioWaveform, { src: s.src, height: timeline_layout_1.TIMELINE_LAYER_HEIGHT_AUDIO, doesVolumeChange: s.doesVolumeChange, visualizationWidth: mediaVisualizationLayout.width, startFrom: s.startMediaFrom, durationInFrames: s.duration, volume: s.volume, playbackRate: s.playbackRate, loopDisplay: s.loopDisplay }) })) : null, s.type === 'video' ? (jsx_runtime_1.jsx(TimelineVideoInfo_1.TimelineVideoInfo, { src: s.src, visualizationWidth: width, naturalWidth: naturalWidth, startMediaFrom: s.startMediaFrom, mediaFrameAtSequenceZero: s.mediaFrameAtSequenceZero, sequenceFrameOffset: sequenceFrameOffset, durationInFrames: s.duration, playbackRate: s.playbackRate, volume: s.volume, doesVolumeChange: s.doesVolumeChange, premountWidth: premountWidth !== null && premountWidth !== void 0 ? premountWidth : 0, postmountWidth: postmountWidth !== null && postmountWidth !== void 0 ? postmountWidth : 0, loopDisplay: s.loopDisplay, frozenMediaFrame: s.frozenMediaFrame, extendLastFrame: extendVideoLastFrame })) : null, s.type === 'image' ? (jsx_runtime_1.jsx("div", { style: mediaVisualizationStyle, children: jsx_runtime_1.jsx(TimelineImageInfo_1.TimelineImageInfo, { src: s.src, visualizationWidth: mediaVisualizationLayout.width }) })) : null, s.loopDisplay === undefined ? null : (jsx_runtime_1.jsx(LoopedTimelineIndicators_1.LoopedTimelineIndicator, { loops: s.loopDisplay.numberOfTimes })), showLeftEdgeDragHandle && nodePathInfo && validatedLocation ? (jsx_runtime_1.jsx(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceLeftEdgeDragHandle, { nodePathInfo: nodePathInfo, windowWidth: windowWidth, timelineDurationInFrames: (_g = video.durationInFrames) !== null && _g !== void 0 ? _g : 1 })) : null, showRightEdgeDragHandle && nodePathInfo && validatedLocation ? (jsx_runtime_1.jsx(TimelineSequenceRightEdgeDragHandle_1.TimelineSequenceRightEdgeDragHandle, { nodePathInfo: nodePathInfo, windowWidth: windowWidth, timelineDurationInFrames: (_h = video.durationInFrames) !== null && _h !== void 0 ? _h : 1 })) : null] }));
|
|
468
|
+
return previewConnected || window.remotion_isReadOnlyStudio ? (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { getItems: getContextMenuItems, children: sequence })) : (sequence);
|
|
463
469
|
};
|
|
464
470
|
exports.TimelineSequence = react_1.default.memo(TimelineSequenceFn);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type {
|
|
2
|
+
import type { TSequence } from 'remotion';
|
|
3
3
|
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
4
|
-
export declare const TimelineSequenceItem: React.
|
|
4
|
+
export declare const TimelineSequenceItem: React.NamedExoticComponent<{
|
|
5
5
|
readonly children: React.ReactNode;
|
|
6
6
|
readonly sequence: TSequence;
|
|
7
|
-
readonly connectedCompositions: readonly
|
|
7
|
+
readonly connectedCompositions: readonly import("remotion").AnyComposition[];
|
|
8
8
|
readonly nestedDepth: number;
|
|
9
9
|
readonly nodePathInfo: SequenceNodePathInfo | null;
|
|
10
10
|
readonly keyframeDisplayOffset: number;
|