29 lines
723 B
TypeScript
29 lines
723 B
TypeScript
export function resolveMaxCount(values: number[]): number {
|
|
if (!Array.isArray(values) || values.length === 0) {
|
|
return 1;
|
|
}
|
|
|
|
return Math.max(...values, 1);
|
|
}
|
|
|
|
export function resolveTimelineHours(timestamps: string[], fallbackHours = 12): number {
|
|
if (!Array.isArray(timestamps) || timestamps.length < 2) {
|
|
return fallbackHours;
|
|
}
|
|
|
|
const times = timestamps
|
|
.map((value) => new Date(value).getTime())
|
|
.filter((value) => Number.isFinite(value));
|
|
|
|
if (times.length < 2) {
|
|
return fallbackHours;
|
|
}
|
|
|
|
const min = Math.min(...times);
|
|
const max = Math.max(...times);
|
|
const diff = Math.max(0, max - min);
|
|
const hours = diff / (1000 * 60 * 60);
|
|
|
|
return Math.max(1, Math.round(hours));
|
|
}
|