Skip to content

Editor Timeline Array

interface TimelineArrayEditorOptions {
readonly runtime: StructuredEditorRuntime;
readonly title: string;
readonly range?: DataGridTimelineRange
}

Structured editor for Timeline event arrays.

class TimelineArrayEditor {
getValue(): DataGridTimelineEvent[];
componentDidRender(): void | Promise<void>;
beforeAutoSave(): boolean;
beforeDisconnect(): void;
render(...args: Parameters<TextEditor['render']>): ReturnType<TextEditor['render']>;
}

export function moveTimelineEvent(
event: DataGridTimelineEvent,
delta: number,
range: DataGridTimelineRange,
): DataGridTimelineEvent;

export function niceTimelineStep(range: DataGridTimelineRange): number;

export function normalizeDataGridTimelineArray(value: unknown): DataGridTimelineEvent[] | undefined;

export function parseDataGridTimelineArray(
value: unknown,
fallback: readonly DataGridTimelineEvent[] = [],
): DataGridTimelineEvent[];

export function resizeTimelineEvent(
event: DataGridTimelineEvent,
edge: 'start' | 'end',
delta: number,
range: DataGridTimelineRange,
): DataGridTimelineEvent;

DataGridTimelineEvent (Extended from index.tsx)

Section titled “DataGridTimelineEvent (Extended from index.tsx)”
interface DataGridTimelineEvent {
readonly start: number;
readonly end: number;
readonly label?: string
}

interface DataGridTimelineRange {
readonly start: number;
readonly end: number
}

export function createTimelineRow(event: DataGridTimelineEvent): TimelineRow;

export function updateTimelineEvent(
rows: readonly TimelineRow[],
id: number,
event: DataGridTimelineEvent,
): TimelineRow[];

export function updateTimelineLabel(
rows: readonly TimelineRow[],
id: number,
label: string,
): TimelineRow[];

export function updateTimelineNumber(
rows: readonly TimelineRow[],
id: number,
key: 'start' | 'end',
text: string,
): TimelineRow[];

export function reorderTimelineRows(
rows: readonly TimelineRow[],
from: number,
to: number,
): TimelineRow[] | undefined;

export function serializeTimelineRows(rows: readonly TimelineRow[]): string;

export function validTimelineRow(row: TimelineRow): boolean;

export function eventOutsideRange(
event: DataGridTimelineEvent,
range: DataGridTimelineRange,
): boolean;

export function timelineGeometry(
event: DataGridTimelineEvent,
range: DataGridTimelineRange,
): { readonly left: number; readonly width: number };

interface TimelineRow {
readonly id: number;
readonly event: DataGridTimelineEvent;
readonly startText: string;
readonly endText: string
}

export type TimelinePointerMode = 'move' | 'start' | 'end';

interface TimelinePanelIds {
readonly visualTab: string;
readonly visualPanel: string;
readonly rawTab: string;
readonly rawPanel: string
}

export function TimelineEditorContent({
value,
locale,
onChange,
onValidityChange,
range,
}: TimelineEditorContentProps);

export function TimelineEventList({
rows,
selected,
range,
locale,
onRowsChange,
onSelect,
}: TimelineEventListProps);

export function TimelineModeTabs({ mode, ids, locale, onModeChange }: TimelineModeTabsProps);

export type TimelineEditorMode = 'visual' | 'raw';

export function TimelineRawPanel({
id,
labelledBy,
raw,
invalid,
locale,
onChange,
}: TimelineRawPanelProps);

export function TimelineTrack({
rows,
selected,
range,
locale,
onSelect,
onEventChange,
}: TimelineTrackProps);