@remotion/studio 4.0.478 → 4.0.481
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AssetSelector.js +8 -14
- package/dist/components/AudioWaveform.js +19 -11
- package/dist/components/Button.d.ts +2 -0
- package/dist/components/Button.js +9 -6
- package/dist/components/CompactExplanation.d.ts +12 -0
- package/dist/components/CompactExplanation.js +52 -0
- package/dist/components/CompositionSelector.js +2 -4
- package/dist/components/CurrentAsset.d.ts +3 -1
- package/dist/components/CurrentAsset.js +42 -34
- package/dist/components/CurrentComposition.d.ts +1 -1
- package/dist/components/CurrentComposition.js +38 -31
- package/dist/components/CurrentCompositionSideEffects.d.ts +0 -3
- package/dist/components/CurrentCompositionSideEffects.js +1 -37
- package/dist/components/DefaultPropsEditor.d.ts +12 -2
- package/dist/components/DefaultPropsEditor.js +2 -2
- package/dist/components/Editor.js +2 -5
- package/dist/components/EditorContent.js +2 -1
- package/dist/components/EffectPickerModal.d.ts +5 -0
- package/dist/components/EffectPickerModal.js +179 -0
- package/dist/components/ExpandedTracksProvider.d.ts +1 -0
- package/dist/components/ExpandedTracksProvider.js +81 -7
- package/dist/components/GlobalKeybindings.d.ts +3 -1
- package/dist/components/GlobalKeybindings.js +104 -10
- package/dist/components/InspectorInfoHeader.d.ts +11 -0
- package/dist/components/InspectorInfoHeader.js +55 -0
- package/dist/components/InspectorPanel/DefaultInspector.d.ts +8 -0
- package/dist/components/InspectorPanel/DefaultInspector.js +93 -0
- package/dist/components/InspectorPanel/EasingInspector.d.ts +5 -0
- package/dist/components/InspectorPanel/EasingInspector.js +41 -0
- package/dist/components/InspectorPanel/GuideInspector.d.ts +7 -0
- package/dist/components/InspectorPanel/GuideInspector.js +55 -0
- package/dist/components/InspectorPanel/KeyframeInspector.d.ts +7 -0
- package/dist/components/InspectorPanel/KeyframeInspector.js +109 -0
- package/dist/components/InspectorPanel/SelectedInspector.d.ts +5 -0
- package/dist/components/InspectorPanel/SelectedInspector.js +26 -0
- package/dist/components/InspectorPanel/SequenceSelectionInspector.d.ts +5 -0
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +117 -0
- package/dist/components/InspectorPanel/common.d.ts +15 -0
- package/dist/components/InspectorPanel/common.js +18 -0
- package/dist/components/InspectorPanel/inspector-selection.d.ts +10 -0
- package/dist/components/InspectorPanel/inspector-selection.js +35 -0
- package/dist/components/InspectorPanel/styles.d.ts +28 -0
- package/dist/components/InspectorPanel/styles.js +196 -0
- package/dist/components/InspectorPanel/use-track-for-selection.d.ts +2 -0
- package/dist/components/InspectorPanel/use-track-for-selection.js +22 -0
- package/dist/components/InspectorPanel.d.ts +8 -0
- package/dist/components/InspectorPanel.js +26 -0
- package/dist/components/InspectorPanelLayout.d.ts +1 -0
- package/dist/components/InspectorPanelLayout.js +4 -0
- package/dist/components/InspectorSequenceSection.d.ts +19 -0
- package/dist/components/InspectorSequenceSection.js +157 -0
- package/dist/components/InspectorSourceLocation.d.ts +7 -0
- package/dist/components/InspectorSourceLocation.js +71 -0
- package/dist/components/KeyboardShortcutsExplainer.js +10 -2
- package/dist/components/Modals.js +3 -3
- package/dist/components/NewComposition/InputDragger.js +1 -1
- package/dist/components/NewComposition/RemInput.d.ts +1 -0
- package/dist/components/NewComposition/RemInput.js +8 -2
- package/dist/components/NewComposition/RemTextarea.d.ts +1 -0
- package/dist/components/NewComposition/RemTextarea.js +8 -2
- package/dist/components/NewComposition/ValidationMessage.d.ts +3 -0
- package/dist/components/NewComposition/ValidationMessage.js +16 -5
- package/dist/components/OptionsPanel.d.ts +1 -1
- package/dist/components/OptionsPanel.js +8 -17
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +2 -7
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +3 -10
- package/dist/components/QuickSwitcher/shared.d.ts +4 -0
- package/dist/components/QuickSwitcher/shared.js +24 -0
- package/dist/components/RenderModal/DataEditor.d.ts +29 -2
- package/dist/components/RenderModal/DataEditor.js +107 -56
- package/dist/components/RenderModal/RenderModalJSONPropsEditor.d.ts +1 -0
- package/dist/components/RenderModal/RenderModalJSONPropsEditor.js +25 -7
- package/dist/components/RenderModal/SchemaEditor/Fieldset.d.ts +2 -1
- package/dist/components/RenderModal/SchemaEditor/Fieldset.js +10 -5
- package/dist/components/RenderModal/SchemaEditor/SchemaEditor.d.ts +4 -0
- package/dist/components/RenderModal/SchemaEditor/SchemaEditor.js +27 -4
- package/dist/components/RenderModal/SchemaEditor/SchemaErrorMessages.d.ts +12 -4
- package/dist/components/RenderModal/SchemaEditor/SchemaErrorMessages.js +23 -9
- package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +3 -3
- package/dist/components/RenderModal/SchemaEditor/SchemaSeparationLine.js +8 -1
- package/dist/components/RenderModal/SchemaEditor/ZodColorEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodErrorMessages.d.ts +1 -0
- package/dist/components/RenderModal/SchemaEditor/ZodErrorMessages.js +23 -6
- package/dist/components/RenderModal/SchemaEditor/ZodFieldValidation.js +2 -2
- package/dist/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +2 -1
- package/dist/components/RenderModal/SchemaEditor/ZodNumberEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodObjectEditor.js +9 -11
- package/dist/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodStringEditor.js +1 -1
- package/dist/components/RenderModal/SchemaEditor/ZodTextareaEditor.js +1 -1
- package/dist/components/RenderModal/WarningIndicatorButton.d.ts +1 -0
- package/dist/components/RenderModal/WarningIndicatorButton.js +17 -4
- package/dist/components/RenderModal/get-render-modal-warnings.d.ts +2 -1
- package/dist/components/RenderModal/get-render-modal-warnings.js +6 -3
- package/dist/components/RendersTab.js +1 -1
- package/dist/components/ResetZoomButton.d.ts +2 -1
- package/dist/components/ResetZoomButton.js +5 -1
- package/dist/components/SegmentedControl.d.ts +3 -0
- package/dist/components/SegmentedControl.js +11 -5
- package/dist/components/SelectedOutlineElement.js +96 -24
- package/dist/components/SelectedOutlineOverlay.d.ts +1 -1
- package/dist/components/SelectedOutlineOverlay.js +44 -30
- package/dist/components/SelectedOutlineUvControls.d.ts +9 -0
- package/dist/components/SelectedOutlineUvControls.js +64 -10
- package/dist/components/Tabs/index.js +4 -4
- package/dist/components/Timeline/EasingEditorModal.d.ts +5 -4
- package/dist/components/Timeline/EasingEditorModal.js +597 -124
- package/dist/components/Timeline/KeyframeSettingsModal.d.ts +2 -2
- package/dist/components/Timeline/SubscribeToNodePaths.d.ts +2 -2
- package/dist/components/Timeline/Timeline.js +9 -9
- package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +15 -3
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +85 -1
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +10 -3
- package/dist/components/Timeline/TimelineEffectItem.d.ts +2 -2
- package/dist/components/Timeline/TimelineEffectItem.js +1 -1
- package/dist/components/Timeline/TimelineEffectPropItem.d.ts +8 -0
- package/dist/components/Timeline/TimelineEffectPropItem.js +25 -21
- package/dist/components/Timeline/TimelineExpandArrowButton.js +42 -2
- package/dist/components/Timeline/TimelineExpandedRow.d.ts +5 -2
- package/dist/components/Timeline/TimelineExpandedRow.js +6 -6
- package/dist/components/Timeline/TimelineExpandedSection.d.ts +1 -1
- package/dist/components/Timeline/TimelineExpandedSection.js +10 -25
- package/dist/components/Timeline/TimelineKeyframeControls.d.ts +8 -2
- package/dist/components/Timeline/TimelineKeyframeControls.js +24 -3
- package/dist/components/Timeline/TimelineKeyframeEasingLine.js +2 -47
- package/dist/components/Timeline/TimelineKeyframedValue.d.ts +1 -1
- package/dist/components/Timeline/TimelineKeyframedValue.js +8 -10
- package/dist/components/Timeline/TimelineNumberField.js +5 -11
- package/dist/components/Timeline/TimelineRotationField.js +5 -6
- package/dist/components/Timeline/TimelineRowChrome.d.ts +2 -0
- package/dist/components/Timeline/TimelineRowChrome.js +5 -3
- package/dist/components/Timeline/TimelineScaleField.js +4 -8
- package/dist/components/Timeline/TimelineSelection.d.ts +28 -2
- package/dist/components/Timeline/TimelineSelection.js +342 -61
- package/dist/components/Timeline/TimelineSequence.js +19 -3
- package/dist/components/Timeline/TimelineSequenceItem.js +68 -64
- package/dist/components/Timeline/TimelineSequencePropItem.d.ts +12 -2
- package/dist/components/Timeline/TimelineSequencePropItem.js +57 -53
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +6 -4
- package/dist/components/Timeline/TimelineTransformOriginField.js +4 -5
- package/dist/components/Timeline/TimelineTranslateField.js +4 -5
- package/dist/components/Timeline/TimelineUvCoordinateField.js +4 -4
- package/dist/components/Timeline/call-add-keyframe.d.ts +4 -4
- package/dist/components/Timeline/call-delete-keyframe.d.ts +4 -4
- package/dist/components/Timeline/call-move-keyframe.d.ts +2 -2
- package/dist/components/Timeline/call-update-keyframe-settings.d.ts +3 -3
- package/dist/components/Timeline/delete-selected-timeline-item.d.ts +2 -1
- package/dist/components/Timeline/delete-selected-timeline-item.js +27 -1
- package/dist/components/Timeline/find-track-for-node-path-info.js +2 -2
- package/dist/components/Timeline/get-node-keyframes.d.ts +7 -0
- package/dist/components/Timeline/get-node-keyframes.js +26 -1
- package/dist/components/Timeline/parse-keyframe-field-from-node-path.js +2 -2
- package/dist/components/Timeline/reset-selected-timeline-props.d.ts +3 -3
- package/dist/components/Timeline/reset-selected-timeline-props.js +34 -7
- package/dist/components/Timeline/save-effect-prop.d.ts +2 -2
- package/dist/components/Timeline/save-sequence-prop.d.ts +2 -2
- package/dist/components/Timeline/sequence-props-subscription-store.d.ts +3 -3
- package/dist/components/Timeline/timeline-expanded-filter.d.ts +12 -0
- package/dist/components/Timeline/timeline-expanded-filter.js +38 -0
- package/dist/components/Timeline/timeline-field-display-utils.d.ts +5 -0
- package/dist/components/Timeline/timeline-field-display-utils.js +244 -0
- package/dist/components/Timeline/update-selected-easing.d.ts +47 -4
- package/dist/components/Timeline/update-selected-easing.js +40 -9
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +50 -18
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.d.ts +13 -0
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.js +73 -0
- package/dist/components/Timeline/use-sequence-props-subscription.d.ts +3 -3
- package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +12 -0
- package/dist/components/Timeline/use-timeline-expanded-tree.js +60 -0
- package/dist/components/Timeline/use-timeline-height.js +51 -7
- package/dist/components/Timeline/use-timeline-keyframe-drag.js +12 -6
- package/dist/components/TopPanel.js +1 -1
- package/dist/components/VisualControls/VisualControlsContent.d.ts +1 -1
- package/dist/components/VisualControls/VisualControlsContent.js +4 -5
- package/dist/components/effect-drag-and-drop.d.ts +10 -0
- package/dist/components/effect-drag-and-drop.js +17 -8
- package/dist/components/effect-picker-search.d.ts +5 -0
- package/dist/components/effect-picker-search.js +77 -0
- package/dist/components/selected-outline-drag.d.ts +21 -2
- package/dist/components/selected-outline-drag.js +31 -6
- package/dist/components/selected-outline-measurement.js +48 -14
- package/dist/components/selected-outline-types.d.ts +7 -7
- package/dist/components/selected-outline-uv.d.ts +4 -3
- package/dist/components/selected-outline-uv.js +6 -2
- package/dist/error-overlay/remotion-overlay/ErrorLoader.js +8 -1
- package/dist/esm/{chunk-hrw9799x.js → chunk-4rq5gt8c.js} +30557 -26640
- package/dist/esm/internals.mjs +30557 -26640
- package/dist/esm/previewEntry.mjs +18584 -14665
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/migrate-expanded-tracks-for-subscription-key.js +3 -3
- package/dist/helpers/render-codec-label.d.ts +2 -0
- package/dist/helpers/render-codec-label.js +49 -0
- package/dist/helpers/timeline-layout.d.ts +4 -4
- package/dist/helpers/use-media-metadata.d.ts +8 -2
- package/dist/helpers/use-media-metadata.js +17 -4
- package/dist/state/modals.d.ts +9 -4
- package/package.json +12 -12
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { SequencePropsSubscriptionKey,
|
|
1
|
+
import type { SequencePropsSubscriptionKey, InteractivitySchema } from 'remotion';
|
|
2
2
|
import type { SetPropStatuses } from './save-sequence-prop';
|
|
3
3
|
export type DeleteSequenceKeyframeChange = {
|
|
4
4
|
fileName: string;
|
|
5
5
|
nodePath: SequencePropsSubscriptionKey;
|
|
6
6
|
fieldKey: string;
|
|
7
7
|
sourceFrame: number;
|
|
8
|
-
schema:
|
|
8
|
+
schema: InteractivitySchema;
|
|
9
9
|
};
|
|
10
10
|
export type DeleteEffectKeyframeChange = DeleteSequenceKeyframeChange & {
|
|
11
11
|
effectIndex: number;
|
|
@@ -15,7 +15,7 @@ export declare const callDeleteSequenceKeyframe: ({ fileName, nodePath, fieldKey
|
|
|
15
15
|
nodePath: SequencePropsSubscriptionKey;
|
|
16
16
|
fieldKey: string;
|
|
17
17
|
sourceFrame: number;
|
|
18
|
-
schema:
|
|
18
|
+
schema: InteractivitySchema;
|
|
19
19
|
setPropStatuses: SetPropStatuses;
|
|
20
20
|
clientId: string;
|
|
21
21
|
}) => Promise<void>;
|
|
@@ -25,7 +25,7 @@ export declare const callDeleteEffectKeyframe: ({ fileName, nodePath, effectInde
|
|
|
25
25
|
effectIndex: number;
|
|
26
26
|
fieldKey: string;
|
|
27
27
|
sourceFrame: number;
|
|
28
|
-
schema:
|
|
28
|
+
schema: InteractivitySchema;
|
|
29
29
|
setPropStatuses: SetPropStatuses;
|
|
30
30
|
clientId: string;
|
|
31
31
|
}) => Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SequencePropsSubscriptionKey,
|
|
1
|
+
import type { SequencePropsSubscriptionKey, InteractivitySchema } from 'remotion';
|
|
2
2
|
import type { SetPropStatuses } from './save-sequence-prop';
|
|
3
3
|
export type MoveSequenceKeyframeChange = {
|
|
4
4
|
fileName: string;
|
|
@@ -6,7 +6,7 @@ export type MoveSequenceKeyframeChange = {
|
|
|
6
6
|
fieldKey: string;
|
|
7
7
|
fromFrame: number;
|
|
8
8
|
toFrame: number;
|
|
9
|
-
schema:
|
|
9
|
+
schema: InteractivitySchema;
|
|
10
10
|
};
|
|
11
11
|
export type MoveEffectKeyframeChange = MoveSequenceKeyframeChange & {
|
|
12
12
|
effectIndex: number;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { type KeyframeSettings } from '@remotion/studio-shared';
|
|
2
|
-
import type { SequencePropsSubscriptionKey,
|
|
2
|
+
import type { SequencePropsSubscriptionKey, InteractivitySchema } from 'remotion';
|
|
3
3
|
import type { SetPropStatuses } from './save-sequence-prop';
|
|
4
4
|
export declare const callUpdateSequenceKeyframeSettings: ({ fileName, nodePath, fieldKey, settings, schema, setPropStatuses, clientId, }: {
|
|
5
5
|
fileName: string;
|
|
6
6
|
nodePath: SequencePropsSubscriptionKey;
|
|
7
7
|
fieldKey: string;
|
|
8
8
|
settings: KeyframeSettings;
|
|
9
|
-
schema:
|
|
9
|
+
schema: InteractivitySchema;
|
|
10
10
|
setPropStatuses: SetPropStatuses;
|
|
11
11
|
clientId: string;
|
|
12
12
|
}) => Promise<void>;
|
|
@@ -16,7 +16,7 @@ export declare const callUpdateEffectKeyframeSettings: ({ fileName, nodePath, ef
|
|
|
16
16
|
effectIndex: number;
|
|
17
17
|
fieldKey: string;
|
|
18
18
|
settings: KeyframeSettings;
|
|
19
|
-
schema:
|
|
19
|
+
schema: InteractivitySchema;
|
|
20
20
|
setPropStatuses: SetPropStatuses;
|
|
21
21
|
clientId: string;
|
|
22
22
|
}) => Promise<void>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { OverrideIdToNodePaths, TSequence } from 'remotion';
|
|
2
2
|
import type { ConfirmationDialogFunction } from '../ConfirmationDialog-types';
|
|
3
3
|
import type { SetPropStatuses } from './save-sequence-prop';
|
|
4
|
-
import type
|
|
4
|
+
import { type TimelineSelection } from './TimelineSelection';
|
|
5
5
|
export declare const deleteSelectedTimelineItem: ({ selection, sequences, overrideIdsToNodePaths, setPropStatuses, clientId, confirm, }: {
|
|
6
6
|
selection: TimelineSelection;
|
|
7
7
|
sequences: TSequence[];
|
|
@@ -10,6 +10,7 @@ export declare const deleteSelectedTimelineItem: ({ selection, sequences, overri
|
|
|
10
10
|
clientId: string;
|
|
11
11
|
confirm: ConfirmationDialogFunction;
|
|
12
12
|
}) => Promise<boolean> | null;
|
|
13
|
+
export declare const getTimelineSelectionAfterDeletingItems: (selections: readonly TimelineSelection[]) => readonly TimelineSelection[];
|
|
13
14
|
export declare const deleteSelectedTimelineItems: ({ selections, sequences, overrideIdsToNodePaths, setPropStatuses, clientId, confirm, }: {
|
|
14
15
|
selections: readonly TimelineSelection[];
|
|
15
16
|
sequences: TSequence[];
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.deleteSelectedTimelineItems = exports.deleteSelectedTimelineItem = void 0;
|
|
3
|
+
exports.deleteSelectedTimelineItems = exports.getTimelineSelectionAfterDeletingItems = exports.deleteSelectedTimelineItem = void 0;
|
|
4
4
|
const call_api_1 = require("../call-api");
|
|
5
5
|
const NotificationCenter_1 = require("../Notifications/NotificationCenter");
|
|
6
6
|
const delete_selected_keyframe_1 = require("./delete-selected-keyframe");
|
|
7
|
+
const TimelineSelection_1 = require("./TimelineSelection");
|
|
7
8
|
const confirmDeletingDuplicatedSequences = (nodePathInfos, confirm) => {
|
|
8
9
|
const duplicatedNodePathInfos = nodePathInfos.filter((nodePathInfo) => nodePathInfo.numberOfSequencesWithThisNodePath > 1);
|
|
9
10
|
if (duplicatedNodePathInfos.length === 0) {
|
|
@@ -136,6 +137,31 @@ const isSequenceRowSelection = (selection) => selection.type === 'sequence';
|
|
|
136
137
|
const isSequenceEffectSelection = (selection) => selection.type === 'sequence-effect';
|
|
137
138
|
const isSequenceAllEffectsSelection = (selection) => selection.type === 'sequence-all-effects';
|
|
138
139
|
const isKeyframeSelection = (selection) => selection.type === 'keyframe';
|
|
140
|
+
const getSequenceSelectionAfterDeletingEffect = (selection) => {
|
|
141
|
+
if (selection.type !== 'sequence-effect' &&
|
|
142
|
+
selection.type !== 'sequence-all-effects') {
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
return {
|
|
146
|
+
type: 'sequence',
|
|
147
|
+
nodePathInfo: {
|
|
148
|
+
...selection.nodePathInfo,
|
|
149
|
+
auxiliaryKeys: [],
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
const getTimelineSelectionAfterDeletingItems = (selections) => {
|
|
154
|
+
const nextSelections = new Map();
|
|
155
|
+
for (const selection of selections) {
|
|
156
|
+
const nextSelection = getSequenceSelectionAfterDeletingEffect(selection);
|
|
157
|
+
if (!nextSelection) {
|
|
158
|
+
return [];
|
|
159
|
+
}
|
|
160
|
+
nextSelections.set((0, TimelineSelection_1.getTimelineSelectionKey)(nextSelection), nextSelection);
|
|
161
|
+
}
|
|
162
|
+
return Array.from(nextSelections.values());
|
|
163
|
+
};
|
|
164
|
+
exports.getTimelineSelectionAfterDeletingItems = getTimelineSelectionAfterDeletingItems;
|
|
139
165
|
const areSelectionsOnlyOfType = (selections, type) => selections.every((selection) => selection.type === type);
|
|
140
166
|
const assertTimelineSelectionsHaveSameType = (selections) => {
|
|
141
167
|
const firstSelection = selections[0];
|
|
@@ -6,8 +6,8 @@ const calculate_timeline_1 = require("../../helpers/calculate-timeline");
|
|
|
6
6
|
const findTrackForNodePathInfo = ({ sequences, overrideIdsToNodePaths, nodePathInfo, }) => {
|
|
7
7
|
const tracks = (0, calculate_timeline_1.calculateTimeline)({ sequences, overrideIdsToNodePaths });
|
|
8
8
|
return tracks.find((candidate) => candidate.nodePathInfo !== null &&
|
|
9
|
-
(0, studio_shared_1.
|
|
10
|
-
(0, studio_shared_1.
|
|
9
|
+
(0, studio_shared_1.stringifySequenceExpandedRowKey)(candidate.nodePathInfo.sequenceSubscriptionKey) ===
|
|
10
|
+
(0, studio_shared_1.stringifySequenceExpandedRowKey)(nodePathInfo.sequenceSubscriptionKey) &&
|
|
11
11
|
candidate.nodePathInfo.index === nodePathInfo.index);
|
|
12
12
|
};
|
|
13
13
|
exports.findTrackForNodePathInfo = findTrackForNodePathInfo;
|
|
@@ -12,3 +12,10 @@ export declare const getNodeKeyframes: ({ node, nodePath, propStatuses, keyframe
|
|
|
12
12
|
frame: number;
|
|
13
13
|
value: unknown;
|
|
14
14
|
}[];
|
|
15
|
+
export declare const getNodeHasKeyframes: ({ node, nodePath, propStatuses, getDragOverrides, getEffectDragOverrides, }: {
|
|
16
|
+
node: TimelineTreeNode;
|
|
17
|
+
nodePath: SequencePropsSubscriptionKey;
|
|
18
|
+
propStatuses: PropStatuses;
|
|
19
|
+
getDragOverrides: GetDragOverrides;
|
|
20
|
+
getEffectDragOverrides: GetEffectDragOverrides;
|
|
21
|
+
}) => boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getNodeKeyframes = void 0;
|
|
3
|
+
exports.getNodeHasKeyframes = exports.getNodeKeyframes = void 0;
|
|
4
4
|
const remotion_1 = require("remotion");
|
|
5
5
|
const get_timeline_keyframes_1 = require("./get-timeline-keyframes");
|
|
6
6
|
const hasOverride = (overrides, key) => Object.prototype.hasOwnProperty.call(overrides, key);
|
|
@@ -54,3 +54,28 @@ const getNodeKeyframes = ({ node, nodePath, propStatuses, keyframeDisplayOffset,
|
|
|
54
54
|
});
|
|
55
55
|
};
|
|
56
56
|
exports.getNodeKeyframes = getNodeKeyframes;
|
|
57
|
+
const getNodeHasKeyframes = ({ node, nodePath, propStatuses, getDragOverrides, getEffectDragOverrides, }) => {
|
|
58
|
+
var _a, _b, _c, _d, _e, _f;
|
|
59
|
+
if (node.kind !== 'field' || node.field === null) {
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
if (node.field.kind === 'sequence-field') {
|
|
63
|
+
const dragOverrides = getDragOverrides(nodePath);
|
|
64
|
+
if (((_a = dragOverrides[node.field.key]) === null || _a === void 0 ? void 0 : _a.type) === 'keyframed') {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
return (((_c = (_b = remotion_1.Internals.getPropStatusesCtx(propStatuses, nodePath)) === null || _b === void 0 ? void 0 : _b[node.field.key]) === null || _c === void 0 ? void 0 : _c.status) === 'keyframed');
|
|
68
|
+
}
|
|
69
|
+
const effectDragOverrides = getEffectDragOverrides(nodePath, node.field.effectIndex);
|
|
70
|
+
if (((_d = effectDragOverrides[node.field.key]) === null || _d === void 0 ? void 0 : _d.type) === 'keyframed') {
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
73
|
+
const effectStatus = remotion_1.Internals.getEffectPropStatusesCtx({
|
|
74
|
+
propStatuses,
|
|
75
|
+
nodePath,
|
|
76
|
+
effectIndex: node.field.effectIndex,
|
|
77
|
+
});
|
|
78
|
+
return (effectStatus.type === 'can-update-effect' &&
|
|
79
|
+
((_f = (_e = effectStatus.props) === null || _e === void 0 ? void 0 : _e[node.field.key]) === null || _f === void 0 ? void 0 : _f.status) === 'keyframed');
|
|
80
|
+
};
|
|
81
|
+
exports.getNodeHasKeyframes = getNodeHasKeyframes;
|
|
@@ -6,7 +6,7 @@ const parseKeyframeFieldFromNodePath = (auxiliaryKeys) => {
|
|
|
6
6
|
if (auxiliaryKeys[0] === 'controls' && auxiliaryKeys.length >= 2) {
|
|
7
7
|
return {
|
|
8
8
|
type: 'sequence',
|
|
9
|
-
fieldKey: auxiliaryKeys
|
|
9
|
+
fieldKey: auxiliaryKeys.slice(1).join('.'),
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
// Effect field: ['effects', effectIndex, fieldKey]
|
|
@@ -18,7 +18,7 @@ const parseKeyframeFieldFromNodePath = (auxiliaryKeys) => {
|
|
|
18
18
|
return {
|
|
19
19
|
type: 'effect',
|
|
20
20
|
effectIndex,
|
|
21
|
-
fieldKey: auxiliaryKeys
|
|
21
|
+
fieldKey: auxiliaryKeys.slice(2).join('.'),
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
return null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OverrideIdToNodePaths, PropStatuses, SequencePropsSubscriptionKey,
|
|
1
|
+
import type { OverrideIdToNodePaths, PropStatuses, SequencePropsSubscriptionKey, InteractivitySchema, TSequence } from 'remotion';
|
|
2
2
|
import type { SetPropStatuses } from './save-sequence-prop';
|
|
3
3
|
import type { TimelineSelection } from './TimelineSelection';
|
|
4
4
|
type SequencePropResetTarget = {
|
|
@@ -8,7 +8,7 @@ type SequencePropResetTarget = {
|
|
|
8
8
|
readonly fieldKey: string;
|
|
9
9
|
readonly value: unknown;
|
|
10
10
|
readonly defaultValue: string | null;
|
|
11
|
-
readonly schema:
|
|
11
|
+
readonly schema: InteractivitySchema;
|
|
12
12
|
};
|
|
13
13
|
type EffectPropResetTarget = {
|
|
14
14
|
readonly type: 'effect-prop';
|
|
@@ -18,7 +18,7 @@ type EffectPropResetTarget = {
|
|
|
18
18
|
readonly fieldKey: string;
|
|
19
19
|
readonly value: unknown;
|
|
20
20
|
readonly defaultValue: string | null;
|
|
21
|
-
readonly schema:
|
|
21
|
+
readonly schema: InteractivitySchema;
|
|
22
22
|
};
|
|
23
23
|
type TimelinePropResetTarget = SequencePropResetTarget | EffectPropResetTarget;
|
|
24
24
|
export declare const getTimelinePropResetTargets: ({ selections, sequences, overrideIdsToNodePaths, propStatuses, }: {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.resetSelectedTimelineProps = exports.getTimelinePropResetTargets = void 0;
|
|
4
|
+
const studio_shared_1 = require("@remotion/studio-shared");
|
|
4
5
|
const remotion_1 = require("remotion");
|
|
5
6
|
const find_track_for_node_path_info_1 = require("./find-track-for-node-path-info");
|
|
6
7
|
const save_effect_prop_1 = require("./save-effect-prop");
|
|
@@ -23,9 +24,12 @@ const isResettablePropStatus = ({ propStatus, defaultValue, }) => {
|
|
|
23
24
|
if (defaultValue === undefined) {
|
|
24
25
|
return false;
|
|
25
26
|
}
|
|
26
|
-
if (propStatus.status === 'keyframed'
|
|
27
|
+
if (propStatus.status === 'keyframed') {
|
|
27
28
|
return true;
|
|
28
29
|
}
|
|
30
|
+
if (propStatus.status === 'computed') {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
29
33
|
return isNonDefaultCodeValue({
|
|
30
34
|
propStatus: propStatus.codeValue,
|
|
31
35
|
defaultValue,
|
|
@@ -34,9 +38,11 @@ const isResettablePropStatus = ({ propStatus, defaultValue, }) => {
|
|
|
34
38
|
const getDefaultValue = (fieldSchema) => fieldSchema.default !== undefined
|
|
35
39
|
? JSON.stringify(fieldSchema.default)
|
|
36
40
|
: null;
|
|
41
|
+
const getActiveFieldSchema = ({ schema, key, resolveValue, }) => {
|
|
42
|
+
return remotion_1.Internals.flattenActiveSchema(schema, resolveValue)[key];
|
|
43
|
+
};
|
|
37
44
|
const getTimelinePropResetTargets = ({ selections, sequences, overrideIdsToNodePaths, propStatuses, }) => {
|
|
38
45
|
var _a;
|
|
39
|
-
var _b;
|
|
40
46
|
const propSelections = selections.filter(isPropResetSelection);
|
|
41
47
|
if (propSelections.length === 0) {
|
|
42
48
|
return null;
|
|
@@ -52,7 +58,7 @@ const getTimelinePropResetTargets = ({ selections, sequences, overrideIdsToNodeP
|
|
|
52
58
|
overrideIdsToNodePaths,
|
|
53
59
|
nodePathInfo: selection.nodePathInfo,
|
|
54
60
|
});
|
|
55
|
-
const sequence = (
|
|
61
|
+
const sequence = (_a = track === null || track === void 0 ? void 0 : track.sequence) !== null && _a !== void 0 ? _a : null;
|
|
56
62
|
if (!sequence) {
|
|
57
63
|
continue;
|
|
58
64
|
}
|
|
@@ -61,11 +67,23 @@ const getTimelinePropResetTargets = ({ selections, sequences, overrideIdsToNodeP
|
|
|
61
67
|
if (!sequence.controls) {
|
|
62
68
|
continue;
|
|
63
69
|
}
|
|
64
|
-
const
|
|
65
|
-
const
|
|
70
|
+
const sequencePropStatus = remotion_1.Internals.getPropStatusesCtx(propStatuses, nodePath);
|
|
71
|
+
const { merged: sequenceValuesDotNotation } = remotion_1.Internals.computeEffectiveSchemaValuesDotNotation({
|
|
72
|
+
schema: sequence.controls.schema,
|
|
73
|
+
currentValue: sequence.controls.currentRuntimeValueDotNotation,
|
|
74
|
+
overrideValues: {},
|
|
75
|
+
propStatus: sequencePropStatus,
|
|
76
|
+
frame: null,
|
|
77
|
+
});
|
|
78
|
+
const sequenceFieldSchema = getActiveFieldSchema({
|
|
79
|
+
schema: sequence.controls.schema,
|
|
80
|
+
key: selection.key,
|
|
81
|
+
resolveValue: (key) => sequenceValuesDotNotation[key],
|
|
82
|
+
});
|
|
83
|
+
const selectedPropStatus = sequencePropStatus === null || sequencePropStatus === void 0 ? void 0 : sequencePropStatus[selection.key];
|
|
66
84
|
if (!isVisibleFieldSchema(sequenceFieldSchema) ||
|
|
67
85
|
!isResettablePropStatus({
|
|
68
|
-
propStatus:
|
|
86
|
+
propStatus: selectedPropStatus,
|
|
69
87
|
defaultValue: sequenceFieldSchema.default,
|
|
70
88
|
})) {
|
|
71
89
|
continue;
|
|
@@ -82,7 +100,16 @@ const getTimelinePropResetTargets = ({ selections, sequences, overrideIdsToNodeP
|
|
|
82
100
|
continue;
|
|
83
101
|
}
|
|
84
102
|
const effect = sequence.effects[selection.i];
|
|
85
|
-
const
|
|
103
|
+
const field = effect
|
|
104
|
+
? (0, studio_shared_1.getEffectFieldsToShow)({
|
|
105
|
+
effect,
|
|
106
|
+
effectIndex: selection.i,
|
|
107
|
+
nodePath,
|
|
108
|
+
propStatuses,
|
|
109
|
+
getEffectDragOverrides: () => ({}),
|
|
110
|
+
}).find((candidate) => candidate.key === selection.key)
|
|
111
|
+
: null;
|
|
112
|
+
const fieldSchema = field === null || field === void 0 ? void 0 : field.fieldSchema;
|
|
86
113
|
const effectStatus = remotion_1.Internals.getEffectPropStatusesCtx({
|
|
87
114
|
propStatuses,
|
|
88
115
|
nodePath,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type EffectClipboardParam } from '@remotion/studio-shared';
|
|
2
|
-
import type { SequencePropsSubscriptionKey,
|
|
2
|
+
import type { SequencePropsSubscriptionKey, InteractivitySchema } from 'remotion';
|
|
3
3
|
import type { SetPropStatuses } from './save-sequence-prop';
|
|
4
4
|
type SaveEffectPropBase = {
|
|
5
5
|
fileName: string;
|
|
@@ -7,7 +7,7 @@ type SaveEffectPropBase = {
|
|
|
7
7
|
effectIndex: number;
|
|
8
8
|
fieldKey: string;
|
|
9
9
|
defaultValue: string | null;
|
|
10
|
-
schema:
|
|
10
|
+
schema: InteractivitySchema;
|
|
11
11
|
setPropStatuses: SetPropStatuses;
|
|
12
12
|
clientId: string;
|
|
13
13
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CanUpdateSequencePropsResponse, SequencePropsSubscriptionKey,
|
|
1
|
+
import type { CanUpdateSequencePropsResponse, SequencePropsSubscriptionKey, InteractivitySchema } from 'remotion';
|
|
2
2
|
export type SetPropStatuses = (nodePath: SequencePropsSubscriptionKey, values: (prev: CanUpdateSequencePropsResponse) => CanUpdateSequencePropsResponse) => void;
|
|
3
3
|
export type SaveSequencePropChange = {
|
|
4
4
|
fileName: string;
|
|
@@ -6,7 +6,7 @@ export type SaveSequencePropChange = {
|
|
|
6
6
|
fieldKey: string;
|
|
7
7
|
value: unknown;
|
|
8
8
|
defaultValue: string | null;
|
|
9
|
-
schema:
|
|
9
|
+
schema: InteractivitySchema;
|
|
10
10
|
};
|
|
11
11
|
type SaveSequencePropsOptions = {
|
|
12
12
|
changes: SaveSequencePropChange[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SequenceNodePath,
|
|
1
|
+
import type { SequenceNodePath, InteractivitySchema } from 'remotion';
|
|
2
2
|
import { callApi } from '../call-api';
|
|
3
3
|
type SubscribeResult = Awaited<ReturnType<typeof callApi<'/api/subscribe-to-sequence-props'>>>;
|
|
4
4
|
type ApplyResult = (result: SubscribeResult) => void;
|
|
@@ -6,9 +6,9 @@ export declare const acquireSequencePropsSubscription: ({ fileName, line, column
|
|
|
6
6
|
fileName: string;
|
|
7
7
|
line: number;
|
|
8
8
|
column: number;
|
|
9
|
-
schema:
|
|
9
|
+
schema: InteractivitySchema;
|
|
10
10
|
componentIdentity: string | null;
|
|
11
|
-
effects:
|
|
11
|
+
effects: InteractivitySchema[];
|
|
12
12
|
nodePath: SequenceNodePath | null;
|
|
13
13
|
clientId: string;
|
|
14
14
|
applyOnce: ApplyResult;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
2
|
+
import type { TimelineTreeNode } from '../../helpers/timeline-layout';
|
|
3
|
+
import type { TimelineSelection } from './TimelineSelection';
|
|
4
|
+
export declare const filterTimelineExpandedTree: ({ nodes, shouldShowNode, }: {
|
|
5
|
+
readonly nodes: readonly TimelineTreeNode[];
|
|
6
|
+
readonly shouldShowNode: (node: TimelineTreeNode) => boolean;
|
|
7
|
+
}) => TimelineTreeNode[];
|
|
8
|
+
export declare const getSelectedTimelineExpandedRowKeys: (selectedItems: readonly TimelineSelection[]) => ReadonlySet<string>;
|
|
9
|
+
export declare const isTimelineExpandedNodeSelected: ({ nodePathInfo, selectedRowKeys, }: {
|
|
10
|
+
readonly nodePathInfo: SequenceNodePathInfo;
|
|
11
|
+
readonly selectedRowKeys: ReadonlySet<string>;
|
|
12
|
+
}) => boolean;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTimelineExpandedNodeSelected = exports.getSelectedTimelineExpandedRowKeys = exports.filterTimelineExpandedTree = void 0;
|
|
4
|
+
const timeline_node_path_key_1 = require("../../helpers/timeline-node-path-key");
|
|
5
|
+
const filterTimelineExpandedTree = ({ nodes, shouldShowNode, }) => {
|
|
6
|
+
const out = [];
|
|
7
|
+
for (const node of nodes) {
|
|
8
|
+
if (node.kind === 'field') {
|
|
9
|
+
if (shouldShowNode(node)) {
|
|
10
|
+
out.push(node);
|
|
11
|
+
}
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const children = (0, exports.filterTimelineExpandedTree)({
|
|
15
|
+
nodes: node.children,
|
|
16
|
+
shouldShowNode,
|
|
17
|
+
});
|
|
18
|
+
if (children.length > 0 || shouldShowNode(node)) {
|
|
19
|
+
out.push({
|
|
20
|
+
...node,
|
|
21
|
+
children,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return out;
|
|
26
|
+
};
|
|
27
|
+
exports.filterTimelineExpandedTree = filterTimelineExpandedTree;
|
|
28
|
+
const getSelectedTimelineExpandedRowKeys = (selectedItems) => {
|
|
29
|
+
return new Set(selectedItems.flatMap((item) => {
|
|
30
|
+
if (item.type === 'guide') {
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
return [(0, timeline_node_path_key_1.timelineNodePathInfoToKey)(item.nodePathInfo)];
|
|
34
|
+
}));
|
|
35
|
+
};
|
|
36
|
+
exports.getSelectedTimelineExpandedRowKeys = getSelectedTimelineExpandedRowKeys;
|
|
37
|
+
const isTimelineExpandedNodeSelected = ({ nodePathInfo, selectedRowKeys, }) => selectedRowKeys.has((0, timeline_node_path_key_1.timelineNodePathInfoToKey)(nodePathInfo));
|
|
38
|
+
exports.isTimelineExpandedNodeSelected = isTimelineExpandedNodeSelected;
|