🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Sign inDemoInstall
Socket

react-day-picker

Package Overview
Dependencies
Maintainers
2
Versions
268
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-day-picker - npm Package Compare versions

Comparing version

to
9.5.1

examples/InvalidMonth.test.tsx

72

dist/cjs/classes/DateLib.d.ts

@@ -1,6 +0,3 @@

import { addDays, addMonths, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarMonths, eachMonthOfInterval, endOfISOWeek, endOfMonth, endOfWeek, endOfYear, format, getISOWeek, getMonth, getWeek, getYear, isAfter, isBefore, isSameDay, isSameMonth, isSameYear, max, min, setMonth, setYear, startOfDay, startOfISOWeek, startOfMonth, startOfWeek, startOfYear } from "date-fns";
import type { EndOfWeekOptions, StartOfWeekOptions, FormatOptions as DateFnsFormatOptions } from "date-fns";
import type { EndOfWeekOptions, StartOfWeekOptions, FormatOptions as DateFnsFormatOptions, GetWeekOptions, Interval } from "date-fns";
import type { Locale } from "date-fns/locale";
import { endOfBroadcastWeek } from "../helpers/endOfBroadcastWeek.js";
import { startOfBroadcastWeek } from "../helpers/startOfBroadcastWeek.js";
import { Numerals } from "../types/shared.js";

@@ -48,4 +45,3 @@ export type { Locale } from "date-fns/locale";

* A wrapper class around [date-fns](http://date-fns.org) sharing the same
* options. Methods of this class can be overridden using the
* {@link PropsBase.dateLib} prop.
* options.
*

@@ -119,3 +115,3 @@ * @since 9.2.0

*/
addDays: typeof addDays;
addDays: (date: Date, amount: number) => Date;
/**

@@ -128,3 +124,3 @@ * Adds the specified number of months to the given date.

*/
addMonths: typeof addMonths;
addMonths: (date: Date, amount: number) => Date;
/**

@@ -137,3 +133,3 @@ * Adds the specified number of weeks to the given date.

*/
addWeeks: typeof addWeeks;
addWeeks: (date: Date, amount: number) => Date;
/**

@@ -146,3 +142,3 @@ * Adds the specified number of years to the given date.

*/
addYears: typeof addYears;
addYears: (date: Date, amount: number) => Date;
/**

@@ -155,3 +151,3 @@ * Returns the number of calendar days between the given dates.

*/
differenceInCalendarDays: typeof differenceInCalendarDays;
differenceInCalendarDays: (dateLeft: Date, dateRight: Date) => number;
/**

@@ -164,3 +160,3 @@ * Returns the number of calendar months between the given dates.

*/
differenceInCalendarMonths: typeof differenceInCalendarMonths;
differenceInCalendarMonths: (dateLeft: Date, dateRight: Date) => number;
/**

@@ -171,3 +167,3 @@ * Returns the months between the given dates.

*/
eachMonthOfInterval: typeof eachMonthOfInterval;
eachMonthOfInterval: (interval: Interval<Date>) => Date[];
/**

@@ -179,3 +175,3 @@ * Returns the end of the broadcast week for the given date.

*/
endOfBroadcastWeek: typeof endOfBroadcastWeek;
endOfBroadcastWeek: (date: Date, dateLib?: DateLib) => Date;
/**

@@ -187,3 +183,3 @@ * Returns the end of the ISO week for the given date.

*/
endOfISOWeek: typeof endOfISOWeek;
endOfISOWeek: (date: Date) => Date;
/**

@@ -195,3 +191,3 @@ * Returns the end of the month for the given date.

*/
endOfMonth: typeof endOfMonth;
endOfMonth: (date: Date) => Date;
/**

@@ -203,3 +199,3 @@ * Returns the end of the week for the given date.

*/
endOfWeek: typeof endOfWeek;
endOfWeek: (date: Date, options?: EndOfWeekOptions<Date>) => Date;
/**

@@ -211,3 +207,3 @@ * Returns the end of the year for the given date.

*/
endOfYear: typeof endOfYear;
endOfYear: (date: Date) => Date;
/**

@@ -220,3 +216,3 @@ * Formats the given date using the specified format string.

*/
format: typeof format;
format: (date: Date, formatStr: string, options?: DateFnsFormatOptions) => string;
/**

@@ -228,3 +224,3 @@ * Returns the ISO week number for the given date.

*/
getISOWeek: typeof getISOWeek;
getISOWeek: (date: Date) => number;
/**

@@ -236,3 +232,3 @@ * Returns the month of the given date.

*/
getMonth: typeof getMonth;
getMonth: (date: Date) => number;
/**

@@ -244,3 +240,3 @@ * Returns the year of the given date.

*/
getYear: typeof getYear;
getYear: (date: Date) => number;
/**

@@ -252,3 +248,3 @@ * Returns the local week number for the given date.

*/
getWeek: typeof getWeek;
getWeek: (date: Date, options?: GetWeekOptions) => number;
/**

@@ -261,3 +257,3 @@ * Checks if the first date is after the second date.

*/
isAfter: typeof isAfter;
isAfter: (date: Date, dateToCompare: Date) => boolean;
/**

@@ -270,3 +266,3 @@ * Checks if the first date is before the second date.

*/
isBefore: typeof isBefore;
isBefore: (date: Date, dateToCompare: Date) => boolean;
/**

@@ -286,3 +282,3 @@ * Checks if the given value is a Date object.

*/
isSameDay: typeof isSameDay;
isSameDay: (dateLeft: Date, dateRight: Date) => boolean;
/**

@@ -295,3 +291,3 @@ * Checks if the given dates are in the same month.

*/
isSameMonth: typeof isSameMonth;
isSameMonth: (dateLeft: Date, dateRight: Date) => boolean;
/**

@@ -304,3 +300,3 @@ * Checks if the given dates are in the same year.

*/
isSameYear: typeof isSameYear;
isSameYear: (dateLeft: Date, dateRight: Date) => boolean;
/**

@@ -312,3 +308,3 @@ * Returns the latest date in the given array of dates.

*/
max: typeof max;
max: (dates: Date[]) => Date;
/**

@@ -320,3 +316,3 @@ * Returns the earliest date in the given array of dates.

*/
min: typeof min;
min: (dates: Date[]) => Date;
/**

@@ -329,3 +325,3 @@ * Sets the month of the given date.

*/
setMonth: typeof setMonth;
setMonth: (date: Date, month: number) => Date;
/**

@@ -338,3 +334,3 @@ * Sets the year of the given date.

*/
setYear: typeof setYear;
setYear: (date: Date, year: number) => Date;
/**

@@ -346,3 +342,3 @@ * Returns the start of the broadcast week for the given date.

*/
startOfBroadcastWeek: typeof startOfBroadcastWeek;
startOfBroadcastWeek: (date: Date, dateLib?: DateLib) => Date;
/**

@@ -354,3 +350,3 @@ * Returns the start of the day for the given date.

*/
startOfDay: typeof startOfDay;
startOfDay: (date: Date) => Date;
/**

@@ -362,3 +358,3 @@ * Returns the start of the ISO week for the given date.

*/
startOfISOWeek: typeof startOfISOWeek;
startOfISOWeek: (date: Date) => Date;
/**

@@ -370,3 +366,3 @@ * Returns the start of the month for the given date.

*/
startOfMonth: typeof startOfMonth;
startOfMonth: (date: Date) => Date;
/**

@@ -378,3 +374,3 @@ * Returns the start of the week for the given date.

*/
startOfWeek: typeof startOfWeek;
startOfWeek: (date: Date) => Date;
/**

@@ -386,3 +382,3 @@ * Returns the start of the year for the given date.

*/
startOfYear: typeof startOfYear;
startOfYear: (date: Date) => Date;
}

@@ -389,0 +385,0 @@ /** The default locale (English). */

@@ -11,4 +11,3 @@ "use strict";

