forked from sagnik/Project_Velocity
31 lines
1.2 KiB
JavaScript
31 lines
1.2 KiB
JavaScript
import { defaultDateLib } from "./DateLib.js";
|
|
/**
|
|
* Represents a day displayed in the calendar.
|
|
*
|
|
* In DayPicker, a `CalendarDay` is a wrapper around a `Date` object that
|
|
* provides additional information about the day, such as whether it belongs to
|
|
* the displayed month.
|
|
*/
|
|
export class CalendarDay {
|
|
constructor(date, displayMonth, dateLib = defaultDateLib) {
|
|
this.date = date;
|
|
this.displayMonth = displayMonth;
|
|
this.outside = Boolean(displayMonth && !dateLib.isSameMonth(date, displayMonth));
|
|
this.dateLib = dateLib;
|
|
this.isoDate = dateLib.format(date, "yyyy-MM-dd");
|
|
this.displayMonthId = dateLib.format(displayMonth, "yyyy-MM");
|
|
this.dateMonthId = dateLib.format(date, "yyyy-MM");
|
|
}
|
|
/**
|
|
* Checks if this day is equal to another `CalendarDay`, considering both the
|
|
* date and the displayed month.
|
|
*
|
|
* @param day The `CalendarDay` to compare with.
|
|
* @returns `true` if the days are equal, otherwise `false`.
|
|
*/
|
|
isEqualTo(day) {
|
|
return (this.dateLib.isSameDay(day.date, this.date) &&
|
|
this.dateLib.isSameMonth(day.displayMonth, this.displayMonth));
|
|
}
|
|
}
|