Files
2026-08-26 09:55:12 -06:00

120 lines
4.0 KiB
JavaScript

// Shared constants and schema defaults for the timeline editor.
export const IMAGE_TIMELINE_NODES = new Set([
"ETKLTXVTimelineImageEditor",
]);
export const TARGET_NODES = IMAGE_TIMELINE_NODES;
export const CUSTOM_AREA_TOP = 186;
export const TIMELINE_TOP_PAD = 34;
export const TIMELINE_TRACK_HEIGHT = 30;
export const TIMELINE_GAP = 20;
export const TIMELINE_CONTROLS_HEIGHT = 126;
export const TIMELINE_CONTROLS_GAP = 10;
export const TIMELINE_BOTTOM_PAD = 20;
export const PREVIEW_MIN_HEIGHT = 336;
export const TIMELINE_EDITOR_WIDGET = "__etk_ltxv_timeline_editor";
export const KEYFRAME_POSITIVE_PROMPT_WIDGET = "__etk_ltxv_keyframe_positive_prompt";
export const TEXT_LAYER_EDITOR_WIDGET = "__etk_ltxv_text_layer_editor";
export const UPLOAD_MODE_PROPERTY = "etk_ltxv_upload_mode";
export const LAYER_LOCK_PROPERTY = "etk_ltxv_timeline_layers_locked";
export const CONTROL_TAB_PROPERTY = "etk_ltxv_controls_tab";
export const CANVAS_SIZE_PROPERTY = "etk_ltxv_timeline_canvas_size";
export const OUTPUT_SETTINGS_PROPERTY = "etk_ltxv_timeline_output_settings";
export const CONTROL_TABS = [
{ id: "strength", label: "Strength", w: 72 },
{ id: "layers", label: "Layers", w: 62 },
{ id: "filters", label: "Filters", w: 62 },
];
export const CONTROL_HEADER_HEIGHT = 24;
export const CONTROL_TABS_HEIGHT = 22;
export const TIMELINE_EDITOR_HEIGHT =
TIMELINE_TOP_PAD + TIMELINE_TRACK_HEIGHT + TIMELINE_GAP + TIMELINE_CONTROLS_HEIGHT + TIMELINE_CONTROLS_GAP + PREVIEW_MIN_HEIGHT + TIMELINE_BOTTOM_PAD;
export const KEYFRAME_PROMPT_EDITOR_HEIGHT = 98;
export const KEYFRAME_PROMPT_EDITOR_MAX_HEIGHT = 220;
export const TEXT_LAYER_EDITOR_HEIGHT = 164;
export const TEXT_LAYER_EDITOR_MAX_HEIGHT = 250;
export const UI_INSTANCE_WIDGET = "ui_instance_id";
export const UI_INSTANCE_PROPERTY = "etk_ltxv_timeline_ui_instance_id";
export const MIN_LAYER_ZOOM = 0.01;
export const MAX_LAYER_ZOOM = 20;
export const WHEEL_ZOOM_STEP = 0.05;
export const SHIFT_WHEEL_ZOOM_STEP = 0.02;
export const CTRL_WHEEL_ZOOM_STEP = 0.002;
export const KEYBOARD_PAN_STEP = 0.05;
export const CTRL_KEYBOARD_PAN_IMAGE_PX = 1;
export const FIXED_PROMPT_WIDGET_NAMES = new Set(["global_positive_prompt", "global_negative_prompt", "prompt_schedule"]);
export const PROMPT_WIDGET_FIXED_HEIGHT = 72;
export const CHAIN_INPUT_NAME = "chain_in";
export const LOCAL_MEDIA_MANAGER_DROP_TYPE = "application/x-local-media-manager-image";
export const CHAIN_INHERITED_WIDGET_NAMES = new Set([
"width",
"height",
"global_positive_prompt",
"global_negative_prompt",
"positive_audio_prompt_weight",
"negative_audio_prompt_weight",
]);
export const TIMELINE_GLOBAL_LISTENER_STATE = "__etkTimelineGlobalListenerState";
export const TIMELINE_GLOBAL_LISTENER_TOKEN = {};
export const TIMELINE_STATUS_DURATION_MS = 4500;
export const TIMELINE_SCHEMA_VERSION = 2;
export const DEFAULT_TEXT_LAYER = Object.freeze({
text: "Text",
fontFamily: "sans-serif",
fontSize: 72,
bold: false,
italic: false,
align: "center",
color: "#ffffff",
outlineColor: "#000000",
outlineWidth: 0,
shadowColor: "#000000",
shadowBlur: 0,
shadowOffsetX: 0,
shadowOffsetY: 0,
});
export const TEXT_LAYER_FONT_OPTIONS = Object.freeze([
["sans-serif", "Sans"],
["serif", "Serif"],
["monospace", "Mono"],
["Arial", "Arial"],
["Helvetica", "Helvetica"],
["Verdana", "Verdana"],
["Georgia", "Georgia"],
["Times New Roman", "Times"],
["Courier New", "Courier"],
["Impact", "Impact"],
["DejaVu Sans", "DejaVu Sans"],
["DejaVu Serif", "DejaVu Serif"],
["DejaVu Sans Mono", "DejaVu Mono"],
["Liberation Sans", "Liberation Sans"],
["Liberation Serif", "Liberation Serif"],
["Liberation Mono", "Liberation Mono"],
]);
export const TEXT_LAYER_FIELDS = Object.freeze([
"text",
"fontFamily",
"font_family",
"fontSize",
"font_size",
"bold",
"italic",
"align",
"textAlign",
"text_align",
"color",
"outlineColor",
"outline_color",
"outlineWidth",
"outline_width",
"shadowColor",
"shadow_color",
"shadowBlur",
"shadow_blur",
"shadowOffsetX",
"shadow_offset_x",
"shadowOffsetY",
"shadow_offset_y",
]);