@remotion/studio
Version:
APIs for interacting with the Remotion Studio
59 lines (58 loc) • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getTimelineLayerHeight = exports.TIMELINE_LAYER_HEIGHT_AUDIO = exports.TIMELINE_LAYER_HEIGHT_IMAGE = exports.TIMELINE_LAYER_HEIGHT_VIDEO = exports.getExpandedTrackHeight = exports.getSchemaFields = exports.UNSUPPORTED_FIELD_ROW_HEIGHT = exports.SCHEMA_FIELD_ROW_HEIGHT = exports.TIMELINE_TRACK_EXPANDED_HEIGHT = exports.TIMELINE_ITEM_BORDER_BOTTOM = exports.TIMELINE_BORDER = exports.TIMELINE_PADDING = void 0;
exports.TIMELINE_PADDING = 16;
exports.TIMELINE_BORDER = 1;
exports.TIMELINE_ITEM_BORDER_BOTTOM = 1;
exports.TIMELINE_TRACK_EXPANDED_HEIGHT = 100;
exports.SCHEMA_FIELD_ROW_HEIGHT = 22;
exports.UNSUPPORTED_FIELD_ROW_HEIGHT = 22;
const SUPPORTED_SCHEMA_TYPES = new Set([
'number',
'boolean',
'rotation',
'translate',
]);
const getSchemaFields = (controls) => {
if (!controls) {
return null;
}
return Object.entries(controls.schema).map(([key, fieldSchema]) => {
const typeName = fieldSchema.type;
const supported = SUPPORTED_SCHEMA_TYPES.has(typeName);
return {
key,
description: fieldSchema.description,
typeName,
supported,
rowHeight: supported
? exports.SCHEMA_FIELD_ROW_HEIGHT
: exports.UNSUPPORTED_FIELD_ROW_HEIGHT,
currentValue: controls.currentValue[key],
fieldSchema,
};
});
};
exports.getSchemaFields = getSchemaFields;
const getExpandedTrackHeight = (controls) => {
const fields = (0, exports.getSchemaFields)(controls);
if (!fields || fields.length === 0) {
return exports.TIMELINE_TRACK_EXPANDED_HEIGHT;
}
const separators = Math.max(0, fields.length - 1);
return fields.reduce((sum, f) => sum + f.rowHeight, 0) + separators;
};
exports.getExpandedTrackHeight = getExpandedTrackHeight;
exports.TIMELINE_LAYER_HEIGHT_VIDEO = 75;
exports.TIMELINE_LAYER_HEIGHT_IMAGE = 50;
exports.TIMELINE_LAYER_HEIGHT_AUDIO = 25;
const getTimelineLayerHeight = (type) => {
if (type === 'video') {
return exports.TIMELINE_LAYER_HEIGHT_VIDEO;
}
if (type === 'image') {
return exports.TIMELINE_LAYER_HEIGHT_IMAGE;
}
return exports.TIMELINE_LAYER_HEIGHT_AUDIO;
};
exports.getTimelineLayerHeight = getTimelineLayerHeight;