feat: add configurable timeline range

This commit is contained in:
2026-08-14 15:40:54 +02:00
parent b284275e98
commit 45c7c6a292
15 changed files with 121 additions and 14 deletions
+9 -2
View File
@@ -1,4 +1,4 @@
import type { CaseState, Evidence, Viewport, WidgetRelation } from './types'
import type { CaseState, Evidence, TimelineRange, Viewport, WidgetRelation } from './types'
export const MIN_BOARD_ZOOM = 0.45
export const MAX_BOARD_ZOOM = 1.5
@@ -48,7 +48,14 @@ export function dateValue(date: string) {
return Number.isFinite(parsed) ? parsed : 0
}
export function timelineRange(dates: string[], fallbackYear = new Date().getFullYear()) {
export function timelineRange(dates: string[], fallbackYear = new Date().getFullYear(), configured?: TimelineRange) {
if (configured) {
const start = Date.parse(`${configured.start}T00:00:00.000Z`)
const end = Date.parse(`${configured.end}T23:59:59.999Z`)
if (Number.isFinite(start) && Number.isFinite(end) && end > start) {
return { startYear: Number(configured.start.slice(0, 4)), endYear: Number(configured.end.slice(0, 4)), start, end }
}
}
const years = dates
.map(date => Number(date.slice(0, 4)))
.filter(year => Number.isFinite(year) && year >= 1 && year <= 9999)