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.js
CHANGED
|
@@ -525,7 +525,7 @@ function MonthsDropdown(props) {
|
|
|
525
525
|
* Render the "previous month" button in the navigation.
|
|
526
526
|
*/
|
|
527
527
|
function IconLeft(props) {
|
|
528
|
-
return (React__default["default"].createElement("svg", __assign({ width: "16px", height: "16px", viewBox: "0 0 120 120"
|
|
528
|
+
return (React__default["default"].createElement("svg", __assign({ width: "16px", height: "16px", viewBox: "0 0 120 120" }, props),
|
|
529
529
|
React__default["default"].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" })));
|
|
530
530
|
}
|
|
531
531
|
|
|
@@ -533,7 +533,7 @@ function IconLeft(props) {
|
|
|
533
533
|
* Render the "next month" button in the navigation.
|
|
534
534
|
*/
|
|
535
535
|
function IconRight(props) {
|
|
536
|
-
return (React__default["default"].createElement("svg", __assign({ width: "16px", height: "16px", viewBox: "0 0 120 120" }, props
|
|
536
|
+
return (React__default["default"].createElement("svg", __assign({ width: "16px", height: "16px", viewBox: "0 0 120 120" }, props),
|
|
537
537
|
React__default["default"].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" })));
|
|
538
538
|
}
|
|
539
539
|
|
|
@@ -556,32 +556,26 @@ var Button = React.forwardRef(function (props, ref) {
|
|
|
556
556
|
|
|
557
557
|
/** A component rendering the navigation buttons or the drop-downs. */
|
|
558
558
|
function Navigation(props) {
|
|
559
|
-
var _a;
|
|
560
|
-
var
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
if (dir === 'rtl') {
|
|
564
|
-
_a = [onPreviousClick, onNextClick], onNextClick = _a[0], onPreviousClick = _a[1];
|
|
559
|
+
var _a, _b;
|
|
560
|
+
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;
|
|
561
|
+
if (!props.nextMonth && !props.previousMonth) {
|
|
562
|
+
return React__default["default"].createElement(React__default["default"].Fragment, null);
|
|
565
563
|
}
|
|
566
|
-
var
|
|
567
|
-
var previousLabel = labelPrevious(previousMonth, { locale: locale });
|
|
564
|
+
var previousLabel = labelPrevious(props.previousMonth, { locale: locale });
|
|
568
565
|
var previousClassName = [
|
|
569
566
|
classNames.nav_button,
|
|
570
567
|
classNames.nav_button_previous
|
|
571
568
|
].join(' ');
|
|
572
|
-
var nextLabel = labelNext(nextMonth, { locale: locale });
|
|
569
|
+
var nextLabel = labelNext(props.nextMonth, { locale: locale });
|
|
573
570
|
var nextClassName = [
|
|
574
571
|
classNames.nav_button,
|
|
575
572
|
classNames.nav_button_next
|
|
576
573
|
].join(' ');
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
}
|
|
580
|
-
var IconRightComponent = (_b = components === null || components === void 0 ? void 0 : components.IconRight) !== null && _b !== void 0 ? _b : IconRight;
|
|
581
|
-
var IconLeftComponent = (_c = components === null || components === void 0 ? void 0 : components.IconLeft) !== null && _c !== void 0 ? _c : IconLeft;
|
|
574
|
+
var IconRightComponent = (_a = components === null || components === void 0 ? void 0 : components.IconRight) !== null && _a !== void 0 ? _a : IconRight;
|
|
575
|
+
var IconLeftComponent = (_b = components === null || components === void 0 ? void 0 : components.IconLeft) !== null && _b !== void 0 ? _b : IconLeft;
|
|
582
576
|
return (React__default["default"].createElement("div", { className: classNames.nav, style: styles.nav },
|
|
583
|
-
!props.hidePrevious && (React__default["default"].createElement(Button, { "aria-label": previousLabel, className: previousClassName, style: styles.
|
|
584
|
-
!props.hideNext && (React__default["default"].createElement(Button, { "aria-label": nextLabel, className: nextClassName, style: styles.nav_button_next, disabled: !nextMonth, onClick:
|
|
577
|
+
!props.hidePrevious && (React__default["default"].createElement(Button, { "aria-label": previousLabel, className: previousClassName, style: styles.nav_button_previous, disabled: !props.previousMonth, onClick: props.onPreviousClick }, dir === 'rtl' ? (React__default["default"].createElement(IconRightComponent, { className: classNames.nav_icon, style: styles.nav_icon })) : (React__default["default"].createElement(IconLeftComponent, { className: classNames.nav_icon, style: styles.nav_icon })))),
|
|
578
|
+
!props.hideNext && (React__default["default"].createElement(Button, { "aria-label": nextLabel, className: nextClassName, style: styles.nav_button_next, disabled: !props.nextMonth, onClick: props.onNextClick }, dir === 'rtl' ? (React__default["default"].createElement(IconLeftComponent, { className: classNames.nav_icon, style: styles.nav_icon })) : (React__default["default"].createElement(IconRightComponent, { className: classNames.nav_icon, style: styles.nav_icon }))))));
|
|
585
579
|
}
|
|
586
580
|
|
|
587
581
|
/**
|
|
@@ -651,7 +645,7 @@ function useNavigationState() {
|
|
|
651
645
|
var goToMonth = function (date) {
|
|
652
646
|
if (context.disableNavigation)
|
|
653
647
|
return;
|
|
654
|
-
setMonth(date);
|
|
648
|
+
setMonth(dateFns.startOfMonth(date));
|
|
655
649
|
};
|
|
656
650
|
return [month, goToMonth];
|
|
657
651
|
}
|
|
@@ -741,10 +735,10 @@ var NavigationContext = React.createContext(undefined);
|
|
|
741
735
|
/** Provides the values for the [[NavigationContext]]. */
|
|
742
736
|
function NavigationProvider(props) {
|
|
743
737
|
var dayPicker = useDayPicker();
|
|
744
|
-
var _a = useNavigationState(),
|
|
745
|
-
var displayMonths = getDisplayMonths(
|
|
746
|
-
var nextMonth = getNextMonth(
|
|
747
|
-
var previousMonth = getPreviousMonth(
|
|
738
|
+
var _a = useNavigationState(), currentMonth = _a[0], goToMonth = _a[1];
|
|
739
|
+
var displayMonths = getDisplayMonths(currentMonth, dayPicker);
|
|
740
|
+
var nextMonth = getNextMonth(currentMonth, dayPicker);
|
|
741
|
+
var previousMonth = getPreviousMonth(currentMonth, dayPicker);
|
|
748
742
|
var isDateDisplayed = function (date) {
|
|
749
743
|
return displayMonths.some(function (displayMonth) {
|
|
750
744
|
return dateFns.isSameMonth(date, displayMonth);
|
|
@@ -762,7 +756,7 @@ function NavigationProvider(props) {
|
|
|
762
756
|
}
|
|
763
757
|
};
|
|
764
758
|
var value = {
|
|
765
|
-
|
|
759
|
+
currentMonth: currentMonth,
|
|
766
760
|
displayMonths: displayMonths,
|
|
767
761
|
goToMonth: goToMonth,
|
|
768
762
|
goToDate: goToDate,
|
|
@@ -912,53 +906,47 @@ function SelectMultipleProvider(props) {
|
|
|
912
906
|
}
|
|
913
907
|
function SelectMultipleProviderInternal(_a) {
|
|
914
908
|
var initialProps = _a.initialProps, children = _a.children;
|
|
915
|
-
var selected = initialProps.selected;
|
|
916
|
-
var onDayClick = function (day,
|
|
909
|
+
var selected = initialProps.selected, min = initialProps.min, max = initialProps.max;
|
|
910
|
+
var onDayClick = function (day, activeModifiers, e) {
|
|
917
911
|
var _a, _b;
|
|
918
|
-
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day,
|
|
919
|
-
var isMinSelected = Boolean(
|
|
920
|
-
modifiers.selected &&
|
|
921
|
-
selected &&
|
|
922
|
-
selected.length === initialProps.min);
|
|
912
|
+
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);
|
|
913
|
+
var isMinSelected = Boolean(activeModifiers.selected && min && (selected === null || selected === void 0 ? void 0 : selected.length) === min);
|
|
923
914
|
if (isMinSelected) {
|
|
924
915
|
return;
|
|
925
916
|
}
|
|
926
|
-
var isMaxSelected = Boolean(
|
|
927
|
-
!modifiers.selected &&
|
|
928
|
-
selected &&
|
|
929
|
-
selected.length === initialProps.max);
|
|
917
|
+
var isMaxSelected = Boolean(!activeModifiers.selected && max && (selected === null || selected === void 0 ? void 0 : selected.length) === max);
|
|
930
918
|
if (isMaxSelected) {
|
|
931
919
|
return;
|
|
932
920
|
}
|
|
933
|
-
var
|
|
934
|
-
if (
|
|
935
|
-
var index =
|
|
921
|
+
var selectedDays = selected ? __spreadArray([], selected, true) : [];
|
|
922
|
+
if (activeModifiers.selected) {
|
|
923
|
+
var index = selectedDays.findIndex(function (selectedDay) {
|
|
936
924
|
return dateFns.isSameDay(day, selectedDay);
|
|
937
925
|
});
|
|
938
|
-
|
|
926
|
+
selectedDays.splice(index, 1);
|
|
939
927
|
}
|
|
940
928
|
else {
|
|
941
|
-
|
|
929
|
+
selectedDays.push(day);
|
|
942
930
|
}
|
|
943
|
-
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps,
|
|
931
|
+
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, selectedDays, day, activeModifiers, e);
|
|
944
932
|
};
|
|
945
933
|
var modifiers = {
|
|
946
934
|
disabled: []
|
|
947
935
|
};
|
|
948
936
|
if (selected) {
|
|
949
|
-
modifiers.disabled
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
});
|
|
957
|
-
return Boolean(isMaxSelected && !isSelected);
|
|
958
|
-
}
|
|
959
|
-
];
|
|
937
|
+
modifiers.disabled.push(function (day) {
|
|
938
|
+
var isMaxSelected = max && selected.length > max - 1;
|
|
939
|
+
var isSelected = selected.some(function (selectedDay) {
|
|
940
|
+
return dateFns.isSameDay(selectedDay, day);
|
|
941
|
+
});
|
|
942
|
+
return Boolean(isMaxSelected && !isSelected);
|
|
943
|
+
});
|
|
960
944
|
}
|
|
961
|
-
var contextValue = {
|
|
945
|
+
var contextValue = {
|
|
946
|
+
selected: selected,
|
|
947
|
+
onDayClick: onDayClick,
|
|
948
|
+
modifiers: modifiers
|
|
949
|
+
};
|
|
962
950
|
return (React__default["default"].createElement(SelectMultipleContext.Provider, { value: contextValue }, children));
|
|
963
951
|
}
|
|
964
952
|
|
|
@@ -1037,26 +1025,24 @@ function SelectRangeProvider(props) {
|
|
|
1037
1025
|
function SelectRangeProviderInternal(_a) {
|
|
1038
1026
|
var initialProps = _a.initialProps, children = _a.children;
|
|
1039
1027
|
var selected = initialProps.selected;
|
|
1028
|
+
var _b = selected || {}, selectedFrom = _b.from, selectedTo = _b.to;
|
|
1040
1029
|
var min = initialProps.min;
|
|
1041
1030
|
var max = initialProps.max;
|
|
1042
|
-
var onDayClick = function (day,
|
|
1031
|
+
var onDayClick = function (day, activeModifiers, e) {
|
|
1043
1032
|
var _a, _b;
|
|
1044
|
-
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day,
|
|
1045
|
-
var
|
|
1033
|
+
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);
|
|
1034
|
+
var range = addToRange(day, selected);
|
|
1046
1035
|
if ((min || max) &&
|
|
1047
1036
|
selected &&
|
|
1048
|
-
(
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
var diff = Math.abs(dateFns.differenceInCalendarDays(
|
|
1052
|
-
if (min && diff < min) {
|
|
1053
|
-
return;
|
|
1054
|
-
}
|
|
1055
|
-
if (max && diff >= max) {
|
|
1037
|
+
(range === null || range === void 0 ? void 0 : range.to) &&
|
|
1038
|
+
range.from &&
|
|
1039
|
+
range.from !== range.to) {
|
|
1040
|
+
var diff = Math.abs(dateFns.differenceInCalendarDays(range === null || range === void 0 ? void 0 : range.to, range === null || range === void 0 ? void 0 : range.from));
|
|
1041
|
+
if ((min && diff < min) || (max && diff >= max)) {
|
|
1056
1042
|
return;
|
|
1057
1043
|
}
|
|
1058
1044
|
}
|
|
1059
|
-
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps,
|
|
1045
|
+
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, range, day, activeModifiers, e);
|
|
1060
1046
|
};
|
|
1061
1047
|
var modifiers = {
|
|
1062
1048
|
range_start: [],
|
|
@@ -1064,63 +1050,37 @@ function SelectRangeProviderInternal(_a) {
|
|
|
1064
1050
|
range_middle: [],
|
|
1065
1051
|
disabled: []
|
|
1066
1052
|
};
|
|
1067
|
-
if (
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
modifiers.disabled = [
|
|
1079
|
-
function (date) {
|
|
1080
|
-
if (max &&
|
|
1081
|
-
selected.to &&
|
|
1082
|
-
selected.from &&
|
|
1083
|
-
dateFns.isBefore(date, selected.from)) {
|
|
1084
|
-
var diff = dateFns.differenceInCalendarDays(selected.to, date);
|
|
1085
|
-
if (diff >= max) {
|
|
1086
|
-
return true;
|
|
1087
|
-
}
|
|
1088
|
-
}
|
|
1089
|
-
if (max &&
|
|
1090
|
-
selected.to &&
|
|
1091
|
-
selected.from &&
|
|
1092
|
-
dateFns.isAfter(date, selected.to)) {
|
|
1093
|
-
var diff = dateFns.differenceInCalendarDays(date, selected.from);
|
|
1094
|
-
if (diff >= max) {
|
|
1095
|
-
return true;
|
|
1096
|
-
}
|
|
1097
|
-
}
|
|
1098
|
-
if (min && selected.from && dateFns.isBefore(date, selected.from)) {
|
|
1099
|
-
var diff = dateFns.differenceInCalendarDays(selected.from, date);
|
|
1100
|
-
if (diff < min) {
|
|
1101
|
-
return true;
|
|
1102
|
-
}
|
|
1103
|
-
}
|
|
1104
|
-
if (min &&
|
|
1105
|
-
selected.to &&
|
|
1106
|
-
selected.from &&
|
|
1107
|
-
dateFns.isAfter(date, selected.to)) {
|
|
1108
|
-
var diff = dateFns.differenceInCalendarDays(date, selected.from);
|
|
1109
|
-
if (diff < min) {
|
|
1110
|
-
return true;
|
|
1111
|
-
}
|
|
1112
|
-
}
|
|
1113
|
-
return false;
|
|
1114
|
-
}
|
|
1115
|
-
];
|
|
1053
|
+
if (selectedFrom) {
|
|
1054
|
+
modifiers.range_start = [selectedFrom];
|
|
1055
|
+
if (!selectedTo) {
|
|
1056
|
+
modifiers.range_end = [selectedFrom];
|
|
1057
|
+
}
|
|
1058
|
+
else {
|
|
1059
|
+
modifiers.range_end = [selectedTo];
|
|
1060
|
+
modifiers.range_middle = [
|
|
1061
|
+
{
|
|
1062
|
+
after: selectedFrom,
|
|
1063
|
+
before: selectedTo
|
|
1116
1064
|
}
|
|
1117
|
-
|
|
1118
|
-
}
|
|
1119
|
-
else {
|
|
1120
|
-
modifiers.range_end = [selected.from];
|
|
1121
|
-
}
|
|
1065
|
+
];
|
|
1122
1066
|
}
|
|
1123
1067
|
}
|
|
1068
|
+
if (min && selectedFrom && selectedTo) {
|
|
1069
|
+
modifiers.disabled.push(function (date) {
|
|
1070
|
+
return ((dateFns.isBefore(date, selectedFrom) &&
|
|
1071
|
+
dateFns.differenceInCalendarDays(selectedFrom, date) < min) ||
|
|
1072
|
+
(dateFns.isAfter(date, selectedTo) &&
|
|
1073
|
+
dateFns.differenceInCalendarDays(date, selectedFrom) < min));
|
|
1074
|
+
});
|
|
1075
|
+
}
|
|
1076
|
+
if (max && selectedFrom && selectedTo) {
|
|
1077
|
+
modifiers.disabled.push(function (date) {
|
|
1078
|
+
return ((dateFns.isBefore(date, selectedFrom) &&
|
|
1079
|
+
dateFns.differenceInCalendarDays(selectedTo, date) >= max) ||
|
|
1080
|
+
(dateFns.isAfter(date, selectedTo) &&
|
|
1081
|
+
dateFns.differenceInCalendarDays(date, selectedFrom) >= max));
|
|
1082
|
+
});
|
|
1083
|
+
}
|
|
1124
1084
|
return (React__default["default"].createElement(SelectRangeContext.Provider, { value: { selected: selected, onDayClick: onDayClick, modifiers: modifiers } }, children));
|
|
1125
1085
|
}
|
|
1126
1086
|
|
|
@@ -1287,7 +1247,23 @@ function isDateType(value) {
|
|
|
1287
1247
|
function isArrayOfDates(value) {
|
|
1288
1248
|
return Array.isArray(value) && value.every(dateFns.isDate);
|
|
1289
1249
|
}
|
|
1290
|
-
/**
|
|
1250
|
+
/**
|
|
1251
|
+
* Returns whether a day matches against at least one of the given Matchers.
|
|
1252
|
+
*
|
|
1253
|
+
* ```
|
|
1254
|
+
* const day = new Date(2022, 5, 19);
|
|
1255
|
+
* const matcher1: DateRange = {
|
|
1256
|
+
* from: new Date(2021, 12, 21),
|
|
1257
|
+
* to: new Date(2021, 12, 30)
|
|
1258
|
+
* }
|
|
1259
|
+
* const matcher2: DateRange = {
|
|
1260
|
+
* from: new Date(2022, 5, 1),
|
|
1261
|
+
* to: new Date(2022, 5, 23)
|
|
1262
|
+
* }
|
|
1263
|
+
*
|
|
1264
|
+
* const isMatch(day, [matcher1, matcher2]); // true, since day is in the matcher1 range.
|
|
1265
|
+
* ```
|
|
1266
|
+
* */
|
|
1291
1267
|
function isMatch(day, matchers) {
|
|
1292
1268
|
return matchers.some(function (matcher) {
|
|
1293
1269
|
if (typeof matcher === 'boolean') {
|
|
@@ -1537,13 +1513,14 @@ function SelectSingleProvider(props) {
|
|
|
1537
1513
|
}
|
|
1538
1514
|
function SelectSingleProviderInternal(_a) {
|
|
1539
1515
|
var initialProps = _a.initialProps, children = _a.children;
|
|
1540
|
-
var onDayClick = function (day,
|
|
1541
|
-
var _a, _b;
|
|
1542
|
-
|
|
1543
|
-
|
|
1516
|
+
var onDayClick = function (day, activeModifiers, e) {
|
|
1517
|
+
var _a, _b, _c;
|
|
1518
|
+
(_a = initialProps.onDayClick) === null || _a === void 0 ? void 0 : _a.call(initialProps, day, activeModifiers, e);
|
|
1519
|
+
if (activeModifiers.selected && !initialProps.required) {
|
|
1520
|
+
(_b = initialProps.onSelect) === null || _b === void 0 ? void 0 : _b.call(initialProps, undefined, day, activeModifiers, e);
|
|
1544
1521
|
return;
|
|
1545
1522
|
}
|
|
1546
|
-
(
|
|
1523
|
+
(_c = initialProps.onSelect) === null || _c === void 0 ? void 0 : _c.call(initialProps, day, day, activeModifiers, e);
|
|
1547
1524
|
};
|
|
1548
1525
|
var contextValue = {
|
|
1549
1526
|
selected: initialProps.selected,
|
|
@@ -1833,14 +1810,14 @@ function Day(props) {
|
|
|
1833
1810
|
function WeekNumber(props) {
|
|
1834
1811
|
var weekNumber = props.number, dates = props.dates;
|
|
1835
1812
|
var _a = useDayPicker(), onWeekNumberClick = _a.onWeekNumberClick, styles = _a.styles, classNames = _a.classNames, locale = _a.locale, labelWeekNumber = _a.labels.labelWeekNumber, formatWeekNumber = _a.formatters.formatWeekNumber;
|
|
1836
|
-
var handleClick = function (e) {
|
|
1837
|
-
onWeekNumberClick === null || onWeekNumberClick === void 0 ? void 0 : onWeekNumberClick(weekNumber, dates, e);
|
|
1838
|
-
};
|
|
1839
1813
|
var content = formatWeekNumber(Number(weekNumber), { locale: locale });
|
|
1840
1814
|
if (!onWeekNumberClick) {
|
|
1841
1815
|
return (React__default["default"].createElement("span", { className: classNames.weeknumber, style: styles.weeknumber }, content));
|
|
1842
1816
|
}
|
|
1843
1817
|
var label = labelWeekNumber(Number(weekNumber), { locale: locale });
|
|
1818
|
+
var handleClick = function (e) {
|
|
1819
|
+
onWeekNumberClick(weekNumber, dates, e);
|
|
1820
|
+
};
|
|
1844
1821
|
return (React__default["default"].createElement(Button, { "aria-label": label, className: classNames.weeknumber, style: styles.weeknumber, onClick: handleClick }, content));
|
|
1845
1822
|
}
|
|
1846
1823
|
|
|
@@ -1861,77 +1838,61 @@ function Row(props) {
|
|
|
1861
1838
|
React__default["default"].createElement(DayComponent, { displayMonth: props.displayMonth, date: date }))); })));
|
|
1862
1839
|
}
|
|
1863
1840
|
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
var
|
|
1867
|
-
var
|
|
1868
|
-
|
|
1869
|
-
var dayDate = dateFns.addDays(month, i);
|
|
1870
|
-
days.push(dayDate);
|
|
1871
|
-
}
|
|
1872
|
-
return days;
|
|
1873
|
-
}
|
|
1874
|
-
|
|
1875
|
-
function getOutsideStartDays(month, options) {
|
|
1841
|
+
/** Return the weeks between two dates. */
|
|
1842
|
+
function daysToMonthWeeks(fromDate, toDate, options) {
|
|
1843
|
+
var toWeek = dateFns.endOfWeek(toDate, options);
|
|
1844
|
+
var fromWeek = dateFns.startOfWeek(fromDate, options);
|
|
1845
|
+
var nOfDays = dateFns.differenceInCalendarDays(toWeek, fromWeek);
|
|
1876
1846
|
var days = [];
|
|
1877
|
-
var
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1847
|
+
for (var i = 0; i <= nOfDays; i++) {
|
|
1848
|
+
days.push(dateFns.addDays(fromWeek, i));
|
|
1849
|
+
}
|
|
1850
|
+
var weeksInMonth = days.reduce(function (result, date) {
|
|
1851
|
+
var weekNumber = dateFns.getWeek(date, options);
|
|
1852
|
+
var existingWeek = result.find(function (value) { return value.weekNumber === weekNumber; });
|
|
1853
|
+
if (existingWeek) {
|
|
1854
|
+
existingWeek.dates.push(date);
|
|
1855
|
+
return result;
|
|
1856
|
+
}
|
|
1857
|
+
result.push({
|
|
1858
|
+
weekNumber: weekNumber,
|
|
1859
|
+
dates: [date]
|
|
1860
|
+
});
|
|
1861
|
+
return result;
|
|
1862
|
+
}, []);
|
|
1863
|
+
return weeksInMonth;
|
|
1884
1864
|
}
|
|
1885
1865
|
|
|
1886
1866
|
/**
|
|
1887
|
-
* Return the weeks belonging to the given month
|
|
1867
|
+
* Return the weeks belonging to the given month, adding the "outside days" to
|
|
1868
|
+
* the first and last week.
|
|
1888
1869
|
*/
|
|
1889
|
-
function
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
var
|
|
1893
|
-
var diff = dateFns.differenceInCalendarDays(monthEnd, monthStart);
|
|
1894
|
-
var weeks = [];
|
|
1895
|
-
var lastWeek = { weekNumber: 0, dates: [] };
|
|
1896
|
-
for (var i = 0; i <= diff; i++) {
|
|
1897
|
-
var date = dateFns.addDays(monthStart, i);
|
|
1898
|
-
var week = dateFns.getWeek(date, { locale: locale });
|
|
1899
|
-
if (lastWeek.weekNumber !== week) {
|
|
1900
|
-
// Create a new week by adding outside start days
|
|
1901
|
-
var startDays = getOutsideStartDays(date, { locale: locale });
|
|
1902
|
-
lastWeek = { weekNumber: week, dates: startDays };
|
|
1903
|
-
weeks.push(lastWeek);
|
|
1904
|
-
}
|
|
1905
|
-
lastWeek.dates.push(date);
|
|
1906
|
-
}
|
|
1907
|
-
var lastDay = lastWeek.dates[lastWeek.dates.length - 1];
|
|
1908
|
-
var endDays = getOutsideEndDays(lastDay, { locale: locale });
|
|
1909
|
-
lastWeek.dates = lastWeek.dates.concat(endDays);
|
|
1870
|
+
function getMonthWeeks(
|
|
1871
|
+
/** The month to get the weeks from */
|
|
1872
|
+
month, options) {
|
|
1873
|
+
var weeksInMonth = daysToMonthWeeks(dateFns.startOfMonth(month), dateFns.endOfMonth(month), options);
|
|
1910
1874
|
// Add extra weeks to the month, up to 6 weeks
|
|
1911
|
-
if (
|
|
1912
|
-
var
|
|
1913
|
-
|
|
1914
|
-
|
|
1915
|
-
var
|
|
1916
|
-
|
|
1917
|
-
|
|
1918
|
-
|
|
1919
|
-
if (lastWeek.weekNumber !== week) {
|
|
1920
|
-
lastWeek = { weekNumber: week, dates: [] };
|
|
1921
|
-
weeks.push(lastWeek);
|
|
1922
|
-
}
|
|
1923
|
-
lastWeek.dates.push(date);
|
|
1924
|
-
}
|
|
1875
|
+
if (options === null || options === void 0 ? void 0 : options.useFixedWeeks) {
|
|
1876
|
+
var nrOfMonthWeeks = dateFns.getWeeksInMonth(month, options);
|
|
1877
|
+
if (nrOfMonthWeeks < 6) {
|
|
1878
|
+
var lastWeek = weeksInMonth[weeksInMonth.length - 1];
|
|
1879
|
+
var lastDate = lastWeek.dates[lastWeek.dates.length - 1];
|
|
1880
|
+
var toDate = dateFns.addWeeks(lastDate, 6 - nrOfMonthWeeks);
|
|
1881
|
+
var extraWeeks = daysToMonthWeeks(dateFns.addWeeks(lastDate, 1), toDate, options);
|
|
1882
|
+
weeksInMonth.push.apply(weeksInMonth, extraWeeks);
|
|
1925
1883
|
}
|
|
1926
1884
|
}
|
|
1927
|
-
return
|
|
1885
|
+
return weeksInMonth;
|
|
1928
1886
|
}
|
|
1929
1887
|
|
|
1930
1888
|
/** Render the table with the calendar. */
|
|
1931
1889
|
function Table(props) {
|
|
1932
1890
|
var _a, _b, _c;
|
|
1933
1891
|
var _d = useDayPicker(), locale = _d.locale, classNames = _d.classNames, styles = _d.styles, hideHead = _d.hideHead, fixedWeeks = _d.fixedWeeks, components = _d.components;
|
|
1934
|
-
var weeks =
|
|
1892
|
+
var weeks = getMonthWeeks(props.displayMonth, {
|
|
1893
|
+
useFixedWeeks: Boolean(fixedWeeks),
|
|
1894
|
+
locale: locale
|
|
1895
|
+
});
|
|
1935
1896
|
var HeadComponent = (_a = components === null || components === void 0 ? void 0 : components.Head) !== null && _a !== void 0 ? _a : Head;
|
|
1936
1897
|
var RowComponent = (_b = components === null || components === void 0 ? void 0 : components.Row) !== null && _b !== void 0 ? _b : Row;
|
|
1937
1898
|
var FooterComponent = (_c = components === null || components === void 0 ? void 0 : components.Footer) !== null && _c !== void 0 ? _c : Footer;
|
|
@@ -2257,6 +2218,7 @@ exports.isDayPickerCustom = isDayPickerCustom;
|
|
|
2257
2218
|
exports.isDayPickerMultiple = isDayPickerMultiple;
|
|
2258
2219
|
exports.isDayPickerRange = isDayPickerRange;
|
|
2259
2220
|
exports.isDayPickerSingle = isDayPickerSingle;
|
|
2221
|
+
exports.isMatch = isMatch;
|
|
2260
2222
|
exports.useActiveModifiers = useActiveModifiers;
|
|
2261
2223
|
exports.useDayPicker = useDayPicker;
|
|
2262
2224
|
exports.useDayRender = useDayRender;
|