react-day-picker 9.3.0 → 9.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/formatters/formatMonthDropdown.d.ts +2 -1
- package/dist/cjs/formatters/formatMonthDropdown.js +1 -2
- package/dist/cjs/formatters/formatMonthDropdown.js.map +1 -1
- package/dist/cjs/helpers/getDates.d.ts +2 -0
- package/dist/cjs/helpers/getDates.js +5 -3
- package/dist/cjs/helpers/getDates.js.map +1 -1
- package/dist/cjs/helpers/getMonthOptions.d.ts +1 -1
- package/dist/cjs/helpers/getMonthOptions.js +2 -1
- package/dist/cjs/helpers/getMonthOptions.js.map +1 -1
- package/dist/cjs/helpers/getMonths.js +5 -2
- package/dist/cjs/helpers/getMonths.js.map +1 -1
- package/dist/cjs/types/deprecated.d.ts +7 -0
- package/dist/cjs/types/deprecated.js +0 -1
- package/dist/cjs/types/deprecated.js.map +1 -1
- package/dist/cjs/types/props.d.ts +5 -0
- package/dist/cjs/useGetModifiers.d.ts +2 -0
- package/dist/cjs/useGetModifiers.js +2 -17
- package/dist/cjs/useGetModifiers.js.map +1 -1
- package/dist/esm/formatters/formatMonthDropdown.d.ts +2 -1
- package/dist/esm/formatters/formatMonthDropdown.js +1 -2
- package/dist/esm/formatters/formatMonthDropdown.js.map +1 -1
- package/dist/esm/helpers/getDates.d.ts +2 -0
- package/dist/esm/helpers/getDates.js +3 -2
- package/dist/esm/helpers/getDates.js.map +1 -1
- package/dist/esm/helpers/getMonthOptions.d.ts +1 -1
- package/dist/esm/helpers/getMonthOptions.js +2 -1
- package/dist/esm/helpers/getMonthOptions.js.map +1 -1
- package/dist/esm/helpers/getMonths.js +5 -2
- package/dist/esm/helpers/getMonths.js.map +1 -1
- package/dist/esm/types/deprecated.d.ts +7 -0
- package/dist/esm/types/deprecated.js +0 -1
- package/dist/esm/types/deprecated.js.map +1 -1
- package/dist/esm/types/props.d.ts +5 -0
- package/dist/esm/useGetModifiers.d.ts +2 -0
- package/dist/esm/useGetModifiers.js +3 -18
- package/dist/esm/useGetModifiers.js.map +1 -1
- package/examples/TestCase2585.test.tsx +11 -0
- package/examples/TestCase2585.tsx +20 -0
- package/examples/__snapshots__/Range.test.tsx.snap +5 -5
- package/examples/index.ts +1 -0
- package/package.json +2 -2
- package/src/formatters/formatMonthDropdown.test.ts +5 -1
- package/src/formatters/formatMonthDropdown.ts +2 -3
- package/src/helpers/getDates.test.ts +30 -3
- package/src/helpers/getDates.ts +3 -2
- package/src/helpers/getMonthOptions.ts +5 -2
- package/src/helpers/getMonths.ts +6 -2
- package/src/types/deprecated.ts +15 -0
- package/src/types/props.ts +5 -0
- package/src/useGetModifiers.test.tsx +79 -0
- package/src/useGetModifiers.tsx +5 -21
- package/website/docs/upgrading.mdx +29 -28
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Locale } from "../classes/DateLib.js";
|
|
1
2
|
/**
|
|
2
3
|
* Format the month number for the dropdown option label.
|
|
3
4
|
*
|
|
@@ -9,4 +10,4 @@ export declare function formatMonthDropdown(
|
|
|
9
10
|
/** The month number to format. */
|
|
10
11
|
monthNumber: number,
|
|
11
12
|
/** The locale to use for formatting. */
|
|
12
|
-
locale
|
|
13
|
+
locale: Locale): string;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.formatMonthDropdown = formatMonthDropdown;
|
|
4
|
-
const DateLib_js_1 = require("../classes/DateLib.js");
|
|
5
4
|
/**
|
|
6
5
|
* Format the month number for the dropdown option label.
|
|
7
6
|
*
|
|
@@ -13,7 +12,7 @@ function formatMonthDropdown(
|
|
|
13
12
|
/** The month number to format. */
|
|
14
13
|
monthNumber,
|
|
15
14
|
/** The locale to use for formatting. */
|
|
16
|
-
locale
|
|
15
|
+
locale) {
|
|
17
16
|
return locale.localize?.month(monthNumber);
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=formatMonthDropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatMonthDropdown.js","sourceRoot":"","sources":["../../../src/formatters/formatMonthDropdown.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"formatMonthDropdown.js","sourceRoot":"","sources":["../../../src/formatters/formatMonthDropdown.ts"],"names":[],"mappings":";;AASA,kDAOC;AAdD;;;;;;GAMG;AACH,SAAgB,mBAAmB;AACjC,kCAAkC;AAClC,WAAmB;AACnB,wCAAwC;AACxC,MAAc;IAEd,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,WAA2B,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type DateLib } from "../classes/DateLib.js";
|
|
2
2
|
import { type DayPickerProps } from "../types/props.js";
|
|
3
|
+
/** The number of days in a month when having 6 weeks. */
|
|
4
|
+
export declare const NrOfDaysWithFixedWeeks = 42;
|
|
3
5
|
/** Return all the dates to display in the calendar. */
|
|
4
6
|
export declare function getDates(displayMonths: Date[], maxDate: Date | undefined, props: Pick<DayPickerProps, "ISOWeek" | "fixedWeeks">, dateLib: DateLib): Date[];
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NrOfDaysWithFixedWeeks = void 0;
|
|
3
4
|
exports.getDates = getDates;
|
|
4
5
|
/** The number of days in a month when having 6 weeks. */
|
|
5
|
-
|
|
6
|
+
exports.NrOfDaysWithFixedWeeks = 42;
|
|
6
7
|
/** Return all the dates to display in the calendar. */
|
|
7
8
|
function getDates(displayMonths, maxDate, props, dateLib) {
|
|
8
9
|
const firstMonth = displayMonths[0];
|
|
@@ -26,9 +27,10 @@ function getDates(displayMonths, maxDate, props, dateLib) {
|
|
|
26
27
|
dates.push(date);
|
|
27
28
|
}
|
|
28
29
|
// If fixed weeks is enabled, add the extra dates to the array
|
|
29
|
-
const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
|
|
30
|
+
const extraDates = exports.NrOfDaysWithFixedWeeks * nOfMonths;
|
|
30
31
|
if (fixedWeeks && dates.length < extraDates) {
|
|
31
|
-
|
|
32
|
+
const daysToAdd = extraDates - dates.length;
|
|
33
|
+
for (let i = 0; i < daysToAdd; i++) {
|
|
32
34
|
const date = addDays(dates[dates.length - 1], 1);
|
|
33
35
|
dates.push(date);
|
|
34
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDates.js","sourceRoot":"","sources":["../../../src/helpers/getDates.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getDates.js","sourceRoot":"","sources":["../../../src/helpers/getDates.ts"],"names":[],"mappings":";;;AAOA,4BAoDC;AAxDD,yDAAyD;AAC5C,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAEzC,uDAAuD;AACvD,SAAgB,QAAQ,CACtB,aAAqB,EACrB,OAAyB,EACzB,KAAqD,EACrD,OAAgB;IAEhB,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC5C,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,OAAO,EACP,wBAAwB,EACxB,0BAA0B,EAC1B,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IAEZ,MAAM,kBAAkB,GAAG,OAAO;QAChC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;QAC5B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,OAAO;QAC7B,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAExE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,8BAAsB,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type DateLib } from "../classes/DateLib.js";
|
|
2
2
|
import { DropdownOption } from "../components/Dropdown.js";
|
|
3
3
|
import type { Formatters } from "../types/index.js";
|
|
4
4
|
/** Return the months to show in the dropdown. */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getMonthOptions = getMonthOptions;
|
|
4
|
+
const DateLib_js_1 = require("../classes/DateLib.js");
|
|
4
5
|
/** Return the months to show in the dropdown. */
|
|
5
6
|
function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
|
|
6
7
|
if (!navStart)
|
|
@@ -19,7 +20,7 @@ function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
|
|
|
19
20
|
return a - b;
|
|
20
21
|
});
|
|
21
22
|
const options = sortedMonths.map((value) => {
|
|
22
|
-
const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
|
|
23
|
+
const label = formatters.formatMonthDropdown(value, dateLib.options.locale ?? DateLib_js_1.defaultLocale);
|
|
23
24
|
const month = dateLib.Date
|
|
24
25
|
? new dateLib.Date(year, value)
|
|
25
26
|
: new Date(year, value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMonthOptions.js","sourceRoot":"","sources":["../../../src/helpers/getMonthOptions.ts"],"names":[],"mappings":";;AAKA,
|
|
1
|
+
{"version":3,"file":"getMonthOptions.js","sourceRoot":"","sources":["../../../src/helpers/getMonthOptions.ts"],"names":[],"mappings":";;AAKA,0CAsCC;AA3CD,sDAAoE;AAIpE,iDAAiD;AACjD,SAAgB,eAAe,CAC7B,YAAkB,EAClB,QAA0B,EAC1B,MAAwB,EACxB,UAAmD,EACnD,OAAgB;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAC1C,KAAK,EACL,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,0BAAa,CACxC,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,QAAQ,GACZ,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getMonths = getMonths;
|
|
4
4
|
const index_js_1 = require("../classes/index.js");
|
|
5
|
+
const getDates_js_1 = require("./getDates.js");
|
|
5
6
|
/** Return the months to display in the calendar. */
|
|
6
7
|
function getMonths(
|
|
7
8
|
/** The months (as dates) to display in the calendar. */
|
|
@@ -22,9 +23,11 @@ props, dateLib) {
|
|
|
22
23
|
const monthDates = dates.filter((date) => {
|
|
23
24
|
return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
|
|
24
25
|
});
|
|
25
|
-
if (props.fixedWeeks && monthDates.length <
|
|
26
|
+
if (props.fixedWeeks && monthDates.length < getDates_js_1.NrOfDaysWithFixedWeeks) {
|
|
26
27
|
const extraDates = dates.filter((date) => {
|
|
27
|
-
|
|
28
|
+
const daysToAdd = getDates_js_1.NrOfDaysWithFixedWeeks - monthDates.length;
|
|
29
|
+
return (date > lastDateOfLastWeek &&
|
|
30
|
+
date <= addDays(lastDateOfLastWeek, daysToAdd));
|
|
28
31
|
});
|
|
29
32
|
monthDates.push(...extraDates);
|
|
30
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMonths.js","sourceRoot":"","sources":["../../../src/helpers/getMonths.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"getMonths.js","sourceRoot":"","sources":["../../../src/helpers/getMonths.ts"],"names":[],"mappings":";;AAOA,8BA0EC;AAhFD,kDAA+E;AAG/E,+CAAuD;AAEvD,oDAAoD;AACpD,SAAgB,SAAS;AACvB,wDAAwD;AACxD,aAAqB;AACrB,4CAA4C;AAC5C,KAAa;AACb,sCAAsC;AACtC,KAAuE,EACvE,OAAgB;IAEhB,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IACZ,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChB,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO;YACxC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;YACvB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvB,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO;YACtC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjC,yCAAyC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,OAAO,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,oCAAsB,EAAE,CAAC;YACnE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBACvC,MAAM,SAAS,GAAG,oCAAsB,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC7D,OAAO,CACL,IAAI,GAAG,kBAAkB;oBACzB,IAAI,IAAI,OAAO,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAC/C,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAmB,UAAU,CAAC,MAAM,CAC7C,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACd,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;YAElE,MAAM,GAAG,GAAG,IAAI,sBAAW,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,IAAI,uBAAY,CAAC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,EACD,EAAE,CACH,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,wBAAa,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEvD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,EAAE,CACH,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,eAAe,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;AACH,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DayFlag, SelectionState } from "../UI.js";
|
|
1
2
|
import { MonthCaption, type MonthCaptionProps } from "../components/MonthCaption.js";
|
|
2
3
|
import { Week, type WeekProps } from "../components/Week.js";
|
|
3
4
|
import { labelDayButton, labelNext, labelWeekday, labelWeekNumber } from "../labels/index.js";
|
|
@@ -75,6 +76,12 @@ export type DaySelectionMode = Mode;
|
|
|
75
76
|
* @protected
|
|
76
77
|
*/
|
|
77
78
|
export type Modifier = string;
|
|
79
|
+
/**
|
|
80
|
+
* @deprecated This type will be removed. Use {@link DayFlag} or
|
|
81
|
+
* {@link SelectionState} instead.
|
|
82
|
+
* @protected
|
|
83
|
+
*/
|
|
84
|
+
export type InternalModifier = DayFlag.disabled | DayFlag.hidden | DayFlag.focused | SelectionState.range_end | SelectionState.range_middle | SelectionState.range_start | SelectionState.selected;
|
|
78
85
|
/**
|
|
79
86
|
* @deprecated This type will be removed. Use `SelectHandler<"single">` instead.
|
|
80
87
|
* @protected
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useNavigation = exports.Row = exports.Caption = void 0;
|
|
4
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
4
|
const MonthCaption_js_1 = require("../components/MonthCaption.js");
|
|
6
5
|
const Week_js_1 = require("../components/Week.js");
|
|
7
6
|
const useDayPicker_js_1 = require("../useDayPicker.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/types/deprecated.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/types/deprecated.ts"],"names":[],"mappings":";;;AAEA,mEAGuC;AACvC,mDAA6D;AAO7D,wDAAkD;AAiBlD;;;;;GAKG;AACU,QAAA,OAAO,GAAG,8BAAY,CAAC;AAgBpC;;;;;GAKG;AACU,QAAA,GAAG,GAAG,cAAI,CAAC;AAmFxB;;;;GAIG;AACU,QAAA,aAAa,GAAG,8BAAY,CAAC"}
|
|
@@ -264,6 +264,11 @@ export interface PropsBase {
|
|
|
264
264
|
* @see https://daypicker.dev/guides/accessibility#autofocus
|
|
265
265
|
*/
|
|
266
266
|
autoFocus?: boolean;
|
|
267
|
+
/**
|
|
268
|
+
* @private
|
|
269
|
+
* @deprecated This prop will be removed. Use {@link autoFocus} instead.
|
|
270
|
+
*/
|
|
271
|
+
initialFocus?: boolean;
|
|
267
272
|
/**
|
|
268
273
|
* Apply the `disabled` modifier to the matching days.
|
|
269
274
|
*
|
|
@@ -3,6 +3,8 @@ import type { DayPickerProps, Modifiers } from "./types/index.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Return a function to get the modifiers for a given day.
|
|
5
5
|
*
|
|
6
|
+
* NOTE: this is not an hook, but a factory for `getModifiers`.
|
|
7
|
+
*
|
|
6
8
|
* @private
|
|
7
9
|
*/
|
|
8
10
|
export declare function useGetModifiers(days: CalendarDay[], props: DayPickerProps, dateLib: DateLib): (day: CalendarDay) => Modifiers;
|
|
@@ -7,6 +7,8 @@ const dateMatchModifiers_js_1 = require("./utils/dateMatchModifiers.js");
|
|
|
7
7
|
/**
|
|
8
8
|
* Return a function to get the modifiers for a given day.
|
|
9
9
|
*
|
|
10
|
+
* NOTE: this is not an hook, but a factory for `getModifiers`.
|
|
11
|
+
*
|
|
10
12
|
* @private
|
|
11
13
|
*/
|
|
12
14
|
function useGetModifiers(days, props, dateLib) {
|
|
@@ -20,12 +22,6 @@ function useGetModifiers(days, props, dateLib) {
|
|
|
20
22
|
[UI_js_1.DayFlag.today]: []
|
|
21
23
|
};
|
|
22
24
|
const customModifiersMap = {};
|
|
23
|
-
const selectionModifiersMap = {
|
|
24
|
-
[UI_js_1.SelectionState.range_end]: [],
|
|
25
|
-
[UI_js_1.SelectionState.range_middle]: [],
|
|
26
|
-
[UI_js_1.SelectionState.range_start]: [],
|
|
27
|
-
[UI_js_1.SelectionState.selected]: []
|
|
28
|
-
};
|
|
29
25
|
for (const day of days) {
|
|
30
26
|
const { date, displayMonth } = day;
|
|
31
27
|
const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
|
|
@@ -73,27 +69,16 @@ function useGetModifiers(days, props, dateLib) {
|
|
|
73
69
|
[UI_js_1.DayFlag.outside]: false,
|
|
74
70
|
[UI_js_1.DayFlag.today]: false
|
|
75
71
|
};
|
|
76
|
-
const selectionStates = {
|
|
77
|
-
[UI_js_1.SelectionState.range_end]: false,
|
|
78
|
-
[UI_js_1.SelectionState.range_middle]: false,
|
|
79
|
-
[UI_js_1.SelectionState.range_start]: false,
|
|
80
|
-
[UI_js_1.SelectionState.selected]: false
|
|
81
|
-
};
|
|
82
72
|
const customModifiers = {};
|
|
83
73
|
// Find the modifiers for the given day
|
|
84
74
|
for (const name in internalModifiersMap) {
|
|
85
75
|
const days = internalModifiersMap[name];
|
|
86
76
|
dayFlags[name] = days.some((d) => d === day);
|
|
87
77
|
}
|
|
88
|
-
for (const name in selectionModifiersMap) {
|
|
89
|
-
const days = selectionModifiersMap[name];
|
|
90
|
-
selectionStates[name] = days.some((d) => d === day);
|
|
91
|
-
}
|
|
92
78
|
for (const name in customModifiersMap) {
|
|
93
79
|
customModifiers[name] = customModifiersMap[name].some((d) => d === day);
|
|
94
80
|
}
|
|
95
81
|
return {
|
|
96
|
-
...selectionStates,
|
|
97
82
|
...dayFlags,
|
|
98
83
|
// custom modifiers should override all the previous ones
|
|
99
84
|
...customModifiers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetModifiers.js","sourceRoot":"","sources":["../../src/useGetModifiers.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useGetModifiers.js","sourceRoot":"","sources":["../../src/useGetModifiers.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Locale } from "../classes/DateLib.js";
|
|
1
2
|
/**
|
|
2
3
|
* Format the month number for the dropdown option label.
|
|
3
4
|
*
|
|
@@ -9,4 +10,4 @@ export declare function formatMonthDropdown(
|
|
|
9
10
|
/** The month number to format. */
|
|
10
11
|
monthNumber: number,
|
|
11
12
|
/** The locale to use for formatting. */
|
|
12
|
-
locale
|
|
13
|
+
locale: Locale): string;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { defaultLocale } from "../classes/DateLib.js";
|
|
2
1
|
/**
|
|
3
2
|
* Format the month number for the dropdown option label.
|
|
4
3
|
*
|
|
@@ -10,7 +9,7 @@ export function formatMonthDropdown(
|
|
|
10
9
|
/** The month number to format. */
|
|
11
10
|
monthNumber,
|
|
12
11
|
/** The locale to use for formatting. */
|
|
13
|
-
locale
|
|
12
|
+
locale) {
|
|
14
13
|
return locale.localize?.month(monthNumber);
|
|
15
14
|
}
|
|
16
15
|
//# sourceMappingURL=formatMonthDropdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatMonthDropdown.js","sourceRoot":"","sources":["../../../src/formatters/formatMonthDropdown.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"formatMonthDropdown.js","sourceRoot":"","sources":["../../../src/formatters/formatMonthDropdown.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB;AACjC,kCAAkC;AAClC,WAAmB;AACnB,wCAAwC;AACxC,MAAc;IAEd,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,WAA2B,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { type DateLib } from "../classes/DateLib.js";
|
|
2
2
|
import { type DayPickerProps } from "../types/props.js";
|
|
3
|
+
/** The number of days in a month when having 6 weeks. */
|
|
4
|
+
export declare const NrOfDaysWithFixedWeeks = 42;
|
|
3
5
|
/** Return all the dates to display in the calendar. */
|
|
4
6
|
export declare function getDates(displayMonths: Date[], maxDate: Date | undefined, props: Pick<DayPickerProps, "ISOWeek" | "fixedWeeks">, dateLib: DateLib): Date[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** The number of days in a month when having 6 weeks. */
|
|
2
|
-
const NrOfDaysWithFixedWeeks = 42;
|
|
2
|
+
export const NrOfDaysWithFixedWeeks = 42;
|
|
3
3
|
/** Return all the dates to display in the calendar. */
|
|
4
4
|
export function getDates(displayMonths, maxDate, props, dateLib) {
|
|
5
5
|
const firstMonth = displayMonths[0];
|
|
@@ -25,7 +25,8 @@ export function getDates(displayMonths, maxDate, props, dateLib) {
|
|
|
25
25
|
// If fixed weeks is enabled, add the extra dates to the array
|
|
26
26
|
const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
|
|
27
27
|
if (fixedWeeks && dates.length < extraDates) {
|
|
28
|
-
|
|
28
|
+
const daysToAdd = extraDates - dates.length;
|
|
29
|
+
for (let i = 0; i < daysToAdd; i++) {
|
|
29
30
|
const date = addDays(dates[dates.length - 1], 1);
|
|
30
31
|
dates.push(date);
|
|
31
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getDates.js","sourceRoot":"","sources":["../../../src/helpers/getDates.ts"],"names":[],"mappings":"AAGA,yDAAyD;AACzD,MAAM,sBAAsB,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"getDates.js","sourceRoot":"","sources":["../../../src/helpers/getDates.ts"],"names":[],"mappings":"AAGA,yDAAyD;AACzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CACtB,aAAqB,EACrB,OAAyB,EACzB,KAAqD,EACrD,OAAgB;IAEhB,MAAM,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,SAAS,GAAG,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAE1D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IAC5C,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,OAAO,EACP,wBAAwB,EACxB,0BAA0B,EAC1B,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IAEZ,MAAM,kBAAkB,GAAG,OAAO;QAChC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;QAC5B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAE5B,MAAM,eAAe,GAAG,OAAO;QAC7B,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACrC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;IAErC,MAAM,OAAO,GAAG,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,0BAA0B,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAExE,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;YACtC,MAAM;QACR,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IAED,8DAA8D;IAC9D,MAAM,UAAU,GAAG,sBAAsB,GAAG,SAAS,CAAC;IACtD,IAAI,UAAU,IAAI,KAAK,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type DateLib } from "../classes/DateLib.js";
|
|
2
2
|
import { DropdownOption } from "../components/Dropdown.js";
|
|
3
3
|
import type { Formatters } from "../types/index.js";
|
|
4
4
|
/** Return the months to show in the dropdown. */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { defaultLocale } from "../classes/DateLib.js";
|
|
1
2
|
/** Return the months to show in the dropdown. */
|
|
2
3
|
export function getMonthOptions(displayMonth, navStart, navEnd, formatters, dateLib) {
|
|
3
4
|
if (!navStart)
|
|
@@ -16,7 +17,7 @@ export function getMonthOptions(displayMonth, navStart, navEnd, formatters, date
|
|
|
16
17
|
return a - b;
|
|
17
18
|
});
|
|
18
19
|
const options = sortedMonths.map((value) => {
|
|
19
|
-
const label = formatters.formatMonthDropdown(value, dateLib.options.locale);
|
|
20
|
+
const label = formatters.formatMonthDropdown(value, dateLib.options.locale ?? defaultLocale);
|
|
20
21
|
const month = dateLib.Date
|
|
21
22
|
? new dateLib.Date(year, value)
|
|
22
23
|
: new Date(year, value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMonthOptions.js","sourceRoot":"","sources":["../../../src/helpers/getMonthOptions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getMonthOptions.js","sourceRoot":"","sources":["../../../src/helpers/getMonthOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAgB,MAAM,uBAAuB,CAAC;AAIpE,iDAAiD;AACjD,MAAM,UAAU,eAAe,CAC7B,YAAkB,EAClB,QAA0B,EAC1B,MAAwB,EACxB,UAAmD,EACnD,OAAgB;IAEhB,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtD,MAAM,IAAI,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAExC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,QAAQ,CAAC;IACrB,OAAO,MAAM,CAAC,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9B,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACxC,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,mBAAmB,CAC1C,KAAK,EACL,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,aAAa,CACxC,CAAC;QACF,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI;YACxB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;YAC/B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,QAAQ,GACZ,CAAC,QAAQ,IAAI,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,CAAC,MAAM,IAAI,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { CalendarWeek, CalendarDay, CalendarMonth } from "../classes/index.js";
|
|
2
|
+
import { NrOfDaysWithFixedWeeks } from "./getDates.js";
|
|
2
3
|
/** Return the months to display in the calendar. */
|
|
3
4
|
export function getMonths(
|
|
4
5
|
/** The months (as dates) to display in the calendar. */
|
|
@@ -19,9 +20,11 @@ props, dateLib) {
|
|
|
19
20
|
const monthDates = dates.filter((date) => {
|
|
20
21
|
return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
|
|
21
22
|
});
|
|
22
|
-
if (props.fixedWeeks && monthDates.length <
|
|
23
|
+
if (props.fixedWeeks && monthDates.length < NrOfDaysWithFixedWeeks) {
|
|
23
24
|
const extraDates = dates.filter((date) => {
|
|
24
|
-
|
|
25
|
+
const daysToAdd = NrOfDaysWithFixedWeeks - monthDates.length;
|
|
26
|
+
return (date > lastDateOfLastWeek &&
|
|
27
|
+
date <= addDays(lastDateOfLastWeek, daysToAdd));
|
|
25
28
|
});
|
|
26
29
|
monthDates.push(...extraDates);
|
|
27
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMonths.js","sourceRoot":"","sources":["../../../src/helpers/getMonths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG/E,oDAAoD;AACpD,MAAM,UAAU,SAAS;AACvB,wDAAwD;AACxD,aAAqB;AACrB,4CAA4C;AAC5C,KAAa;AACb,sCAAsC;AACtC,KAAuE,EACvE,OAAgB;IAEhB,MAAM,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,YAAY,EACZ,UAAU,EACV,OAAO,EACP,OAAO,EACP,UAAU,EACX,GAAG,OAAO,CAAC;IACZ,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,CAC1C,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChB,MAAM,oBAAoB,GAAG,KAAK,CAAC,OAAO;YACxC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;YACvB,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEvB,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO;YACtC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAEjC,yCAAyC;QACzC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YACvC,OAAO,IAAI,IAAI,oBAAoB,IAAI,IAAI,IAAI,kBAAkB,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"getMonths.js","sourceRoot":"","sources":["../../../src/helpers/getMonths.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DayFlag, SelectionState } from "../UI.js";
|
|
1
2
|
import { MonthCaption, type MonthCaptionProps } from "../components/MonthCaption.js";
|
|
2
3
|
import { Week, type WeekProps } from "../components/Week.js";
|
|
3
4
|
import { labelDayButton, labelNext, labelWeekday, labelWeekNumber } from "../labels/index.js";
|
|
@@ -75,6 +76,12 @@ export type DaySelectionMode = Mode;
|
|
|
75
76
|
* @protected
|
|
76
77
|
*/
|
|
77
78
|
export type Modifier = string;
|
|
79
|
+
/**
|
|
80
|
+
* @deprecated This type will be removed. Use {@link DayFlag} or
|
|
81
|
+
* {@link SelectionState} instead.
|
|
82
|
+
* @protected
|
|
83
|
+
*/
|
|
84
|
+
export type InternalModifier = DayFlag.disabled | DayFlag.hidden | DayFlag.focused | SelectionState.range_end | SelectionState.range_middle | SelectionState.range_start | SelectionState.selected;
|
|
78
85
|
/**
|
|
79
86
|
* @deprecated This type will be removed. Use `SelectHandler<"single">` instead.
|
|
80
87
|
* @protected
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/types/deprecated.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deprecated.js","sourceRoot":"","sources":["../../../src/types/deprecated.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,EAEb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,IAAI,EAAkB,MAAM,uBAAuB,CAAC;AAO7D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAiBlD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAC;AAgBpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC;AAmFxB;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC"}
|
|
@@ -264,6 +264,11 @@ export interface PropsBase {
|
|
|
264
264
|
* @see https://daypicker.dev/guides/accessibility#autofocus
|
|
265
265
|
*/
|
|
266
266
|
autoFocus?: boolean;
|
|
267
|
+
/**
|
|
268
|
+
* @private
|
|
269
|
+
* @deprecated This prop will be removed. Use {@link autoFocus} instead.
|
|
270
|
+
*/
|
|
271
|
+
initialFocus?: boolean;
|
|
267
272
|
/**
|
|
268
273
|
* Apply the `disabled` modifier to the matching days.
|
|
269
274
|
*
|
|
@@ -3,6 +3,8 @@ import type { DayPickerProps, Modifiers } from "./types/index.js";
|
|
|
3
3
|
/**
|
|
4
4
|
* Return a function to get the modifiers for a given day.
|
|
5
5
|
*
|
|
6
|
+
* NOTE: this is not an hook, but a factory for `getModifiers`.
|
|
7
|
+
*
|
|
6
8
|
* @private
|
|
7
9
|
*/
|
|
8
10
|
export declare function useGetModifiers(days: CalendarDay[], props: DayPickerProps, dateLib: DateLib): (day: CalendarDay) => Modifiers;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { TZDate } from "@date-fns/tz";
|
|
2
|
-
import { DayFlag
|
|
2
|
+
import { DayFlag } from "./UI.js";
|
|
3
3
|
import { dateMatchModifiers } from "./utils/dateMatchModifiers.js";
|
|
4
4
|
/**
|
|
5
5
|
* Return a function to get the modifiers for a given day.
|
|
6
6
|
*
|
|
7
|
+
* NOTE: this is not an hook, but a factory for `getModifiers`.
|
|
8
|
+
*
|
|
7
9
|
* @private
|
|
8
10
|
*/
|
|
9
11
|
export function useGetModifiers(days, props, dateLib) {
|
|
@@ -17,12 +19,6 @@ export function useGetModifiers(days, props, dateLib) {
|
|
|
17
19
|
[DayFlag.today]: []
|
|
18
20
|
};
|
|
19
21
|
const customModifiersMap = {};
|
|
20
|
-
const selectionModifiersMap = {
|
|
21
|
-
[SelectionState.range_end]: [],
|
|
22
|
-
[SelectionState.range_middle]: [],
|
|
23
|
-
[SelectionState.range_start]: [],
|
|
24
|
-
[SelectionState.selected]: []
|
|
25
|
-
};
|
|
26
22
|
for (const day of days) {
|
|
27
23
|
const { date, displayMonth } = day;
|
|
28
24
|
const isOutside = Boolean(displayMonth && !isSameMonth(date, displayMonth));
|
|
@@ -70,27 +66,16 @@ export function useGetModifiers(days, props, dateLib) {
|
|
|
70
66
|
[DayFlag.outside]: false,
|
|
71
67
|
[DayFlag.today]: false
|
|
72
68
|
};
|
|
73
|
-
const selectionStates = {
|
|
74
|
-
[SelectionState.range_end]: false,
|
|
75
|
-
[SelectionState.range_middle]: false,
|
|
76
|
-
[SelectionState.range_start]: false,
|
|
77
|
-
[SelectionState.selected]: false
|
|
78
|
-
};
|
|
79
69
|
const customModifiers = {};
|
|
80
70
|
// Find the modifiers for the given day
|
|
81
71
|
for (const name in internalModifiersMap) {
|
|
82
72
|
const days = internalModifiersMap[name];
|
|
83
73
|
dayFlags[name] = days.some((d) => d === day);
|
|
84
74
|
}
|
|
85
|
-
for (const name in selectionModifiersMap) {
|
|
86
|
-
const days = selectionModifiersMap[name];
|
|
87
|
-
selectionStates[name] = days.some((d) => d === day);
|
|
88
|
-
}
|
|
89
75
|
for (const name in customModifiersMap) {
|
|
90
76
|
customModifiers[name] = customModifiersMap[name].some((d) => d === day);
|
|
91
77
|
}
|
|
92
78
|
return {
|
|
93
|
-
...selectionStates,
|
|
94
79
|
...dayFlags,
|
|
95
80
|
// custom modifiers should override all the previous ones
|
|
96
81
|
...customModifiers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetModifiers.js","sourceRoot":"","sources":["../../src/useGetModifiers.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"useGetModifiers.js","sourceRoot":"","sources":["../../src/useGetModifiers.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import { render, screen } from "@/test/render";
|
|
4
|
+
|
|
5
|
+
import { TestCase2585 } from "./TestCase2585";
|
|
6
|
+
|
|
7
|
+
render(<TestCase2585 />);
|
|
8
|
+
|
|
9
|
+
test("should render 42*12 days", () => {
|
|
10
|
+
expect(screen.getAllByRole("cell")).toHaveLength(42 * 12);
|
|
11
|
+
});
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
|
|
3
|
+
import { DayPicker } from "react-day-picker";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Test case for issue #2585
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/gpbl/react-day-picker/issues/2585
|
|
9
|
+
*/
|
|
10
|
+
export function TestCase2585() {
|
|
11
|
+
return (
|
|
12
|
+
<DayPicker
|
|
13
|
+
defaultMonth={new Date(2026, 1)}
|
|
14
|
+
showOutsideDays
|
|
15
|
+
showWeekNumber
|
|
16
|
+
fixedWeeks
|
|
17
|
+
numberOfMonths={12}
|
|
18
|
+
/>
|
|
19
|
+
);
|
|
20
|
+
}
|
|
@@ -338,7 +338,7 @@ exports[`should match the snapshot 1`] = `
|
|
|
338
338
|
</td>
|
|
339
339
|
<td
|
|
340
340
|
aria-selected="true"
|
|
341
|
-
class="rdp-day rdp-
|
|
341
|
+
class="rdp-day rdp-selected rdp-range_start"
|
|
342
342
|
data-day="2020-06-15"
|
|
343
343
|
data-selected="true"
|
|
344
344
|
>
|
|
@@ -353,7 +353,7 @@ exports[`should match the snapshot 1`] = `
|
|
|
353
353
|
</td>
|
|
354
354
|
<td
|
|
355
355
|
aria-selected="true"
|
|
356
|
-
class="rdp-day rdp-
|
|
356
|
+
class="rdp-day rdp-selected rdp-range_middle"
|
|
357
357
|
data-day="2020-06-16"
|
|
358
358
|
data-selected="true"
|
|
359
359
|
>
|
|
@@ -368,7 +368,7 @@ exports[`should match the snapshot 1`] = `
|
|
|
368
368
|
</td>
|
|
369
369
|
<td
|
|
370
370
|
aria-selected="true"
|
|
371
|
-
class="rdp-day rdp-
|
|
371
|
+
class="rdp-day rdp-selected rdp-range_middle"
|
|
372
372
|
data-day="2020-06-17"
|
|
373
373
|
data-selected="true"
|
|
374
374
|
>
|
|
@@ -383,7 +383,7 @@ exports[`should match the snapshot 1`] = `
|
|
|
383
383
|
</td>
|
|
384
384
|
<td
|
|
385
385
|
aria-selected="true"
|
|
386
|
-
class="rdp-day rdp-
|
|
386
|
+
class="rdp-day rdp-selected rdp-range_middle"
|
|
387
387
|
data-day="2020-06-18"
|
|
388
388
|
data-selected="true"
|
|
389
389
|
>
|
|
@@ -398,7 +398,7 @@ exports[`should match the snapshot 1`] = `
|
|
|
398
398
|
</td>
|
|
399
399
|
<td
|
|
400
400
|
aria-selected="true"
|
|
401
|
-
class="rdp-day rdp-
|
|
401
|
+
class="rdp-day rdp-selected rdp-range_end"
|
|
402
402
|
data-day="2020-06-19"
|
|
403
403
|
data-selected="true"
|
|
404
404
|
>
|
package/examples/index.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-day-picker",
|
|
3
|
-
"version": "9.3.
|
|
3
|
+
"version": "9.3.1",
|
|
4
4
|
"description": "Customizable Date Picker for React",
|
|
5
5
|
"author": "Giampaolo Bellavite <io@gpbl.dev>",
|
|
6
6
|
"homepage": "https://daypicker.dev",
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
"locale.d.ts"
|
|
174
174
|
],
|
|
175
175
|
"dependencies": {
|
|
176
|
-
"@date-fns/tz": "^1.
|
|
176
|
+
"@date-fns/tz": "^1.2.0",
|
|
177
177
|
"date-fns": "^4.1.0"
|
|
178
178
|
},
|
|
179
179
|
"devDependencies": {
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { es } from "date-fns/locale/es";
|
|
2
2
|
|
|
3
|
+
import { defaultLocale } from "../classes/DateLib";
|
|
4
|
+
|
|
3
5
|
import { formatMonthDropdown } from "./formatMonthDropdown";
|
|
4
6
|
|
|
5
7
|
const date = new Date(2022, 10, 21);
|
|
6
8
|
|
|
7
9
|
test("should return the formatted month dropdown label", () => {
|
|
8
|
-
expect(formatMonthDropdown(date.getMonth())).toEqual(
|
|
10
|
+
expect(formatMonthDropdown(date.getMonth(), defaultLocale)).toEqual(
|
|
11
|
+
"November"
|
|
12
|
+
);
|
|
9
13
|
});
|
|
10
14
|
|
|
11
15
|
describe("when a locale is passed in", () => {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { DateFnsMonth } from "../classes/DateLib.js";
|
|
2
|
-
import { defaultLocale } from "../classes/DateLib.js";
|
|
1
|
+
import type { DateFnsMonth, Locale } from "../classes/DateLib.js";
|
|
3
2
|
|
|
4
3
|
/**
|
|
5
4
|
* Format the month number for the dropdown option label.
|
|
@@ -12,7 +11,7 @@ export function formatMonthDropdown(
|
|
|
12
11
|
/** The month number to format. */
|
|
13
12
|
monthNumber: number,
|
|
14
13
|
/** The locale to use for formatting. */
|
|
15
|
-
locale
|
|
14
|
+
locale: Locale
|
|
16
15
|
): string {
|
|
17
16
|
return locale.localize?.month(monthNumber as DateFnsMonth);
|
|
18
17
|
}
|
|
@@ -58,9 +58,7 @@ describe("when the first month and the last month are the same", () => {
|
|
|
58
58
|
const dates = getDates(
|
|
59
59
|
[month],
|
|
60
60
|
undefined,
|
|
61
|
-
{
|
|
62
|
-
fixedWeeks: true
|
|
63
|
-
},
|
|
61
|
+
{ fixedWeeks: true },
|
|
64
62
|
defaultDateLib
|
|
65
63
|
);
|
|
66
64
|
expect(dates).toHaveLength(42);
|
|
@@ -69,6 +67,35 @@ describe("when the first month and the last month are the same", () => {
|
|
|
69
67
|
});
|
|
70
68
|
});
|
|
71
69
|
});
|
|
70
|
+
|
|
71
|
+
describe("when the month has 4 weeks", () => {
|
|
72
|
+
const month = new Date(2026, 1); // February 2026
|
|
73
|
+
describe("when not using fixed weeks", () => {
|
|
74
|
+
it("should return 28 dates", () => {
|
|
75
|
+
const dates = getDates(
|
|
76
|
+
[month],
|
|
77
|
+
undefined,
|
|
78
|
+
{
|
|
79
|
+
fixedWeeks: false
|
|
80
|
+
},
|
|
81
|
+
defaultDateLib
|
|
82
|
+
);
|
|
83
|
+
expect(dates).toHaveLength(28);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
describe("when using fixed weeks", () => {
|
|
87
|
+
it("should return 42 dates", () => {
|
|
88
|
+
const dates = getDates(
|
|
89
|
+
[month],
|
|
90
|
+
undefined,
|
|
91
|
+
{ fixedWeeks: true },
|
|
92
|
+
defaultDateLib
|
|
93
|
+
);
|
|
94
|
+
expect(dates).toHaveLength(42);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
|
|
72
99
|
describe("when using Monday as first day of the week", () => {
|
|
73
100
|
const month = new Date(2023, 4, 1);
|
|
74
101
|
it("the first day should be Monday", () => {
|
package/src/helpers/getDates.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { type DateLib } from "../classes/DateLib.js";
|
|
|
2
2
|
import { type DayPickerProps } from "../types/props.js";
|
|
3
3
|
|
|
4
4
|
/** The number of days in a month when having 6 weeks. */
|
|
5
|
-
const NrOfDaysWithFixedWeeks = 42;
|
|
5
|
+
export const NrOfDaysWithFixedWeeks = 42;
|
|
6
6
|
|
|
7
7
|
/** Return all the dates to display in the calendar. */
|
|
8
8
|
export function getDates(
|
|
@@ -50,7 +50,8 @@ export function getDates(
|
|
|
50
50
|
// If fixed weeks is enabled, add the extra dates to the array
|
|
51
51
|
const extraDates = NrOfDaysWithFixedWeeks * nOfMonths;
|
|
52
52
|
if (fixedWeeks && dates.length < extraDates) {
|
|
53
|
-
|
|
53
|
+
const daysToAdd = extraDates - dates.length;
|
|
54
|
+
for (let i = 0; i < daysToAdd; i++) {
|
|
54
55
|
const date = addDays(dates[dates.length - 1], 1);
|
|
55
56
|
dates.push(date);
|
|
56
57
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { defaultLocale, type DateLib } from "../classes/DateLib.js";
|
|
2
2
|
import { DropdownOption } from "../components/Dropdown.js";
|
|
3
3
|
import type { Formatters } from "../types/index.js";
|
|
4
4
|
|
|
@@ -26,7 +26,10 @@ export function getMonthOptions(
|
|
|
26
26
|
return a - b;
|
|
27
27
|
});
|
|
28
28
|
const options = sortedMonths.map((value) => {
|
|
29
|
-
const label = formatters.formatMonthDropdown(
|
|
29
|
+
const label = formatters.formatMonthDropdown(
|
|
30
|
+
value,
|
|
31
|
+
dateLib.options.locale ?? defaultLocale
|
|
32
|
+
);
|
|
30
33
|
const month = dateLib.Date
|
|
31
34
|
? new dateLib.Date(year, value)
|
|
32
35
|
: new Date(year, value);
|
package/src/helpers/getMonths.ts
CHANGED
|
@@ -2,6 +2,8 @@ import type { DateLib } from "../classes/DateLib.js";
|
|
|
2
2
|
import { CalendarWeek, CalendarDay, CalendarMonth } from "../classes/index.js";
|
|
3
3
|
import type { DayPickerProps } from "../types/index.js";
|
|
4
4
|
|
|
5
|
+
import { NrOfDaysWithFixedWeeks } from "./getDates.js";
|
|
6
|
+
|
|
5
7
|
/** Return the months to display in the calendar. */
|
|
6
8
|
export function getMonths(
|
|
7
9
|
/** The months (as dates) to display in the calendar. */
|
|
@@ -37,10 +39,12 @@ export function getMonths(
|
|
|
37
39
|
return date >= firstDateOfFirstWeek && date <= lastDateOfLastWeek;
|
|
38
40
|
});
|
|
39
41
|
|
|
40
|
-
if (props.fixedWeeks && monthDates.length <
|
|
42
|
+
if (props.fixedWeeks && monthDates.length < NrOfDaysWithFixedWeeks) {
|
|
41
43
|
const extraDates = dates.filter((date) => {
|
|
44
|
+
const daysToAdd = NrOfDaysWithFixedWeeks - monthDates.length;
|
|
42
45
|
return (
|
|
43
|
-
date > lastDateOfLastWeek &&
|
|
46
|
+
date > lastDateOfLastWeek &&
|
|
47
|
+
date <= addDays(lastDateOfLastWeek, daysToAdd)
|
|
44
48
|
);
|
|
45
49
|
});
|
|
46
50
|
monthDates.push(...extraDates);
|
package/src/types/deprecated.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { DayFlag, SelectionState } from "../UI.js";
|
|
2
3
|
import {
|
|
3
4
|
MonthCaption,
|
|
4
5
|
type MonthCaptionProps
|
|
@@ -99,6 +100,20 @@ export type DaySelectionMode = Mode;
|
|
|
99
100
|
*/
|
|
100
101
|
export type Modifier = string;
|
|
101
102
|
|
|
103
|
+
/**
|
|
104
|
+
* @deprecated This type will be removed. Use {@link DayFlag} or
|
|
105
|
+
* {@link SelectionState} instead.
|
|
106
|
+
* @protected
|
|
107
|
+
*/
|
|
108
|
+
export type InternalModifier =
|
|
109
|
+
| DayFlag.disabled
|
|
110
|
+
| DayFlag.hidden
|
|
111
|
+
| DayFlag.focused
|
|
112
|
+
| SelectionState.range_end
|
|
113
|
+
| SelectionState.range_middle
|
|
114
|
+
| SelectionState.range_start
|
|
115
|
+
| SelectionState.selected;
|
|
116
|
+
|
|
102
117
|
/**
|
|
103
118
|
* @deprecated This type will be removed. Use `SelectHandler<"single">` instead.
|
|
104
119
|
* @protected
|
package/src/types/props.ts
CHANGED
|
@@ -291,6 +291,11 @@ export interface PropsBase {
|
|
|
291
291
|
* @see https://daypicker.dev/guides/accessibility#autofocus
|
|
292
292
|
*/
|
|
293
293
|
autoFocus?: boolean;
|
|
294
|
+
/**
|
|
295
|
+
* @private
|
|
296
|
+
* @deprecated This prop will be removed. Use {@link autoFocus} instead.
|
|
297
|
+
*/
|
|
298
|
+
initialFocus?: boolean;
|
|
294
299
|
/**
|
|
295
300
|
* Apply the `disabled` modifier to the matching days.
|
|
296
301
|
*
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { DayFlag } from "./UI";
|
|
2
|
+
import { CalendarDay, defaultDateLib } from "./classes/index";
|
|
3
|
+
import { useGetModifiers } from "./useGetModifiers";
|
|
4
|
+
|
|
5
|
+
const dateLib = defaultDateLib;
|
|
6
|
+
|
|
7
|
+
const month1 = new Date(2022, 10, 1);
|
|
8
|
+
const month2 = new Date(2022, 11, 1);
|
|
9
|
+
|
|
10
|
+
const date1 = new Date(2022, 10, 10);
|
|
11
|
+
const date2 = new Date(2022, 10, 11);
|
|
12
|
+
const date3 = new Date(2022, 10, 12);
|
|
13
|
+
const date4 = new Date(2022, 10, 13);
|
|
14
|
+
const date5 = new Date(2022, 10, 14);
|
|
15
|
+
const date6 = new Date(2022, 10, 30);
|
|
16
|
+
|
|
17
|
+
const day1 = new CalendarDay(date1, month1);
|
|
18
|
+
const day2 = new CalendarDay(date2, month1);
|
|
19
|
+
const day3 = new CalendarDay(date3, month1);
|
|
20
|
+
const day4 = new CalendarDay(date4, month1);
|
|
21
|
+
const day5 = new CalendarDay(date5, month1);
|
|
22
|
+
const day6 = new CalendarDay(date6, month2);
|
|
23
|
+
|
|
24
|
+
const days: CalendarDay[] = [day1, day2, day3, day4, day5, day6];
|
|
25
|
+
|
|
26
|
+
const props = {
|
|
27
|
+
disabled: [date1],
|
|
28
|
+
hidden: [date2],
|
|
29
|
+
modifiers: {
|
|
30
|
+
custom: [date3],
|
|
31
|
+
selected: [date5]
|
|
32
|
+
},
|
|
33
|
+
selected: date6,
|
|
34
|
+
showOutsideDays: true,
|
|
35
|
+
today: date4,
|
|
36
|
+
timeZone: "UTC"
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
describe("useGetModifiers", () => {
|
|
40
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
41
|
+
const getModifiers = useGetModifiers(days, props, dateLib);
|
|
42
|
+
|
|
43
|
+
test("return the modifiers for a given day", () => {
|
|
44
|
+
const modifiers = getModifiers(day1);
|
|
45
|
+
|
|
46
|
+
expect(modifiers[DayFlag.focused]).toBe(false);
|
|
47
|
+
expect(modifiers[DayFlag.disabled]).toBe(true);
|
|
48
|
+
expect(modifiers[DayFlag.hidden]).toBe(false);
|
|
49
|
+
expect(modifiers[DayFlag.outside]).toBe(false);
|
|
50
|
+
expect(modifiers[DayFlag.today]).toBe(false);
|
|
51
|
+
expect(modifiers.custom).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
test("return the custom modifiers for a given day", () => {
|
|
55
|
+
const modifiers = getModifiers(day3);
|
|
56
|
+
expect(modifiers.custom).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test("return the custom `selected` modifier for a given day", () => {
|
|
60
|
+
const modifiers = getModifiers(day5);
|
|
61
|
+
expect(modifiers.selected).toBe(true);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
test("return the today modifier for a given day", () => {
|
|
65
|
+
const modifiers = getModifiers(day4);
|
|
66
|
+
expect(modifiers[DayFlag.today]).toBe(true);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
test("return the hidden modifier for a given day", () => {
|
|
70
|
+
const modifiers = getModifiers(day2);
|
|
71
|
+
expect(modifiers[DayFlag.hidden]).toBe(true);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test("return the outside modifier for a given day", () => {
|
|
75
|
+
const modifiers = getModifiers(day6);
|
|
76
|
+
|
|
77
|
+
expect(modifiers[DayFlag.outside]).toBe(true);
|
|
78
|
+
});
|
|
79
|
+
});
|
package/src/useGetModifiers.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TZDate } from "@date-fns/tz";
|
|
2
2
|
|
|
3
|
-
import { DayFlag
|
|
3
|
+
import { DayFlag } from "./UI.js";
|
|
4
4
|
import type { CalendarDay, DateLib } from "./classes/index.js";
|
|
5
5
|
import type { DayPickerProps, Modifiers } from "./types/index.js";
|
|
6
6
|
import { dateMatchModifiers } from "./utils/dateMatchModifiers.js";
|
|
@@ -8,6 +8,8 @@ import { dateMatchModifiers } from "./utils/dateMatchModifiers.js";
|
|
|
8
8
|
/**
|
|
9
9
|
* Return a function to get the modifiers for a given day.
|
|
10
10
|
*
|
|
11
|
+
* NOTE: this is not an hook, but a factory for `getModifiers`.
|
|
12
|
+
*
|
|
11
13
|
* @private
|
|
12
14
|
*/
|
|
13
15
|
export function useGetModifiers(
|
|
@@ -29,13 +31,6 @@ export function useGetModifiers(
|
|
|
29
31
|
|
|
30
32
|
const customModifiersMap: Record<string, CalendarDay[]> = {};
|
|
31
33
|
|
|
32
|
-
const selectionModifiersMap: Record<SelectionState, CalendarDay[]> = {
|
|
33
|
-
[SelectionState.range_end]: [],
|
|
34
|
-
[SelectionState.range_middle]: [],
|
|
35
|
-
[SelectionState.range_start]: [],
|
|
36
|
-
[SelectionState.selected]: []
|
|
37
|
-
};
|
|
38
|
-
|
|
39
34
|
for (const day of days) {
|
|
40
35
|
const { date, displayMonth } = day;
|
|
41
36
|
|
|
@@ -81,7 +76,7 @@ export function useGetModifiers(
|
|
|
81
76
|
}
|
|
82
77
|
}
|
|
83
78
|
|
|
84
|
-
return (day: CalendarDay) => {
|
|
79
|
+
return (day: CalendarDay): Modifiers => {
|
|
85
80
|
// Initialize all the modifiers to false
|
|
86
81
|
const dayFlags: Record<DayFlag, boolean> = {
|
|
87
82
|
[DayFlag.focused]: false,
|
|
@@ -90,12 +85,6 @@ export function useGetModifiers(
|
|
|
90
85
|
[DayFlag.outside]: false,
|
|
91
86
|
[DayFlag.today]: false
|
|
92
87
|
};
|
|
93
|
-
const selectionStates: Record<SelectionState, boolean> = {
|
|
94
|
-
[SelectionState.range_end]: false,
|
|
95
|
-
[SelectionState.range_middle]: false,
|
|
96
|
-
[SelectionState.range_start]: false,
|
|
97
|
-
[SelectionState.selected]: false
|
|
98
|
-
};
|
|
99
88
|
const customModifiers: Modifiers = {};
|
|
100
89
|
|
|
101
90
|
// Find the modifiers for the given day
|
|
@@ -103,19 +92,14 @@ export function useGetModifiers(
|
|
|
103
92
|
const days = internalModifiersMap[name as DayFlag];
|
|
104
93
|
dayFlags[name as DayFlag] = days.some((d) => d === day);
|
|
105
94
|
}
|
|
106
|
-
for (const name in selectionModifiersMap) {
|
|
107
|
-
const days = selectionModifiersMap[name as SelectionState];
|
|
108
|
-
selectionStates[name as SelectionState] = days.some((d) => d === day);
|
|
109
|
-
}
|
|
110
95
|
for (const name in customModifiersMap) {
|
|
111
96
|
customModifiers[name] = customModifiersMap[name].some((d) => d === day);
|
|
112
97
|
}
|
|
113
98
|
|
|
114
99
|
return {
|
|
115
|
-
...selectionStates,
|
|
116
100
|
...dayFlags,
|
|
117
101
|
// custom modifiers should override all the previous ones
|
|
118
102
|
...customModifiers
|
|
119
|
-
}
|
|
103
|
+
};
|
|
120
104
|
};
|
|
121
105
|
}
|
|
@@ -264,33 +264,34 @@ See also the source of [types/deprecated.ts](https://github.com/gpbl/react-day-p
|
|
|
264
264
|
<details>
|
|
265
265
|
<summary>**List of Deprecated Types**</summary>
|
|
266
266
|
|
|
267
|
-
| Deprecated Type | Deprecation Reason
|
|
268
|
-
| ------------------------------ |
|
|
269
|
-
| ~`Caption`~ | This component has been renamed. Use [`MonthCaption`](./api/functions/MonthCaption.md) instead.
|
|
270
|
-
| ~`HeadRow`~ | This component has been removed.
|
|
271
|
-
| ~`Row`~ | This component has been renamed. Use [`Week`](./api/functions/Week.md) instead.
|
|
272
|
-
| ~`DayPickerSingleProps`~ | This type has been renamed. Use [`PropsSingle`](./api/interfaces/PropsSingle.md) instead.
|
|
273
|
-
| ~`DayPickerMultipleProps`~ | This type has been renamed. Use [`PropsMulti`](./api/interfaces/PropsMulti.md) instead.
|
|
274
|
-
| ~`DayPickerRangeProps`~ | This type has been renamed. Use [`PropsRange`](./api/interfaces/PropsRange.md) instead.
|
|
275
|
-
| ~`DayPickerDefaultProps`~ | This type has been renamed. Use [`PropsBase`](./api/interfaces/PropsBase.md) instead.
|
|
276
|
-
| ~`DaySelectionMode`~ | This type has been renamed. Use [`Mode`](./api/type-aliases/Mode.md) instead.
|
|
277
|
-
| ~`Modifier`~ | This type will be removed. Use `string` instead.
|
|
278
|
-
| ~`
|
|
279
|
-
| ~`
|
|
280
|
-
| ~`
|
|
281
|
-
| ~`
|
|
282
|
-
| ~`
|
|
283
|
-
| ~`
|
|
284
|
-
| ~`
|
|
285
|
-
| ~`
|
|
286
|
-
| ~`
|
|
287
|
-
| ~`
|
|
288
|
-
| ~`
|
|
289
|
-
| ~`
|
|
290
|
-
| ~`
|
|
291
|
-
| ~`
|
|
292
|
-
| ~`
|
|
293
|
-
| ~`
|
|
294
|
-
| ~`
|
|
267
|
+
| Deprecated Type | Deprecation Reason |
|
|
268
|
+
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
|
|
269
|
+
| ~`Caption`~ | This component has been renamed. Use [`MonthCaption`](./api/functions/MonthCaption.md) instead. |
|
|
270
|
+
| ~`HeadRow`~ | This component has been removed. |
|
|
271
|
+
| ~`Row`~ | This component has been renamed. Use [`Week`](./api/functions/Week.md) instead. |
|
|
272
|
+
| ~`DayPickerSingleProps`~ | This type has been renamed. Use [`PropsSingle`](./api/interfaces/PropsSingle.md) instead. |
|
|
273
|
+
| ~`DayPickerMultipleProps`~ | This type has been renamed. Use [`PropsMulti`](./api/interfaces/PropsMulti.md) instead. |
|
|
274
|
+
| ~`DayPickerRangeProps`~ | This type has been renamed. Use [`PropsRange`](./api/interfaces/PropsRange.md) instead. |
|
|
275
|
+
| ~`DayPickerDefaultProps`~ | This type has been renamed. Use [`PropsBase`](./api/interfaces/PropsBase.md) instead. |
|
|
276
|
+
| ~`DaySelectionMode`~ | This type has been renamed. Use [`Mode`](./api/type-aliases/Mode.md) instead. |
|
|
277
|
+
| ~`Modifier`~ | This type will be removed. Use `string` instead. |
|
|
278
|
+
| ~`InternaModifier`~ | This type has been split into [`DayFlag`](./api/enumerations/DayFlag) and [`SelectionState`](./api/enumerations/SelectionState) |
|
|
279
|
+
| ~`SelectSingleEventHandler`~ | This type will be removed. Use [`PropsSingle["onSelect]`](./api/interfaces/PropsSingle.md) instead. |
|
|
280
|
+
| ~`SelectMultipleEventHandler`~ | This type will be removed. Use [`PropsMulti["onSelect]`](./api/interfaces/PropsMulti.md) instead. |
|
|
281
|
+
| ~`SelectRangeEventHandler`~ | This type will be removed. Use [`PropsRange["onSelect]`](./api/interfaces/PropsRange.md) instead. |
|
|
282
|
+
| ~`DayPickerProviderProps`~ | This type is not used anymore. |
|
|
283
|
+
| ~`useNavigation`~ | This type has been included in [`useDayPicker`](./api/functions/useDayPicker.md). |
|
|
284
|
+
| ~`useDayRender`~ | This hook has been removed. To customize the rendering of a day, use the `htmlAttributes` prop in a custom `Day` component. |
|
|
285
|
+
| ~`ContextProvidersProps`~ | This type is not used anymore. |
|
|
286
|
+
| ~`DayLabel`~ | Use `typeof labelDay` instead. |
|
|
287
|
+
| ~`NavButtonLabel`~ | Use `typeof labelNext` or `typeof labelPrevious` instead. |
|
|
288
|
+
| ~`WeekdayLabel`~ | Use `typeof labelWeekday` instead. |
|
|
289
|
+
| ~`WeekNumberLabel`~ | Use `typeof labelWeekNumber` instead. |
|
|
290
|
+
| ~`DayClickEventHandler`~ | Use `DayMouseEventHandler` instead. |
|
|
291
|
+
| ~`DayFocusEventHandler`~ | This type will be removed. Use `DayEventHandler<React.FocusEvent \| React.KeyboardEvent>` instead. |
|
|
292
|
+
| ~`DayKeyboardEventHandler`~ | This type will be removed. Use `DayEventHandler<React.KeyboardEvent>` instead. |
|
|
293
|
+
| ~`DayMouseEventHandler`~ | This type will be removed. Use `DayEventHandler<React.MouseEvent>` instead. |
|
|
294
|
+
| ~`DayPointerEventHandler`~ | This type will be removed. Use `DayEventHandler<React.PointerEvent>` instead. |
|
|
295
|
+
| ~`DayTouchEventHandler`~ | This type will be removed. Use `DayEventHandler<React.TouchEvent>` instead. |
|
|
295
296
|
|
|
296
297
|
</details>
|