Files
KGStudio/src/components/interfaces.ts
T

54 lines
1.0 KiB
TypeScript

// selectable interface
export interface Selectable {
getId(): string;
select(): void;
deselect(): void;
isSelected(): boolean;
getRootType(): string;
getCurrentType(): string;
}
// Define a Region interface for UI representation
export interface RegionUI {
id: string;
trackId: string;
trackIndex: number;
barNumber: number;
length: number;
name: string;
}
export interface RegionPreviewContentStyle {
left: string;
width: string;
}
export interface RegionClickOptions {
shiftKey: boolean;
metaKey: boolean;
ctrlKey: boolean;
}
// Define resize action types
export type ResizeAction = 'none' | 'start' | 'end';
// Define region resize state
export interface RegionResizeState {
regionId: string;
isResizing: boolean;
resizeAction: ResizeAction;
initialX: number;
initialBarNumber: number;
initialLength: number;
}
// Define region drag state
export interface RegionDragState {
regionId: string;
isDragging: boolean;
initialX: number;
initialY: number;
initialBarNumber: number;
initialTrackIndex: number;
}