@remotion/studio 4.0.498 → 4.0.500
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 -6
- package/dist/components/AssetSelectorItem.d.ts +24 -0
- package/dist/components/AssetSelectorItem.js +144 -83
- package/dist/components/Canvas.js +162 -7
- package/dist/components/CompositionSelector.js +15 -42
- package/dist/components/CompositionSelectorItem.js +21 -13
- package/dist/components/ControlButton.js +1 -0
- package/dist/components/EditorContent.js +1 -1
- package/dist/components/EditorRuler/Ruler.js +5 -3
- package/dist/components/ExplorerPanel.js +2 -1
- package/dist/components/ExplorerPanelRef.d.ts +2 -0
- package/dist/components/ForceSpecificCursor.js +13 -1
- package/dist/components/GlobalKeybindings.js +7 -1
- package/dist/components/InlineAction.d.ts +2 -1
- package/dist/components/InlineAction.js +2 -2
- package/dist/components/InlineDropdown.d.ts +1 -1
- package/dist/components/InlineDropdown.js +3 -2
- package/dist/components/InspectorPanel/AlignmentControls.d.ts +2 -2
- package/dist/components/InspectorPanel/AlignmentControls.js +5 -2
- package/dist/components/InspectorPanel/CompositionInspector.js +8 -7
- package/dist/components/InspectorPanel/CompositionMetadata.js +170 -57
- package/dist/components/InspectorPanel/ConnectedCompositionsSection.d.ts +2 -2
- package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +3 -3
- package/dist/components/InspectorPanel/SequenceSelectionInspector.js +7 -7
- package/dist/components/InspectorPanel/common.d.ts +17 -4
- package/dist/components/InspectorPanel/common.js +60 -6
- package/dist/components/InspectorPanel/use-composition-actions.js +1 -0
- package/dist/components/InspectorPanel/use-track-for-selection.d.ts +1 -1
- package/dist/components/InspectorSequenceSection.js +43 -19
- package/dist/components/KeyboardShortcutsExplainer.js +4 -2
- package/dist/components/Menu/MenuItem.js +2 -1
- package/dist/components/MenuCompositionName.js +30 -7
- package/dist/components/MenuToolbar.d.ts +0 -1
- package/dist/components/MenuToolbar.js +8 -7
- package/dist/components/MobilePanel.d.ts +2 -1
- package/dist/components/MobilePanel.js +29 -25
- package/dist/components/ModalContainer.d.ts +1 -0
- package/dist/components/ModalContainer.js +2 -2
- package/dist/components/Modals.js +1 -1
- package/dist/components/NewComposition/DismissableModal.d.ts +1 -0
- package/dist/components/NewComposition/DismissableModal.js +2 -2
- package/dist/components/NewComposition/InputDragger.d.ts +34 -0
- package/dist/components/NewComposition/InputDragger.js +262 -23
- package/dist/components/OutlineToggle.d.ts +1 -3
- package/dist/components/OutlineToggle.js +2 -2
- package/dist/components/PreviewToolbar.js +10 -4
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.d.ts +7 -0
- package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +44 -0
- package/dist/components/QuickSwitcher/NoResults.d.ts +1 -1
- package/dist/components/QuickSwitcher/NoResults.js +1 -0
- package/dist/components/QuickSwitcher/QuickSwitcher.d.ts +5 -0
- package/dist/components/QuickSwitcher/QuickSwitcher.js +6 -2
- package/dist/components/QuickSwitcher/QuickSwitcherContent.d.ts +5 -0
- package/dist/components/QuickSwitcher/QuickSwitcherContent.js +76 -12
- package/dist/components/QuickSwitcher/QuickSwitcherResult.d.ts +4 -0
- package/dist/components/QuickSwitcher/QuickSwitcherResult.js +11 -8
- package/dist/components/QuickSwitcher/asset-search.d.ts +9 -0
- package/dist/components/QuickSwitcher/asset-search.js +42 -0
- package/dist/components/SelectedOutlineCropControls.d.ts +8 -0
- package/dist/components/SelectedOutlineCropControls.js +299 -0
- package/dist/components/SelectedOutlineElement.js +83 -43
- package/dist/components/SelectedOutlineOverlay.d.ts +2 -2
- package/dist/components/SelectedOutlineOverlay.js +130 -8
- package/dist/components/SequencePropsSubscriptionProvider.d.ts +2 -0
- package/dist/components/SequencePropsSubscriptionProvider.js +31 -3
- package/dist/components/SidebarCollapserControls.d.ts +3 -1
- package/dist/components/SidebarCollapserControls.js +34 -29
- package/dist/components/SnappingToggle.d.ts +1 -3
- package/dist/components/SnappingToggle.js +2 -2
- package/dist/components/Splitter/SplitterContainer.d.ts +2 -0
- package/dist/components/Splitter/SplitterContainer.js +5 -1
- package/dist/components/Splitter/SplitterContext.d.ts +2 -0
- package/dist/components/Splitter/SplitterContext.js +2 -0
- package/dist/components/Splitter/SplitterElement.js +6 -1
- package/dist/components/Splitter/SplitterHandle.js +27 -2
- package/dist/components/Timeline/Timeline.js +1 -1
- package/dist/components/Timeline/TimelineAssetField.d.ts +9 -1
- package/dist/components/Timeline/TimelineAssetField.js +52 -100
- package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +7 -3
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +65 -38
- package/dist/components/Timeline/TimelineColorField.js +20 -1
- package/dist/components/Timeline/TimelineEffectPropItem.js +8 -77
- package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +1 -0
- package/dist/components/Timeline/TimelineHeightContainer.d.ts +2 -2
- package/dist/components/Timeline/TimelineInOutDragHandler.js +25 -1
- package/dist/components/Timeline/TimelineKeyframeTracksContext.d.ts +3 -3
- package/dist/components/Timeline/TimelineLayerEye.js +4 -1
- package/dist/components/Timeline/TimelineList.d.ts +2 -2
- package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +7 -1
- package/dist/components/Timeline/TimelineSelection.d.ts +5 -5
- package/dist/components/Timeline/TimelineSelection.js +8 -6
- package/dist/components/Timeline/TimelineSequence.js +7 -6
- package/dist/components/Timeline/TimelineSequenceItem.js +57 -10
- package/dist/components/Timeline/TimelineSequenceName.js +1 -0
- package/dist/components/Timeline/TimelineSequencePropItem.js +27 -75
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +5 -1
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +29 -12
- package/dist/components/Timeline/TimelineTrack.d.ts +2 -2
- package/dist/components/Timeline/TimelineTracks.d.ts +2 -2
- package/dist/components/Timeline/find-track-for-node-path-info.d.ts +1 -1
- package/dist/components/Timeline/get-sequence-context-menu-items.js +14 -12
- package/dist/components/Timeline/reset-selected-timeline-props.js +18 -10
- package/dist/components/Timeline/save-effect-prop.d.ts +10 -0
- package/dist/components/Timeline/save-effect-prop.js +52 -1
- package/dist/components/Timeline/should-show-track-in-timeline.d.ts +2 -2
- package/dist/components/Timeline/timeline-asset-link.js +17 -1
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.d.ts +4 -0
- package/dist/components/Timeline/use-sequence-freeze-frame-menu-item.js +9 -3
- package/dist/components/Timeline/use-timeline-height.d.ts +2 -2
- package/dist/components/Timeline/use-timeline-keyframe-drag.js +6 -4
- package/dist/components/TopPanel.js +3 -2
- package/dist/components/UndoRedoButtons.js +27 -5
- package/dist/components/composition-drop-preview.d.ts +33 -0
- package/dist/components/composition-drop-preview.js +68 -0
- package/dist/components/drop-handler-data.d.ts +1 -1
- package/dist/components/drop-handler-data.js +27 -60
- package/dist/components/effect-drag-and-drop.d.ts +1 -1
- package/dist/components/effect-drag-and-drop.js +7 -55
- package/dist/components/element-drag-and-drop.d.ts +1 -1
- package/dist/components/element-drag-and-drop.js +5 -17
- package/dist/components/handle-drop.js +0 -1
- package/dist/components/import-assets.d.ts +7 -8
- package/dist/components/import-assets.js +2 -9
- package/dist/components/menu-toolbar-height.d.ts +1 -0
- package/dist/components/menu-toolbar-height.js +4 -0
- package/dist/components/selected-outline-drag.d.ts +41 -4
- package/dist/components/selected-outline-drag.js +179 -2
- package/dist/components/selected-outline-geometry.d.ts +1 -0
- package/dist/components/selected-outline-measurement.d.ts +11 -0
- package/dist/components/selected-outline-measurement.js +64 -3
- package/dist/components/selected-outline-types.d.ts +44 -1
- package/dist/components/selected-outline-types.js +21 -1
- package/dist/error-overlay/remotion-overlay/Overlay.js +3 -3
- package/dist/error-overlay/remotion-overlay/ShortcutHint.js +2 -3
- package/dist/esm/{chunk-7a6q9hk2.js → chunk-dr1y1vm3.js} +11851 -9494
- package/dist/esm/internals.mjs +11851 -9494
- package/dist/esm/previewEntry.mjs +55150 -52795
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/calculate-timeline.d.ts +2 -2
- package/dist/helpers/calculate-timeline.js +8 -28
- package/dist/helpers/get-effective-translation.d.ts +13 -1
- package/dist/helpers/get-effective-translation.js +12 -6
- package/dist/helpers/get-timeline-sequence-sort-key.d.ts +3 -10
- package/dist/helpers/get-timeline-sequence-sort-key.js +5 -13
- package/dist/helpers/interactivity-enabled.d.ts +1 -0
- package/dist/helpers/interactivity-enabled.js +7 -2
- package/dist/helpers/is-mac.d.ts +1 -0
- package/dist/helpers/is-mac.js +4 -0
- package/dist/helpers/open-in-editor.d.ts +5 -1
- package/dist/helpers/open-in-editor.js +15 -1
- package/dist/helpers/ruler-canvas-size.d.ts +7 -0
- package/dist/helpers/ruler-canvas-size.js +14 -1
- package/dist/helpers/sort-by-nonce-history.js +97 -19
- package/dist/helpers/use-image-metadata.d.ts +1 -0
- package/dist/helpers/use-image-metadata.js +8 -5
- package/dist/helpers/use-keybinding.js +2 -3
- package/dist/helpers/use-media-metadata.d.ts +1 -0
- package/dist/helpers/use-media-metadata.js +8 -5
- package/dist/helpers/use-menu-structure.js +10 -1
- package/dist/icons/caret.d.ts +1 -0
- package/dist/icons/caret.js +2 -2
- package/dist/icons/pen.d.ts +5 -0
- package/dist/icons/pen.js +8 -0
- package/dist/state/modals.d.ts +5 -0
- package/package.json +13 -12
- package/dist/helpers/get-timeline-sequence-hash.d.ts +0 -6
- package/dist/helpers/get-timeline-sequence-hash.js +0 -33
|
@@ -43,6 +43,7 @@ const colors_1 = require("../helpers/colors");
|
|
|
43
43
|
const format_file_location_1 = require("../helpers/format-file-location");
|
|
44
44
|
const get_connected_compositions_1 = require("../helpers/get-connected-compositions");
|
|
45
45
|
const get_sequence_double_click_action_1 = require("../helpers/get-sequence-double-click-action");
|
|
46
|
+
const interactivity_enabled_1 = require("../helpers/interactivity-enabled");
|
|
46
47
|
const open_in_editor_1 = require("../helpers/open-in-editor");
|
|
47
48
|
const editor_snapping_1 = require("../state/editor-snapping");
|
|
48
49
|
const modals_1 = require("../state/modals");
|
|
@@ -58,6 +59,7 @@ const selected_outline_measurement_1 = require("./selected-outline-measurement")
|
|
|
58
59
|
const selected_outline_snap_1 = require("./selected-outline-snap");
|
|
59
60
|
const selected_outline_types_1 = require("./selected-outline-types");
|
|
60
61
|
const selected_outline_uv_1 = require("./selected-outline-uv");
|
|
62
|
+
const SelectedOutlineCropControls_1 = require("./SelectedOutlineCropControls");
|
|
61
63
|
const call_add_keyframe_1 = require("./Timeline/call-add-keyframe");
|
|
62
64
|
const disable_sequence_interactivity_1 = require("./Timeline/disable-sequence-interactivity");
|
|
63
65
|
const duplicate_selected_timeline_item_1 = require("./Timeline/duplicate-selected-timeline-item");
|
|
@@ -71,10 +73,12 @@ const transform_origin_utils_1 = require("./Timeline/transform-origin-utils");
|
|
|
71
73
|
const use_select_asset_1 = require("./use-select-asset");
|
|
72
74
|
const emptyContextMenuValues = [];
|
|
73
75
|
const SelectedOutlineTransformOriginHandle = ({ outline, onDraggingChange, target }) => {
|
|
74
|
-
var _a;
|
|
76
|
+
var _a, _b;
|
|
75
77
|
const { setDragOverrides, clearDragOverrides, setPropStatuses } = (0, react_1.useContext)(remotion_1.Internals.VisualModeSettersContext);
|
|
76
78
|
const { editorSnapping } = (0, react_1.useContext)(editor_snapping_1.EditorSnappingContext);
|
|
77
79
|
const transformOriginDrag = (_a = target === null || target === void 0 ? void 0 : target.transformOriginDrag) !== null && _a !== void 0 ? _a : null;
|
|
80
|
+
const crop = target === null || target === void 0 ? void 0 : target.crop;
|
|
81
|
+
const transformOriginPoints = (_b = outline.uncroppedPoints) !== null && _b !== void 0 ? _b : outline.points;
|
|
78
82
|
const parsed = (0, react_1.useMemo)(() => transformOriginDrag === null
|
|
79
83
|
? null
|
|
80
84
|
: (0, transform_origin_utils_1.parseTransformOrigin)(transformOriginDrag.originValue), [transformOriginDrag]);
|
|
@@ -88,7 +92,7 @@ const SelectedOutlineTransformOriginHandle = ({ outline, onDraggingChange, targe
|
|
|
88
92
|
height: outline.dimensions.height,
|
|
89
93
|
});
|
|
90
94
|
}, [outline.dimensions, parsed]);
|
|
91
|
-
const position = (0, react_1.useMemo)(() => (uv === null ? null : (0, selected_outline_uv_1.getUvHandlePosition)(
|
|
95
|
+
const position = (0, react_1.useMemo)(() => (uv === null ? null : (0, selected_outline_uv_1.getUvHandlePosition)(transformOriginPoints, uv)), [transformOriginPoints, uv]);
|
|
92
96
|
const onPointerDown = react_1.default.useCallback((event) => {
|
|
93
97
|
if (event.button !== 0 ||
|
|
94
98
|
transformOriginDrag === null ||
|
|
@@ -125,7 +129,7 @@ const SelectedOutlineTransformOriginHandle = ({ outline, onDraggingChange, targe
|
|
|
125
129
|
x: currentPointerX - svgRect.left,
|
|
126
130
|
y: currentPointerY - svgRect.top,
|
|
127
131
|
};
|
|
128
|
-
const rawUv = (0, selected_outline_uv_1.getUvCoordinateForPoint)(
|
|
132
|
+
const rawUv = (0, selected_outline_uv_1.getUvCoordinateForPoint)(transformOriginPoints, point);
|
|
129
133
|
const lockedAxis = (0, selected_outline_drag_1.getSelectedOutlineTransformOriginLockedAxis)({
|
|
130
134
|
axisLocked,
|
|
131
135
|
dimensions,
|
|
@@ -139,11 +143,13 @@ const SelectedOutlineTransformOriginHandle = ({ outline, onDraggingChange, targe
|
|
|
139
143
|
});
|
|
140
144
|
const snapPoint = lockedAxis === null
|
|
141
145
|
? point
|
|
142
|
-
: (0, selected_outline_uv_1.getUvHandlePosition)(
|
|
146
|
+
: (0, selected_outline_uv_1.getUvHandlePosition)(transformOriginPoints, axisLockedUv);
|
|
143
147
|
const snappedUv = editorSnapping
|
|
144
148
|
? (0, selected_outline_drag_1.snapSelectedOutlineTransformOriginUv)({
|
|
149
|
+
crop: crop !== null && crop !== void 0 ? crop : null,
|
|
145
150
|
point: snapPoint,
|
|
146
|
-
points:
|
|
151
|
+
points: transformOriginPoints,
|
|
152
|
+
thresholdPx: null,
|
|
147
153
|
uv: axisLockedUv,
|
|
148
154
|
})
|
|
149
155
|
: axisLockedUv;
|
|
@@ -273,6 +279,7 @@ const SelectedOutlineTransformOriginHandle = ({ outline, onDraggingChange, targe
|
|
|
273
279
|
window.addEventListener('keyup', onKeyChange);
|
|
274
280
|
}, [
|
|
275
281
|
clearDragOverrides,
|
|
282
|
+
crop,
|
|
276
283
|
editorSnapping,
|
|
277
284
|
onDraggingChange,
|
|
278
285
|
outline,
|
|
@@ -280,6 +287,7 @@ const SelectedOutlineTransformOriginHandle = ({ outline, onDraggingChange, targe
|
|
|
280
287
|
setDragOverrides,
|
|
281
288
|
setPropStatuses,
|
|
282
289
|
transformOriginDrag,
|
|
290
|
+
transformOriginPoints,
|
|
283
291
|
uv,
|
|
284
292
|
]);
|
|
285
293
|
if (transformOriginDrag === null ||
|
|
@@ -743,6 +751,7 @@ const SelectedOutlineRotationCornerHandle = ({ allRotationDragTargets, contextMe
|
|
|
743
751
|
const circleRef = (0, react_1.useRef)(null);
|
|
744
752
|
const cornerInfo = (0, react_1.useMemo)(() => (0, selected_outline_measurement_1.getSelectedOutlineRotationCornerInfo)(outline.points, corner), [corner, outline.points]);
|
|
745
753
|
const onPointerDown = react_1.default.useCallback((event) => {
|
|
754
|
+
var _a;
|
|
746
755
|
if (event.button !== 0 || rotationDrag === null) {
|
|
747
756
|
return;
|
|
748
757
|
}
|
|
@@ -770,7 +779,7 @@ const SelectedOutlineRotationCornerHandle = ({ allRotationDragTargets, contextMe
|
|
|
770
779
|
const svgRect = svg.getBoundingClientRect();
|
|
771
780
|
const center = svgPointToClientPoint((0, selected_outline_measurement_1.getSelectedOutlineRotationPivot)({
|
|
772
781
|
dimensions: outline.dimensions,
|
|
773
|
-
points: outline.points,
|
|
782
|
+
points: (_a = outline.uncroppedPoints) !== null && _a !== void 0 ? _a : outline.points,
|
|
774
783
|
transformOriginValue: rotationDrag.transformOriginValue,
|
|
775
784
|
}), svgRect);
|
|
776
785
|
const dragStates = (0, selected_outline_drag_1.getSelectedOutlineRotationDragStates)({
|
|
@@ -924,6 +933,7 @@ const SelectedOutlineRotationCornerHandle = ({ allRotationDragTargets, contextMe
|
|
|
924
933
|
onDraggingChange,
|
|
925
934
|
outline.dimensions,
|
|
926
935
|
outline.points,
|
|
936
|
+
outline.uncroppedPoints,
|
|
927
937
|
onSelect,
|
|
928
938
|
rotationDrag,
|
|
929
939
|
selected,
|
|
@@ -1006,7 +1016,7 @@ const SelectedOutlineElement = ({ allDragTargets, allDragOutlines, allRotationDr
|
|
|
1006
1016
|
selectComposition,
|
|
1007
1017
|
]);
|
|
1008
1018
|
const onContextMenuOpen = react_1.default.useCallback(async () => {
|
|
1009
|
-
if (target === undefined
|
|
1019
|
+
if (target === undefined) {
|
|
1010
1020
|
return false;
|
|
1011
1021
|
}
|
|
1012
1022
|
if (!target.selected) {
|
|
@@ -1025,11 +1035,15 @@ const SelectedOutlineElement = ({ allDragTargets, allDragOutlines, allRotationDr
|
|
|
1025
1035
|
: null;
|
|
1026
1036
|
const assetLinkInfo = mediaSrc ? (0, timeline_asset_link_1.getTimelineAssetLinkInfo)(mediaSrc) : null;
|
|
1027
1037
|
const canOpenInEditor = Boolean(window.remotion_editorName && originalLocation);
|
|
1028
|
-
const
|
|
1029
|
-
const
|
|
1038
|
+
const sourceEditingEnabled = (0, interactivity_enabled_1.isStudioInteractivityEnabled)();
|
|
1039
|
+
const disableInteractivityDisabled = !sourceEditingEnabled || !target.sequence.showInTimeline;
|
|
1040
|
+
const sourceEditDisabled = !sourceEditingEnabled ||
|
|
1041
|
+
!target.sequence.controls ||
|
|
1042
|
+
!nodePath.absolutePath;
|
|
1030
1043
|
const canAddEffect = target.nodePathInfo.supportsEffects &&
|
|
1031
1044
|
!sourceEditDisabled &&
|
|
1032
1045
|
previewServerState.type === 'connected';
|
|
1046
|
+
const canCrop = target.canCrop && !sourceEditDisabled;
|
|
1033
1047
|
return (0, get_sequence_context_menu_items_1.getSequenceContextMenuItems)({
|
|
1034
1048
|
assetLinkInfo,
|
|
1035
1049
|
canOpenInEditor,
|
|
@@ -1037,7 +1051,7 @@ const SelectedOutlineElement = ({ allDragTargets, allDragOutlines, allRotationDr
|
|
|
1037
1051
|
disableInteractivityDisabled,
|
|
1038
1052
|
duplicateDisabled: sourceEditDisabled,
|
|
1039
1053
|
fileLocation,
|
|
1040
|
-
includeSourceEditItems:
|
|
1054
|
+
includeSourceEditItems: sourceEditingEnabled,
|
|
1041
1055
|
onDeleteSequenceFromSource: async () => {
|
|
1042
1056
|
if (sourceEditDisabled || previewServerState.type !== 'connected') {
|
|
1043
1057
|
return;
|
|
@@ -1103,39 +1117,65 @@ const SelectedOutlineElement = ({ allDragTargets, allDragOutlines, allRotationDr
|
|
|
1103
1117
|
originalLocation,
|
|
1104
1118
|
selectAsset,
|
|
1105
1119
|
sequence: target.sequence,
|
|
1106
|
-
sourceActions:
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1120
|
+
sourceActions: sourceEditingEnabled
|
|
1121
|
+
? [
|
|
1122
|
+
...(target.nodePathInfo.supportsEffects
|
|
1123
|
+
? [
|
|
1124
|
+
{
|
|
1125
|
+
type: 'item',
|
|
1126
|
+
id: 'add-effect',
|
|
1127
|
+
keyHint: null,
|
|
1128
|
+
label: 'Add effect...',
|
|
1129
|
+
leftItem: null,
|
|
1130
|
+
disabled: !canAddEffect,
|
|
1131
|
+
onClick: () => {
|
|
1132
|
+
if (!canAddEffect ||
|
|
1133
|
+
previewServerState.type !== 'connected') {
|
|
1134
|
+
return;
|
|
1135
|
+
}
|
|
1136
|
+
setSelectedModal({
|
|
1137
|
+
type: 'add-effect',
|
|
1138
|
+
clientId: previewServerState.clientId,
|
|
1139
|
+
fileName: nodePath.absolutePath,
|
|
1140
|
+
nodePath,
|
|
1141
|
+
});
|
|
1142
|
+
},
|
|
1143
|
+
quickSwitcherLabel: null,
|
|
1144
|
+
subMenu: null,
|
|
1145
|
+
value: 'add-effect',
|
|
1127
1146
|
},
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1147
|
+
]
|
|
1148
|
+
: []),
|
|
1149
|
+
{
|
|
1150
|
+
type: 'item',
|
|
1151
|
+
id: 'crop',
|
|
1152
|
+
keyHint: null,
|
|
1153
|
+
label: 'Crop',
|
|
1154
|
+
leftItem: null,
|
|
1155
|
+
disabled: !canCrop,
|
|
1156
|
+
onClick: () => {
|
|
1157
|
+
if (!canCrop) {
|
|
1158
|
+
return;
|
|
1159
|
+
}
|
|
1160
|
+
onSelect({
|
|
1161
|
+
type: 'sequence-prop',
|
|
1162
|
+
nodePathInfo: {
|
|
1163
|
+
...target.nodePathInfo,
|
|
1164
|
+
auxiliaryKeys: ['controls', selected_outline_types_1.cropFieldKeys.left],
|
|
1165
|
+
},
|
|
1166
|
+
key: selected_outline_types_1.cropFieldKeys.left,
|
|
1167
|
+
}, { shiftKey: false, toggleKey: false });
|
|
1135
1168
|
},
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1169
|
+
quickSwitcherLabel: null,
|
|
1170
|
+
subMenu: null,
|
|
1171
|
+
value: 'crop',
|
|
1172
|
+
},
|
|
1173
|
+
{
|
|
1174
|
+
type: 'divider',
|
|
1175
|
+
id: 'crop-divider',
|
|
1176
|
+
},
|
|
1177
|
+
]
|
|
1178
|
+
: [],
|
|
1139
1179
|
});
|
|
1140
1180
|
}, [
|
|
1141
1181
|
confirm,
|
|
@@ -1148,9 +1188,9 @@ const SelectedOutlineElement = ({ allDragTargets, allDragOutlines, allRotationDr
|
|
|
1148
1188
|
target,
|
|
1149
1189
|
]);
|
|
1150
1190
|
return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
|
|
1151
|
-
jsx_runtime_1.jsx(SelectedOutlinePolygon, { allDragTargets: allDragTargets, allDragOutlines: allDragOutlines, contextMenuValues: emptyContextMenuValues, dragging: dragging, hovered: hovered, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSnapPointsChange: onSnapPointsChange, onSelect: onSelect, onDoubleClickTarget: onDoubleClickTarget, scale: scale, snapTargets: snapTargets, target: target }), (target === null || target === void 0 ? void 0 : target.
|
|
1191
|
+
jsx_runtime_1.jsx(SelectedOutlinePolygon, { allDragTargets: allDragTargets, allDragOutlines: allDragOutlines, contextMenuValues: emptyContextMenuValues, dragging: dragging, hovered: hovered, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSnapPointsChange: onSnapPointsChange, onSelect: onSelect, onDoubleClickTarget: onDoubleClickTarget, scale: scale, snapTargets: snapTargets, target: target }), jsx_runtime_1.jsx(SelectedOutlineCropControls_1.SelectedOutlineCropControls, { outline: outline, onDraggingChange: onDraggingChange, target: target }), (target === null || target === void 0 ? void 0 : target.cropDrag) === null && (target.containsSelection || hovered)
|
|
1152
1192
|
? ['top', 'right', 'bottom', 'left'].map((edge) => (jsx_runtime_1.jsx(SelectedOutlineScaleEdgeLine, { allScaleDragTargets: allScaleDragTargets, contextMenuValues: emptyContextMenuValues, dragging: dragging, edge: edge, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSelect: onSelect, target: target }, edge)))
|
|
1153
|
-
: null, (target === null || target === void 0 ? void 0 : target.
|
|
1193
|
+
: null, (target === null || target === void 0 ? void 0 : target.cropDrag) === null && (target.containsSelection || hovered)
|
|
1154
1194
|
? ['top-left', 'top-right', 'bottom-right', 'bottom-left'].map((corner) => (jsx_runtime_1.jsx(SelectedOutlineRotationCornerHandle, { allRotationDragTargets: allRotationDragTargets, contextMenuValues: emptyContextMenuValues, corner: corner, dragging: dragging, outline: outline, onContextMenuOpen: onContextMenuOpen, onDraggingChange: onDraggingChange, onHoverChange: onHoverChange, onSelect: onSelect, target: target }, corner)))
|
|
1155
1195
|
: null] }));
|
|
1156
1196
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type SelectedOutline } from './selected-outline-geometry';
|
|
3
3
|
import { type SelectedOutlineTarget } from './selected-outline-types';
|
|
4
|
-
export { applySelectedOutlineDragAxisLock, applySelectedOutlineTransformOriginAxisLock, compensateTranslateForTransformOrigin, getSelectedOutlineActiveSchema, getSelectedOutlineDragChanges, getSelectedOutlineDragValues, getSelectedOutlineKeyboardNudgeDelta, getSelectedOutlineKeyboardNudgeDeltas, getSelectedOutlineRotationDragChanges, getSelectedOutlineRotationDragStates, getSelectedOutlineRotationDragValues, getSelectedOutlineScaleDragChanges, getSelectedOutlineScaleDragStates, getSelectedOutlineScaleDragValues, getSelectedOutlineScaleEdgeInfo, getSelectedOutlineTransformOriginDragChanges, getSelectedOutlineTransformOriginLockedAxis, isSelectedOutlineDragPastThreshold, selectedOutlineTransformOriginSnapThresholdPx, selectedOutlineUvSnapThresholdPx, snapSelectedOutlineRotationDeltaDegrees, snapSelectedOutlineTransformOriginUv, snapSelectedOutlineUv, } from './selected-outline-drag';
|
|
5
|
-
export { getOutlineSelectionInteraction, getSelectedEffectFieldsBySequenceKey, getSelectedOutlineRotationCornerInfo, getSelectedOutlineRotationDeltaDegrees, getSelectedOutlineRotationPivot, getSelectedSequenceKeys, getSequencesWithSelectableOutlines, getTransformedSvgViewportPoints, } from './selected-outline-measurement';
|
|
4
|
+
export { applySelectedOutlineDragAxisLock, applySelectedOutlineTransformOriginAxisLock, compensateTranslateForTransformOrigin, getSelectedOutlineActiveSchema, getSelectedOutlineCropDragChanges, getSelectedOutlineCropDragValues, getSelectedOutlineCropFollowingTransformOrigin, getSelectedOutlineDragChanges, getSelectedOutlineDragValues, getSelectedOutlineKeyboardNudgeDelta, getSelectedOutlineKeyboardNudgeDeltas, getSelectedOutlineRotationDragChanges, getSelectedOutlineRotationDragStates, getSelectedOutlineRotationDragValues, getSelectedOutlineScaleDragChanges, getSelectedOutlineScaleDragStates, getSelectedOutlineScaleDragValues, getSelectedOutlineScaleEdgeInfo, getSelectedOutlineTransformOriginDragChanges, getSelectedOutlineTransformOriginLockedAxis, isSelectedOutlineDragPastThreshold, selectedOutlineTransformOriginSnapThresholdPx, selectedOutlineUvSnapThresholdPx, snapSelectedOutlineRotationDeltaDegrees, snapSelectedOutlineTransformOriginUv, snapSelectedOutlineUv, } from './selected-outline-drag';
|
|
5
|
+
export { getOutlineSelectionInteraction, getSelectedCropInfo, getSelectedEffectFieldsBySequenceKey, getSelectedOutlineRotationCornerInfo, getSelectedOutlineRotationDeltaDegrees, getSelectedOutlineRotationPivot, getSelectedSequenceKeys, getSequencesWithSelectableOutlines, getTransformedSvgViewportPoints, } from './selected-outline-measurement';
|
|
6
6
|
export { selectedOutlineDragThresholdPx } from './selected-outline-types';
|
|
7
7
|
export type { SelectedOutlineDragState, SelectedOutlineRotationDragState, SelectedOutlineScaleDragState, } from './selected-outline-types';
|
|
8
8
|
type OutlineSequenceParent = {
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.SelectedOutlineOverlay = exports.orderOutlinesForRendering = exports.selectedOutlineDragThresholdPx = exports.getTransformedSvgViewportPoints = exports.getSequencesWithSelectableOutlines = exports.getSelectedSequenceKeys = exports.getSelectedOutlineRotationPivot = exports.getSelectedOutlineRotationDeltaDegrees = exports.getSelectedOutlineRotationCornerInfo = exports.getSelectedEffectFieldsBySequenceKey = exports.getOutlineSelectionInteraction = exports.snapSelectedOutlineUv = exports.snapSelectedOutlineTransformOriginUv = exports.snapSelectedOutlineRotationDeltaDegrees = exports.selectedOutlineUvSnapThresholdPx = exports.selectedOutlineTransformOriginSnapThresholdPx = exports.isSelectedOutlineDragPastThreshold = exports.getSelectedOutlineTransformOriginLockedAxis = exports.getSelectedOutlineTransformOriginDragChanges = exports.getSelectedOutlineScaleEdgeInfo = exports.getSelectedOutlineScaleDragValues = exports.getSelectedOutlineScaleDragStates = exports.getSelectedOutlineScaleDragChanges = exports.getSelectedOutlineRotationDragValues = exports.getSelectedOutlineRotationDragStates = exports.getSelectedOutlineRotationDragChanges = exports.getSelectedOutlineKeyboardNudgeDeltas = exports.getSelectedOutlineKeyboardNudgeDelta = exports.getSelectedOutlineDragValues = exports.getSelectedOutlineDragChanges = exports.getSelectedOutlineActiveSchema = exports.compensateTranslateForTransformOrigin = exports.applySelectedOutlineTransformOriginAxisLock = exports.applySelectedOutlineDragAxisLock = void 0;
|
|
36
|
+
exports.SelectedOutlineOverlay = exports.orderOutlinesForRendering = exports.selectedOutlineDragThresholdPx = exports.getTransformedSvgViewportPoints = exports.getSequencesWithSelectableOutlines = exports.getSelectedSequenceKeys = exports.getSelectedOutlineRotationPivot = exports.getSelectedOutlineRotationDeltaDegrees = exports.getSelectedOutlineRotationCornerInfo = exports.getSelectedEffectFieldsBySequenceKey = exports.getSelectedCropInfo = exports.getOutlineSelectionInteraction = exports.snapSelectedOutlineUv = exports.snapSelectedOutlineTransformOriginUv = exports.snapSelectedOutlineRotationDeltaDegrees = exports.selectedOutlineUvSnapThresholdPx = exports.selectedOutlineTransformOriginSnapThresholdPx = exports.isSelectedOutlineDragPastThreshold = exports.getSelectedOutlineTransformOriginLockedAxis = exports.getSelectedOutlineTransformOriginDragChanges = exports.getSelectedOutlineScaleEdgeInfo = exports.getSelectedOutlineScaleDragValues = exports.getSelectedOutlineScaleDragStates = exports.getSelectedOutlineScaleDragChanges = exports.getSelectedOutlineRotationDragValues = exports.getSelectedOutlineRotationDragStates = exports.getSelectedOutlineRotationDragChanges = exports.getSelectedOutlineKeyboardNudgeDeltas = exports.getSelectedOutlineKeyboardNudgeDelta = exports.getSelectedOutlineDragValues = exports.getSelectedOutlineDragChanges = exports.getSelectedOutlineCropFollowingTransformOrigin = exports.getSelectedOutlineCropDragValues = exports.getSelectedOutlineCropDragChanges = exports.getSelectedOutlineActiveSchema = exports.compensateTranslateForTransformOrigin = exports.applySelectedOutlineTransformOriginAxisLock = exports.applySelectedOutlineDragAxisLock = void 0;
|
|
37
37
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
38
38
|
const player_1 = require("@remotion/player");
|
|
39
39
|
const react_1 = __importStar(require("react"));
|
|
@@ -63,6 +63,9 @@ Object.defineProperty(exports, "applySelectedOutlineDragAxisLock", { enumerable:
|
|
|
63
63
|
Object.defineProperty(exports, "applySelectedOutlineTransformOriginAxisLock", { enumerable: true, get: function () { return selected_outline_drag_2.applySelectedOutlineTransformOriginAxisLock; } });
|
|
64
64
|
Object.defineProperty(exports, "compensateTranslateForTransformOrigin", { enumerable: true, get: function () { return selected_outline_drag_2.compensateTranslateForTransformOrigin; } });
|
|
65
65
|
Object.defineProperty(exports, "getSelectedOutlineActiveSchema", { enumerable: true, get: function () { return selected_outline_drag_2.getSelectedOutlineActiveSchema; } });
|
|
66
|
+
Object.defineProperty(exports, "getSelectedOutlineCropDragChanges", { enumerable: true, get: function () { return selected_outline_drag_2.getSelectedOutlineCropDragChanges; } });
|
|
67
|
+
Object.defineProperty(exports, "getSelectedOutlineCropDragValues", { enumerable: true, get: function () { return selected_outline_drag_2.getSelectedOutlineCropDragValues; } });
|
|
68
|
+
Object.defineProperty(exports, "getSelectedOutlineCropFollowingTransformOrigin", { enumerable: true, get: function () { return selected_outline_drag_2.getSelectedOutlineCropFollowingTransformOrigin; } });
|
|
66
69
|
Object.defineProperty(exports, "getSelectedOutlineDragChanges", { enumerable: true, get: function () { return selected_outline_drag_2.getSelectedOutlineDragChanges; } });
|
|
67
70
|
Object.defineProperty(exports, "getSelectedOutlineDragValues", { enumerable: true, get: function () { return selected_outline_drag_2.getSelectedOutlineDragValues; } });
|
|
68
71
|
Object.defineProperty(exports, "getSelectedOutlineKeyboardNudgeDelta", { enumerable: true, get: function () { return selected_outline_drag_2.getSelectedOutlineKeyboardNudgeDelta; } });
|
|
@@ -84,6 +87,7 @@ Object.defineProperty(exports, "snapSelectedOutlineTransformOriginUv", { enumera
|
|
|
84
87
|
Object.defineProperty(exports, "snapSelectedOutlineUv", { enumerable: true, get: function () { return selected_outline_drag_2.snapSelectedOutlineUv; } });
|
|
85
88
|
const selected_outline_measurement_2 = require("./selected-outline-measurement");
|
|
86
89
|
Object.defineProperty(exports, "getOutlineSelectionInteraction", { enumerable: true, get: function () { return selected_outline_measurement_2.getOutlineSelectionInteraction; } });
|
|
90
|
+
Object.defineProperty(exports, "getSelectedCropInfo", { enumerable: true, get: function () { return selected_outline_measurement_2.getSelectedCropInfo; } });
|
|
87
91
|
Object.defineProperty(exports, "getSelectedEffectFieldsBySequenceKey", { enumerable: true, get: function () { return selected_outline_measurement_2.getSelectedEffectFieldsBySequenceKey; } });
|
|
88
92
|
Object.defineProperty(exports, "getSelectedOutlineRotationCornerInfo", { enumerable: true, get: function () { return selected_outline_measurement_2.getSelectedOutlineRotationCornerInfo; } });
|
|
89
93
|
Object.defineProperty(exports, "getSelectedOutlineRotationDeltaDegrees", { enumerable: true, get: function () { return selected_outline_measurement_2.getSelectedOutlineRotationDeltaDegrees; } });
|
|
@@ -93,6 +97,50 @@ Object.defineProperty(exports, "getSequencesWithSelectableOutlines", { enumerabl
|
|
|
93
97
|
Object.defineProperty(exports, "getTransformedSvgViewportPoints", { enumerable: true, get: function () { return selected_outline_measurement_2.getTransformedSvgViewportPoints; } });
|
|
94
98
|
const selected_outline_types_2 = require("./selected-outline-types");
|
|
95
99
|
Object.defineProperty(exports, "selectedOutlineDragThresholdPx", { enumerable: true, get: function () { return selected_outline_types_2.selectedOutlineDragThresholdPx; } });
|
|
100
|
+
const getEffectiveCropValue = ({ activeSchema, controls, dragOverrides, fieldKey, frame, propStatuses, }) => {
|
|
101
|
+
var _a;
|
|
102
|
+
const fieldSchema = activeSchema === null || activeSchema === void 0 ? void 0 : activeSchema[fieldKey];
|
|
103
|
+
if ((fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.type) !== 'number') {
|
|
104
|
+
return 0;
|
|
105
|
+
}
|
|
106
|
+
const propStatus = propStatuses === null || propStatuses === void 0 ? void 0 : propStatuses[fieldKey];
|
|
107
|
+
const value = (propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) === 'static' || (propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) === 'keyframed'
|
|
108
|
+
? remotion_1.Internals.getEffectiveVisualModeValue({
|
|
109
|
+
propStatus,
|
|
110
|
+
dragOverrideValue: dragOverrides[fieldKey],
|
|
111
|
+
defaultValue: fieldSchema.default,
|
|
112
|
+
frame,
|
|
113
|
+
shouldResortToDefaultValueIfUndefined: true,
|
|
114
|
+
})
|
|
115
|
+
: ((_a = controls === null || controls === void 0 ? void 0 : controls.currentRuntimeValueDotNotation[fieldKey]) !== null && _a !== void 0 ? _a : fieldSchema.default);
|
|
116
|
+
return typeof value === 'number' && Number.isFinite(value) ? value : 0;
|
|
117
|
+
};
|
|
118
|
+
const getCropDragFields = ({ activeSchema, cropValues, propStatuses, }) => {
|
|
119
|
+
if (!(0, selected_outline_types_1.canEditSelectedOutlineCrop)({
|
|
120
|
+
schema: activeSchema,
|
|
121
|
+
propStatuses,
|
|
122
|
+
})) {
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
const fields = {};
|
|
126
|
+
for (const fieldKey of Object.values(selected_outline_types_1.cropFieldKeys)) {
|
|
127
|
+
const fieldSchema = activeSchema === null || activeSchema === void 0 ? void 0 : activeSchema[fieldKey];
|
|
128
|
+
const propStatus = propStatuses === null || propStatuses === void 0 ? void 0 : propStatuses[fieldKey];
|
|
129
|
+
const canEditStatus = (propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) === 'static' ||
|
|
130
|
+
((propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) === 'keyframed' &&
|
|
131
|
+
propStatus.interpolationFunction === 'interpolate');
|
|
132
|
+
if ((fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.type) !== 'number' || !canEditStatus) {
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
fields[fieldKey] = {
|
|
136
|
+
defaultValue: fieldSchema.default,
|
|
137
|
+
fieldSchema,
|
|
138
|
+
propStatus,
|
|
139
|
+
value: cropValues[fieldKey],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
return fields;
|
|
143
|
+
};
|
|
96
144
|
const outlineContainer = {
|
|
97
145
|
position: 'absolute',
|
|
98
146
|
inset: 0,
|
|
@@ -382,6 +430,8 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
382
430
|
const overlayRef = (0, react_1.useRef)(null);
|
|
383
431
|
const keyboardNudgeSessionRef = (0, react_1.useRef)(null);
|
|
384
432
|
const saveKeyboardNudgeSessionRef = (0, react_1.useRef)(() => undefined);
|
|
433
|
+
const previewInteractive = previewServerState.type === 'connected' && (0, interactivity_enabled_1.isStudioInteractivityEnabled)();
|
|
434
|
+
const previewSelectionAvailable = previewServerState.type === 'connected' || window.remotion_isReadOnlyStudio;
|
|
385
435
|
const onDraggingChange = react_1.default.useCallback((dragging) => {
|
|
386
436
|
setDraggingOutline(dragging);
|
|
387
437
|
if (dragging) {
|
|
@@ -398,13 +448,16 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
398
448
|
selectItem(item, interaction, undefined, { reveal: true });
|
|
399
449
|
}, [selectItem]);
|
|
400
450
|
const outlineTargets = (0, react_1.useMemo)(() => {
|
|
401
|
-
if (!(0, interactivity_enabled_1.
|
|
451
|
+
if (!(0, interactivity_enabled_1.isStudioSelectionEnabled)() ||
|
|
452
|
+
!previewSelectionAvailable ||
|
|
453
|
+
!editorShowOutlines) {
|
|
402
454
|
return [];
|
|
403
455
|
}
|
|
404
456
|
const selectedSequenceKeys = (0, selected_outline_measurement_1.getSelectedSequenceKeys)(selectedItems);
|
|
405
457
|
const sequenceKeysContainingSelection = (0, selected_outline_measurement_1.getSequenceKeysContainingSelection)(selectedItems);
|
|
406
458
|
const selectedEffectsBySequenceKey = (0, selected_outline_measurement_1.getSelectedEffectFieldsBySequenceKey)(selectedItems);
|
|
407
459
|
const selectedTransformOriginInfo = (0, selected_outline_measurement_1.getSelectedTransformOriginInfo)(selectedItems);
|
|
460
|
+
const selectedCropInfo = (0, selected_outline_measurement_1.getSelectedCropInfo)(selectedItems);
|
|
408
461
|
const clientId = previewServerState.type === 'connected'
|
|
409
462
|
? previewServerState.clientId
|
|
410
463
|
: null;
|
|
@@ -434,6 +487,46 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
434
487
|
frame: sourceFrame,
|
|
435
488
|
})
|
|
436
489
|
: null;
|
|
490
|
+
const cropValues = {
|
|
491
|
+
cropLeft: getEffectiveCropValue({
|
|
492
|
+
activeSchema,
|
|
493
|
+
controls,
|
|
494
|
+
dragOverrides,
|
|
495
|
+
fieldKey: selected_outline_types_1.cropFieldKeys.left,
|
|
496
|
+
frame: sourceFrame,
|
|
497
|
+
propStatuses: nodePropStatuses,
|
|
498
|
+
}),
|
|
499
|
+
cropRight: getEffectiveCropValue({
|
|
500
|
+
activeSchema,
|
|
501
|
+
controls,
|
|
502
|
+
dragOverrides,
|
|
503
|
+
fieldKey: selected_outline_types_1.cropFieldKeys.right,
|
|
504
|
+
frame: sourceFrame,
|
|
505
|
+
propStatuses: nodePropStatuses,
|
|
506
|
+
}),
|
|
507
|
+
cropTop: getEffectiveCropValue({
|
|
508
|
+
activeSchema,
|
|
509
|
+
controls,
|
|
510
|
+
dragOverrides,
|
|
511
|
+
fieldKey: selected_outline_types_1.cropFieldKeys.top,
|
|
512
|
+
frame: sourceFrame,
|
|
513
|
+
propStatuses: nodePropStatuses,
|
|
514
|
+
}),
|
|
515
|
+
cropBottom: getEffectiveCropValue({
|
|
516
|
+
activeSchema,
|
|
517
|
+
controls,
|
|
518
|
+
dragOverrides,
|
|
519
|
+
fieldKey: selected_outline_types_1.cropFieldKeys.bottom,
|
|
520
|
+
frame: sourceFrame,
|
|
521
|
+
propStatuses: nodePropStatuses,
|
|
522
|
+
}),
|
|
523
|
+
};
|
|
524
|
+
const crop = remotion_1.Internals.resolveSequenceCrop(cropValues);
|
|
525
|
+
const cropFields = getCropDragFields({
|
|
526
|
+
activeSchema,
|
|
527
|
+
cropValues,
|
|
528
|
+
propStatuses: nodePropStatuses,
|
|
529
|
+
});
|
|
437
530
|
const fieldSchema = activeSchema === null || activeSchema === void 0 ? void 0 : activeSchema[selected_outline_types_1.translateFieldKey];
|
|
438
531
|
const propStatus = nodePropStatuses === null || nodePropStatuses === void 0 ? void 0 : nodePropStatuses[selected_outline_types_1.translateFieldKey];
|
|
439
532
|
const scaleFieldSchema = activeSchema === null || activeSchema === void 0 ? void 0 : activeSchema[selected_outline_types_1.scaleFieldKey];
|
|
@@ -459,18 +552,18 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
459
552
|
const canRotationDragStatus = (rotationPropStatus === null || rotationPropStatus === void 0 ? void 0 : rotationPropStatus.status) === 'static' ||
|
|
460
553
|
((rotationPropStatus === null || rotationPropStatus === void 0 ? void 0 : rotationPropStatus.status) === 'keyframed' &&
|
|
461
554
|
rotationPropStatus.interpolationFunction === 'interpolate');
|
|
462
|
-
const canDrag =
|
|
555
|
+
const canDrag = previewInteractive &&
|
|
463
556
|
controls !== null &&
|
|
464
557
|
(fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.type) === 'translate' &&
|
|
465
558
|
canDragStatus;
|
|
466
559
|
const canScaleDragStatus = (scalePropStatus === null || scalePropStatus === void 0 ? void 0 : scalePropStatus.status) === 'static' ||
|
|
467
560
|
((scalePropStatus === null || scalePropStatus === void 0 ? void 0 : scalePropStatus.status) === 'keyframed' &&
|
|
468
561
|
scalePropStatus.interpolationFunction === 'interpolate');
|
|
469
|
-
const canScaleDrag =
|
|
562
|
+
const canScaleDrag = previewInteractive &&
|
|
470
563
|
controls !== null &&
|
|
471
564
|
(scaleFieldSchema === null || scaleFieldSchema === void 0 ? void 0 : scaleFieldSchema.type) === 'scale' &&
|
|
472
565
|
canScaleDragStatus;
|
|
473
|
-
const canRotationDrag =
|
|
566
|
+
const canRotationDrag = previewInteractive &&
|
|
474
567
|
controls !== null &&
|
|
475
568
|
(rotationFieldSchema === null || rotationFieldSchema === void 0 ? void 0 : rotationFieldSchema.type) === 'rotation-css' &&
|
|
476
569
|
canRotationDragStatus;
|
|
@@ -485,17 +578,44 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
485
578
|
const canTransformOriginTranslateStatus = (propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) === 'static' ||
|
|
486
579
|
((propStatus === null || propStatus === void 0 ? void 0 : propStatus.status) === 'keyframed' &&
|
|
487
580
|
propStatus.interpolationFunction === 'interpolate');
|
|
488
|
-
const canTransformOriginDrag =
|
|
581
|
+
const canTransformOriginDrag = previewInteractive &&
|
|
489
582
|
selectedForTransformOrigin &&
|
|
490
583
|
controls !== null &&
|
|
491
584
|
(transformOriginFieldSchema === null || transformOriginFieldSchema === void 0 ? void 0 : transformOriginFieldSchema.type) === 'transform-origin' &&
|
|
492
585
|
(fieldSchema === null || fieldSchema === void 0 ? void 0 : fieldSchema.type) === 'translate' &&
|
|
493
586
|
canTransformOriginStatus &&
|
|
494
587
|
canTransformOriginTranslateStatus;
|
|
495
|
-
const
|
|
496
|
-
|
|
588
|
+
const selectedForCrop = (selectedCropInfo === null || selectedCropInfo === void 0 ? void 0 : selectedCropInfo.sequenceKey) === key;
|
|
589
|
+
const cropSourceFrame = (selectedCropInfo === null || selectedCropInfo === void 0 ? void 0 : selectedCropInfo.displayFrame) === null ||
|
|
590
|
+
(selectedCropInfo === null || selectedCropInfo === void 0 ? void 0 : selectedCropInfo.displayFrame) === undefined
|
|
591
|
+
? sourceFrame
|
|
592
|
+
: selectedCropInfo.displayFrame - keyframeDisplayOffset;
|
|
593
|
+
const canCropDrag = previewInteractive &&
|
|
594
|
+
selectedForCrop &&
|
|
595
|
+
controls !== null &&
|
|
596
|
+
cropFields !== null;
|
|
597
|
+
const canDropEffect = previewInteractive && (controls === null || controls === void 0 ? void 0 : controls.supportsEffects) === true;
|
|
497
598
|
return {
|
|
498
599
|
key,
|
|
600
|
+
canCrop: previewInteractive && controls !== null && cropFields !== null,
|
|
601
|
+
crop,
|
|
602
|
+
cropDrag: canCropDrag
|
|
603
|
+
? {
|
|
604
|
+
clientId: previewServerState.clientId,
|
|
605
|
+
fields: cropFields,
|
|
606
|
+
nodePath,
|
|
607
|
+
schema: controls.schema,
|
|
608
|
+
sourceFrame: cropSourceFrame,
|
|
609
|
+
transformOrigin: (transformOriginFieldSchema === null || transformOriginFieldSchema === void 0 ? void 0 : transformOriginFieldSchema.type) === 'transform-origin' &&
|
|
610
|
+
transformOriginPropStatus !== undefined
|
|
611
|
+
? {
|
|
612
|
+
defaultValue: transformOriginFieldSchema.default,
|
|
613
|
+
propStatus: transformOriginPropStatus,
|
|
614
|
+
value: transformOriginValueForRotation,
|
|
615
|
+
}
|
|
616
|
+
: null,
|
|
617
|
+
}
|
|
618
|
+
: null,
|
|
499
619
|
containsSelection,
|
|
500
620
|
effectDrop: canDropEffect
|
|
501
621
|
? {
|
|
@@ -628,6 +748,8 @@ const SelectedOutlineOverlay = ({ compositionHeight, compositionWidth, scale, tr
|
|
|
628
748
|
getScaleLockState,
|
|
629
749
|
editorShowOutlines,
|
|
630
750
|
overrideIdToNodePathMappings,
|
|
751
|
+
previewInteractive,
|
|
752
|
+
previewSelectionAvailable,
|
|
631
753
|
previewServerState,
|
|
632
754
|
selectedItems,
|
|
633
755
|
sequences,
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { OverrideIdToNodePaths, TSequence } from 'remotion';
|
|
2
|
+
export declare const getReadOnlyOverrideIdToNodePathMappings: (sequences: readonly TSequence[]) => OverrideIdToNodePaths;
|
|
1
3
|
export declare const SequencePropsSubscriptionProvider: React.FC<{
|
|
2
4
|
readonly children: React.ReactNode;
|
|
3
5
|
}>;
|
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SequencePropsSubscriptionProvider = void 0;
|
|
3
|
+
exports.SequencePropsSubscriptionProvider = exports.getReadOnlyOverrideIdToNodePathMappings = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const remotion_1 = require("remotion");
|
|
7
|
+
const getReadOnlyOverrideIdToNodePathMappings = (sequences) => {
|
|
8
|
+
return Object.fromEntries(sequences.flatMap((sequence) => {
|
|
9
|
+
var _a;
|
|
10
|
+
const overrideId = (_a = sequence.controls) === null || _a === void 0 ? void 0 : _a.overrideId;
|
|
11
|
+
if (!overrideId) {
|
|
12
|
+
return [];
|
|
13
|
+
}
|
|
14
|
+
return [
|
|
15
|
+
[
|
|
16
|
+
overrideId,
|
|
17
|
+
{
|
|
18
|
+
absolutePath: '',
|
|
19
|
+
effectKeys: [],
|
|
20
|
+
nodePath: ['readonly-sequence', overrideId],
|
|
21
|
+
sequenceKeys: [],
|
|
22
|
+
videoConfigValues: null,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
];
|
|
26
|
+
}));
|
|
27
|
+
};
|
|
28
|
+
exports.getReadOnlyOverrideIdToNodePathMappings = getReadOnlyOverrideIdToNodePathMappings;
|
|
7
29
|
const SequencePropsSubscriptionProvider = ({ children }) => {
|
|
30
|
+
const { sequences } = (0, react_1.useContext)(remotion_1.Internals.SequenceManager);
|
|
8
31
|
const [overrideToNodePathMap, setOverrideIdToNodePathMap] = (0, react_1.useState)({});
|
|
32
|
+
const readOnlyOverrideToNodePathMap = (0, react_1.useMemo)(() => window.remotion_isReadOnlyStudio
|
|
33
|
+
? (0, exports.getReadOnlyOverrideIdToNodePathMappings)(sequences)
|
|
34
|
+
: null, [sequences]);
|
|
9
35
|
const setOverrideIdToNodePath = (0, react_1.useCallback)((overrideId, state) => {
|
|
10
36
|
setOverrideIdToNodePathMap((prev) => {
|
|
11
37
|
const existing = prev[overrideId];
|
|
@@ -16,8 +42,10 @@ const SequencePropsSubscriptionProvider = ({ children }) => {
|
|
|
16
42
|
});
|
|
17
43
|
}, []);
|
|
18
44
|
const getters = (0, react_1.useMemo)(() => {
|
|
19
|
-
return {
|
|
20
|
-
|
|
45
|
+
return {
|
|
46
|
+
overrideIdToNodePathMappings: readOnlyOverrideToNodePathMap !== null && readOnlyOverrideToNodePathMap !== void 0 ? readOnlyOverrideToNodePathMap : overrideToNodePathMap,
|
|
47
|
+
};
|
|
48
|
+
}, [overrideToNodePathMap, readOnlyOverrideToNodePathMap]);
|
|
21
49
|
const setters = (0, react_1.useMemo)(() => {
|
|
22
50
|
return { setOverrideIdToNodePath };
|
|
23
51
|
}, [setOverrideIdToNodePath]);
|