dasf-web
Version:
Web frontend components for the data analytics software framework (DASF)
33 lines (26 loc) • 986 B
text/typescript
import { DateSet } from "../../util/DateMap";
export class RefDateRangeModel {
refDate: Date = new Date();
allowedDates: DateSet = new DateSet();
yearsInRange: Set<number> = new Set();
backwardsDayRange: number = 0;
forwardsDayRange: number = 0;
constructor(private allowOutOfRangeYears: boolean = false) {}
public addAllowedDates(dates: IterableIterator<Date>) {
this.allowedDates.add(dates);
if(this.allowOutOfRangeYears) {
this.allowedDates.forEach((date: Date) => {
this.yearsInRange.add(date.getFullYear());
})
}
}
public setAllowedDates(dates: IterableIterator<Date>) {
this.allowedDates.clear();
this.yearsInRange.clear();
this.addAllowedDates(dates);
}
public isAllowedDate(date: number | string | Date): boolean {
const dateDate = new Date(date);
return !this.yearsInRange.has(dateDate.getFullYear()) || this.allowedDates.has(dateDate);
}
}