react-day-picker 9.1.0 → 9.1.2
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/README.md +8 -8
- package/dist/cjs/DayPicker.js +11 -11
- package/dist/cjs/DayPicker.js.map +1 -1
- package/dist/cjs/classes/CalendarDay.d.ts +1 -1
- package/dist/cjs/classes/CalendarDay.js.map +1 -1
- package/dist/cjs/components/WeekNumber.d.ts +1 -1
- package/dist/cjs/components/WeekNumber.js +2 -2
- package/dist/cjs/formatters/formatCaption.d.ts +1 -2
- package/dist/cjs/formatters/formatCaption.js.map +1 -1
- package/dist/cjs/formatters/formatDay.d.ts +1 -2
- package/dist/cjs/formatters/formatDay.js.map +1 -1
- package/dist/cjs/formatters/formatWeekdayName.d.ts +1 -2
- package/dist/cjs/formatters/formatWeekdayName.js.map +1 -1
- package/dist/cjs/helpers/getDateLib.d.ts +2 -1
- package/dist/cjs/helpers/getDateLib.js.map +1 -1
- package/dist/cjs/helpers/getDates.d.ts +1 -1
- package/dist/cjs/helpers/getDates.js +3 -3
- package/dist/cjs/helpers/getDates.js.map +1 -1
- package/dist/cjs/helpers/getDisplayMonths.d.ts +2 -1
- package/dist/cjs/helpers/getDisplayMonths.js.map +1 -1
- package/dist/cjs/helpers/getFocusableDate.d.ts +2 -1
- package/dist/cjs/helpers/getInitialMonth.d.ts +1 -1
- package/dist/cjs/helpers/getInitialMonth.js +6 -1
- package/dist/cjs/helpers/getInitialMonth.js.map +1 -1
- package/dist/cjs/helpers/getMonthOptions.d.ts +2 -2
- package/dist/cjs/helpers/getMonthOptions.js +6 -3
- package/dist/cjs/helpers/getMonthOptions.js.map +1 -1
- package/dist/cjs/helpers/getMonths.d.ts +3 -2
- package/dist/cjs/helpers/getMonths.js.map +1 -1
- package/dist/cjs/helpers/getNavMonth.d.ts +3 -2
- package/dist/cjs/helpers/getNavMonth.js +16 -3
- package/dist/cjs/helpers/getNavMonth.js.map +1 -1
- package/dist/cjs/helpers/getNextFocus.d.ts +3 -2
- package/dist/cjs/helpers/getNextFocus.js.map +1 -1
- package/dist/cjs/helpers/getNextMonth.d.ts +2 -1
- package/dist/cjs/helpers/getNextMonth.js.map +1 -1
- package/dist/cjs/helpers/getPreviousMonth.d.ts +2 -1
- package/dist/cjs/helpers/getPreviousMonth.js.map +1 -1
- package/dist/cjs/helpers/getWeekdays.d.ts +2 -3
- package/dist/cjs/helpers/getWeekdays.js +9 -3
- package/dist/cjs/helpers/getWeekdays.js.map +1 -1
- package/dist/cjs/helpers/getYearOptions.d.ts +2 -1
- package/dist/cjs/helpers/getYearOptions.js +6 -5
- package/dist/cjs/helpers/getYearOptions.js.map +1 -1
- package/dist/cjs/labels/labelGrid.d.ts +1 -2
- package/dist/cjs/labels/labelGrid.js.map +1 -1
- package/dist/cjs/labels/labelWeekday.d.ts +1 -2
- package/dist/cjs/labels/labelWeekday.js.map +1 -1
- package/dist/cjs/lib/dateLib.d.ts +66 -3
- package/dist/cjs/lib/dateLib.js +0 -2
- package/dist/cjs/lib/dateLib.js.map +1 -1
- package/dist/cjs/lib/index.d.ts +1 -0
- package/dist/cjs/lib/index.js +3 -0
- package/dist/cjs/lib/index.js.map +1 -1
- package/dist/cjs/locale.d.ts +1 -0
- package/dist/cjs/locale.js +18 -0
- package/dist/cjs/locale.js.map +1 -0
- package/dist/cjs/selection/useMulti.d.ts +2 -1
- package/dist/cjs/selection/useMulti.js +5 -2
- package/dist/cjs/selection/useMulti.js.map +1 -1
- package/dist/cjs/selection/useRange.d.ts +2 -1
- package/dist/cjs/selection/useRange.js +5 -2
- package/dist/cjs/selection/useRange.js.map +1 -1
- package/dist/cjs/selection/useSingle.d.ts +2 -1
- package/dist/cjs/selection/useSingle.js +5 -2
- package/dist/cjs/selection/useSingle.js.map +1 -1
- package/dist/cjs/types/props.d.ts +31 -6
- package/dist/cjs/types/selection.d.ts +14 -5
- package/dist/cjs/types/shared.d.ts +17 -8
- package/dist/cjs/useCalendar.d.ts +2 -2
- package/dist/cjs/useCalendar.js +6 -0
- package/dist/cjs/useCalendar.js.map +1 -1
- package/dist/cjs/useDayPicker.d.ts +30 -6
- package/dist/cjs/useDayPicker.js +10 -2
- package/dist/cjs/useDayPicker.js.map +1 -1
- package/dist/cjs/useFocus.d.ts +2 -1
- package/dist/cjs/useGetModifiers.d.ts +2 -1
- package/dist/cjs/useGetModifiers.js +8 -2
- package/dist/cjs/useGetModifiers.js.map +1 -1
- package/dist/cjs/useSelection.d.ts +2 -1
- package/dist/cjs/useSelection.js.map +1 -1
- package/dist/cjs/utc.js +1 -2
- package/dist/cjs/utc.js.map +1 -1
- package/dist/cjs/utils/addToRange.d.ts +2 -1
- package/dist/cjs/utils/addToRange.js.map +1 -1
- package/dist/cjs/utils/dateMatchModifiers.d.ts +2 -1
- package/dist/cjs/utils/dateMatchModifiers.js.map +1 -1
- package/dist/cjs/utils/rangeIncludesDate.d.ts +2 -1
- package/dist/cjs/utils/rangeIncludesDate.js.map +1 -1
- package/dist/cjs/utils/typeguards.d.ts +2 -1
- package/dist/esm/DayPicker.js +11 -11
- package/dist/esm/DayPicker.js.map +1 -1
- package/dist/esm/classes/CalendarDay.d.ts +1 -1
- package/dist/esm/classes/CalendarDay.js.map +1 -1
- package/dist/esm/components/WeekNumber.d.ts +1 -1
- package/dist/esm/components/WeekNumber.js +2 -2
- package/dist/esm/formatters/formatCaption.d.ts +1 -2
- package/dist/esm/formatters/formatCaption.js.map +1 -1
- package/dist/esm/formatters/formatDay.d.ts +1 -2
- package/dist/esm/formatters/formatDay.js.map +1 -1
- package/dist/esm/formatters/formatWeekdayName.d.ts +1 -2
- package/dist/esm/formatters/formatWeekdayName.js.map +1 -1
- package/dist/esm/helpers/getDateLib.d.ts +2 -1
- package/dist/esm/helpers/getDateLib.js.map +1 -1
- package/dist/esm/helpers/getDates.d.ts +1 -1
- package/dist/esm/helpers/getDates.js +3 -3
- package/dist/esm/helpers/getDates.js.map +1 -1
- package/dist/esm/helpers/getDisplayMonths.d.ts +2 -1
- package/dist/esm/helpers/getDisplayMonths.js.map +1 -1
- package/dist/esm/helpers/getFocusableDate.d.ts +2 -1
- package/dist/esm/helpers/getInitialMonth.d.ts +1 -1
- package/dist/esm/helpers/getInitialMonth.js +6 -1
- package/dist/esm/helpers/getInitialMonth.js.map +1 -1
- package/dist/esm/helpers/getMonthOptions.d.ts +2 -2
- package/dist/esm/helpers/getMonthOptions.js +6 -3
- package/dist/esm/helpers/getMonthOptions.js.map +1 -1
- package/dist/esm/helpers/getMonths.d.ts +3 -2
- package/dist/esm/helpers/getMonths.js.map +1 -1
- package/dist/esm/helpers/getNavMonth.d.ts +3 -2
- package/dist/esm/helpers/getNavMonth.js +16 -3
- package/dist/esm/helpers/getNavMonth.js.map +1 -1
- package/dist/esm/helpers/getNextFocus.d.ts +3 -2
- package/dist/esm/helpers/getNextFocus.js.map +1 -1
- package/dist/esm/helpers/getNextMonth.d.ts +2 -1
- package/dist/esm/helpers/getNextMonth.js.map +1 -1
- package/dist/esm/helpers/getPreviousMonth.d.ts +2 -1
- package/dist/esm/helpers/getPreviousMonth.js.map +1 -1
- package/dist/esm/helpers/getWeekdays.d.ts +2 -3
- package/dist/esm/helpers/getWeekdays.js +9 -3
- package/dist/esm/helpers/getWeekdays.js.map +1 -1
- package/dist/esm/helpers/getYearOptions.d.ts +2 -1
- package/dist/esm/helpers/getYearOptions.js +6 -5
- package/dist/esm/helpers/getYearOptions.js.map +1 -1
- package/dist/esm/labels/labelGrid.d.ts +1 -2
- package/dist/esm/labels/labelGrid.js.map +1 -1
- package/dist/esm/labels/labelWeekday.d.ts +1 -2
- package/dist/esm/labels/labelWeekday.js.map +1 -1
- package/dist/esm/lib/dateLib.d.ts +66 -3
- package/dist/esm/lib/dateLib.js +0 -2
- package/dist/esm/lib/dateLib.js.map +1 -1
- package/dist/esm/lib/index.d.ts +1 -0
- package/dist/esm/lib/index.js +1 -0
- package/dist/esm/lib/index.js.map +1 -1
- package/dist/esm/locale.d.ts +1 -0
- package/dist/esm/locale.js +2 -0
- package/dist/esm/locale.js.map +1 -0
- package/dist/esm/selection/useMulti.d.ts +2 -1
- package/dist/esm/selection/useMulti.js +5 -2
- package/dist/esm/selection/useMulti.js.map +1 -1
- package/dist/esm/selection/useRange.d.ts +2 -1
- package/dist/esm/selection/useRange.js +5 -2
- package/dist/esm/selection/useRange.js.map +1 -1
- package/dist/esm/selection/useSingle.d.ts +2 -1
- package/dist/esm/selection/useSingle.js +5 -2
- package/dist/esm/selection/useSingle.js.map +1 -1
- package/dist/esm/types/props.d.ts +31 -6
- package/dist/esm/types/selection.d.ts +14 -5
- package/dist/esm/types/shared.d.ts +17 -8
- package/dist/esm/useCalendar.d.ts +2 -2
- package/dist/esm/useCalendar.js +6 -0
- package/dist/esm/useCalendar.js.map +1 -1
- package/dist/esm/useDayPicker.d.ts +30 -6
- package/dist/esm/useDayPicker.js +10 -2
- package/dist/esm/useDayPicker.js.map +1 -1
- package/dist/esm/useFocus.d.ts +2 -1
- package/dist/esm/useGetModifiers.d.ts +2 -1
- package/dist/esm/useGetModifiers.js +8 -2
- package/dist/esm/useGetModifiers.js.map +1 -1
- package/dist/esm/useSelection.d.ts +2 -1
- package/dist/esm/useSelection.js.map +1 -1
- package/dist/esm/utc.js +1 -2
- package/dist/esm/utc.js.map +1 -1
- package/dist/esm/utils/addToRange.d.ts +2 -1
- package/dist/esm/utils/addToRange.js.map +1 -1
- package/dist/esm/utils/dateMatchModifiers.d.ts +2 -1
- package/dist/esm/utils/dateMatchModifiers.js.map +1 -1
- package/dist/esm/utils/rangeIncludesDate.d.ts +2 -1
- package/dist/esm/utils/rangeIncludesDate.js.map +1 -1
- package/dist/esm/utils/typeguards.d.ts +2 -1
- package/examples/Input.test.tsx +1 -1
- package/examples/ItalianLabels.tsx +1 -1
- package/examples/ModifiersHidden.test.tsx +1 -1
- package/examples/NumberingSystem.test.tsx +3 -3
- package/examples/PastDatesDisabled.tsx +7 -0
- package/examples/Range.test.tsx +1 -1
- package/examples/RangeShiftKey.tsx +1 -1
- package/examples/SingleControlled.test.tsx +37 -0
- package/examples/SingleControlled.tsx +8 -0
- package/examples/SingleMockDate.test.tsx +39 -0
- package/examples/TimeZone.tsx +23 -0
- package/examples/WeekStartsOn.tsx +7 -0
- package/examples/Weeknumber.test.tsx +2 -2
- package/examples/WeeknumberCustom.tsx +2 -2
- package/examples/__snapshots__/Range.test.tsx.snap +84 -100
- package/examples/__snapshots__/StylingCssModules.test.tsx.snap +42 -50
- package/examples/index.ts +4 -0
- package/package.json +19 -3
- package/src/DayPicker.test.tsx +13 -0
- package/src/DayPicker.tsx +13 -10
- package/src/classes/CalendarDay.ts +1 -1
- package/src/components/WeekNumber.tsx +3 -3
- package/src/formatters/formatCaption.ts +5 -2
- package/src/formatters/formatDay.ts +1 -2
- package/src/formatters/formatWeekdayName.ts +1 -2
- package/src/helpers/getDateLib.ts +2 -2
- package/src/helpers/getDates.ts +4 -5
- package/src/helpers/getDisplayMonths.ts +2 -1
- package/src/helpers/getFocusableDate.ts +1 -1
- package/src/helpers/getInitialMonth.ts +8 -1
- package/src/helpers/getMonthOptions.ts +8 -5
- package/src/helpers/getMonths.ts +3 -1
- package/src/helpers/getNavMonth.ts +23 -5
- package/src/helpers/getNextFocus.tsx +8 -2
- package/src/helpers/getNextMonth.ts +2 -1
- package/src/helpers/getPreviousMonth.ts +2 -1
- package/src/helpers/getWeekdays.test.ts +1 -1
- package/src/helpers/getWeekdays.ts +11 -4
- package/src/helpers/getYearOptions.ts +8 -7
- package/src/labels/labelGrid.ts +1 -2
- package/src/labels/labelWeekday.ts +1 -2
- package/src/lib/dateLib.ts +95 -3
- package/src/lib/index.ts +1 -0
- package/src/locale.ts +1 -0
- package/src/selection/useMulti.test.tsx +42 -0
- package/src/selection/useMulti.tsx +7 -3
- package/src/selection/useRange.test.tsx +41 -0
- package/src/selection/useRange.tsx +7 -3
- package/src/selection/useSingle.test.tsx +39 -0
- package/src/selection/useSingle.tsx +7 -3
- package/src/types/props.ts +31 -7
- package/src/types/selection.ts +12 -9
- package/src/types/shared.ts +17 -9
- package/src/useCalendar.ts +10 -3
- package/src/useDayPicker.ts +30 -6
- package/src/useFocus.ts +1 -1
- package/src/useGetModifiers.tsx +14 -3
- package/src/useSelection.ts +2 -1
- package/src/utc.tsx +1 -3
- package/src/utils/addToRange.ts +2 -2
- package/src/utils/dateMatchModifiers.ts +2 -2
- package/src/utils/rangeIncludesDate.ts +2 -2
- package/src/utils/typeguards.ts +1 -1
- package/website/docs/development/code-of-conduct.md +5 -7
- package/website/docs/development/contributing.md +9 -0
- package/website/docs/docs/localization.mdx +71 -85
- package/website/docs/docs/selection-modes.mdx +40 -26
- package/website/docs/docs/translation.mdx +3 -3
- package/website/docs/guides/custom-components.mdx +10 -10
- package/website/docs/intro.mdx +1 -1
- package/website/docs/start.mdx +1 -1
- package/website/docs/development/contributing.mdx +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getWeekdays.js","sourceRoot":"","sources":["../../../src/helpers/getWeekdays.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"getWeekdays.js","sourceRoot":"","sources":["../../../src/helpers/getWeekdays.ts"],"names":[],"mappings":";;AASA,kCAyBC;AAlCD,qCAAsC;AAGtC,8CAA4D;AAE5D;;;GAGG;AACH,SAAgB,WAAW,CACzB,MAA2B;AAC3B,2DAA2D;AAC3D,YAAoD;AACpD,qCAAqC;AACrC,OAA6B,EAC7B,QAA6B;AAC7B,cAAc;AACd,UAAmB,kBAAc;IAEjC,MAAM,IAAI,GAAG,QAAQ;QACnB,CAAC,CAAC,WAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;QACrB,CAAC,CAAC,OAAO,CAAC,IAAI;YACZ,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE;YACpB,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;IACjB,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAExD,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DropdownOption } from "../components/Dropdown.js";
|
|
2
|
-
import type { DateLib
|
|
2
|
+
import type { DateLib } from "../lib/dateLib.js";
|
|
3
|
+
import type { Formatters } from "../types/index.js";
|
|
3
4
|
/** Return the years to show in the dropdown. */
|
|
4
5
|
export declare function getYearOptions(displayMonth: Date, calendarStart: Date | undefined, calendarEnd: Date | undefined, formatters: Pick<Formatters, "formatYearDropdown">, dateLib: DateLib): DropdownOption[] | undefined;
|
|
@@ -7,7 +7,7 @@ function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, da
|
|
|
7
7
|
return undefined;
|
|
8
8
|
if (!calendarEnd)
|
|
9
9
|
return undefined;
|
|
10
|
-
const { startOfMonth, startOfYear, endOfYear, addYears, isBefore, isSameYear
|
|
10
|
+
const { startOfMonth, startOfYear, endOfYear, addYears, isBefore, isSameYear } = dateLib;
|
|
11
11
|
const month = displayMonth.getMonth();
|
|
12
12
|
const firstNavYear = startOfYear(calendarStart);
|
|
13
13
|
const lastNavYear = endOfYear(calendarEnd);
|
|
@@ -18,10 +18,11 @@ function getYearOptions(displayMonth, calendarStart, calendarEnd, formatters, da
|
|
|
18
18
|
year = addYears(year, 1);
|
|
19
19
|
}
|
|
20
20
|
return years.map((value) => {
|
|
21
|
-
const
|
|
22
|
-
(month
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
const year = dateLib.Date
|
|
22
|
+
? new dateLib.Date(value, month)
|
|
23
|
+
: new Date(value, month);
|
|
24
|
+
const disabled = (calendarStart && year < startOfMonth(calendarStart)) ||
|
|
25
|
+
(month && calendarEnd && year > startOfMonth(calendarEnd)) ||
|
|
25
26
|
false;
|
|
26
27
|
const label = formatters.formatYearDropdown(value);
|
|
27
28
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getYearOptions.js","sourceRoot":"","sources":["../../../src/helpers/getYearOptions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"getYearOptions.js","sourceRoot":"","sources":["../../../src/helpers/getYearOptions.ts"],"names":[],"mappings":";;AAKA,wCA2CC;AA5CD,gDAAgD;AAChD,SAAgB,cAAc,CAC5B,YAAkB,EAClB,aAA+B,EAC/B,WAA6B,EAC7B,UAAkD,EAClD,OAAgB;IAEhB,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IACrC,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,EACJ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,GAAG,OAAO,CAAC;IACZ,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;IACtC,MAAM,YAAY,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,IAAI,GAAG,YAAY,CAAC;IACxB,OAAO,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/B,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;YACvB,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;YAChC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3B,MAAM,QAAQ,GACZ,CAAC,aAAa,IAAI,IAAI,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YACrD,CAAC,KAAK,IAAI,WAAW,IAAI,IAAI,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;YAC1D,KAAK,CAAC;QACR,MAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACnD,OAAO;YACL,KAAK;YACL,KAAK;YACL,QAAQ;SACT,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labelGrid.js","sourceRoot":"","sources":["../../../src/labels/labelGrid.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"labelGrid.js","sourceRoot":"","sources":["../../../src/labels/labelGrid.ts"],"names":[],"mappings":";;;AAWA,8BAOC;AAjBD,8CAA4D;AAE5D;;;;;;;GAOG;AACH,SAAgB,SAAS,CACvB,IAAU,EACV,OAAsB;AACtB,cAAc;AACd,UAAmB,kBAAc;IAEjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACU,QAAA,YAAY,GAAG,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labelWeekday.js","sourceRoot":"","sources":["../../../src/labels/labelWeekday.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"labelWeekday.js","sourceRoot":"","sources":["../../../src/labels/labelWeekday.ts"],"names":[],"mappings":";;AAUA,oCAOC;AAhBD,8CAA4D;AAE5D;;;;;;GAMG;AACH,SAAgB,YAAY,CAC1B,IAAU,EACV,OAAsB;AACtB,cAAc;AACd,UAAmB,kBAAc;IAEjC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { GenericDateConstructor } from "date-fns";
|
|
2
1
|
import type { FormatOptions as DateFnsFormatOptions, Locale as DateFnsLocale } from "date-fns";
|
|
3
2
|
import { addDays } from "date-fns/addDays";
|
|
4
3
|
import { addMonths } from "date-fns/addMonths";
|
|
@@ -35,6 +34,72 @@ export type LabelOptions = DateFnsFormatOptions;
|
|
|
35
34
|
/** The locale used within DayPicker. */
|
|
36
35
|
export type Locale = DateFnsLocale;
|
|
37
36
|
export type { Month as DateFnsMonth } from "date-fns";
|
|
37
|
+
/**
|
|
38
|
+
* The date library used by DayPicker. It's a subset of the date-fns functions
|
|
39
|
+
* plus an optional Date constructor.
|
|
40
|
+
*
|
|
41
|
+
* Override the default date library with the `dateLib` prop.
|
|
42
|
+
*/
|
|
43
|
+
export type DateLib = {
|
|
44
|
+
/** The constructor of the date object. */
|
|
45
|
+
Date?: DateConstructor | undefined;
|
|
46
|
+
/** Adds the specified number of days to the given date. */
|
|
47
|
+
addDays: typeof addDays;
|
|
48
|
+
/** Adds the specified number of months to the given date. */
|
|
49
|
+
addMonths: typeof addMonths;
|
|
50
|
+
/** Adds the specified number of weeks to the given date. */
|
|
51
|
+
addWeeks: typeof addWeeks;
|
|
52
|
+
/** Adds the specified number of years to the given date. */
|
|
53
|
+
addYears: typeof addYears;
|
|
54
|
+
/** Returns the number of calendar days between the given dates. */
|
|
55
|
+
differenceInCalendarDays: typeof differenceInCalendarDays;
|
|
56
|
+
/** Returns the number of calendar months between the given dates. */
|
|
57
|
+
differenceInCalendarMonths: typeof differenceInCalendarMonths;
|
|
58
|
+
/** Returns the end of an ISO week for the given date. */
|
|
59
|
+
endOfISOWeek: typeof endOfISOWeek;
|
|
60
|
+
/** Returns the end of the month for the given date. */
|
|
61
|
+
endOfMonth: typeof endOfMonth;
|
|
62
|
+
/** Returns the end of the week for the given date. */
|
|
63
|
+
endOfWeek: typeof endOfWeek;
|
|
64
|
+
/** Returns the end of the year for the given date. */
|
|
65
|
+
endOfYear: typeof endOfYear;
|
|
66
|
+
/** Formats the given date using the specified format string. */
|
|
67
|
+
format: typeof format;
|
|
68
|
+
/** Returns the ISO week number for the given date. */
|
|
69
|
+
getISOWeek: typeof getISOWeek;
|
|
70
|
+
/** Returns the week number for the given date. */
|
|
71
|
+
getWeek: typeof getWeek;
|
|
72
|
+
/** Checks if the first date is after the second date. */
|
|
73
|
+
isAfter: typeof isAfter;
|
|
74
|
+
/** Checks if the first date is before the second date. */
|
|
75
|
+
isBefore: typeof isBefore;
|
|
76
|
+
/** Checks if the given value is a date. */
|
|
77
|
+
isDate: typeof isDate;
|
|
78
|
+
/** Checks if the given dates are the same day. */
|
|
79
|
+
isSameDay: typeof isSameDay;
|
|
80
|
+
/** Checks if the given dates are in the same month. */
|
|
81
|
+
isSameMonth: typeof isSameMonth;
|
|
82
|
+
/** Checks if the given dates are in the same year. */
|
|
83
|
+
isSameYear: typeof isSameYear;
|
|
84
|
+
/** Returns the maximum of the given dates. */
|
|
85
|
+
max: typeof max;
|
|
86
|
+
/** Returns the minimum of the given dates. */
|
|
87
|
+
min: typeof min;
|
|
88
|
+
/** Sets the month for the given date. */
|
|
89
|
+
setMonth: typeof setMonth;
|
|
90
|
+
/** Sets the year for the given date. */
|
|
91
|
+
setYear: typeof setYear;
|
|
92
|
+
/** Returns the start of the day for the given date. */
|
|
93
|
+
startOfDay: typeof startOfDay;
|
|
94
|
+
/** Returns the start of an ISO week for the given date. */
|
|
95
|
+
startOfISOWeek: typeof startOfISOWeek;
|
|
96
|
+
/** Returns the start of the month for the given date. */
|
|
97
|
+
startOfMonth: typeof startOfMonth;
|
|
98
|
+
/** Returns the start of the week for the given date. */
|
|
99
|
+
startOfWeek: typeof startOfWeek;
|
|
100
|
+
/** Returns the start of the year for the given date. */
|
|
101
|
+
startOfYear: typeof startOfYear;
|
|
102
|
+
};
|
|
38
103
|
/**
|
|
39
104
|
* The default date library to use with the date picker.
|
|
40
105
|
*
|
|
@@ -42,8 +107,6 @@ export type { Month as DateFnsMonth } from "date-fns";
|
|
|
42
107
|
* @internal
|
|
43
108
|
*/
|
|
44
109
|
export declare const dateLib: {
|
|
45
|
-
/** The constructor of the date object. */
|
|
46
|
-
Date: GenericDateConstructor;
|
|
47
110
|
addDays: typeof addDays;
|
|
48
111
|
addMonths: typeof addMonths;
|
|
49
112
|
addWeeks: typeof addWeeks;
|
package/dist/cjs/lib/dateLib.js
CHANGED
|
@@ -36,8 +36,6 @@ const startOfYear_1 = require("date-fns/startOfYear");
|
|
|
36
36
|
* @internal
|
|
37
37
|
*/
|
|
38
38
|
exports.dateLib = {
|
|
39
|
-
/** The constructor of the date object. */
|
|
40
|
-
Date: Date,
|
|
41
39
|
addDays: addDays_1.addDays,
|
|
42
40
|
addMonths: addMonths_1.addMonths,
|
|
43
41
|
addWeeks: addWeeks_1.addWeeks,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateLib.js","sourceRoot":"","sources":["../../../src/lib/dateLib.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"dateLib.js","sourceRoot":"","sources":["../../../src/lib/dateLib.ts"],"names":[],"mappings":";;;AAIA,8CAA2C;AAC3C,kDAA+C;AAC/C,gDAA6C;AAC7C,gDAA6C;AAC7C,gFAA6E;AAC7E,oFAAiF;AACjF,wDAAqD;AACrD,oDAAiD;AACjD,kDAA+C;AAC/C,kDAA+C;AAC/C,4CAAyC;AACzC,oDAAiD;AACjD,8CAA2C;AAC3C,8CAA2C;AAC3C,gDAA6C;AAC7C,4CAAyC;AACzC,kDAA+C;AAC/C,sDAAmD;AACnD,oDAAiD;AACjD,sCAAmC;AACnC,sCAAmC;AACnC,gDAA6C;AAC7C,8CAA2C;AAC3C,oDAAiD;AACjD,4DAAyD;AACzD,wDAAqD;AACrD,sDAAmD;AACnD,sDAAmD;AA4GnD;;;;;GAKG;AACU,QAAA,OAAO,GAAG;IACrB,OAAO,EAAP,iBAAO;IACP,SAAS,EAAT,qBAAS;IACT,QAAQ,EAAR,mBAAQ;IACR,QAAQ,EAAR,mBAAQ;IACR,wBAAwB,EAAxB,mDAAwB;IACxB,0BAA0B,EAA1B,uDAA0B;IAC1B,YAAY,EAAZ,2BAAY;IACZ,UAAU,EAAV,uBAAU;IACV,SAAS,EAAT,qBAAS;IACT,SAAS,EAAT,qBAAS;IACT,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,uBAAU;IACV,OAAO,EAAP,iBAAO;IACP,OAAO,EAAP,iBAAO;IACP,QAAQ,EAAR,mBAAQ;IACR,MAAM,EAAN,eAAM;IACN,SAAS,EAAT,qBAAS;IACT,WAAW,EAAX,yBAAW;IACX,UAAU,EAAV,uBAAU;IACV,GAAG,EAAH,SAAG;IACH,GAAG,EAAH,SAAG;IACH,QAAQ,EAAR,mBAAQ;IACR,OAAO,EAAP,iBAAO;IACP,UAAU,EAAV,uBAAU;IACV,cAAc,EAAd,+BAAc;IACd,YAAY,EAAZ,2BAAY;IACZ,WAAW,EAAX,yBAAW;IACX,WAAW,EAAX,yBAAW;CACZ,CAAC"}
|
package/dist/cjs/lib/index.d.ts
CHANGED
package/dist/cjs/lib/index.js
CHANGED
|
@@ -14,5 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.TZDate = void 0;
|
|
17
18
|
__exportStar(require("./dateLib.js"), exports);
|
|
19
|
+
var tz_1 = require("@date-fns/tz");
|
|
20
|
+
Object.defineProperty(exports, "TZDate", { enumerable: true, get: function () { return tz_1.TZDate; } });
|
|
18
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,mCAAsC;AAA7B,4FAAA,MAAM,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "date-fns/locale";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("date-fns/locale"), exports);
|
|
18
|
+
//# sourceMappingURL=locale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.js","sourceRoot":"","sources":["../../src/locale.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import type { DateLib
|
|
1
|
+
import type { DateLib } from "../lib/dateLib.js";
|
|
2
|
+
import type { DayPickerProps, Selection } from "../types/index.js";
|
|
2
3
|
export declare function useMulti<T extends DayPickerProps>(props: T, dateLib: DateLib): Selection<T>;
|
|
@@ -4,7 +4,8 @@ exports.useMulti = useMulti;
|
|
|
4
4
|
const useControlledValue_js_1 = require("../helpers/useControlledValue.js");
|
|
5
5
|
function useMulti(props, dateLib) {
|
|
6
6
|
const { selected: initiallySelected, required, onSelect } = props;
|
|
7
|
-
const [
|
|
7
|
+
const [internallySelected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
|
|
8
|
+
const selected = !onSelect ? internallySelected : initiallySelected;
|
|
8
9
|
const { isSameDay } = dateLib;
|
|
9
10
|
const isSelected = (date) => {
|
|
10
11
|
return selected?.some((d) => isSameDay(d, date)) ?? false;
|
|
@@ -33,7 +34,9 @@ function useMulti(props, dateLib) {
|
|
|
33
34
|
newDates = [...newDates, triggerDate];
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
+
if (!onSelect) {
|
|
38
|
+
setSelected(newDates);
|
|
39
|
+
}
|
|
37
40
|
onSelect?.(newDates, triggerDate, modifiers, e);
|
|
38
41
|
return newDates;
|
|
39
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useMulti.js","sourceRoot":"","sources":["../../../src/selection/useMulti.tsx"],"names":[],"mappings":";;AAWA,
|
|
1
|
+
{"version":3,"file":"useMulti.js","sourceRoot":"","sources":["../../../src/selection/useMulti.tsx"],"names":[],"mappings":";;AAWA,4BA8DC;AAvED,4EAAsE;AAStE,SAAgB,QAAQ,CACtB,KAAQ,EACR,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAmB,CAAC;IAExB,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAC1D,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE;QAChC,OAAO,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;IAC5D,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAmB,CAAC;IAEzC,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,IAAI,QAAQ,GAAuB,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;QACzD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7B,gCAAgC;gBAChC,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,6CAA6C;gBAC7C,OAAO;YACT,CAAC;YACD,QAAQ,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,IAAI,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7B,iDAAiD;gBACjD,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,gCAAgC;gBAChC,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
-
import type { DateLib
|
|
1
|
+
import type { DateLib } from "../lib/index.js";
|
|
2
|
+
import type { DayPickerProps, Selection } from "../types/index.js";
|
|
2
3
|
export declare function useRange<T extends DayPickerProps>(props: T, dateLib: DateLib): Selection<T>;
|
|
@@ -6,7 +6,8 @@ const index_js_1 = require("../utils/index.js");
|
|
|
6
6
|
const rangeIncludesDate_js_1 = require("../utils/rangeIncludesDate.js");
|
|
7
7
|
function useRange(props, dateLib) {
|
|
8
8
|
const { disabled, excludeDisabled, selected: initiallySelected, required, onSelect } = props;
|
|
9
|
-
const [
|
|
9
|
+
const [internallySelected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
|
|
10
|
+
const selected = !onSelect ? internallySelected : initiallySelected;
|
|
10
11
|
const isSelected = (date) => selected && (0, rangeIncludesDate_js_1.rangeIncludesDate)(selected, date, false, dateLib);
|
|
11
12
|
const select = (triggerDate, modifiers, e) => {
|
|
12
13
|
const { min, max } = props;
|
|
@@ -27,7 +28,9 @@ function useRange(props, dateLib) {
|
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
+
if (!onSelect) {
|
|
32
|
+
setSelected(newRange);
|
|
33
|
+
}
|
|
31
34
|
onSelect?.(newRange, triggerDate, modifiers, e);
|
|
32
35
|
return newRange;
|
|
33
36
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRange.js","sourceRoot":"","sources":["../../../src/selection/useRange.tsx"],"names":[],"mappings":";;AAaA,
|
|
1
|
+
{"version":3,"file":"useRange.js","sourceRoot":"","sources":["../../../src/selection/useRange.tsx"],"names":[],"mappings":";;AAaA,4BA8DC;AAzED,4EAAsE;AAQtE,gDAAmE;AACnE,wEAAkE;AAElE,SAAgB,QAAQ,CACtB,KAAQ,EACR,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EACR,eAAe,EACf,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAmB,CAAC;IAExB,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAC1D,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpE,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,EAAE,CAChC,QAAQ,IAAI,IAAA,wCAAiB,EAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAmB,CAAC;QACzC,MAAM,QAAQ,GAAG,WAAW;YAC1B,CAAC,CAAC,IAAA,qBAAU,EAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;YAChE,CAAC,CAAC,SAAS,CAAC;QAEd,IAAI,QAAQ,EAAE,IAAI,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC5B,OAAO,OAAO,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBACtC,IACE,eAAe;oBACf,QAAQ;oBACR,IAAA,6BAAkB,EAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,EAC9C,CAAC;oBACD,kDAAkD;oBAClD,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC;oBAC5B,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC;oBACxB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxB,CAAC;QACD,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAEhD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type { DateLib
|
|
1
|
+
import type { DateLib } from "../lib/index.js";
|
|
2
|
+
import type { DayPickerProps, SelectHandler, SelectedValue, Selection } from "../types/index.js";
|
|
2
3
|
export type UseSingle<T extends DayPickerProps> = {
|
|
3
4
|
select: SelectHandler<T>;
|
|
4
5
|
isSelected: (date: Date) => boolean;
|
|
@@ -4,7 +4,8 @@ exports.useSingle = useSingle;
|
|
|
4
4
|
const useControlledValue_js_1 = require("../helpers/useControlledValue.js");
|
|
5
5
|
function useSingle(props, dateLib) {
|
|
6
6
|
const { selected: initiallySelected, required, onSelect } = props;
|
|
7
|
-
const [
|
|
7
|
+
const [internallySelected, setSelected] = (0, useControlledValue_js_1.useControlledValue)(initiallySelected, onSelect ? initiallySelected : undefined);
|
|
8
|
+
const selected = !onSelect ? internallySelected : initiallySelected;
|
|
8
9
|
const { isSameDay } = dateLib;
|
|
9
10
|
const isSelected = (compareDate) => {
|
|
10
11
|
return selected ? isSameDay(selected, compareDate) : false;
|
|
@@ -15,7 +16,9 @@ function useSingle(props, dateLib) {
|
|
|
15
16
|
// If the date is the same, clear the selection.
|
|
16
17
|
newDate = undefined;
|
|
17
18
|
}
|
|
18
|
-
|
|
19
|
+
if (!onSelect) {
|
|
20
|
+
setSelected(newDate);
|
|
21
|
+
}
|
|
19
22
|
if (required) {
|
|
20
23
|
onSelect?.(newDate, triggerDate, modifiers, e);
|
|
21
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSingle.js","sourceRoot":"","sources":["../../../src/selection/useSingle.tsx"],"names":[],"mappings":";;AAmBA,
|
|
1
|
+
{"version":3,"file":"useSingle.js","sourceRoot":"","sources":["../../../src/selection/useSingle.tsx"],"names":[],"mappings":";;AAmBA,8BAiDC;AAlED,4EAAsE;AAiBtE,SAAgB,SAAS,CACvB,KAAqB,EACrB,OAAgB;IAEhB,MAAM,EACJ,QAAQ,EAAE,iBAAiB,EAC3B,QAAQ,EACR,QAAQ,EACT,GAAG,KAAoB,CAAC;IAEzB,MAAM,CAAC,kBAAkB,EAAE,WAAW,CAAC,GAAG,IAAA,0CAAkB,EAC1D,iBAAiB,EACjB,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CACzC,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEpE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAE9B,MAAM,UAAU,GAAG,CAAC,WAAiB,EAAE,EAAE;QACvC,OAAO,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7D,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CACb,WAAiB,EACjB,SAAoB,EACpB,CAAyC,EACzC,EAAE;QACF,IAAI,OAAO,GAAqB,WAAW,CAAC;QAC5C,IAAI,CAAC,QAAQ,IAAI,QAAQ,IAAI,QAAQ,IAAI,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;YAC1E,gDAAgD;YAChD,OAAO,GAAG,SAAS,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,WAAW,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QACD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,EAAE,CAAC,OAAe,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,QAAQ,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,MAAM;QACN,UAAU;KACK,CAAC;AACpB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import type { DeprecatedUI } from "../UI.js";
|
|
3
|
-
import type { Locale } from "../lib/dateLib.js";
|
|
4
|
-
import type { ClassNames, ModifiersClassNames, Styles, ModifiersStyles, CustomComponents, Matcher, Labels, Formatters, MonthChangeEventHandler, DayEventHandler, Modifiers, DateRange, Mode
|
|
3
|
+
import type { Locale, DateLib } from "../lib/dateLib.js";
|
|
4
|
+
import type { ClassNames, ModifiersClassNames, Styles, ModifiersStyles, CustomComponents, Matcher, Labels, Formatters, MonthChangeEventHandler, DayEventHandler, Modifiers, DateRange, Mode } from "./shared.js";
|
|
5
5
|
/**
|
|
6
6
|
* The props for the `<DayPicker />` component.
|
|
7
7
|
*
|
|
@@ -228,6 +228,21 @@ export interface PropsBase {
|
|
|
228
228
|
* @see https://en.wikipedia.org/wiki/ISO_week_date
|
|
229
229
|
*/
|
|
230
230
|
ISOWeek?: boolean;
|
|
231
|
+
/**
|
|
232
|
+
* The time zone (IANA or UTC offset) to use in the calendar (experimental).
|
|
233
|
+
* See
|
|
234
|
+
* [Wikipedia](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
|
|
235
|
+
* for the possible values.
|
|
236
|
+
*
|
|
237
|
+
* Time zones are supported by the `TZDate` object by the
|
|
238
|
+
* [@date-fns/tz](https://github.com/date-fns/tz) package. Please refer to the
|
|
239
|
+
* package documentation for more information.
|
|
240
|
+
*
|
|
241
|
+
* @since 9.1.1
|
|
242
|
+
* @experimental
|
|
243
|
+
* @see https://daypicker.dev/docs/localization#time-zone
|
|
244
|
+
*/
|
|
245
|
+
timeZone?: string | undefined;
|
|
231
246
|
/**
|
|
232
247
|
* Change the components used for rendering the calendar elements.
|
|
233
248
|
*
|
|
@@ -310,15 +325,16 @@ export interface PropsBase {
|
|
|
310
325
|
/** Add the language tag to the container element. */
|
|
311
326
|
lang?: HTMLDivElement["lang"];
|
|
312
327
|
/**
|
|
313
|
-
* The locale object used to localize dates. Pass a locale from
|
|
314
|
-
* localize the calendar.
|
|
328
|
+
* The locale object used to localize dates. Pass a locale from
|
|
329
|
+
* `react-day-picker/locale` to localize the calendar.
|
|
315
330
|
*
|
|
316
331
|
* @example
|
|
317
|
-
* import { es } from "
|
|
332
|
+
* import { es } from "react-day-picker/locale";
|
|
318
333
|
* <DayPicker locale={es} />
|
|
319
334
|
*
|
|
320
335
|
* @defaultValue enUS - The English locale default of `date-fns`.
|
|
321
336
|
* @see https://daypicker.dev/docs/localization
|
|
337
|
+
* @see https://github.com/date-fns/date-fns/tree/main/src/locale for a list of the supported locales
|
|
322
338
|
*/
|
|
323
339
|
locale?: Partial<Locale> | undefined;
|
|
324
340
|
/**
|
|
@@ -435,7 +451,16 @@ export interface PropsBase {
|
|
|
435
451
|
*/
|
|
436
452
|
onDayTouchStart?: DayEventHandler<React.TouchEvent>;
|
|
437
453
|
}
|
|
438
|
-
/**
|
|
454
|
+
/**
|
|
455
|
+
* Shared handler type for `onSelect` callback when a selection mode is set.
|
|
456
|
+
*
|
|
457
|
+
* @template T - The type of the selected item.
|
|
458
|
+
* @callback OnSelectHandler
|
|
459
|
+
* @param {T} selected - The selected item after the event.
|
|
460
|
+
* @param {Date} triggerDate - The date when the event was triggered.
|
|
461
|
+
* @param {Modifiers} modifiers - The modifiers associated with the event.
|
|
462
|
+
* @param {React.MouseEvent | React.KeyboardEvent} e - The event object.
|
|
463
|
+
*/
|
|
439
464
|
export type OnSelectHandler<T> = (selected: T, triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => void;
|
|
440
465
|
/**
|
|
441
466
|
* The props when the single selection is required.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DayPickerProps } from "./props.js";
|
|
2
|
-
import type { DateRange, Modifiers } from "./shared.js";
|
|
2
|
+
import type { DateRange, Mode, Modifiers } from "./shared.js";
|
|
3
3
|
export type Selection<T extends DayPickerProps> = {
|
|
4
4
|
/** The selected date(s). */
|
|
5
5
|
selected: SelectedValue<T> | undefined;
|
|
@@ -27,10 +27,19 @@ export type SelectedValue<T> = T extends {
|
|
|
27
27
|
mode: "range";
|
|
28
28
|
required?: boolean;
|
|
29
29
|
} ? SelectedRange<T> : undefined;
|
|
30
|
-
export type SelectHandlerSingle<T extends
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
export type
|
|
30
|
+
export type SelectHandlerSingle<T extends {
|
|
31
|
+
required?: boolean | undefined;
|
|
32
|
+
}> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? Date : Date | undefined;
|
|
33
|
+
export type SelectHandlerMulti<T extends {
|
|
34
|
+
required?: boolean | undefined;
|
|
35
|
+
}> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? Date[] : Date[] | undefined;
|
|
36
|
+
export type SelectHandlerRange<T extends {
|
|
37
|
+
required?: boolean | undefined;
|
|
38
|
+
}> = (triggerDate: Date, modifiers: Modifiers, e: React.MouseEvent | React.KeyboardEvent) => T["required"] extends true ? DateRange : DateRange | undefined;
|
|
39
|
+
export type SelectHandler<T extends {
|
|
40
|
+
mode?: Mode | undefined;
|
|
41
|
+
required?: boolean | undefined;
|
|
42
|
+
}> = T extends {
|
|
34
43
|
mode: "single";
|
|
35
44
|
} ? SelectHandlerSingle<T> : T extends {
|
|
36
45
|
mode: "multiple";
|
|
@@ -3,7 +3,6 @@ import { UI, DayFlag, SelectionState } from "../UI.js";
|
|
|
3
3
|
import * as components from "../components/custom-components.js";
|
|
4
4
|
import { formatCaption, formatDay, formatMonthCaption, formatMonthDropdown, formatWeekdayName, formatWeekNumber, formatWeekNumberHeader, formatYearCaption, formatYearDropdown } from "../formatters/index.js";
|
|
5
5
|
import { labelDayButton, labelNav, labelGrid, labelGridcell, labelMonthDropdown, labelNext, labelPrevious, labelWeekday, labelWeekNumber, labelWeekNumberHeader, labelYearDropdown } from "../labels/index.js";
|
|
6
|
-
import { dateLib } from "../lib/index.js";
|
|
7
6
|
/**
|
|
8
7
|
* Selection modes supported by DayPicker.
|
|
9
8
|
*
|
|
@@ -78,8 +77,6 @@ export type CustomComponents = {
|
|
|
78
77
|
/** Render the dropdown with the years. */
|
|
79
78
|
YearsDropdown: typeof components.YearsDropdown;
|
|
80
79
|
};
|
|
81
|
-
/** @private */
|
|
82
|
-
export type DateLib = typeof dateLib;
|
|
83
80
|
/** Represent a map of formatters used to render localized content. */
|
|
84
81
|
export type Formatters = {
|
|
85
82
|
/** Format the caption of a month grid. */
|
|
@@ -283,15 +280,27 @@ export type Styles = {
|
|
|
283
280
|
[key in UI | SelectionState | DayFlag]: CSSProperties | undefined;
|
|
284
281
|
};
|
|
285
282
|
/**
|
|
286
|
-
*
|
|
283
|
+
* Represents the modifiers that match a specific day in the calendar.
|
|
284
|
+
*
|
|
285
|
+
* - Retrieve modifiers using the {@link OnSelectHandler} via the `onSelect` prop,
|
|
286
|
+
* or within custom components using the {@link useDayPicker} hook.
|
|
287
|
+
* - Includes built-in modifiers from {@link DayFlag} and {@link SelectionState}.
|
|
288
|
+
* - Add custom modifiers using the `modifiers` prop.
|
|
287
289
|
*
|
|
288
290
|
* @example
|
|
289
291
|
* const modifiers: Modifiers = {
|
|
290
|
-
*
|
|
291
|
-
*
|
|
292
|
-
*
|
|
293
|
-
*
|
|
292
|
+
* today: false, // the day is not today
|
|
293
|
+
* selected: true, // the day is selected
|
|
294
|
+
* disabled: false, // the day is not disabled
|
|
295
|
+
* outside: false, // the day is not outside the month
|
|
296
|
+
* focused: false, // the day is not focused
|
|
297
|
+
*
|
|
298
|
+
* weekend: false // custom modifier example for matching a weekend
|
|
299
|
+
* booked: true // custom modifier example for matching a booked day
|
|
300
|
+
* available: false // custom modifier example for matching an available day
|
|
294
301
|
* };
|
|
302
|
+
*
|
|
303
|
+
* @see https://daypicker.dev/guides/custom-modifiers
|
|
295
304
|
*/
|
|
296
305
|
export type Modifiers = Record<string, boolean>;
|
|
297
306
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CalendarWeek, CalendarDay, CalendarMonth } from "./classes/index.js";
|
|
2
|
+
import type { DateLib } from "./lib/index.js";
|
|
2
3
|
import type { DayPickerProps } from "./types/props.js";
|
|
3
|
-
import type { DateLib } from "./types/shared.js";
|
|
4
4
|
/**
|
|
5
5
|
* Return the calendar object to work with the calendar in custom components.
|
|
6
6
|
*
|
|
@@ -45,4 +45,4 @@ export interface Calendar {
|
|
|
45
45
|
goToDay: (day: CalendarDay) => void;
|
|
46
46
|
}
|
|
47
47
|
/** @private */
|
|
48
|
-
export declare function useCalendar(props: Pick<DayPickerProps, "captionLayout" | "endMonth" | "startMonth" | "today" | "fixedWeeks" | "ISOWeek" | "weekStartsOn" | "numberOfMonths" | "disableNavigation" | "onMonthChange" | "month" | "defaultMonth" | "fromMonth" | "fromYear" | "toMonth" | "toYear">, dateLib: DateLib): Calendar;
|
|
48
|
+
export declare function useCalendar(props: Pick<DayPickerProps, "captionLayout" | "endMonth" | "startMonth" | "today" | "fixedWeeks" | "ISOWeek" | "weekStartsOn" | "numberOfMonths" | "disableNavigation" | "onMonthChange" | "month" | "defaultMonth" | "timeZone" | "fromMonth" | "fromYear" | "toMonth" | "toYear">, dateLib: DateLib): Calendar;
|
package/dist/cjs/useCalendar.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useCalendar = useCalendar;
|
|
4
|
+
const react_1 = require("react");
|
|
4
5
|
const getDates_js_1 = require("./helpers/getDates.js");
|
|
5
6
|
const getDays_js_1 = require("./helpers/getDays.js");
|
|
6
7
|
const getDisplayMonths_js_1 = require("./helpers/getDisplayMonths.js");
|
|
@@ -17,6 +18,11 @@ function useCalendar(props, dateLib) {
|
|
|
17
18
|
const { startOfMonth, endOfMonth } = dateLib;
|
|
18
19
|
const initialMonth = (0, getInitialMonth_js_1.getInitialMonth)(props, dateLib);
|
|
19
20
|
const [firstMonth, setFirstMonth] = (0, useControlledValue_js_1.useControlledValue)(initialMonth, props.month ? startOfMonth(props.month) : undefined);
|
|
21
|
+
(0, react_1.useEffect)(() => {
|
|
22
|
+
const newInitialMonth = (0, getInitialMonth_js_1.getInitialMonth)(props, dateLib);
|
|
23
|
+
setFirstMonth(newInitialMonth);
|
|
24
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
25
|
+
}, [props.timeZone]);
|
|
20
26
|
/** The months displayed in the calendar. */
|
|
21
27
|
const displayMonths = (0, getDisplayMonths_js_1.getDisplayMonths)(firstMonth, navEnd, props, dateLib);
|
|
22
28
|
/** The dates displayed in the calendar. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCalendar.js","sourceRoot":"","sources":["../../src/useCalendar.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useCalendar.js","sourceRoot":"","sources":["../../src/useCalendar.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,24 @@
|
|
|
1
1
|
import { CalendarDay } from "./classes/CalendarDay.js";
|
|
2
2
|
import { CalendarMonth } from "./classes/CalendarMonth.js";
|
|
3
|
-
import type { DayPickerProps } from "./types/props.js";
|
|
4
3
|
import type { SelectedValue, SelectHandler } from "./types/selection.js";
|
|
5
|
-
import { ClassNames, CustomComponents, Formatters, Labels, Modifiers, Styles } from "./types/shared.js";
|
|
4
|
+
import { ClassNames, CustomComponents, Formatters, Labels, Mode, Modifiers, Styles } from "./types/shared.js";
|
|
6
5
|
/** @private */
|
|
7
|
-
export declare const dayPickerContext: import("react").Context<DayPickerContext<
|
|
8
|
-
|
|
6
|
+
export declare const dayPickerContext: import("react").Context<DayPickerContext<{
|
|
7
|
+
mode?: Mode | undefined;
|
|
8
|
+
required?: boolean | undefined;
|
|
9
|
+
}> | undefined>;
|
|
10
|
+
/**
|
|
11
|
+
* Represents the context for the DayPicker component, providing various
|
|
12
|
+
* properties and methods to interact with the calendar.
|
|
13
|
+
*
|
|
14
|
+
* @template T - The type of the DayPicker props, which must optionally include
|
|
15
|
+
* `mode` and `required` properties. This type can be used to refine the type
|
|
16
|
+
* returned by the hook.
|
|
17
|
+
*/
|
|
18
|
+
export type DayPickerContext<T extends {
|
|
19
|
+
mode?: Mode | undefined;
|
|
20
|
+
required?: boolean | undefined;
|
|
21
|
+
}> = {
|
|
9
22
|
/** The months displayed in the calendar. */
|
|
10
23
|
months: CalendarMonth[];
|
|
11
24
|
/** The next month to display. */
|
|
@@ -34,9 +47,20 @@ export type DayPickerContext<T extends DayPickerProps> = {
|
|
|
34
47
|
formatters: Formatters;
|
|
35
48
|
};
|
|
36
49
|
/**
|
|
37
|
-
*
|
|
50
|
+
* Returns the context to work with `<DayPicker />` inside custom components.
|
|
51
|
+
*
|
|
52
|
+
* This hook provides access to the DayPicker context, which includes various
|
|
53
|
+
* properties and methods to interact with the DayPicker component. It must be
|
|
54
|
+
* used within a custom component.
|
|
38
55
|
*
|
|
56
|
+
* @template T - Use this type to refine the returned context type with a
|
|
57
|
+
* specific selection mode.
|
|
58
|
+
* @returns {DayPickerContext<T>} The context to work with DayPicker.
|
|
59
|
+
* @throws {Error} If the hook is used outside of a DayPicker provider.
|
|
39
60
|
* @group Hooks
|
|
40
61
|
* @see https://daypicker.dev/guides/custom-components
|
|
41
62
|
*/
|
|
42
|
-
export declare function useDayPicker<T extends
|
|
63
|
+
export declare function useDayPicker<T extends {
|
|
64
|
+
mode?: Mode | undefined;
|
|
65
|
+
required?: boolean | undefined;
|
|
66
|
+
}>(): DayPickerContext<T>;
|