* A wrapper class around [date-fns](http://date-fns.org) sharing the same
* options. Methods of this class can be overridden using the
* {@link PropsBase.dateLib} prop.
* options.
*

@@ -75,5 +74,3 @@ * @since 9.2.0

this.addDays = (date, amount) => {
return this.overrides?.addDays
? this.overrides.addDays(date, amount)
: (0, date_fns_1.addDays)(date, amount);
return this.overrides?.addDays?.(date, amount) ?? (0, date_fns_1.addDays)(date, amount);
};

@@ -88,5 +85,3 @@ /**

this.addMonths = (date, amount) => {
return this.overrides?.addMonths
? this.overrides.addMonths(date, amount)
: (0, date_fns_1.addMonths)(date, amount);
return this.overrides?.addMonths?.(date, amount) ?? (0, date_fns_1.addMonths)(date, amount);
};

@@ -101,5 +96,3 @@ /**

this.addWeeks = (date, amount) => {
return this.overrides?.addWeeks
? this.overrides.addWeeks(date, amount)
: (0, date_fns_1.addWeeks)(date, amount);
return this.overrides?.addWeeks?.(date, amount) ?? (0, date_fns_1.addWeeks)(date, amount);
};

@@ -114,5 +107,3 @@ /**

this.addYears = (date, amount) => {
return this.overrides?.addYears
? this.overrides.addYears(date, amount)
: (0, date_fns_1.addYears)(date, amount);
return this.overrides?.addYears?.(date, amount) ?? (0, date_fns_1.addYears)(date, amount);
};

@@ -127,5 +118,4 @@ /**

this.differenceInCalendarDays = (dateLeft, dateRight) => {
return this.overrides?.differenceInCalendarDays
? this.overrides.differenceInCalendarDays(dateLeft, dateRight)
: (0, date_fns_1.differenceInCalendarDays)(dateLeft, dateRight);
return (this.overrides?.differenceInCalendarDays?.(dateLeft, dateRight) ??
(0, date_fns_1.differenceInCalendarDays)(dateLeft, dateRight));
};

@@ -140,5 +130,4 @@ /**

this.differenceInCalendarMonths = (dateLeft, dateRight) => {
return this.overrides?.differenceInCalendarMonths
? this.overrides.differenceInCalendarMonths(dateLeft, dateRight)
: (0, date_fns_1.differenceInCalendarMonths)(dateLeft, dateRight);
return (this.overrides?.differenceInCalendarMonths?.(dateLeft, dateRight) ??
(0, date_fns_1.differenceInCalendarMonths)(dateLeft, dateRight));
};

@@ -151,5 +140,4 @@ /**

this.eachMonthOfInterval = (interval) => {
return this.overrides?.eachMonthOfInterval
? this.overrides.eachMonthOfInterval(interval)
: (0, date_fns_1.eachMonthOfInterval)(interval);
return (this.overrides?.eachMonthOfInterval?.(interval) ??
(0, date_fns_1.eachMonthOfInterval)(interval));
};

@@ -162,6 +150,5 @@ /**

*/
this.endOfBroadcastWeek = (date) => {
return this.overrides?.endOfBroadcastWeek
? this.overrides.endOfBroadcastWeek(date, this)
: (0, endOfBroadcastWeek_js_1.endOfBroadcastWeek)(date, this);
this.endOfBroadcastWeek = (date, dateLib) => {
return (this.overrides?.endOfBroadcastWeek?.(date, dateLib) ??
(0, endOfBroadcastWeek_js_1.endOfBroadcastWeek)(date, this));
};

@@ -175,5 +162,3 @@ /**

this.endOfISOWeek = (date) => {
return this.overrides?.endOfISOWeek
? this.overrides.endOfISOWeek(date)
: (0, date_fns_1.endOfISOWeek)(date);
return this.overrides?.endOfISOWeek?.(date) ?? (0, date_fns_1.endOfISOWeek)(date);
};

@@ -187,5 +172,3 @@ /**

this.endOfMonth = (date) => {
return this.overrides?.endOfMonth
? this.overrides.endOfMonth(date)
: (0, date_fns_1.endOfMonth)(date);
return this.overrides?.endOfMonth?.(date) ?? (0, date_fns_1.endOfMonth)(date);
};

@@ -198,6 +181,5 @@ /**

*/
this.endOfWeek = (date) => {
return this.overrides?.endOfWeek
? this.overrides.endOfWeek(date, this.options)
: (0, date_fns_1.endOfWeek)(date, this.options);
this.endOfWeek = (date, options) => {
return (this.overrides?.endOfWeek?.(date, options ?? this.options) ??
(0, date_fns_1.endOfWeek)(date, options ?? this.options));
};

@@ -211,5 +193,3 @@ /**

this.endOfYear = (date) => {
return this.overrides?.endOfYear
? this.overrides.endOfYear(date)
: (0, date_fns_1.endOfYear)(date);
return this.overrides?.endOfYear?.(date) ?? (0, date_fns_1.endOfYear)(date);
};

@@ -223,6 +203,5 @@ /**

*/
this.format = (date, formatStr) => {
const formatted = this.overrides?.format
? this.overrides.format(date, formatStr, this.options)
: (0, date_fns_1.format)(date, formatStr, this.options);
this.format = (date, formatStr, options) => {
const formatted = this.overrides?.format?.(date, formatStr, options ?? this.options) ??
(0, date_fns_1.format)(date, formatStr, options ?? this.options);
if (this.options.numerals && this.options.numerals !== "latn") {

@@ -240,5 +219,3 @@ return this.replaceDigits(formatted);

this.getISOWeek = (date) => {
return this.overrides?.getISOWeek
? this.overrides.getISOWeek(date)
: (0, date_fns_1.getISOWeek)(date);
return this.overrides?.getISOWeek?.(date) ?? (0, date_fns_1.getISOWeek)(date);
};

@@ -252,5 +229,3 @@ /**

this.getMonth = (date) => {
return this.overrides?.getMonth
? this.overrides.getMonth(date, this.options)
: (0, date_fns_1.getMonth)(date, this.options);
return this.overrides?.getMonth?.(date) ?? (0, date_fns_1.getMonth)(date);
};

@@ -264,5 +239,3 @@ /**

this.getYear = (date) => {
return this.overrides?.getYear
? this.overrides.getYear(date, this.options)
: (0, date_fns_1.getYear)(date, this.options);
return this.overrides?.getYear?.(date) ?? (0, date_fns_1.getYear)(date);
};

@@ -275,6 +248,5 @@ /**

*/
this.getWeek = (date) => {
return this.overrides?.getWeek
? this.overrides.getWeek(date, this.options)
: (0, date_fns_1.getWeek)(date, this.options);
this.getWeek = (date, options) => {
return (this.overrides?.getWeek?.(date, options ?? this.options) ??
(0, date_fns_1.getWeek)(date, options ?? this.options));
};

@@ -289,5 +261,4 @@ /**

this.isAfter = (date, dateToCompare) => {
return this.overrides?.isAfter
? this.overrides.isAfter(date, dateToCompare)
: (0, date_fns_1.isAfter)(date, dateToCompare);
return (this.overrides?.isAfter?.(date, dateToCompare) ??
(0, date_fns_1.isAfter)(date, dateToCompare));
};

@@ -302,5 +273,4 @@ /**

this.isBefore = (date, dateToCompare) => {
return this.overrides?.isBefore
? this.overrides.isBefore(date, dateToCompare)
: (0, date_fns_1.isBefore)(date, dateToCompare);
return (this.overrides?.isBefore?.(date, dateToCompare) ??
(0, date_fns_1.isBefore)(date, dateToCompare));
};

@@ -314,5 +284,3 @@ /**

this.isDate = (value) => {
return this.overrides?.isDate
? this.overrides.isDate(value)
: (0, date_fns_1.isDate)(value);
return this.overrides?.isDate?.(value) ?? (0, date_fns_1.isDate)(value);
};

@@ -327,5 +295,4 @@ /**

this.isSameDay = (dateLeft, dateRight) => {
return this.overrides?.isSameDay
? this.overrides.isSameDay(dateLeft, dateRight)
: (0, date_fns_1.isSameDay)(dateLeft, dateRight);
return (this.overrides?.isSameDay?.(dateLeft, dateRight) ??
(0, date_fns_1.isSameDay)(dateLeft, dateRight));
};

@@ -340,5 +307,4 @@ /**

this.isSameMonth = (dateLeft, dateRight) => {
return this.overrides?.isSameMonth
? this.overrides.isSameMonth(dateLeft, dateRight)
: (0, date_fns_1.isSameMonth)(dateLeft, dateRight);
return (this.overrides?.isSameMonth?.(dateLeft, dateRight) ??
(0, date_fns_1.isSameMonth)(dateLeft, dateRight));
};

@@ -353,5 +319,4 @@ /**

this.isSameYear = (dateLeft, dateRight) => {
return this.overrides?.isSameYear
? this.overrides.isSameYear(dateLeft, dateRight)
: (0, date_fns_1.isSameYear)(dateLeft, dateRight);
return (this.overrides?.isSameYear?.(dateLeft, dateRight) ??
(0, date_fns_1.isSameYear)(dateLeft, dateRight));
};

@@ -365,3 +330,3 @@ /**

this.max = (dates) => {
return this.overrides?.max ? this.overrides.max(dates) : (0, date_fns_1.max)(dates);
return this.overrides?.max?.(dates) ?? (0, date_fns_1.max)(dates);
};

@@ -375,3 +340,3 @@ /**

this.min = (dates) => {
return this.overrides?.min ? this.overrides.min(dates) : (0, date_fns_1.min)(dates);
return this.overrides?.min?.(dates) ?? (0, date_fns_1.min)(dates);
};

@@ -386,5 +351,3 @@ /**

this.setMonth = (date, month) => {
return this.overrides?.setMonth
? this.overrides.setMonth(date, month)
: (0, date_fns_1.setMonth)(date, month);
return this.overrides?.setMonth?.(date, month) ?? (0, date_fns_1.setMonth)(date, month);
};

@@ -399,5 +362,3 @@ /**

this.setYear = (date, year) => {
return this.overrides?.setYear
? this.overrides.setYear(date, year)
: (0, date_fns_1.setYear)(date, year);
return this.overrides?.setYear?.(date, year) ?? (0, date_fns_1.setYear)(date, year);
};

@@ -410,6 +371,5 @@ /**

*/
this.startOfBroadcastWeek = (date) => {
return this.overrides?.startOfBroadcastWeek
? this.overrides.startOfBroadcastWeek(date, this)
: (0, startOfBroadcastWeek_js_1.startOfBroadcastWeek)(date, this);
this.startOfBroadcastWeek = (date, dateLib) => {
return (this.overrides?.startOfBroadcastWeek?.(date, dateLib ?? this) ??
(0, startOfBroadcastWeek_js_1.startOfBroadcastWeek)(date, dateLib ?? this));
};

@@ -423,5 +383,3 @@ /**

this.startOfDay = (date) => {
return this.overrides?.startOfDay
? this.overrides.startOfDay(date)
: (0, date_fns_1.startOfDay)(date);
return this.overrides?.startOfDay?.(date) ?? (0, date_fns_1.startOfDay)(date);
};

@@ -435,5 +393,3 @@ /**

this.startOfISOWeek = (date) => {
return this.overrides?.startOfISOWeek
? this.overrides.startOfISOWeek(date)
: (0, date_fns_1.startOfISOWeek)(date);
return this.overrides?.startOfISOWeek?.(date) ?? (0, date_fns_1.startOfISOWeek)(date);
};

@@ -447,5 +403,3 @@ /**

this.startOfMonth = (date) => {
return this.overrides?.startOfMonth
? this.overrides.startOfMonth(date)
: (0, date_fns_1.startOfMonth)(date);
return this.overrides?.startOfMonth?.(date) ?? (0, date_fns_1.startOfMonth)(date);
};

@@ -459,5 +413,3 @@ /**

this.startOfWeek = (date) => {
return this.overrides?.startOfWeek
? this.overrides.startOfWeek(date, this.options)
: (0, date_fns_1.startOfWeek)(date, this.options);
return (this.overrides?.startOfWeek?.(date) ?? (0, date_fns_1.startOfWeek)(date, this.options));
};

@@ -471,5 +423,3 @@ /**

this.startOfYear = (date) => {
return this.overrides?.startOfYear
? this.overrides.startOfYear(date)
: (0, date_fns_1.startOfYear)(date);
return this.overrides?.startOfYear?.(date) ?? (0, date_fns_1.startOfYear)(date);
};

@@ -476,0 +426,0 @@ this.options = { locale: locale_1.enUS, ...options };

@@ -9,3 +9,3 @@ "use strict";

const { differenceInCalendarMonths, addMonths, startOfMonth } = dateLib;
// Fix the initialMonth if is after the to-date
// Fix the initialMonth if is after the endMonth
if (endMonth && differenceInCalendarMonths(endMonth, initialMonth) < 0) {

@@ -15,3 +15,3 @@ const offset = -1 * (numberOfMonths - 1);

}
// Fix the initialMonth if is before the from-date
// Fix the initialMonth if is before the startMonth
if (startMonth && differenceInCalendarMonths(initialMonth, startMonth) < 0) {

@@ -18,0 +18,0 @@ initialMonth = startMonth;

@@ -20,3 +20,5 @@ "use strict";

const initialMonth = (0, getInitialMonth_js_1.getInitialMonth)(props, dateLib);
const [firstMonth, setFirstMonth] = (0, useControlledValue_js_1.useControlledValue)(initialMonth, props.month ? startOfMonth(props.month) : undefined);
const [firstMonth, setFirstMonth] = (0, useControlledValue_js_1.useControlledValue)(initialMonth,
// initialMonth is always computed from props.month if provided
props.month ? initialMonth : undefined);
(0, react_1.useEffect)(() => {

@@ -23,0 +25,0 @@ const newInitialMonth = (0, getInitialMonth_js_1.getInitialMonth)(props, dateLib);

@@ -1,6 +0,3 @@

import { addDays, addMonths, addWeeks, addYears, differenceInCalendarDays, differenceInCalendarMonths, eachMonthOfInterval, endOfISOWeek, endOfMonth, endOfWeek, endOfYear, format, getISOWeek, getMonth, getWeek, getYear, isAfter, isBefore, isSameDay, isSameMonth, isSameYear, max, min, setMonth, setYear, startOfDay, startOfISOWeek, startOfMonth, startOfWeek, startOfYear } from "date-fns";
import type { EndOfWeekOptions, StartOfWeekOptions, FormatOptions as DateFnsFormatOptions } from "date-fns";
import type { EndOfWeekOptions, StartOfWeekOptions, FormatOptions as DateFnsFormatOptions, GetWeekOptions, Interval } from "date-fns";
import type { Locale } from "date-fns/locale";
import { endOfBroadcastWeek } from "../helpers/endOfBroadcastWeek.js";
import { startOfBroadcastWeek } from "../helpers/startOfBroadcastWeek.js";
import { Numerals } from "../types/shared.js";

@@ -48,4 +45,3 @@ export type { Locale } from "date-fns/locale";

* A wrapper class around [date-fns](http://date-fns.org) sharing the same
* options. Methods of this class can be overridden using the
* {@link PropsBase.dateLib} prop.
* options.
*

@@ -119,3 +115,3 @@ * @since 9.2.0

*/
addDays: typeof addDays;
addDays: (date: Date, amount: number) => Date;
/**

@@ -128,3 +124,3 @@ * Adds the specified number of months to the given date.

*/
addMonths: typeof addMonths;
addMonths: (date: Date, amount: number) => Date;
/**

@@ -137,3 +133,3 @@ * Adds the specified number of weeks to the given date.

*/
addWeeks: typeof addWeeks;
addWeeks: (date: Date, amount: number) => Date;
/**

@@ -146,3 +142,3 @@ * Adds the specified number of years to the given date.

*/
addYears: typeof addYears;
addYears: (date: Date, amount: number) => Date;
/**

@@ -155,3 +151,3 @@ * Returns the number of calendar days between the given dates.

*/
differenceInCalendarDays: typeof differenceInCalendarDays;
differenceInCalendarDays: (dateLeft: Date, dateRight: Date) => number;
/**

@@ -164,3 +160,3 @@ * Returns the number of calendar months between the given dates.

*/
differenceInCalendarMonths: typeof differenceInCalendarMonths;
differenceInCalendarMonths: (dateLeft: Date, dateRight: Date) => number;
/**

@@ -171,3 +167,3 @@ * Returns the months between the given dates.

*/
eachMonthOfInterval: typeof eachMonthOfInterval;
eachMonthOfInterval: (interval: Interval<Date>) => Date[];
/**

@@ -179,3 +175,3 @@ * Returns the end of the broadcast week for the given date.

*/
endOfBroadcastWeek: typeof endOfBroadcastWeek;
endOfBroadcastWeek: (date: Date, dateLib?: DateLib) => Date;
/**

@@ -187,3 +183,3 @@ * Returns the end of the ISO week for the given date.

*/
endOfISOWeek: typeof endOfISOWeek;
endOfISOWeek: (date: Date) => Date;
/**

@@ -195,3 +191,3 @@ * Returns the end of the month for the given date.

*/
endOfMonth: typeof endOfMonth;
endOfMonth: (date: Date) => Date;
/**

@@ -203,3 +199,3 @@ * Returns the end of the week for the given date.

*/
endOfWeek: typeof endOfWeek;
endOfWeek: (date: Date, options?: EndOfWeekOptions<Date>) => Date;
/**

@@ -211,3 +207,3 @@ * Returns the end of the year for the given date.

*/
endOfYear: typeof endOfYear;
endOfYear: (date: Date) => Date;
/**

@@ -220,3 +216,3 @@ * Formats the given date using the specified format string.

*/
format: typeof format;
format: (date: Date, formatStr: string, options?: DateFnsFormatOptions) => string;
/**

@@ -228,3 +224,3 @@ * Returns the ISO week number for the given date.

*/
getISOWeek: typeof getISOWeek;
getISOWeek: (date: Date) => number;
/**

@@ -236,3 +232,3 @@ * Returns the month of the given date.

*/
getMonth: typeof getMonth;
getMonth: (date: Date) => number;
/**

@@ -244,3 +240,3 @@ * Returns the year of the given date.

*/
getYear: typeof getYear;
getYear: (date: Date) => number;
/**

@@ -252,3 +248,3 @@ * Returns the local week number for the given date.

*/
getWeek: typeof getWeek;
getWeek: (date: Date, options?: GetWeekOptions) => number;
/**

@@ -261,3 +257,3 @@ * Checks if the first date is after the second date.

*/
isAfter: typeof isAfter;
isAfter: (date: Date, dateToCompare: Date) => boolean;
/**

@@ -270,3 +266,3 @@ * Checks if the first date is before the second date.

*/
isBefore: typeof isBefore;
isBefore: (date: Date, dateToCompare: Date) => boolean;
/**

@@ -286,3 +282,3 @@ * Checks if the given value is a Date object.

*/
isSameDay: typeof isSameDay;
isSameDay: (dateLeft: Date, dateRight: Date) => boolean;
/**

@@ -295,3 +291,3 @@ * Checks if the given dates are in the same month.

*/
isSameMonth: typeof isSameMonth;
isSameMonth: (dateLeft: Date, dateRight: Date) => boolean;
/**

@@ -304,3 +300,3 @@ * Checks if the given dates are in the same year.

*/
isSameYear: typeof isSameYear;
isSameYear: (dateLeft: Date, dateRight: Date) => boolean;
/**

@@ -312,3 +308,3 @@ * Returns the latest date in the given array of dates.

*/
max: typeof max;
max: (dates: Date[]) => Date;
/**

@@ -320,3 +316,3 @@ * Returns the earliest date in the given array of dates.

*/
min: typeof min;
min: (dates: Date[]) => Date;
/**

@@ -329,3 +325,3 @@ * Sets the month of the given date.

*/
setMonth: typeof setMonth;
setMonth: (date: Date, month: number) => Date;
/**

@@ -338,3 +334,3 @@ * Sets the year of the given date.

*/
setYear: typeof setYear;
setYear: (date: Date, year: number) => Date;
/**

@@ -346,3 +342,3 @@ * Returns the start of the broadcast week for the given date.

*/
startOfBroadcastWeek: typeof startOfBroadcastWeek;
startOfBroadcastWeek: (date: Date, dateLib?: DateLib) => Date;
/**

@@ -354,3 +350,3 @@ * Returns the start of the day for the given date.

*/
startOfDay: typeof startOfDay;
startOfDay: (date: Date) => Date;
/**

@@ -362,3 +358,3 @@ * Returns the start of the ISO week for the given date.

*/
startOfISOWeek: typeof startOfISOWeek;
startOfISOWeek: (date: Date) => Date;
/**

@@ -370,3 +366,3 @@ * Returns the start of the month for the given date.

*/
startOfMonth: typeof startOfMonth;
startOfMonth: (date: Date) => Date;
/**

@@ -378,3 +374,3 @@ * Returns the start of the week for the given date.

*/
startOfWeek: typeof startOfWeek;
startOfWeek: (date: Date) => Date;
/**

@@ -386,3 +382,3 @@ * Returns the start of the year for the given date.

*/
startOfYear: typeof startOfYear;
startOfYear: (date: Date) => Date;
}

@@ -389,0 +385,0 @@ /** The default locale (English). */

@@ -8,4 +8,3 @@ import { TZDate } from "@date-fns/tz";

* A wrapper class around [date-fns](http://date-fns.org) sharing the same
* options. Methods of this class can be overridden using the
* {@link PropsBase.dateLib} prop.
* options.
*

@@ -72,5 +71,3 @@ * @since 9.2.0

this.addDays = (date, amount) => {
return this.overrides?.addDays
? this.overrides.addDays(date, amount)
: addDays(date, amount);
return this.overrides?.addDays?.(date, amount) ?? addDays(date, amount);
};

@@ -85,5 +82,3 @@ /**

this.addMonths = (date, amount) => {
return this.overrides?.addMonths
? this.overrides.addMonths(date, amount)
: addMonths(date, amount);
return this.overrides?.addMonths?.(date, amount) ?? addMonths(date, amount);
};

@@ -98,5 +93,3 @@ /**

this.addWeeks = (date, amount) => {
return this.overrides?.addWeeks
? this.overrides.addWeeks(date, amount)
: addWeeks(date, amount);
return this.overrides?.addWeeks?.(date, amount) ?? addWeeks(date, amount);
};

@@ -111,5 +104,3 @@ /**

this.addYears = (date, amount) => {
return this.overrides?.addYears
? this.overrides.addYears(date, amount)
: addYears(date, amount);
return this.overrides?.addYears?.(date, amount) ?? addYears(date, amount);
};

@@ -124,5 +115,4 @@ /**

this.differenceInCalendarDays = (dateLeft, dateRight) => {
return this.overrides?.differenceInCalendarDays
? this.overrides.differenceInCalendarDays(dateLeft, dateRight)
: differenceInCalendarDays(dateLeft, dateRight);
return (this.overrides?.differenceInCalendarDays?.(dateLeft, dateRight) ??
differenceInCalendarDays(dateLeft, dateRight));
};

@@ -137,5 +127,4 @@ /**

this.differenceInCalendarMonths = (dateLeft, dateRight) => {
return this.overrides?.differenceInCalendarMonths
? this.overrides.differenceInCalendarMonths(dateLeft, dateRight)
: differenceInCalendarMonths(dateLeft, dateRight);
return (this.overrides?.differenceInCalendarMonths?.(dateLeft, dateRight) ??
differenceInCalendarMonths(dateLeft, dateRight));
};

@@ -148,5 +137,4 @@ /**

this.eachMonthOfInterval = (interval) => {
return this.overrides?.eachMonthOfInterval
? this.overrides.eachMonthOfInterval(interval)
: eachMonthOfInterval(interval);
return (this.overrides?.eachMonthOfInterval?.(interval) ??
eachMonthOfInterval(interval));
};

@@ -159,6 +147,5 @@ /**

*/
this.endOfBroadcastWeek = (date) => {
return this.overrides?.endOfBroadcastWeek
? this.overrides.endOfBroadcastWeek(date, this)
: endOfBroadcastWeek(date, this);
this.endOfBroadcastWeek = (date, dateLib) => {
return (this.overrides?.endOfBroadcastWeek?.(date, dateLib) ??
endOfBroadcastWeek(date, this));
};

@@ -172,5 +159,3 @@ /**

this.endOfISOWeek = (date) => {
return this.overrides?.endOfISOWeek
? this.overrides.endOfISOWeek(date)
: endOfISOWeek(date);
return this.overrides?.endOfISOWeek?.(date) ?? endOfISOWeek(date);
};

@@ -184,5 +169,3 @@ /**

this.endOfMonth = (date) => {
return this.overrides?.endOfMonth
? this.overrides.endOfMonth(date)
: endOfMonth(date);
return this.overrides?.endOfMonth?.(date) ?? endOfMonth(date);
};

@@ -195,6 +178,5 @@ /**

*/
this.endOfWeek = (date) => {
return this.overrides?.endOfWeek
? this.overrides.endOfWeek(date, this.options)
: endOfWeek(date, this.options);
this.endOfWeek = (date, options) => {
return (this.overrides?.endOfWeek?.(date, options ?? this.options) ??
endOfWeek(date, options ?? this.options));
};

@@ -208,5 +190,3 @@ /**

this.endOfYear = (date) => {
return this.overrides?.endOfYear
? this.overrides.endOfYear(date)
: endOfYear(date);
return this.overrides?.endOfYear?.(date) ?? endOfYear(date);
};

@@ -220,6 +200,5 @@ /**

*/
this.format = (date, formatStr) => {
const formatted = this.overrides?.format
? this.overrides.format(date, formatStr, this.options)
: format(date, formatStr, this.options);
this.format = (date, formatStr, options) => {
const formatted = this.overrides?.format?.(date, formatStr, options ?? this.options) ??
format(date, formatStr, options ?? this.options);
if (this.options.numerals && this.options.numerals !== "latn") {

@@ -237,5 +216,3 @@ return this.replaceDigits(formatted);

this.getISOWeek = (date) => {
return this.overrides?.getISOWeek
? this.overrides.getISOWeek(date)
: getISOWeek(date);
return this.overrides?.getISOWeek?.(date) ?? getISOWeek(date);
};

@@ -249,5 +226,3 @@ /**

this.getMonth = (date) => {
return this.overrides?.getMonth
? this.overrides.getMonth(date, this.options)
: getMonth(date, this.options);
return this.overrides?.getMonth?.(date) ?? getMonth(date);
};

@@ -261,5 +236,3 @@ /**

this.getYear = (date) => {
return this.overrides?.getYear
? this.overrides.getYear(date, this.options)
: getYear(date, this.options);
return this.overrides?.getYear?.(date) ?? getYear(date);
};

@@ -272,6 +245,5 @@ /**

*/
this.getWeek = (date) => {
return this.overrides?.getWeek
? this.overrides.getWeek(date, this.options)
: getWeek(date, this.options);
this.getWeek = (date, options) => {
return (this.overrides?.getWeek?.(date, options ?? this.options) ??
getWeek(date, options ?? this.options));
};

@@ -286,5 +258,4 @@ /**

this.isAfter = (date, dateToCompare) => {
return this.overrides?.isAfter
? this.overrides.isAfter(date, dateToCompare)
: isAfter(date, dateToCompare);
return (this.overrides?.isAfter?.(date, dateToCompare) ??
isAfter(date, dateToCompare));
};

@@ -299,5 +270,4 @@ /**

this.isBefore = (date, dateToCompare) => {
return this.overrides?.isBefore
? this.overrides.isBefore(date, dateToCompare)
: isBefore(date, dateToCompare);
return (this.overrides?.isBefore?.(date, dateToCompare) ??
isBefore(date, dateToCompare));
};

@@ -311,5 +281,3 @@ /**

this.isDate = (value) => {
return this.overrides?.isDate
? this.overrides.isDate(value)
: isDate(value);
return this.overrides?.isDate?.(value) ?? isDate(value);
};

@@ -324,5 +292,4 @@ /**

this.isSameDay = (dateLeft, dateRight) => {
return this.overrides?.isSameDay
? this.overrides.isSameDay(dateLeft, dateRight)
: isSameDay(dateLeft, dateRight);
return (this.overrides?.isSameDay?.(dateLeft, dateRight) ??
isSameDay(dateLeft, dateRight));
};

@@ -337,5 +304,4 @@ /**

this.isSameMonth = (dateLeft, dateRight) => {
return this.overrides?.isSameMonth
? this.overrides.isSameMonth(dateLeft, dateRight)
: isSameMonth(dateLeft, dateRight);
return (this.overrides?.isSameMonth?.(dateLeft, dateRight) ??
isSameMonth(dateLeft, dateRight));
};

@@ -350,5 +316,4 @@ /**

this.isSameYear = (dateLeft, dateRight) => {
return this.overrides?.isSameYear
? this.overrides.isSameYear(dateLeft, dateRight)
: isSameYear(dateLeft, dateRight);
return (this.overrides?.isSameYear?.(dateLeft, dateRight) ??
isSameYear(dateLeft, dateRight));
};

@@ -362,3 +327,3 @@ /**

this.max = (dates) => {
return this.overrides?.max ? this.overrides.max(dates) : max(dates);
return this.overrides?.max?.(dates) ?? max(dates);
};

@@ -372,3 +337,3 @@ /**

this.min = (dates) => {
return this.overrides?.min ? this.overrides.min(dates) : min(dates);
return this.overrides?.min?.(dates) ?? min(dates);
};

@@ -383,5 +348,3 @@ /**

this.setMonth = (date, month) => {
return this.overrides?.setMonth
? this.overrides.setMonth(date, month)
: setMonth(date, month);
return this.overrides?.setMonth?.(date, month) ?? setMonth(date, month);
};

@@ -396,5 +359,3 @@ /**

this.setYear = (date, year) => {
return this.overrides?.setYear
? this.overrides.setYear(date, year)
: setYear(date, year);
return this.overrides?.setYear?.(date, year) ?? setYear(date, year);
};

@@ -407,6 +368,5 @@ /**

*/
this.startOfBroadcastWeek = (date) => {
return this.overrides?.startOfBroadcastWeek
? this.overrides.startOfBroadcastWeek(date, this)
: startOfBroadcastWeek(date, this);
this.startOfBroadcastWeek = (date, dateLib) => {
return (this.overrides?.startOfBroadcastWeek?.(date, dateLib ?? this) ??
startOfBroadcastWeek(date, dateLib ?? this));
};

@@ -420,5 +380,3 @@ /**

this.startOfDay = (date) => {
return this.overrides?.startOfDay
? this.overrides.startOfDay(date)
: startOfDay(date);
return this.overrides?.startOfDay?.(date) ?? startOfDay(date);
};

@@ -432,5 +390,3 @@ /**

this.startOfISOWeek = (date) => {
return this.overrides?.startOfISOWeek
? this.overrides.startOfISOWeek(date)
: startOfISOWeek(date);
return this.overrides?.startOfISOWeek?.(date) ?? startOfISOWeek(date);
};

@@ -444,5 +400,3 @@ /**

this.startOfMonth = (date) => {
return this.overrides?.startOfMonth
? this.overrides.startOfMonth(date)
: startOfMonth(date);
return this.overrides?.startOfMonth?.(date) ?? startOfMonth(date);
};

@@ -456,5 +410,3 @@ /**

this.startOfWeek = (date) => {
return this.overrides?.startOfWeek
? this.overrides.startOfWeek(date, this.options)
: startOfWeek(date, this.options);
return (this.overrides?.startOfWeek?.(date) ?? startOfWeek(date, this.options));
};

@@ -468,5 +420,3 @@ /**

this.startOfYear = (date) => {
return this.overrides?.startOfYear
? this.overrides.startOfYear(date)
: startOfYear(date);
return this.overrides?.startOfYear?.(date) ?? startOfYear(date);
};

@@ -473,0 +423,0 @@ this.options = { locale: enUS, ...options };

@@ -6,3 +6,3 @@ /** Return the start month based on the props passed to DayPicker. */

const { differenceInCalendarMonths, addMonths, startOfMonth } = dateLib;
// Fix the initialMonth if is after the to-date
// Fix the initialMonth if is after the endMonth
if (endMonth && differenceInCalendarMonths(endMonth, initialMonth) < 0) {

@@ -12,3 +12,3 @@ const offset = -1 * (numberOfMonths - 1);

}
// Fix the initialMonth if is before the from-date
// Fix the initialMonth if is before the startMonth
if (startMonth && differenceInCalendarMonths(initialMonth, startMonth) < 0) {

@@ -15,0 +15,0 @@ initialMonth = startMonth;

@@ -17,3 +17,5 @@ import { useEffect } from "react";

const initialMonth = getInitialMonth(props, dateLib);
const [firstMonth, setFirstMonth] = useControlledValue(initialMonth, props.month ? startOfMonth(props.month) : undefined);
const [firstMonth, setFirstMonth] = useControlledValue(initialMonth,
// initialMonth is always computed from props.month if provided
props.month ? initialMonth : undefined);
useEffect(() => {

@@ -20,0 +22,0 @@ const newInitialMonth = getInitialMonth(props, dateLib);

@@ -31,2 +31,3 @@ export * from "./AccessibleDatePicker";

export * from "./InputTime";
export * from "./InvalidMonth";
export * from "./ItalianLabels";

@@ -33,0 +34,0 @@ export * from "./ItalianLabels";

{
"name": "react-day-picker",
"version": "9.5.0",
"version": "9.5.1",
"description": "Customizable Date Picker for React",

@@ -193,15 +193,15 @@ "author": "Giampaolo Bellavite <io@gpbl.dev>",

"@jest/types": "^29.6.3",
"@swc/core": "^1.10.1",
"@swc/core": "^1.10.8",
"@swc/jest": "^0.2.37",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.1.0",
"@testing-library/user-event": "^14.5.2",
"@trivago/prettier-plugin-sort-imports": "^5.2.0",
"@testing-library/react": "^16.2.0",
"@testing-library/user-event": "^14.6.0",
"@trivago/prettier-plugin-sort-imports": "^5.2.1",
"@types/jest": "^29.5.14",
"@types/node": "^22.10.2",
"@types/react": "^19.0.2",
"@types/react-dom": "^19.0.2",
"@typescript-eslint/eslint-plugin": "^8.18.2",
"@typescript-eslint/parser": "^8.18.2",
"@types/node": "^22.10.7",
"@types/react": "^19.0.7",
"@types/react-dom": "^19.0.3",
"@typescript-eslint/eslint-plugin": "^8.21.0",
"@typescript-eslint/parser": "^8.21.0",
"eslint": "^8.57.1",

@@ -211,15 +211,15 @@ "eslint-config-prettier": "^9.1.0",

"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest": "^28.10.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-react": "^7.37.3",
"eslint-plugin-jest": "^28.11.0",
"eslint-plugin-prettier": "^5.2.3",
"eslint-plugin-react": "^7.37.4",
"eslint-plugin-react-hooks": "^5.1.0",
"eslint-plugin-require-extensions": "^0.1.3",
"eslint-plugin-testing-library": "^6.5.0",
"html-validate": "^8.29.0",
"html-validate": "^9.1.3",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-transform-css": "^6.0.1",
"jest-transform-css": "^6.0.2",
"mockdate": "^3.0.5",
"prettier": "^3.4.2",
"prettier-plugin-jsdoc": "^1.3.0",
"prettier-plugin-jsdoc": "^1.3.2",
"react": "^19.0.0",

@@ -229,3 +229,3 @@ "react-dom": "^19.0.0",

"tslib": "^2.8.1",
"typescript": "~5.7.2",
"typescript": "~5.7.3",
"typescript-css-modules": "^1.0.4"

@@ -232,0 +232,0 @@ },

@@ -12,4 +12,4 @@ # React DayPicker

- 📅 Supports [selections](https://daypicker.dev/docs/selection-modes) of single days, multiple days, ranges of days, or [custom selections](https://daypicker.dev/guides/custom-selections).
- 🌍 Can be [localized](https://daypicker.dev/docs/localization) into any language and [time zones](https://daypicker.dev/docs/localization#time-zone).
- 🌐 Support for [ISO 8601](https://daypicker.dev/docs/localization#iso-week-dates), [Jalali](https://daypicker.dev/docs/localization#persian-calendar), and [broadcast](https://daypicker.dev/docs/localization#broadcast-calendar) calendar.
- 🌍 Can be [localized](https://daypicker.dev/docs/localization) into any language and [time zones](https://daypicker.dev/docs/time-zone).
- 🌐 Support for [ISO 8601](https://daypicker.dev/docs/localization#iso-week-dates), [Persian](https://daypicker.dev/docs/localization#persian-calendar), and [broadcast](https://daypicker.dev/docs/localization#broadcast-calendar) calendar.
- 🦮 Complies with WCAG 2.1 AA requirements for [accessibility](https://daypicker.dev/guides/accessibility).

@@ -16,0 +16,0 @@ - ⚙️ [Customizable components](https://daypicker.dev/guides/custom-components) to extend the rendered elements.

@@ -39,3 +39,4 @@ import { TZDate } from "@date-fns/tz";

FormatOptions as DateFnsFormatOptions,
DateArg
GetWeekOptions,
Interval
} from "date-fns";

@@ -47,3 +48,2 @@ import type { Locale } from "date-fns/locale";

import { startOfBroadcastWeek } from "../helpers/startOfBroadcastWeek.js";
import type { PropsBase } from "../types/props.js";
import { Numerals } from "../types/shared.js";

@@ -98,4 +98,3 @@

* A wrapper class around [date-fns](http://date-fns.org) sharing the same
* options. Methods of this class can be overridden using the
* {@link PropsBase.dateLib} prop.
* options.
*

@@ -220,6 +219,4 @@ * @since 9.2.0

*/
addDays: typeof addDays = (date, amount) => {
return this.overrides?.addDays
? this.overrides.addDays(date, amount)
: addDays(date, amount);
addDays = (date: Date, amount: number): Date => {
return this.overrides?.addDays?.(date, amount) ?? addDays(date, amount);
};

@@ -234,6 +231,4 @@

*/
addMonths: typeof addMonths = (date, amount) => {
return this.overrides?.addMonths
? this.overrides.addMonths(date, amount)
: addMonths(date, amount);
addMonths = (date: Date, amount: number): Date => {
return this.overrides?.addMonths?.(date, amount) ?? addMonths(date, amount);
};

@@ -248,6 +243,4 @@

*/
addWeeks: typeof addWeeks = (date, amount) => {
return this.overrides?.addWeeks
? this.overrides.addWeeks(date, amount)
: addWeeks(date, amount);
addWeeks = (date: Date, amount: number): Date => {
return this.overrides?.addWeeks?.(date, amount) ?? addWeeks(date, amount);
};

@@ -262,6 +255,4 @@

*/
addYears: typeof addYears = (date, amount) => {
return this.overrides?.addYears
? this.overrides.addYears(date, amount)
: addYears(date, amount);
addYears = (date: Date, amount: number): Date => {
return this.overrides?.addYears?.(date, amount) ?? addYears(date, amount);
};

@@ -276,9 +267,7 @@

*/
differenceInCalendarDays: typeof differenceInCalendarDays = (
dateLeft,
dateRight
) => {
return this.overrides?.differenceInCalendarDays
? this.overrides.differenceInCalendarDays(dateLeft, dateRight)
: differenceInCalendarDays(dateLeft, dateRight);
differenceInCalendarDays = (dateLeft: Date, dateRight: Date): number => {
return (
this.overrides?.differenceInCalendarDays?.(dateLeft, dateRight) ??
differenceInCalendarDays(dateLeft, dateRight)
);
};

@@ -293,9 +282,7 @@

*/
differenceInCalendarMonths: typeof differenceInCalendarMonths = (
dateLeft,
dateRight
) => {
return this.overrides?.differenceInCalendarMonths
? this.overrides.differenceInCalendarMonths(dateLeft, dateRight)
: differenceInCalendarMonths(dateLeft, dateRight);
differenceInCalendarMonths = (dateLeft: Date, dateRight: Date): number => {
return (
this.overrides?.differenceInCalendarMonths?.(dateLeft, dateRight) ??
differenceInCalendarMonths(dateLeft, dateRight)
);
};

@@ -308,6 +295,7 @@

*/
eachMonthOfInterval: typeof eachMonthOfInterval = (interval) => {
return this.overrides?.eachMonthOfInterval
? this.overrides.eachMonthOfInterval(interval)
: eachMonthOfInterval(interval);
eachMonthOfInterval = (interval: Interval<Date>): Date[] => {
return (
this.overrides?.eachMonthOfInterval?.(interval) ??
eachMonthOfInterval(interval)
);
};

@@ -321,6 +309,7 @@

*/
endOfBroadcastWeek: typeof endOfBroadcastWeek = (date: Date) => {
return this.overrides?.endOfBroadcastWeek
? this.overrides.endOfBroadcastWeek(date, this)
: endOfBroadcastWeek(date, this);
endOfBroadcastWeek = (date: Date, dateLib?: DateLib): Date => {
return (
this.overrides?.endOfBroadcastWeek?.(date, dateLib) ??
endOfBroadcastWeek(date, this)
);
};

@@ -334,6 +323,4 @@

*/
endOfISOWeek: typeof endOfISOWeek = (date) => {
return this.overrides?.endOfISOWeek
? this.overrides.endOfISOWeek(date)
: endOfISOWeek(date);
endOfISOWeek = (date: Date): Date => {
return this.overrides?.endOfISOWeek?.(date) ?? endOfISOWeek(date);
};

@@ -347,6 +334,4 @@

*/
endOfMonth: typeof endOfMonth = (date) => {
return this.overrides?.endOfMonth
? this.overrides.endOfMonth(date)
: endOfMonth(date);
endOfMonth = (date: Date): Date => {
return this.overrides?.endOfMonth?.(date) ?? endOfMonth(date);
};

@@ -360,14 +345,7 @@

*/
endOfWeek: typeof endOfWeek = <
DateType extends Date,
ResultDate extends Date = DateType
>(
date: DateArg<DateType>
): ResultDate => {
return this.overrides?.endOfWeek
? this.overrides.endOfWeek(
date,
this.options as EndOfWeekOptions<ResultDate>
)
: endOfWeek(date, this.options as EndOfWeekOptions<ResultDate>);
endOfWeek = (date: Date, options?: EndOfWeekOptions<Date>): Date => {
return (
this.overrides?.endOfWeek?.(date, options ?? this.options) ??
endOfWeek(date, options ?? this.options)
);
};

@@ -381,6 +359,4 @@

*/
endOfYear: typeof endOfYear = (date) => {
return this.overrides?.endOfYear
? this.overrides.endOfYear(date)
: endOfYear(date);
endOfYear = (date: Date): Date => {
return this.overrides?.endOfYear?.(date) ?? endOfYear(date);
};

@@ -395,6 +371,11 @@

*/
format: typeof format = (date, formatStr) => {
const formatted = this.overrides?.format
? this.overrides.format(date, formatStr, this.options)
: format(date, formatStr, this.options);
format = (
date: Date,
formatStr: string,
options?: DateFnsFormatOptions
): string => {
const formatted =
this.overrides?.format?.(date, formatStr, options ?? this.options) ??
format(date, formatStr, options ?? this.options);
if (this.options.numerals && this.options.numerals !== "latn") {

@@ -412,6 +393,4 @@ return this.replaceDigits(formatted);

*/
getISOWeek: typeof getISOWeek = (date) => {
return this.overrides?.getISOWeek
? this.overrides.getISOWeek(date)
: getISOWeek(date);
getISOWeek = (date: Date): number => {
return this.overrides?.getISOWeek?.(date) ?? getISOWeek(date);
};

@@ -425,6 +404,4 @@

*/
getMonth: typeof getMonth = (date) => {
return this.overrides?.getMonth
? this.overrides.getMonth(date, this.options)
: getMonth(date, this.options);
getMonth = (date: Date): number => {
return this.overrides?.getMonth?.(date) ?? getMonth(date);
};

@@ -438,6 +415,4 @@

*/
getYear: typeof getYear = (date) => {
return this.overrides?.getYear
? this.overrides.getYear(date, this.options)
: getYear(date, this.options);
getYear = (date: Date): number => {
return this.overrides?.getYear?.(date) ?? getYear(date);
};

@@ -451,6 +426,7 @@

*/
getWeek: typeof getWeek = (date) => {
return this.overrides?.getWeek
? this.overrides.getWeek(date, this.options)
: getWeek(date, this.options);
getWeek = (date: Date, options?: GetWeekOptions): number => {
return (
this.overrides?.getWeek?.(date, options ?? this.options) ??
getWeek(date, options ?? this.options)
);
};

@@ -465,6 +441,7 @@

*/
isAfter: typeof isAfter = (date, dateToCompare) => {
return this.overrides?.isAfter
? this.overrides.isAfter(date, dateToCompare)
: isAfter(date, dateToCompare);
isAfter = (date: Date, dateToCompare: Date): boolean => {
return (
this.overrides?.isAfter?.(date, dateToCompare) ??
isAfter(date, dateToCompare)
);
};

@@ -479,6 +456,7 @@

*/
isBefore: typeof isBefore = (date, dateToCompare) => {
return this.overrides?.isBefore
? this.overrides.isBefore(date, dateToCompare)
: isBefore(date, dateToCompare);
isBefore = (date: Date, dateToCompare: Date): boolean => {
return (
this.overrides?.isBefore?.(date, dateToCompare) ??
isBefore(date, dateToCompare)
);
};

@@ -493,5 +471,3 @@

isDate: (value: unknown) => value is Date = (value): value is Date => {
return this.overrides?.isDate
? this.overrides.isDate(value)
: isDate(value);
return this.overrides?.isDate?.(value) ?? isDate(value);
};

@@ -506,6 +482,7 @@

*/
isSameDay: typeof isSameDay = (dateLeft, dateRight) => {
return this.overrides?.isSameDay
? this.overrides.isSameDay(dateLeft, dateRight)
: isSameDay(dateLeft, dateRight);
isSameDay = (dateLeft: Date, dateRight: Date): boolean => {
return (
this.overrides?.isSameDay?.(dateLeft, dateRight) ??
isSameDay(dateLeft, dateRight)
);
};

@@ -520,6 +497,7 @@

*/
isSameMonth: typeof isSameMonth = (dateLeft, dateRight) => {
return this.overrides?.isSameMonth
? this.overrides.isSameMonth(dateLeft, dateRight)
: isSameMonth(dateLeft, dateRight);
isSameMonth = (dateLeft: Date, dateRight: Date): boolean => {
return (
this.overrides?.isSameMonth?.(dateLeft, dateRight) ??
isSameMonth(dateLeft, dateRight)
);
};

@@ -534,6 +512,7 @@

*/
isSameYear: typeof isSameYear = (dateLeft, dateRight) => {
return this.overrides?.isSameYear
? this.overrides.isSameYear(dateLeft, dateRight)
: isSameYear(dateLeft, dateRight);
isSameYear = (dateLeft: Date, dateRight: Date): boolean => {
return (
this.overrides?.isSameYear?.(dateLeft, dateRight) ??
isSameYear(dateLeft, dateRight)
);
};

@@ -547,4 +526,4 @@

*/
max: typeof max = (dates) => {
return this.overrides?.max ? this.overrides.max(dates) : max(dates);
max = (dates: Date[]): Date => {
return this.overrides?.max?.(dates) ?? max(dates);
};

@@ -558,4 +537,4 @@

*/
min: typeof min = (dates) => {
return this.overrides?.min ? this.overrides.min(dates) : min(dates);
min = (dates: Date[]): Date => {
return this.overrides?.min?.(dates) ?? min(dates);
};

@@ -570,6 +549,4 @@

*/
setMonth: typeof setMonth = (date, month) => {
return this.overrides?.setMonth
? this.overrides.setMonth(date, month)
: setMonth(date, month);
setMonth = (date: Date, month: number): Date => {
return this.overrides?.setMonth?.(date, month) ?? setMonth(date, month);
};

@@ -584,6 +561,4 @@

*/
setYear: typeof setYear = (date, year) => {
return this.overrides?.setYear
? this.overrides.setYear(date, year)
: setYear(date, year);
setYear = (date: Date, year: number): Date => {
return this.overrides?.setYear?.(date, year) ?? setYear(date, year);
};

@@ -597,6 +572,7 @@

*/
startOfBroadcastWeek: typeof startOfBroadcastWeek = (date: Date) => {
return this.overrides?.startOfBroadcastWeek
? this.overrides.startOfBroadcastWeek(date, this)
: startOfBroadcastWeek(date, this);
startOfBroadcastWeek = (date: Date, dateLib?: DateLib): Date => {
return (
this.overrides?.startOfBroadcastWeek?.(date, dateLib ?? this) ??
startOfBroadcastWeek(date, dateLib ?? this)
);
};

@@ -610,6 +586,4 @@

*/
startOfDay: typeof startOfDay = (date) => {
return this.overrides?.startOfDay
? this.overrides.startOfDay(date)
: startOfDay(date);
startOfDay = (date: Date): Date => {
return this.overrides?.startOfDay?.(date) ?? startOfDay(date);
};

@@ -623,6 +597,4 @@

*/
startOfISOWeek: typeof startOfISOWeek = (date) => {
return this.overrides?.startOfISOWeek
? this.overrides.startOfISOWeek(date)
: startOfISOWeek(date);
startOfISOWeek = (date: Date): Date => {
return this.overrides?.startOfISOWeek?.(date) ?? startOfISOWeek(date);
};

@@ -636,6 +608,4 @@

*/
startOfMonth: typeof startOfMonth = (date) => {
return this.overrides?.startOfMonth
? this.overrides.startOfMonth(date)
: startOfMonth(date);
startOfMonth = (date: Date): Date => {
return this.overrides?.startOfMonth?.(date) ?? startOfMonth(date);
};

@@ -649,14 +619,6 @@

*/
startOfWeek: typeof startOfWeek = <
DateType extends Date,
ResultDate extends Date = DateType
>(
date: DateArg<DateType>
): ResultDate => {
return this.overrides?.startOfWeek
? this.overrides.startOfWeek(
date,
this.options as StartOfWeekOptions<ResultDate>
)
: startOfWeek(date, this.options as StartOfWeekOptions<ResultDate>);
startOfWeek = (date: Date): Date => {
return (
this.overrides?.startOfWeek?.(date) ?? startOfWeek(date, this.options)
);
};

@@ -670,6 +632,4 @@

*/
startOfYear: typeof startOfYear = (date) => {
return this.overrides?.startOfYear
? this.overrides.startOfYear(date)
: startOfYear(date);
startOfYear = (date: Date): Date => {
return this.overrides?.startOfYear?.(date) ?? startOfYear(date);
};

@@ -676,0 +636,0 @@ }

@@ -1,2 +0,2 @@

import { addMonths, isSameMonth } from "date-fns";
import { addMonths, isSameDay, isSameMonth, startOfMonth } from "date-fns";

@@ -7,27 +7,52 @@ import { defaultDateLib } from "../classes/DateLib";

describe("when no endMonth is given", () => {
it("return start of month", () => {
const month = new Date(2010, 11, 12);
const initialMonth = getInitialMonth({ month }, defaultDateLib);
expect(isSameDay(initialMonth, startOfMonth(month))).toBe(true);
});
describe("when no startMonth or endMonth is given", () => {
const month = new Date(2010, 11, 12);
const defaultMonth = new Date(2011, 11, 12);
const today = new Date(2012, 11, 12);
describe("when month is in context", () => {
const month = new Date(2010, 11, 12);
it("return that month", () => {
const startMonth = getInitialMonth({ month }, defaultDateLib);
expect(isSameMonth(startMonth, month)).toBe(true);
const initialMonth = getInitialMonth(
{ month, defaultMonth, today },
defaultDateLib
);
expect(isSameMonth(initialMonth, month)).toBe(true);
});
});
describe("when defaultMonth is in context", () => {
const defaultMonth = new Date(2010, 11, 12);
describe("when defaultMonth is in context and no month is given", () => {
it("return that month", () => {
const startMonth = getInitialMonth({ defaultMonth }, defaultDateLib);
expect(isSameMonth(startMonth, defaultMonth)).toBe(true);
const initialMonth = getInitialMonth(
{ defaultMonth, today },
defaultDateLib
);
expect(isSameMonth(initialMonth, defaultMonth)).toBe(true);
});
});
describe("when no month or defaultMonth", () => {
const today = new Date(2010, 11, 12);
it("return the today month", () => {
const startMonth = getInitialMonth({ today }, defaultDateLib);
expect(isSameMonth(startMonth, today)).toBe(true);
const initialMonth = getInitialMonth({ today }, defaultDateLib);
expect(isSameMonth(initialMonth, today)).toBe(true);
});
});
});
describe("when startMonth is given and is after the default initial month", () => {
it("return the startMonth", () => {
const month = new Date(2010, 11, 12);
const startMonth = addMonths(month, 1);
const initialMonth = getInitialMonth(
{ month, numberOfMonths: 3, startMonth },
defaultDateLib
);
expect(isSameMonth(initialMonth, startMonth)).toBe(true);
});
});
describe("when endMonth is given", () => {
describe("when endMonth is before the default initial date", () => {
describe("when endMonth is before the default initial month", () => {
const month = new Date(2010, 11, 12);

@@ -37,4 +62,7 @@ const endMonth = addMonths(month, -2);

it("return the endMonth", () => {
const startMonth = getInitialMonth({ month, endMonth }, defaultDateLib);
expect(isSameMonth(startMonth, endMonth)).toBe(true);
const initialMonth = getInitialMonth(
{ month, endMonth },
defaultDateLib
);
expect(isSameMonth(initialMonth, endMonth)).toBe(true);
});

@@ -44,3 +72,3 @@ });

it("return the endMonth plus the number of months", () => {
const startMonth = getInitialMonth(
const initialMonth = getInitialMonth(
{ month, numberOfMonths: 3, endMonth },

@@ -50,3 +78,3 @@ defaultDateLib

const expectedMonth = addMonths(endMonth, -1 * (3 - 1));
expect(isSameMonth(startMonth, expectedMonth)).toBe(true);
expect(isSameMonth(initialMonth, expectedMonth)).toBe(true);
});

@@ -53,0 +81,0 @@ });

@@ -31,3 +31,3 @@ import { type DateLib } from "../classes/DateLib.js";

// Fix the initialMonth if is after the to-date
// Fix the initialMonth if is after the endMonth
if (endMonth && differenceInCalendarMonths(endMonth, initialMonth) < 0) {

@@ -37,3 +37,3 @@ const offset = -1 * (numberOfMonths - 1);

}
// Fix the initialMonth if is before the from-date
// Fix the initialMonth if is before the startMonth
if (startMonth && differenceInCalendarMonths(initialMonth, startMonth) < 0) {

@@ -40,0 +40,0 @@ initialMonth = startMonth;

@@ -93,3 +93,3 @@ import {

const [, navEndMonth] = getNavMonths(props, defaultDateLib);
const endOfThisYear = startOfDay(endOfYear(new Date()));
const endOfThisYear = startOfDay(endOfYear(today));
expect(navEndMonth).toEqual(endOfThisYear);

@@ -109,3 +109,3 @@ });

const [, navEndMonth] = getNavMonths(props, defaultDateLib);
const endOfThisYear = startOfDay(endOfYear(new Date()));
const endOfThisYear = startOfDay(endOfYear(today));
expect(navEndMonth).toEqual(endOfThisYear);

@@ -112,0 +112,0 @@ });

@@ -99,3 +99,4 @@ import { useEffect } from "react";

initialMonth,
props.month ? startOfMonth(props.month) : undefined
// initialMonth is always computed from props.month if provided
props.month ? initialMonth : undefined
);

@@ -102,0 +103,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet