← Về thư mục
frontend/src/features/timeline/model.ts
- latestActionTimelineAttempt · function · L25-L29 — function latestActionTimelineAttempt( group: TimelineGroup | null | undefined, ): TimelineAttempt | null
- timelineEpochMs · function · L31-L36 — function timelineEpochMs(value: unknown): number | null
- timelineDurationMs · function · L38-L51 — function timelineDurationMs(attempt: TimelineAttempt | null | undefined): number | ""
- timelineDurationValue · function · L53-L59 — function timelineDurationValue(ms: number | ""): string
- timelineDuration · function · L61-L63 — function timelineDuration(attempt: TimelineAttempt | null | undefined): string
- timelineTokenTotal · function · L65-L75 — function timelineTokenTotal(usage: unknown): number
- timelineCost · function · L77-L81 — function timelineCost(value: unknown): string
- actionTimelineSpan · function · L83-L131 — function actionTimelineSpan( group: TimelineGroup | null | undefined, rank: number, laneCount: number, ): TimelineSpan | null
- addSegment · function · L101-L103 — addSegment = (phase: string, start: number | null, end: number | null)
- actionTimelineOverviewModel · function · L133-L168 — function actionTimelineOverviewModel( groups: TimelineGroup[], domainGroups: TimelineGroup[] = groups, ): OverviewModel
- OverviewView · type · L170-L173 — type OverviewView = { viewStart: number | null; viewEnd: number | null; };
- timelineOverviewTimeToX · function · L175-L184 — function timelineOverviewTimeToX( overview: OverviewView, value: number | null, ): number | null
- timelineOverviewPathRect · function · L186-L195 — function timelineOverviewPathRect( x1: number, x2: number, y1: number, y2: number, ): string
- n · function · L193-L193 — n = (value: number)
- timelineOverviewItemPaths · function · L197-L244 — function timelineOverviewItemPaths( overview: OverviewView, item: TimelineSpan, ): Record
- n · function · L237-L237 — n = (value: number)
- actionTimelineOverviewVisualExtent · function · L246-L258 — function actionTimelineOverviewVisualExtent( item: TimelineSpan | null | undefined, ): { start: number; end: number } | null
- actionTimelineSelectionOverlaps · function · L260-L271 — function actionTimelineSelectionOverlaps( item: { start: number; end: number } | null | undefined, selection: { start: number; end: number } | null | undefined, group: TimelineGroup | null = null, ): boolean
- actionTimelineTurnStats · function · L273-L300 — function actionTimelineTurnStats(groups: TimelineGroup[]): { count: number; totalMs: number | null; hasRunning: boolean; duration: string; }
- actionTimelineLedgerEntries · function · L302-L357 — function actionTimelineLedgerEntries( view: { searchNeedle?: string; collapsedTurns: Set }, groups: TimelineGroup[], ): LedgerEntry[]
- actionTimelineEntryKey · function · L359-L365 — function actionTimelineEntryKey(entry: LedgerEntry | null | undefined): string
- timelineOverviewXToTime · function · L367-L375 — function timelineOverviewXToTime( overview: OverviewView, x: number, ): number | null
- timelineOverviewXToDomainTime · function · L377-L386 — function timelineOverviewXToDomainTime( start: number | null, end: number | null, x: number, ): number | null
- timelineOverviewExactTime · function · L388-L391 — function timelineOverviewExactTime(value: unknown): string
- timelineOverviewExactDuration · function · L393-L397 — function timelineOverviewExactDuration(start: unknown, end: unknown): string