@remotion/studio 4.0.471 → 4.0.472
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 +10 -1
- package/dist/components/Canvas.js +98 -0
- package/dist/components/CompositionSelectorItem.d.ts +1 -0
- package/dist/components/CompositionSelectorItem.js +12 -4
- package/dist/components/ContextMenu.js +54 -46
- package/dist/components/Editor.js +14 -6
- package/dist/components/Modals.js +3 -1
- package/dist/components/NewComposition/CodemodFooter.js +2 -2
- package/dist/components/NewComposition/DeleteFolder.d.ts +6 -0
- package/dist/components/NewComposition/DeleteFolder.js +39 -0
- package/dist/components/NewComposition/RenameFolder.d.ts +6 -0
- package/dist/components/NewComposition/RenameFolder.js +60 -0
- package/dist/components/SelectedOutlineOverlay.d.ts +81 -4
- package/dist/components/SelectedOutlineOverlay.js +405 -54
- package/dist/components/Splitter/SplitterContainer.js +9 -0
- package/dist/components/Splitter/SplitterHandle.js +63 -70
- package/dist/components/Timeline/Timeline.js +47 -2
- package/dist/components/Timeline/TimelineArrayField.d.ts +9 -0
- package/dist/components/Timeline/TimelineArrayField.js +210 -0
- package/dist/components/Timeline/TimelineBooleanField.d.ts +2 -2
- package/dist/components/Timeline/TimelineBooleanField.js +2 -2
- package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +20 -0
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +265 -0
- package/dist/components/Timeline/TimelineColorField.d.ts +2 -2
- package/dist/components/Timeline/TimelineColorField.js +2 -8
- package/dist/components/Timeline/TimelineEffectItem.js +2 -2
- package/dist/components/Timeline/TimelineEffectPropItem.js +95 -25
- package/dist/components/Timeline/TimelineEnumField.d.ts +2 -2
- package/dist/components/Timeline/TimelineEnumField.js +3 -3
- package/dist/components/Timeline/TimelineKeyframeControls.d.ts +4 -3
- package/dist/components/Timeline/TimelineKeyframeControls.js +37 -23
- package/dist/components/Timeline/TimelineKeyframedValue.d.ts +7 -2
- package/dist/components/Timeline/TimelineKeyframedValue.js +22 -8
- package/dist/components/Timeline/TimelineLayerEye.d.ts +1 -0
- package/dist/components/Timeline/TimelineLayerEye.js +8 -3
- package/dist/components/Timeline/TimelineNumberField.d.ts +2 -2
- package/dist/components/Timeline/TimelineNumberField.js +7 -11
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.d.ts +17 -0
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +53 -0
- package/dist/components/Timeline/TimelineRotationField.d.ts +2 -2
- package/dist/components/Timeline/TimelineRotationField.js +41 -24
- package/dist/components/Timeline/TimelineRowChrome.js +8 -7
- package/dist/components/Timeline/TimelineScaleField.d.ts +20 -0
- package/dist/components/Timeline/TimelineScaleField.js +314 -0
- package/dist/components/Timeline/TimelineSchemaField.d.ts +3 -2
- package/dist/components/Timeline/TimelineSchemaField.js +8 -42
- package/dist/components/Timeline/TimelineSelection.js +3 -2
- package/dist/components/Timeline/TimelineSequence.d.ts +1 -0
- package/dist/components/Timeline/TimelineSequence.js +51 -10
- package/dist/components/Timeline/TimelineSequenceFrame.js +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +7 -7
- package/dist/components/Timeline/TimelineSequencePropItem.js +82 -21
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +58 -0
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +528 -0
- package/dist/components/Timeline/TimelineTrack.js +1 -1
- package/dist/components/Timeline/TimelineTranslateField.d.ts +2 -2
- package/dist/components/Timeline/TimelineTranslateField.js +21 -25
- package/dist/components/Timeline/TimelineUvCoordinateField.d.ts +2 -2
- package/dist/components/Timeline/TimelineUvCoordinateField.js +20 -26
- package/dist/components/Timeline/call-add-keyframe.js +2 -0
- package/dist/components/Timeline/get-node-keyframes.d.ts +5 -2
- package/dist/components/Timeline/get-node-keyframes.js +38 -5
- package/dist/components/Timeline/get-timeline-keyframes.js +4 -4
- package/dist/components/Timeline/reset-selected-timeline-props.js +19 -6
- package/dist/components/Timeline/timeline-field-utils.d.ts +1 -0
- package/dist/components/Timeline/timeline-field-utils.js +5 -1
- package/dist/components/Timeline/timeline-translate-utils.js +6 -2
- package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +7 -0
- package/dist/components/TopPanel.d.ts +1 -1
- package/dist/components/folder-menu-items.d.ts +12 -0
- package/dist/components/folder-menu-items.js +147 -0
- package/dist/components/import-assets.d.ts +6 -0
- package/dist/components/import-assets.js +157 -0
- package/dist/esm/{chunk-z0z9d4r0.js → chunk-48grt472.js} +8936 -5886
- package/dist/esm/internals.mjs +8936 -5886
- package/dist/esm/previewEntry.mjs +8748 -5698
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/calculate-timeline.js +7 -3
- package/dist/helpers/create-folder-tree.js +1 -0
- package/dist/helpers/detect-file-type.d.ts +69 -0
- package/dist/helpers/detect-file-type.js +278 -0
- package/dist/helpers/get-folder-id.d.ts +4 -0
- package/dist/helpers/get-folder-id.js +7 -0
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +2 -0
- package/dist/helpers/timeline-layout.js +5 -1
- package/dist/helpers/validate-folder-rename.d.ts +6 -0
- package/dist/helpers/validate-folder-rename.js +19 -0
- package/dist/state/modals.d.ts +10 -0
- package/dist/state/scale-lock.d.ts +18 -0
- package/dist/state/scale-lock.js +59 -0
- package/package.json +10 -10
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.TimelineSequencePropItem = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const studio_shared_1 = require("@remotion/studio-shared");
|
|
5
6
|
const react_1 = require("react");
|
|
6
7
|
const remotion_1 = require("remotion");
|
|
7
8
|
const client_id_1 = require("../../helpers/client-id");
|
|
8
9
|
const ContextMenu_1 = require("../ContextMenu");
|
|
10
|
+
const call_add_keyframe_1 = require("./call-add-keyframe");
|
|
9
11
|
const save_sequence_prop_1 = require("./save-sequence-prop");
|
|
10
12
|
const timeline_field_row_layout_1 = require("./timeline-field-row-layout");
|
|
11
13
|
const TimelineExpandArrowButton_1 = require("./TimelineExpandArrowButton");
|
|
@@ -17,6 +19,23 @@ const TimelineRowChrome_1 = require("./TimelineRowChrome");
|
|
|
17
19
|
const TimelineSchemaField_1 = require("./TimelineSchemaField");
|
|
18
20
|
const TimelineSelection_1 = require("./TimelineSelection");
|
|
19
21
|
const fieldRowBase = {};
|
|
22
|
+
const isKeyframedStatus = (status) => {
|
|
23
|
+
return status.status === 'keyframed';
|
|
24
|
+
};
|
|
25
|
+
const isResettableStatus = ({ status, defaultValue, }) => {
|
|
26
|
+
var _a;
|
|
27
|
+
if (defaultValue === undefined) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
if (status.status === 'keyframed') {
|
|
31
|
+
return true;
|
|
32
|
+
}
|
|
33
|
+
if (status.status === 'computed') {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
const effectiveCodeValue = (_a = status.codeValue) !== null && _a !== void 0 ? _a : defaultValue;
|
|
37
|
+
return JSON.stringify(effectiveCodeValue) !== JSON.stringify(defaultValue);
|
|
38
|
+
};
|
|
20
39
|
const Value = ({ field, nodePath, validatedLocation, schema, codeValue }) => {
|
|
21
40
|
const { getDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeDragOverridesContext);
|
|
22
41
|
const { setDragOverrides, clearDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
|
|
@@ -38,9 +57,6 @@ const Value = ({ field, nodePath, validatedLocation, schema, codeValue }) => {
|
|
|
38
57
|
? previewServerState.clientId
|
|
39
58
|
: null;
|
|
40
59
|
const onSave = (0, react_1.useCallback)((value) => {
|
|
41
|
-
if (!codeValue || !codeValue.canUpdate) {
|
|
42
|
-
return Promise.reject(new Error('Cannot save'));
|
|
43
|
-
}
|
|
44
60
|
if (!clientId) {
|
|
45
61
|
return Promise.reject(new Error('Not connected to studio server'));
|
|
46
62
|
}
|
|
@@ -79,7 +95,7 @@ const Value = ({ field, nodePath, validatedLocation, schema, codeValue }) => {
|
|
|
79
95
|
if (nodePath === null) {
|
|
80
96
|
throw new Error('Cannot drag value');
|
|
81
97
|
}
|
|
82
|
-
setDragOverrides(nodePath, field.key, value);
|
|
98
|
+
setDragOverrides(nodePath, field.key, remotion_1.Internals.makeStaticDragOverride(value));
|
|
83
99
|
}, [setDragOverrides, nodePath, field.key]);
|
|
84
100
|
const onDragEnd = (0, react_1.useCallback)(() => {
|
|
85
101
|
if (nodePath === null) {
|
|
@@ -87,17 +103,22 @@ const Value = ({ field, nodePath, validatedLocation, schema, codeValue }) => {
|
|
|
87
103
|
}
|
|
88
104
|
clearDragOverrides(nodePath);
|
|
89
105
|
}, [clearDragOverrides, nodePath]);
|
|
90
|
-
return (jsx_runtime_1.jsx(TimelineSchemaField_1.TimelineFieldValue, { field: field, propStatus: codeValue, onSave: onSave, onDragValueChange: onDragValueChange, onDragEnd: onDragEnd, effectiveValue: effectiveValue }));
|
|
106
|
+
return (jsx_runtime_1.jsx(TimelineSchemaField_1.TimelineFieldValue, { field: field, propStatus: codeValue, onSave: onSave, onDragValueChange: onDragValueChange, onDragEnd: onDragEnd, effectiveValue: effectiveValue, scaleLockNodePath: nodePath }));
|
|
91
107
|
};
|
|
92
108
|
const TimelineSequencePropItem = ({ field, validatedLocation, rowDepth, nodePath, nodePathInfo, schema, keyframeDisplayOffset, }) => {
|
|
93
109
|
var _a, _b;
|
|
94
110
|
const { codeValues: visualModeCodeValues } = (0, react_1.useContext)(remotion_1.Internals.VisualModeCodeValuesContext);
|
|
95
111
|
const { getDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeDragOverridesContext);
|
|
96
|
-
const { setCodeValues } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
|
|
112
|
+
const { setCodeValues, setDragOverrides, clearDragOverrides } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
|
|
97
113
|
const { previewServerState } = (0, react_1.useContext)(client_id_1.StudioServerConnectionCtx);
|
|
98
114
|
const selection = (0, TimelineSelection_1.useTimelineRowSelection)(nodePathInfo);
|
|
115
|
+
const clientId = previewServerState.type === 'connected'
|
|
116
|
+
? previewServerState.clientId
|
|
117
|
+
: null;
|
|
99
118
|
const codeValuesForOverride = remotion_1.Internals.getCodeValuesCtx(visualModeCodeValues, nodePath);
|
|
100
119
|
const codeValue = (_a = codeValuesForOverride === null || codeValuesForOverride === void 0 ? void 0 : codeValuesForOverride[field.key]) !== null && _a !== void 0 ? _a : null;
|
|
120
|
+
const timelinePosition = remotion_1.Internals.Timeline.useTimelinePosition();
|
|
121
|
+
const jsxFrame = timelinePosition - keyframeDisplayOffset;
|
|
101
122
|
const dragOverrideValue = (0, react_1.useMemo)(() => {
|
|
102
123
|
var _a;
|
|
103
124
|
return ((_a = getDragOverrides(nodePath)) !== null && _a !== void 0 ? _a : {})[field.key];
|
|
@@ -106,6 +127,10 @@ const TimelineSequencePropItem = ({ field, validatedLocation, rowDepth, nodePath
|
|
|
106
127
|
(0, TimelineKeyframeControls_1.shouldShowTimelineKeyframeControls)({
|
|
107
128
|
propStatus: codeValue,
|
|
108
129
|
selected: selection.selected,
|
|
130
|
+
keyframable: (0, studio_shared_1.isSchemaFieldKeyframable)({
|
|
131
|
+
schema,
|
|
132
|
+
key: field.key,
|
|
133
|
+
}),
|
|
109
134
|
}) ? (jsx_runtime_1.jsx(TimelineKeyframeControls_1.TimelineKeyframeControls, { fieldKey: field.key, propStatus: codeValue, nodePath: nodePath, fileName: validatedLocation.source, keyframeDisplayOffset: keyframeDisplayOffset, defaultValue: field.fieldSchema.default, dragOverrideValue: dragOverrideValue, schema: schema, effectIndex: null })) : null;
|
|
110
135
|
const style = (0, react_1.useMemo)(() => {
|
|
111
136
|
return {
|
|
@@ -113,23 +138,24 @@ const TimelineSequencePropItem = ({ field, validatedLocation, rowDepth, nodePath
|
|
|
113
138
|
height: field.rowHeight,
|
|
114
139
|
};
|
|
115
140
|
}, [field.rowHeight]);
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
if (!codeValue || !codeValue.canUpdate) {
|
|
141
|
+
const canResetToDefault = (0, react_1.useMemo)(() => {
|
|
142
|
+
if (!codeValue || codeValue.status === 'computed') {
|
|
119
143
|
return false;
|
|
120
144
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
145
|
+
return isResettableStatus({
|
|
146
|
+
status: codeValue,
|
|
147
|
+
defaultValue: field.fieldSchema.default,
|
|
148
|
+
});
|
|
124
149
|
}, [codeValue, field.fieldSchema.default]);
|
|
125
150
|
const canPerformReset = previewServerState.type === 'connected' &&
|
|
126
151
|
codeValue !== null &&
|
|
127
|
-
codeValue.
|
|
152
|
+
codeValue.status !== 'computed';
|
|
153
|
+
const canShowReset = canPerformReset && field.fieldSchema.default !== undefined;
|
|
128
154
|
const onReset = (0, react_1.useCallback)(() => {
|
|
129
|
-
if (!
|
|
155
|
+
if (!canShowReset ||
|
|
156
|
+
!canResetToDefault ||
|
|
130
157
|
previewServerState.type !== 'connected' ||
|
|
131
|
-
codeValue === null
|
|
132
|
-
!isNonDefault) {
|
|
158
|
+
codeValue === null) {
|
|
133
159
|
return;
|
|
134
160
|
}
|
|
135
161
|
const defaultValue = field.fieldSchema.default !== undefined
|
|
@@ -146,10 +172,10 @@ const TimelineSequencePropItem = ({ field, validatedLocation, rowDepth, nodePath
|
|
|
146
172
|
clientId: previewServerState.clientId,
|
|
147
173
|
});
|
|
148
174
|
}, [
|
|
149
|
-
|
|
175
|
+
canResetToDefault,
|
|
176
|
+
canShowReset,
|
|
150
177
|
field.fieldSchema.default,
|
|
151
178
|
field.key,
|
|
152
|
-
isNonDefault,
|
|
153
179
|
nodePath,
|
|
154
180
|
previewServerState,
|
|
155
181
|
schema,
|
|
@@ -157,6 +183,41 @@ const TimelineSequencePropItem = ({ field, validatedLocation, rowDepth, nodePath
|
|
|
157
183
|
validatedLocation.source,
|
|
158
184
|
codeValue,
|
|
159
185
|
]);
|
|
186
|
+
const onSaveKeyframed = (0, react_1.useCallback)((value, sourceFrame) => {
|
|
187
|
+
if (!clientId) {
|
|
188
|
+
return Promise.reject(new Error('Not connected to studio server'));
|
|
189
|
+
}
|
|
190
|
+
return (0, call_add_keyframe_1.callAddSequenceKeyframe)({
|
|
191
|
+
fileName: validatedLocation.source,
|
|
192
|
+
nodePath,
|
|
193
|
+
fieldKey: field.key,
|
|
194
|
+
sourceFrame,
|
|
195
|
+
value,
|
|
196
|
+
schema,
|
|
197
|
+
setCodeValues,
|
|
198
|
+
clientId,
|
|
199
|
+
});
|
|
200
|
+
}, [
|
|
201
|
+
clientId,
|
|
202
|
+
field.key,
|
|
203
|
+
nodePath,
|
|
204
|
+
schema,
|
|
205
|
+
setCodeValues,
|
|
206
|
+
validatedLocation.source,
|
|
207
|
+
]);
|
|
208
|
+
const onKeyframedDragValueChange = (0, react_1.useCallback)((value) => {
|
|
209
|
+
if (codeValue === null || !isKeyframedStatus(codeValue)) {
|
|
210
|
+
throw new Error('Expected keyframed status');
|
|
211
|
+
}
|
|
212
|
+
setDragOverrides(nodePath, field.key, remotion_1.Internals.makeKeyframedDragOverride({
|
|
213
|
+
status: codeValue,
|
|
214
|
+
frame: jsxFrame,
|
|
215
|
+
value,
|
|
216
|
+
}));
|
|
217
|
+
}, [codeValue, field.key, jsxFrame, nodePath, setDragOverrides]);
|
|
218
|
+
const onKeyframedDragEnd = (0, react_1.useCallback)(() => {
|
|
219
|
+
clearDragOverrides(nodePath);
|
|
220
|
+
}, [clearDragOverrides, nodePath]);
|
|
160
221
|
const contextMenuValues = (0, react_1.useMemo)(() => {
|
|
161
222
|
return [
|
|
162
223
|
{
|
|
@@ -165,19 +226,19 @@ const TimelineSequencePropItem = ({ field, validatedLocation, rowDepth, nodePath
|
|
|
165
226
|
keyHint: null,
|
|
166
227
|
label: 'Reset',
|
|
167
228
|
leftItem: null,
|
|
168
|
-
disabled: !
|
|
229
|
+
disabled: !canShowReset,
|
|
169
230
|
onClick: onReset,
|
|
170
231
|
quickSwitcherLabel: null,
|
|
171
232
|
subMenu: null,
|
|
172
233
|
value: 'reset-sequence-field',
|
|
173
234
|
},
|
|
174
235
|
];
|
|
175
|
-
}, [
|
|
236
|
+
}, [canShowReset, onReset]);
|
|
176
237
|
if (codeValue === null) {
|
|
177
238
|
return null;
|
|
178
239
|
}
|
|
179
240
|
const row = (jsx_runtime_1.jsxs(TimelineRowChrome_1.TimelineRowChrome, { depth: rowDepth, eye: jsx_runtime_1.jsx(TimelineLayerEye_1.TimelineLayerEyeSpacer, {}), keyframeControls: keyframeControls, arrow: jsx_runtime_1.jsx(TimelineExpandArrowButton_1.TimelineExpandArrowSpacer, {}), style: style, selected: selection.selected, selectable: selection.selectable, onSelect: selection.onSelect, showSelectedBackground: true, containsSelection: false, outerHeight: null, children: [
|
|
180
|
-
jsx_runtime_1.jsx(TimelineFieldLabel_1.TimelineFieldLabel, { rowDepth: rowDepth, selected: selection.selected, label: (_b = field.description) !== null && _b !== void 0 ? _b : field.key }), codeValue
|
|
241
|
+
jsx_runtime_1.jsx(TimelineFieldLabel_1.TimelineFieldLabel, { rowDepth: rowDepth, selected: selection.selected, label: (_b = field.description) !== null && _b !== void 0 ? _b : field.key }), isKeyframedStatus(codeValue) ? (jsx_runtime_1.jsx("div", { style: timeline_field_row_layout_1.timelineFieldValueColumnStyle, children: jsx_runtime_1.jsx(TimelineKeyframedValue_1.TimelineKeyframedValue, { field: field, propStatus: codeValue, keyframeDisplayOffset: keyframeDisplayOffset, dragOverrideValue: dragOverrideValue, onSave: onSaveKeyframed, onDragValueChange: onKeyframedDragValueChange, onDragEnd: onKeyframedDragEnd, scaleLockNodePath: nodePath }) })) : codeValue.status === 'static' ? (jsx_runtime_1.jsx("div", { style: timeline_field_row_layout_1.timelineFieldValueColumnStyle, children: jsx_runtime_1.jsx(Value, { field: field, nodePath: nodePath, validatedLocation: validatedLocation, schema: schema, codeValue: codeValue }) })) : (jsx_runtime_1.jsx("div", { style: timeline_field_row_layout_1.timelineFieldValueColumnStyle, children: jsx_runtime_1.jsx(TimelineSchemaField_1.TimelineNonEditableStatus, { propStatus: codeValue }) }))] }));
|
|
181
242
|
return (jsx_runtime_1.jsx(ContextMenu_1.ContextMenu, { values: contextMenuValues, onOpen: selection.selectable ? selection.onSelect : null, children: row }));
|
|
182
243
|
};
|
|
183
244
|
exports.TimelineSequencePropItem = TimelineSequencePropItem;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { CodeValues, OverrideIdToNodePaths, SequencePropsSubscriptionKey, TSequence } from 'remotion';
|
|
3
|
+
import type { SequenceNodePathInfo } from '../../helpers/get-timeline-sequence-sort-key';
|
|
4
|
+
import { type SaveSequencePropChange } from './save-sequence-prop';
|
|
5
|
+
import { type TimelineSelection } from './TimelineSelection';
|
|
6
|
+
export type TimelineSequenceDurationDragTarget = {
|
|
7
|
+
readonly fileName: string;
|
|
8
|
+
readonly initialDuration: number;
|
|
9
|
+
readonly nodePath: SequencePropsSubscriptionKey;
|
|
10
|
+
};
|
|
11
|
+
export type TimelineSequenceFromDragTarget = {
|
|
12
|
+
readonly fileName: string;
|
|
13
|
+
readonly initialFrom: number;
|
|
14
|
+
readonly nodePath: SequencePropsSubscriptionKey;
|
|
15
|
+
};
|
|
16
|
+
export declare const getTimelineSequenceDurationDragValue: ({ initialDuration, deltaFrames, }: {
|
|
17
|
+
readonly initialDuration: number;
|
|
18
|
+
readonly deltaFrames: number;
|
|
19
|
+
}) => number;
|
|
20
|
+
export declare const getTimelineSequenceDurationDragChanges: ({ targets, deltaFrames, }: {
|
|
21
|
+
readonly targets: readonly TimelineSequenceDurationDragTarget[];
|
|
22
|
+
readonly deltaFrames: number;
|
|
23
|
+
}) => SaveSequencePropChange[];
|
|
24
|
+
export declare const getTimelineSequenceFromDragValue: ({ initialFrom, deltaFrames, }: {
|
|
25
|
+
readonly initialFrom: number;
|
|
26
|
+
readonly deltaFrames: number;
|
|
27
|
+
}) => number;
|
|
28
|
+
export declare const getTimelineSequenceFromDragChanges: ({ targets, deltaFrames, }: {
|
|
29
|
+
readonly targets: readonly TimelineSequenceFromDragTarget[];
|
|
30
|
+
readonly deltaFrames: number;
|
|
31
|
+
}) => SaveSequencePropChange[];
|
|
32
|
+
export declare const getTimelineSequenceDurationDragTargets: ({ draggedNodePathInfo, selectedItems, sequences, overrideIdsToNodePaths, codeValues, }: {
|
|
33
|
+
readonly draggedNodePathInfo: SequenceNodePathInfo;
|
|
34
|
+
readonly selectedItems: readonly TimelineSelection[];
|
|
35
|
+
readonly sequences: TSequence[];
|
|
36
|
+
readonly overrideIdsToNodePaths: OverrideIdToNodePaths;
|
|
37
|
+
readonly codeValues: CodeValues;
|
|
38
|
+
}) => TimelineSequenceDurationDragTarget[] | null;
|
|
39
|
+
export declare const getTimelineSequenceFromDragTargets: ({ draggedNodePathInfo, selectedItems, sequences, overrideIdsToNodePaths, codeValues, }: {
|
|
40
|
+
readonly draggedNodePathInfo: SequenceNodePathInfo;
|
|
41
|
+
readonly selectedItems: readonly TimelineSelection[];
|
|
42
|
+
readonly sequences: TSequence[];
|
|
43
|
+
readonly overrideIdsToNodePaths: OverrideIdToNodePaths;
|
|
44
|
+
readonly codeValues: CodeValues;
|
|
45
|
+
}) => TimelineSequenceFromDragTarget[] | null;
|
|
46
|
+
export declare const useTimelineSequenceFromDrag: ({ nodePathInfo, windowWidth, timelineDurationInFrames, }: {
|
|
47
|
+
readonly nodePathInfo: SequenceNodePathInfo | null;
|
|
48
|
+
readonly windowWidth: number;
|
|
49
|
+
readonly timelineDurationInFrames: number;
|
|
50
|
+
}) => {
|
|
51
|
+
dragging: boolean;
|
|
52
|
+
onPointerDown: (e: React.PointerEvent<HTMLDivElement>) => void;
|
|
53
|
+
};
|
|
54
|
+
export declare const TimelineSequenceRightEdgeDragHandle: React.FC<{
|
|
55
|
+
readonly nodePathInfo: SequenceNodePathInfo;
|
|
56
|
+
readonly windowWidth: number;
|
|
57
|
+
readonly timelineDurationInFrames: number;
|
|
58
|
+
}>;
|