feat: add configurable timeline range
This commit is contained in:
+9
-2
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user