react-day-picker 8.0.0-beta.38 → 8.0.0-beta.39
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/CHANGELOG.md +7 -0
- package/dist/DayPicker.d.ts +0 -1
- package/dist/components/Caption/Caption.d.ts +0 -1
- package/dist/components/CaptionLabel/CaptionLabel.d.ts +0 -1
- package/dist/components/Day/Day.d.ts +0 -1
- package/dist/components/DayContent/DayContent.d.ts +0 -1
- package/dist/components/Footer/Footer.d.ts +0 -1
- package/dist/components/Head/Head.d.ts +0 -1
- package/dist/components/IconDropdown/IconDropdown.d.ts +0 -1
- package/dist/components/IconLeft/IconLeft.d.ts +0 -1
- package/dist/components/IconRight/IconRight.d.ts +0 -1
- package/dist/components/Month/Month.d.ts +0 -1
- package/dist/components/MonthsDropdown/MonthsDropdown.d.ts +0 -1
- package/dist/components/Root/Root.d.ts +0 -1
- package/dist/components/Row/Row.d.ts +0 -1
- package/dist/components/Table/Table.d.ts +0 -1
- package/dist/components/Table/utils/daysToMonthWeeks.d.ts +8 -0
- package/dist/components/Table/utils/getMonthWeeks.d.ts +21 -0
- package/dist/components/WeekNumber/WeekNumber.d.ts +0 -1
- package/dist/components/YearsDropdown/YearsDropdown.d.ts +0 -1
- package/dist/contexts/Modifiers/utils/isMatch.d.ts +17 -1
- package/dist/contexts/Navigation/NavigationContext.d.ts +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.esm.js +147 -186
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +147 -185
- package/dist/index.js.map +1 -1
- package/dist/react-day-picker.min.js +1 -1
- package/dist/style.css.d.ts +35 -36
- package/dist/types/Matchers.d.ts +51 -1
- package/package.json +20 -20
- package/dist/components/Table/utils/getOutsideEndDays.d.ts +0 -3
- package/dist/components/Table/utils/getOutsideStartDays.d.ts +0 -4
- package/dist/components/Table/utils/getWeeks.d.ts +0 -17
package/dist/index.esm.js
CHANGED
|
@@ -516,7 +516,7 @@ function MonthsDropdown(props) {
|
|
|
516
516
|
* Render the "previous month" button in the navigation.
|
|
517
517
|
*/
|
|
518
518
|
function IconLeft(props) {
|
|
519
|
-
return (React.createElement("svg", __assign({ width: "16px", height: "16px", viewBox: "0 0 120 120"
|
|
519
|
+
return (React.createElement("svg", __assign({ width: "16px", height: "16px", viewBox: "0 0 120 120" }, props),
|
|
520
520
|
React.createElement("path", { d: "M69.490332,3.34314575 C72.6145263,0.218951416 77.6798462,0.218951416 80.8040405,3.34314575 C83.8617626,6.40086786 83.9268205,11.3179931 80.9992143,14.4548388 L80.8040405,14.6568542 L35.461,60 L80.8040405,105.343146 C83.8617626,108.400868 83.9268205,113.317993 80.9992143,116.454839 L80.8040405,116.656854 C77.7463184,119.714576 72.8291931,119.779634 69.6923475,116.852028 L69.490332,116.656854 L18.490332,65.6568542 C15.4326099,62.5991321 15.367552,57.6820069 18.2951583,54.5451612 L18.490332,54.3431458 L69.490332,3.34314575 Z", fill: "currentColor", fillRule: "nonzero" })));
|
|
521
521
|
}
|
|
522
522
|
|
|
@@ -524,7 +524,7 @@ function IconLeft(props) {
|
|
|
524
524
|
* Render the "next month" button in the navigation.
|
|
525
525
|
*/
|
|
526
526
|
function IconRight(props) {
|
|
527
|
-
return (React.createElement("svg", __assign({ width: "16px", height: "16px", viewBox: "0 0 120 120" }, props
|
|
527
|
+
return (React.createElement("svg", __assign({ width: "16px", height: "16px", viewBox: "0 0 120 120" }, props),
|
|
528
528
|
React.createElement("path", { d: "M49.8040405,3.34314575 C46.6798462,0.218951416 41.6145263,0.218951416 38.490332,3.34314575 C35.4326099,6.40086786 35.367552,11.3179931 38.2951583,14.4548388 L38.490332,14.6568542 L83.8333725,60 L38.490332,105.343146 C35.4326099,108.400868 35.367552,113.317993 38.2951583,116.454839 L38.490332,116.656854 C41.5480541,119.714576 46.4651794,119.779634 49.602025,116.852028 L49.8040405,116.656854 L100.804041,65.6568542 C103.861763,62.5991321 103.926821,57.6820069 100.999214,54.5451612 L100.804041,54.3431458 L49.8040405,3.34314575 Z", fill: "currentColor" })));
|
|
529
529
|
}
|
|
530
530
|
|
|
@@ -547,32 +547,26 @@ var Button = forwardRef(function (props, ref) {
|
|
|
547
547
|
|
|
548
548
|
/** A component rendering the navigation buttons or the drop-downs. */
|
|
549
549
|
function Navigation(props) {
|
|
550
|
-
var _a;
|
|
551
|
-
var
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
if (dir === 'rtl') {
|
|
555
|
-
_a = [onPreviousClick, onNextClick], onNextClick = _a[0], onPreviousClick = _a[1];
|
|
550
|
+
var _a, _b;
|
|
551
|
+
var _c = useDayPicker(), dir = _c.dir, locale = _c.locale, classNames = _c.classNames, styles = _c.styles, _d = _c.labels, labelPrevious = _d.labelPrevious, labelNext = _d.labelNext, components = _c.components;
|
|
552
|
+
if (!props.nextMonth && !props.previousMonth) {
|
|
553
|
+
return React.createElement(React.Fragment, null);
|
|
556
554
|
}
|
|
557
|
-
var
|
|
558
|
-
var previousLabel = labelPrevious(previousMonth, { locale: locale });
|
|
555
|
+
var previousLabel = labelPrevious(props.previousMonth, { locale: locale });
|
|
559
556
|
var previousClassName = [
|
|
560
557
|
classNames.nav_button,
|
|
561
558
|
classNames.nav_button_previous
|
|
562
559
|
].join(' ');
|
|
563
|
-
var nextLabel = labelNext(nextMonth, { locale: locale });
|
|
560
|
+
var nextLabel = labelNext(props.nextMonth, { locale: locale });
|
|
564
561
|
var nextClassName = [
|
|
565
562
|
classNames.nav_button,
|
|
566
563
|
classNames.nav_button_next
|
|
567
564
|
].join(' ');
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
}
|
|
571
|
-
var IconRightComponent = (_b = components === null || components === void 0 ? void 0 : components.IconRight) !== null && _b !== void 0 ? _b : IconRight;
|
|
572
|
-
var IconLeftComponent = (_c = components === null || components === void 0 ? void 0 : components.IconLeft) !== null && _c !== void 0 ? _c : IconLeft;
|
|
565
|
+
var IconRightComponent = (_a = components === null || components === void 0 ? void 0 : components.IconRight) !== null && _a !== void 0 ? _a : IconRight;
|
|
566
|
+
var IconLeftComponent = (_b = components === null || components === void 0 ? void 0 : components.IconLeft) !== null && _b !== void 0 ? _b : IconLeft;
|
|
573
567
|
return (React.createElement("div", { className: classNames.nav, style: styles.nav },
|
|
574
|
-
!props.hidePrevious && (React.createElement(Button, { "aria-label": previousLabel, className: previousClassName, style: styles.
|
|
575
|
-
!props.hideNext && (React.createElement(Button, { "aria-label": nextLabel, className: nextClassName, style: styles.nav_button_next, disabled: !nextMonth, onClick:
|
|
568
|
+
!props.hidePrevious && (React.createElement(Button, { "aria-label": previousLabel, className: previousClassName, style: styles.nav_button_previous, disabled: !props.previousMonth, onClick: props.onPreviousClick }, dir === 'rtl' ? (React.createElement(IconRightComponent, { className: classNames.nav_icon, style: styles.nav_icon })) : (React.createElement(IconLeftComponent, { className: classNames.nav_icon, style: styles.nav_icon })))),
|
|
569
|
+
!props.hideNext && (React.createElement(Button, { "aria-label": nextLabel, className: nextClassName, style: styles.nav_button_next, disabled: !props.nextMonth, onClick: props.onNextClick }, dir === 'rtl' ? (React.createElement(IconLeftComponent, { className: classNames.nav_icon, style: styles.nav_icon })) : (React.createElement(IconRightComponent, { className: classNames.nav_icon, style: styles.nav_icon }))))));
|
|
576
570
|
}
|
|
577
571
|
|
|
578
572
|
/**
|
|
@@ -642,7 +636,7 @@ function useNavigationState() {
|
|
|
642
636
|
var goToMonth = function (date) {
|
|
643
637
|
if (context.disableNavigation)
|
|
644
638
|
return;
|
|
645
|
-
setMonth(date);
|
|
639
|
+
setMonth(startOfMonth(date));
|
|
646
640
|
};
|
|
647
641
|
return [month, goToMonth];
|
|
648
642
|
}
|
|
@@ -732,10 +726,10 @@ var NavigationContext = createContext(undefined);
|
|
|
732
726
|
/** Provides the values for the [[NavigationContext]]. */
|
|
733
727
|
function NavigationProvider(props) {
|
|
734
728
|
var dayPicker = useDayPicker();
|
|
735
|
-
var _a = useNavigationState(),
|
|
736
|
-
var displayMonths = getDisplayMonths(
|
|
737
|
-
var nextMonth = getNextMonth(
|
|
738
|
-
var previousMonth = getPreviousMonth(
|
|
729
|
+
var _a = useNavigationState(), currentMonth = _a[0], goToMonth = _a[1];
|
|
730
|
+
var displayMonths = getDisplayMonths(currentMonth, dayPicker);
|
|
731
|
+
var nextMonth = getNextMonth(currentMonth, dayPicker);
|
|
732
|
+
var previousMonth = getPreviousMonth(currentMonth, dayPicker);
|
|
739
733
|
var isDateDisplayed = function (date) {
|
|
740
734
|
return displayMonths.some(function (displayMonth) {
|
|
741
735
|
return isSameMonth(date, displayMonth);
|
|
@@ -753,7 +747,7 @@ function NavigationProvider(props) {
|
|
|
753
747
|
}
|
|
754
748
|
};
|
|
755
749
|
var value = {
|
|
756
|
-
|
|
750
|
+
currentMonth: currentMonth,
|
|
757
751
|
displayMonths: displayMonths,
|
|
758
752
|
goToMonth: goToMonth,
|
|
759
753
|
goToDate: goToDate,
|
|
@@ -903,53 +897,47 @@ function SelectMultipleProvider(props) {
|
|
|
903
897
|
}
|
|
904
898
|
function SelectMultipleProviderInternal(_a) {
|
|
905
899
|
var initialProps = _a.initialProps, children = _a.children;
|
|
906
|
-
var selected = initialProps.selected;
|
|
907
|
-
var onDayClick = function (day,
|
|
900
|
+
var selected = initialProps.selected, min = initialProps.min, max = initialProps.max;
|
|
901
|
+
var onDayClick = function (day, activeModifiers, e) {
|
|
908
902
|
var _a, _b;
|
|
909
|
-
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day,
|
|
910
|
-
var isMinSelected = Boolean(
|
|
911
|
-
modifiers.selected &&
|
|
912
|
-
selected &&
|
|
913
|
-
selected.length === initialProps.min);
|
|
903
|
+
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);
|
|
904
|
+
var isMinSelected = Boolean(activeModifiers.selected && min && (selected === null || selected === void 0 ? void 0 : selected.length) === min);
|
|
914
905
|
if (isMinSelected) {
|
|
915
906
|
return;
|
|
916
907
|
}
|
|
917
|
-
var isMaxSelected = Boolean(
|
|
918
|
-
!modifiers.selected &&
|
|
919
|
-
selected &&
|
|
920
|
-
selected.length === initialProps.max);
|
|
908
|
+
var isMaxSelected = Boolean(!activeModifiers.selected && max && (selected === null || selected === void 0 ? void 0 : selected.length) === max);
|
|
921
909
|
if (isMaxSelected) {
|
|
922
910
|
return;
|
|
923
911
|
}
|
|
924
|
-
var
|
|
925
|
-
if (
|
|
926
|
-
var index =
|
|
912
|
+
var selectedDays = selected ? __spreadArray([], selected, true) : [];
|
|
913
|
+
if (activeModifiers.selected) {
|
|
914
|
+
var index = selectedDays.findIndex(function (selectedDay) {
|
|
927
915
|
return isSameDay(day, selectedDay);
|
|
928
916
|
});
|
|
929
|
-
|
|
917
|
+
selectedDays.splice(index, 1);
|
|
930
918
|
}
|
|
931
919
|
else {
|
|
932
|
-
|
|
920
|
+
selectedDays.push(day);
|
|
933
921
|
}
|
|
934
|
-
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps,
|
|
922
|
+
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, selectedDays, day, activeModifiers, e);
|
|
935
923
|
};
|
|
936
924
|
var modifiers = {
|
|
937
925
|
disabled: []
|
|
938
926
|
};
|
|
939
927
|
if (selected) {
|
|
940
|
-
modifiers.disabled
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
});
|
|
948
|
-
return Boolean(isMaxSelected && !isSelected);
|
|
949
|
-
}
|
|
950
|
-
];
|
|
928
|
+
modifiers.disabled.push(function (day) {
|
|
929
|
+
var isMaxSelected = max && selected.length > max - 1;
|
|
930
|
+
var isSelected = selected.some(function (selectedDay) {
|
|
931
|
+
return isSameDay(selectedDay, day);
|
|
932
|
+
});
|
|
933
|
+
return Boolean(isMaxSelected && !isSelected);
|
|
934
|
+
});
|
|
951
935
|
}
|
|
952
|
-
var contextValue = {
|
|
936
|
+
var contextValue = {
|
|
937
|
+
selected: selected,
|
|
938
|
+
onDayClick: onDayClick,
|
|
939
|
+
modifiers: modifiers
|
|
940
|
+
};
|
|
953
941
|
return (React.createElement(SelectMultipleContext.Provider, { value: contextValue }, children));
|
|
954
942
|
}
|
|
955
943
|
|
|
@@ -1028,26 +1016,24 @@ function SelectRangeProvider(props) {
|
|
|
1028
1016
|
function SelectRangeProviderInternal(_a) {
|
|
1029
1017
|
var initialProps = _a.initialProps, children = _a.children;
|
|
1030
1018
|
var selected = initialProps.selected;
|
|
1019
|
+
var _b = selected || {}, selectedFrom = _b.from, selectedTo = _b.to;
|
|
1031
1020
|
var min = initialProps.min;
|
|
1032
1021
|
var max = initialProps.max;
|
|
1033
|
-
var onDayClick = function (day,
|
|
1022
|
+
var onDayClick = function (day, activeModifiers, e) {
|
|
1034
1023
|
var _a, _b;
|
|
1035
|
-
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day,
|
|
1036
|
-
var
|
|
1024
|
+
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);
|
|
1025
|
+
var range = addToRange(day, selected);
|
|
1037
1026
|
if ((min || max) &&
|
|
1038
1027
|
selected &&
|
|
1039
|
-
(
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
var diff = Math.abs(differenceInCalendarDays(
|
|
1043
|
-
if (min && diff < min) {
|
|
1044
|
-
return;
|
|
1045
|
-
}
|
|
1046
|
-
if (max && diff >= max) {
|
|
1028
|
+
(range === null || range === void 0 ? void 0 : range.to) &&
|
|
1029
|
+
range.from &&
|
|
1030
|
+
range.from !== range.to) {
|
|
1031
|
+
var diff = Math.abs(differenceInCalendarDays(range === null || range === void 0 ? void 0 : range.to, range === null || range === void 0 ? void 0 : range.from));
|
|
1032
|
+
if ((min && diff < min) || (max && diff >= max)) {
|
|
1047
1033
|
return;
|
|
1048
1034
|
}
|
|
1049
1035
|
}
|
|
1050
|
-
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps,
|
|
1036
|
+
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, range, day, activeModifiers, e);
|
|
1051
1037
|
};
|
|
1052
1038
|
var modifiers = {
|
|
1053
1039
|
range_start: [],
|
|
@@ -1055,63 +1041,37 @@ function SelectRangeProviderInternal(_a) {
|
|
|
1055
1041
|
range_middle: [],
|
|
1056
1042
|
disabled: []
|
|
1057
1043
|
};
|
|
1058
|
-
if (
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
modifiers.disabled = [
|
|
1070
|
-
function (date) {
|
|
1071
|
-
if (max &&
|
|
1072
|
-
selected.to &&
|
|
1073
|
-
selected.from &&
|
|
1074
|
-
isBefore(date, selected.from)) {
|
|
1075
|
-
var diff = differenceInCalendarDays(selected.to, date);
|
|
1076
|
-
if (diff >= max) {
|
|
1077
|
-
return true;
|
|
1078
|
-
}
|
|
1079
|
-
}
|
|
1080
|
-
if (max &&
|
|
1081
|
-
selected.to &&
|
|
1082
|
-
selected.from &&
|
|
1083
|
-
isAfter(date, selected.to)) {
|
|
1084
|
-
var diff = differenceInCalendarDays(date, selected.from);
|
|
1085
|
-
if (diff >= max) {
|
|
1086
|
-
return true;
|
|
1087
|
-
}
|
|
1088
|
-
}
|
|
1089
|
-
if (min && selected.from && isBefore(date, selected.from)) {
|
|
1090
|
-
var diff = differenceInCalendarDays(selected.from, date);
|
|
1091
|
-
if (diff < min) {
|
|
1092
|
-
return true;
|
|
1093
|
-
}
|
|
1094
|
-
}
|
|
1095
|
-
if (min &&
|
|
1096
|
-
selected.to &&
|
|
1097
|
-
selected.from &&
|
|
1098
|
-
isAfter(date, selected.to)) {
|
|
1099
|
-
var diff = differenceInCalendarDays(date, selected.from);
|
|
1100
|
-
if (diff < min) {
|
|
1101
|
-
return true;
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
return false;
|
|
1105
|
-
}
|
|
1106
|
-
];
|
|
1044
|
+
if (selectedFrom) {
|
|
1045
|
+
modifiers.range_start = [selectedFrom];
|
|
1046
|
+
if (!selectedTo) {
|
|
1047
|
+
modifiers.range_end = [selectedFrom];
|
|
1048
|
+
}
|
|
1049
|
+
else {
|
|
1050
|
+
modifiers.range_end = [selectedTo];
|
|
1051
|
+
modifiers.range_middle = [
|
|
1052
|
+
{
|
|
1053
|
+
after: selectedFrom,
|
|
1054
|
+
before: selectedTo
|
|
1107
1055
|
}
|
|
1108
|
-
|
|
1109
|
-
}
|
|
1110
|
-
else {
|
|
1111
|
-
modifiers.range_end = [selected.from];
|
|
1112
|
-
}
|
|
1056
|
+
];
|
|
1113
1057
|
}
|
|
1114
1058
|
}
|
|
1059
|
+
if (min && selectedFrom && selectedTo) {
|
|
1060
|
+
modifiers.disabled.push(function (date) {
|
|
1061
|
+
return ((isBefore(date, selectedFrom) &&
|
|
1062
|
+
differenceInCalendarDays(selectedFrom, date) < min) ||
|
|
1063
|
+
(isAfter(date, selectedTo) &&
|
|
1064
|
+
differenceInCalendarDays(date, selectedFrom) < min));
|
|
1065
|
+
});
|
|
1066
|
+
}
|
|
1067
|
+
if (max && selectedFrom && selectedTo) {
|
|
1068
|
+
modifiers.disabled.push(function (date) {
|
|
1069
|
+
return ((isBefore(date, selectedFrom) &&
|
|
1070
|
+
differenceInCalendarDays(selectedTo, date) >= max) ||
|
|
1071
|
+
(isAfter(date, selectedTo) &&
|
|
1072
|
+
differenceInCalendarDays(date, selectedFrom) >= max));
|
|
1073
|
+
});
|
|
1074
|
+
}
|
|
1115
1075
|
return (React.createElement(SelectRangeContext.Provider, { value: { selected: selected, onDayClick: onDayClick, modifiers: modifiers } }, children));
|
|
1116
1076
|
}
|
|
1117
1077
|
|
|
@@ -1278,7 +1238,23 @@ function isDateType(value) {
|
|
|
1278
1238
|
function isArrayOfDates(value) {
|
|
1279
1239
|
return Array.isArray(value) && value.every(isDate);
|
|
1280
1240
|
}
|
|
1281
|
-
/**
|
|
1241
|
+
/**
|
|
1242
|
+
* Returns whether a day matches against at least one of the given Matchers.
|
|
1243
|
+
*
|
|
1244
|
+
* ```
|
|
1245
|
+
* const day = new Date(2022, 5, 19);
|
|
1246
|
+
* const matcher1: DateRange = {
|
|
1247
|
+
* from: new Date(2021, 12, 21),
|
|
1248
|
+
* to: new Date(2021, 12, 30)
|
|
1249
|
+
* }
|
|
1250
|
+
* const matcher2: DateRange = {
|
|
1251
|
+
* from: new Date(2022, 5, 1),
|
|
1252
|
+
* to: new Date(2022, 5, 23)
|
|
1253
|
+
* }
|
|
1254
|
+
*
|
|
1255
|
+
* const isMatch(day, [matcher1, matcher2]); // true, since day is in the matcher1 range.
|
|
1256
|
+
* ```
|
|
1257
|
+
* */
|
|
1282
1258
|
function isMatch(day, matchers) {
|
|
1283
1259
|
return matchers.some(function (matcher) {
|
|
1284
1260
|
if (typeof matcher === 'boolean') {
|
|
@@ -1528,13 +1504,14 @@ function SelectSingleProvider(props) {
|
|
|
1528
1504
|
}
|
|
1529
1505
|
function SelectSingleProviderInternal(_a) {
|
|
1530
1506
|
var initialProps = _a.initialProps, children = _a.children;
|
|
1531
|
-
var onDayClick = function (day,
|
|
1532
|
-
var _a, _b;
|
|
1533
|
-
|
|
1534
|
-
|
|
1507
|
+
var onDayClick = function (day, activeModifiers, e) {
|
|
1508
|
+
var _a, _b, _c;
|
|
1509
|
+
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);
|
|
1510
|
+
if (activeModifiers.selected && !initialProps.required) {
|
|
1511
|
+
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, undefined, day, activeModifiers, e);
|
|
1535
1512
|
return;
|
|
1536
1513
|
}
|
|
1537
|
-
(
|
|
1514
|
+
(_c = initialProps.onSelect) === null || _c === void 0 ? void 0 : _c.call(initialProps, day, day, activeModifiers, e);
|
|
1538
1515
|
};
|
|
1539
1516
|
var contextValue = {
|
|
1540
1517
|
selected: initialProps.selected,
|
|
@@ -1824,14 +1801,14 @@ function Day(props) {
|
|
|
1824
1801
|
function WeekNumber(props) {
|
|
1825
1802
|
var weekNumber = props.number, dates = props.dates;
|
|
1826
1803
|
var _a = useDayPicker(), onWeekNumberClick = _a.onWeekNumberClick, styles = _a.styles, classNames = _a.classNames, locale = _a.locale, labelWeekNumber = _a.labels.labelWeekNumber, formatWeekNumber = _a.formatters.formatWeekNumber;
|
|
1827
|
-
var handleClick = function (e) {
|
|
1828
|
-
onWeekNumberClick === null || onWeekNumberClick === void 0 ? void 0 : onWeekNumberClick(weekNumber, dates, e);
|
|
1829
|
-
};
|
|
1830
1804
|
var content = formatWeekNumber(Number(weekNumber), { locale: locale });
|
|
1831
1805
|
if (!onWeekNumberClick) {
|
|
1832
1806
|
return (React.createElement("span", { className: classNames.weeknumber, style: styles.weeknumber }, content));
|
|
1833
1807
|
}
|
|
1834
1808
|
var label = labelWeekNumber(Number(weekNumber), { locale: locale });
|
|
1809
|
+
var handleClick = function (e) {
|
|
1810
|
+
onWeekNumberClick(weekNumber, dates, e);
|
|
1811
|
+
};
|
|
1835
1812
|
return (React.createElement(Button, { "aria-label": label, className: classNames.weeknumber, style: styles.weeknumber, onClick: handleClick }, content));
|
|
1836
1813
|
}
|
|
1837
1814
|
|
|
@@ -1852,77 +1829,61 @@ function Row(props) {
|
|
|
1852
1829
|
React.createElement(DayComponent, { displayMonth: props.displayMonth, date: date }))); })));
|
|
1853
1830
|
}
|
|
1854
1831
|
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
var
|
|
1858
|
-
var
|
|
1859
|
-
|
|
1860
|
-
var dayDate = addDays(month, i);
|
|
1861
|
-
days.push(dayDate);
|
|
1862
|
-
}
|
|
1863
|
-
return days;
|
|
1864
|
-
}
|
|
1865
|
-
|
|
1866
|
-
function getOutsideStartDays(month, options) {
|
|
1832
|
+
/** Return the weeks between two dates. */
|
|
1833
|
+
function daysToMonthWeeks(fromDate, toDate, options) {
|
|
1834
|
+
var toWeek = endOfWeek(toDate, options);
|
|
1835
|
+
var fromWeek = startOfWeek(fromDate, options);
|
|
1836
|
+
var nOfDays = differenceInCalendarDays(toWeek, fromWeek);
|
|
1867
1837
|
var days = [];
|
|
1868
|
-
var
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1838
|
+
for (var i = 0; i <= nOfDays; i++) {
|
|
1839
|
+
days.push(addDays(fromWeek, i));
|
|
1840
|
+
}
|
|
1841
|
+
var weeksInMonth = days.reduce(function (result, date) {
|
|
1842
|
+
var weekNumber = getWeek(date, options);
|
|
1843
|
+
var existingWeek = result.find(function (value) { return value.weekNumber === weekNumber; });
|
|
1844
|
+
if (existingWeek) {
|
|
1845
|
+
existingWeek.dates.push(date);
|
|
1846
|
+
return result;
|
|
1847
|
+
}
|
|
1848
|
+
result.push({
|
|
1849
|
+
weekNumber: weekNumber,
|
|
1850
|
+
dates: [date]
|
|
1851
|
+
});
|
|
1852
|
+
return result;
|
|
1853
|
+
}, []);
|
|
1854
|
+
return weeksInMonth;
|
|
1875
1855
|
}
|
|
1876
1856
|
|
|
1877
1857
|
/**
|
|
1878
|
-
* Return the weeks belonging to the given month
|
|
1858
|
+
* Return the weeks belonging to the given month, adding the "outside days" to
|
|
1859
|
+
* the first and last week.
|
|
1879
1860
|
*/
|
|
1880
|
-
function
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
var
|
|
1884
|
-
var diff = differenceInCalendarDays(monthEnd, monthStart);
|
|
1885
|
-
var weeks = [];
|
|
1886
|
-
var lastWeek = { weekNumber: 0, dates: [] };
|
|
1887
|
-
for (var i = 0; i <= diff; i++) {
|
|
1888
|
-
var date = addDays(monthStart, i);
|
|
1889
|
-
var week = getWeek(date, { locale: locale });
|
|
1890
|
-
if (lastWeek.weekNumber !== week) {
|
|
1891
|
-
// Create a new week by adding outside start days
|
|
1892
|
-
var startDays = getOutsideStartDays(date, { locale: locale });
|
|
1893
|
-
lastWeek = { weekNumber: week, dates: startDays };
|
|
1894
|
-
weeks.push(lastWeek);
|
|
1895
|
-
}
|
|
1896
|
-
lastWeek.dates.push(date);
|
|
1897
|
-
}
|
|
1898
|
-
var lastDay = lastWeek.dates[lastWeek.dates.length - 1];
|
|
1899
|
-
var endDays = getOutsideEndDays(lastDay, { locale: locale });
|
|
1900
|
-
lastWeek.dates = lastWeek.dates.concat(endDays);
|
|
1861
|
+
function getMonthWeeks(
|
|
1862
|
+
/** The month to get the weeks from */
|
|
1863
|
+
month, options) {
|
|
1864
|
+
var weeksInMonth = daysToMonthWeeks(startOfMonth(month), endOfMonth(month), options);
|
|
1901
1865
|
// Add extra weeks to the month, up to 6 weeks
|
|
1902
|
-
if (
|
|
1903
|
-
var
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
var
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
if (lastWeek.weekNumber !== week) {
|
|
1911
|
-
lastWeek = { weekNumber: week, dates: [] };
|
|
1912
|
-
weeks.push(lastWeek);
|
|
1913
|
-
}
|
|
1914
|
-
lastWeek.dates.push(date);
|
|
1915
|
-
}
|
|
1866
|
+
if (options === null || options === void 0 ? void 0 : options.useFixedWeeks) {
|
|
1867
|
+
var nrOfMonthWeeks = getWeeksInMonth(month, options);
|
|
1868
|
+
if (nrOfMonthWeeks < 6) {
|
|
1869
|
+
var lastWeek = weeksInMonth[weeksInMonth.length - 1];
|
|
1870
|
+
var lastDate = lastWeek.dates[lastWeek.dates.length - 1];
|
|
1871
|
+
var toDate = addWeeks(lastDate, 6 - nrOfMonthWeeks);
|
|
1872
|
+
var extraWeeks = daysToMonthWeeks(addWeeks(lastDate, 1), toDate, options);
|
|
1873
|
+
weeksInMonth.push.apply(weeksInMonth, extraWeeks);
|
|
1916
1874
|
}
|
|
1917
1875
|
}
|
|
1918
|
-
return
|
|
1876
|
+
return weeksInMonth;
|
|
1919
1877
|
}
|
|
1920
1878
|
|
|
1921
1879
|
/** Render the table with the calendar. */
|
|
1922
1880
|
function Table(props) {
|
|
1923
1881
|
var _a, _b, _c;
|
|
1924
1882
|
var _d = useDayPicker(), locale = _d.locale, classNames = _d.classNames, styles = _d.styles, hideHead = _d.hideHead, fixedWeeks = _d.fixedWeeks, components = _d.components;
|
|
1925
|
-
var weeks =
|
|
1883
|
+
var weeks = getMonthWeeks(props.displayMonth, {
|
|
1884
|
+
useFixedWeeks: Boolean(fixedWeeks),
|
|
1885
|
+
locale: locale
|
|
1886
|
+
});
|
|
1926
1887
|
var HeadComponent = (_a = components === null || components === void 0 ? void 0 : components.Head) !== null && _a !== void 0 ? _a : Head;
|
|
1927
1888
|
var RowComponent = (_b = components === null || components === void 0 ? void 0 : components.Row) !== null && _b !== void 0 ? _b : Row;
|
|
1928
1889
|
var FooterComponent = (_c = components === null || components === void 0 ? void 0 : components.Footer) !== null && _c !== void 0 ? _c : Footer;
|
|
@@ -2209,5 +2170,5 @@ function isDayPickerCustom(props) {
|
|
|
2209
2170
|
return props.mode === 'custom';
|
|
2210
2171
|
}
|
|
2211
2172
|
|
|
2212
|
-
export { Button, Caption, CaptionLabel, Day, DayContent, DayPicker, DayPickerContext, DayPickerProvider, Dropdown, FocusContext, FocusProvider, Footer, Head, IconDropdown, IconLeft, IconRight, InternalModifier, NavigationContext, NavigationProvider, RootProvider, Row, SelectMultipleContext, SelectMultipleProvider, SelectMultipleProviderInternal, SelectRangeContext, SelectRangeProvider, SelectRangeProviderInternal, SelectSingleContext, SelectSingleProvider, SelectSingleProviderInternal, WeekNumber, isDateAfterType, isDateBeforeType, isDateInterval, isDateRange, isDayOfWeekType, isDayPickerCustom, isDayPickerMultiple, isDayPickerRange, isDayPickerSingle, useActiveModifiers, useDayPicker, useDayRender, useFocusContext, useInput, useNavigation, useSelectMultiple, useSelectRange, useSelectSingle };
|
|
2173
|
+
export { Button, Caption, CaptionLabel, Day, DayContent, DayPicker, DayPickerContext, DayPickerProvider, Dropdown, FocusContext, FocusProvider, Footer, Head, IconDropdown, IconLeft, IconRight, InternalModifier, NavigationContext, NavigationProvider, RootProvider, Row, SelectMultipleContext, SelectMultipleProvider, SelectMultipleProviderInternal, SelectRangeContext, SelectRangeProvider, SelectRangeProviderInternal, SelectSingleContext, SelectSingleProvider, SelectSingleProviderInternal, WeekNumber, isDateAfterType, isDateBeforeType, isDateInterval, isDateRange, isDayOfWeekType, isDayPickerCustom, isDayPickerMultiple, isDayPickerRange, isDayPickerSingle, isMatch, useActiveModifiers, useDayPicker, useDayRender, useFocusContext, useInput, useNavigation, useSelectMultiple, useSelectRange, useSelectSingle };
|
|
2213
2174
|
//# sourceMappingURL=index.esm.js.map
|