@chayns-components/date 5.0.0-beta.919 → 5.0.0-beta.921
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/lib/cjs/components/calendar/Calendar.js +17 -17
- package/lib/cjs/components/calendar/Calendar.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js +1 -0
- package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/Month.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +19 -21
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +3 -3
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +9 -11
- package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js +2 -2
- package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
- package/lib/cjs/components/date-info/DateInfo.js.map +1 -1
- package/lib/cjs/hooks/useDateInfo.js +27 -72
- package/lib/cjs/hooks/useDateInfo.js.map +1 -1
- package/lib/cjs/index.js +130 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types/dateinfo.js +2 -0
- package/lib/cjs/types/dateinfo.js.map +1 -0
- package/lib/cjs/utils/calendar.js +12 -9
- package/lib/cjs/utils/calendar.js.map +1 -1
- package/lib/cjs/utils/date.js +114 -0
- package/lib/cjs/utils/date.js.map +1 -0
- package/lib/cjs/utils/dateInfo.js +99 -344
- package/lib/cjs/utils/dateInfo.js.map +1 -1
- package/lib/esm/components/calendar/Calendar.js +4 -4
- package/lib/esm/components/calendar/Calendar.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js +1 -0
- package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/Month.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +2 -4
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +8 -10
- package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js +1 -1
- package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
- package/lib/esm/components/date-info/DateInfo.js.map +1 -1
- package/lib/esm/hooks/useDateInfo.js +28 -73
- package/lib/esm/hooks/useDateInfo.js.map +1 -1
- package/lib/esm/index.js +10 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types/dateinfo.js +2 -0
- package/lib/esm/types/dateinfo.js.map +1 -0
- package/lib/esm/utils/calendar.js +4 -3
- package/lib/esm/utils/calendar.js.map +1 -1
- package/lib/esm/utils/date.js +89 -0
- package/lib/esm/utils/date.js.map +1 -0
- package/lib/esm/utils/dateInfo.js +98 -339
- package/lib/esm/utils/dateInfo.js.map +1 -1
- package/lib/types/components/calendar/Calendar.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/MonthWrapper.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/MonthWrapper.styles.d.ts +1 -1
- package/lib/types/components/calendar/month-wrapper/month/Month.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.d.ts +2 -2
- package/lib/types/components/calendar/month-year-pickers/MonthYearPickers.d.ts +2 -2
- package/lib/types/components/date-info/DateInfo.d.ts +1 -1
- package/lib/types/components/opening-times/opening-inputs/OpeningInputs.styles.d.ts +1 -1
- package/lib/types/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.d.ts +1 -1
- package/lib/types/hooks/useDateInfo.d.ts +1 -34
- package/lib/types/index.d.ts +6 -4
- package/lib/types/types/dateinfo.d.ts +34 -0
- package/lib/types/utils/calendar.d.ts +2 -2
- package/lib/types/utils/date.d.ts +27 -0
- package/lib/types/utils/dateInfo.d.ts +10 -51
- package/package.json +3 -4
- package/lib/cjs/constants/dateInfo.js +0 -639
- package/lib/cjs/constants/dateInfo.js.map +0 -1
- package/lib/esm/constants/dateInfo.js +0 -633
- package/lib/esm/constants/dateInfo.js.map +0 -1
- package/lib/types/constants/dateInfo.d.ts +0 -23
|
@@ -5,20 +5,20 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _core = require("@chayns-components/core");
|
|
8
|
-
var _dateFns = require("date-fns");
|
|
9
|
-
var _locale = require("date-fns/locale");
|
|
10
8
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
9
|
var _calendar = require("../../types/calendar");
|
|
12
10
|
var _calendar2 = require("../../utils/calendar");
|
|
13
11
|
var _Calendar = require("./Calendar.styles");
|
|
14
12
|
var _MonthWrapper = _interopRequireDefault(require("./month-wrapper/MonthWrapper"));
|
|
13
|
+
var _chaynsApi = require("chayns-api");
|
|
14
|
+
var _date = require("../../utils/date");
|
|
15
15
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
16
16
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
17
17
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
-
const DEFAULT_MAX_DATE = (0,
|
|
19
|
-
const DEFAULT_MIN_DATE = (0,
|
|
18
|
+
const DEFAULT_MAX_DATE = (0, _date.addYears)(new Date(), 1);
|
|
19
|
+
const DEFAULT_MIN_DATE = (0, _date.subYears)(new Date(), 1);
|
|
20
20
|
const Calendar = ({
|
|
21
|
-
locale =
|
|
21
|
+
locale = _chaynsApi.Language.German,
|
|
22
22
|
maxDate = DEFAULT_MAX_DATE,
|
|
23
23
|
minDate = DEFAULT_MIN_DATE,
|
|
24
24
|
highlightedDates,
|
|
@@ -41,7 +41,7 @@ const Calendar = ({
|
|
|
41
41
|
const [direction, setDirection] = (0, _react.useState)();
|
|
42
42
|
const [width, setWidth] = (0, _react.useState)(0);
|
|
43
43
|
const showMonthYearPickers = (0, _react.useMemo)(() => {
|
|
44
|
-
const hasMultipleMonths = (0,
|
|
44
|
+
const hasMultipleMonths = (0, _date.differenceInCalendarMonths)(maxDate, minDate) > 0;
|
|
45
45
|
const hasMultipleYears = (0, _calendar2.getYearsBetween)(minDate, maxDate).length > 1;
|
|
46
46
|
return !!(showMonthYearPickersProp && (hasMultipleMonths || hasMultipleYears));
|
|
47
47
|
}, [minDate, maxDate, showMonthYearPickersProp]);
|
|
@@ -63,7 +63,7 @@ const Calendar = ({
|
|
|
63
63
|
});
|
|
64
64
|
}
|
|
65
65
|
}
|
|
66
|
-
}, [currentDate, shouldRenderTwoMonths]);
|
|
66
|
+
}, [currentDate, onShownDatesChange, shouldRenderTwoMonths]);
|
|
67
67
|
(0, _react.useEffect)(() => {
|
|
68
68
|
const bounds = {
|
|
69
69
|
start: minDate,
|
|
@@ -71,8 +71,8 @@ const Calendar = ({
|
|
|
71
71
|
};
|
|
72
72
|
if (type === _calendar.CalendarType.Single) {
|
|
73
73
|
if (selectedDate) {
|
|
74
|
-
const isDisabledDate = disabledDates.some(disabledDate => (0,
|
|
75
|
-
const isDateInBounds = (0,
|
|
74
|
+
const isDisabledDate = disabledDates.some(disabledDate => (0, _date.isSameDay)(selectedDate, disabledDate));
|
|
75
|
+
const isDateInBounds = (0, _date.isWithinInterval)(selectedDate, bounds);
|
|
76
76
|
if (!isDisabledDate && isDateInBounds) {
|
|
77
77
|
setInternalSelectedDate(selectedDate);
|
|
78
78
|
} else {
|
|
@@ -90,11 +90,11 @@ const Calendar = ({
|
|
|
90
90
|
const disabledSelectedDates = [];
|
|
91
91
|
const datesOutsideOfBounds = [];
|
|
92
92
|
const filteredDates = selectedDates.filter(date => {
|
|
93
|
-
if (disabledDates.some(disabledDate => (0,
|
|
93
|
+
if (disabledDates.some(disabledDate => (0, _date.isSameDay)(date, disabledDate))) {
|
|
94
94
|
disabledSelectedDates.push(date);
|
|
95
95
|
return false;
|
|
96
96
|
}
|
|
97
|
-
if (!(0,
|
|
97
|
+
if (!(0, _date.isWithinInterval)(date, bounds)) {
|
|
98
98
|
datesOutsideOfBounds.push(date);
|
|
99
99
|
return false;
|
|
100
100
|
}
|
|
@@ -112,11 +112,11 @@ const Calendar = ({
|
|
|
112
112
|
}
|
|
113
113
|
} else if (type === _calendar.CalendarType.Interval) {
|
|
114
114
|
if (selectedDateInterval) {
|
|
115
|
-
const intervalIncludesDisabledDate = selectedDateInterval.end && disabledDates.some(disabledDate => (0,
|
|
115
|
+
const intervalIncludesDisabledDate = selectedDateInterval.end && disabledDates.some(disabledDate => (0, _date.isWithinInterval)(disabledDate, {
|
|
116
116
|
start: selectedDateInterval.start,
|
|
117
117
|
end: selectedDateInterval.end
|
|
118
118
|
}));
|
|
119
|
-
const intervalIsInBounds = (0,
|
|
119
|
+
const intervalIsInBounds = (0, _date.isWithinInterval)(selectedDateInterval.start, bounds) && (!selectedDateInterval.end || (0, _date.isWithinInterval)(selectedDateInterval.end, bounds));
|
|
120
120
|
if (!intervalIncludesDisabledDate && intervalIsInBounds) {
|
|
121
121
|
setInternalSelectedDate(selectedDateInterval);
|
|
122
122
|
} else {
|
|
@@ -196,8 +196,8 @@ const Calendar = ({
|
|
|
196
196
|
} else if (type === _calendar.CalendarType.Multiple) {
|
|
197
197
|
const prevSelectedDates = prevDate;
|
|
198
198
|
// Selects or unselects date , depending on if it is already selected.
|
|
199
|
-
if (prevSelectedDates.some(d => (0,
|
|
200
|
-
newInternalSelectedDate = prevSelectedDates.filter(d => !(0,
|
|
199
|
+
if (prevSelectedDates.some(d => (0, _date.isSameDay)(d, date))) {
|
|
200
|
+
newInternalSelectedDate = prevSelectedDates.filter(d => !(0, _date.isSameDay)(d, date));
|
|
201
201
|
} else {
|
|
202
202
|
newInternalSelectedDate = [...prevSelectedDates, date];
|
|
203
203
|
}
|
|
@@ -242,13 +242,13 @@ const Calendar = ({
|
|
|
242
242
|
if (!currentDate) {
|
|
243
243
|
return false;
|
|
244
244
|
}
|
|
245
|
-
return !(0,
|
|
245
|
+
return !(0, _date.isSameMonth)(currentDate, minDate);
|
|
246
246
|
}, [currentDate, minDate]);
|
|
247
247
|
const ShouldShowRightArrow = (0, _react.useMemo)(() => {
|
|
248
248
|
if (!currentDate) {
|
|
249
249
|
return false;
|
|
250
250
|
}
|
|
251
|
-
return !(0,
|
|
251
|
+
return !(0, _date.isSameMonth)(currentDate, maxDate);
|
|
252
252
|
}, [currentDate, maxDate]);
|
|
253
253
|
return /*#__PURE__*/_react.default.createElement(_Calendar.StyledCalendar, {
|
|
254
254
|
ref: calendarRef,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","names":["_core","require","_dateFns","_locale","_react","_interopRequireWildcard","_calendar","_calendar2","_Calendar","_MonthWrapper","_interopRequireDefault","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DEFAULT_MAX_DATE","addYears","Date","DEFAULT_MIN_DATE","subYears","Calendar","locale","de","maxDate","minDate","highlightedDates","onChange","customThumbColors","selectedDate","selectedDates","selectedDateInterval","categories","isDisabled","type","CalendarType","Single","shouldShowHighlightsInMonthOverlay","disabledDates","showMonthYearPickers","showMonthYearPickersProp","onShownDatesChange","currentDate","setCurrentDate","useState","shouldRenderTwoMonths","setShouldRenderTwoMonths","internalSelectedDate","setInternalSelectedDate","Multiple","undefined","direction","setDirection","width","setWidth","useMemo","hasMultipleMonths","differenceInCalendarMonths","hasMultipleYears","getYearsBetween","length","calendarRef","useRef","useEffect","start","getFullYear","getMonth","end","bounds","isDisabledDate","some","disabledDate","isSameDay","isDateInBounds","isWithinInterval","console","warn","disabledSelectedDates","datesOutsideOfBounds","filteredDates","filter","date","push","Interval","intervalIncludesDisabledDate","intervalIsInBounds","current","resizeObserver","ResizeObserver","entries","observedWidth","contentRect","observe","disconnect","prevDate","isDateInRange","handleLeftArrowClick","useCallback","newDate","getNewDate","handleRightArrowClick","handleSelect","onChangePayload","newInternalSelectedDate","prevSelectedDates","d","prevSelectedDateInterval","updateInterval","newInterval","handleAnimationFinished","ShouldShowLeftArrow","isSameMonth","ShouldShowRightArrow","createElement","StyledCalendar","ref","$isDisabled","StyledCalendarIconWrapper","onClick","style","display","flexDirection","flexWrap","height","StyledPseudoMonthYearPicker","ComboBox","lists","list","placeholder","Icon","icons","StyledCalendarIconWrapperPseudo","shouldRenderTwo","onSelect","onAnimationFinished","displayName","_default","exports"],"sources":["../../../../src/components/calendar/Calendar.tsx"],"sourcesContent":["import { ComboBox, Icon } from '@chayns-components/core';\nimport {\n addYears,\n differenceInCalendarMonths,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n subYears,\n type Locale,\n} from 'date-fns';\nimport { de } from 'date-fns/locale';\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {Categories, CustomThumbColors, DateInterval, HighlightedDates} from '../../types/calendar';\nimport { CalendarType } from '../../types/calendar';\nimport { getNewDate, getYearsBetween, isDateInRange } from '../../utils/calendar';\nimport {\n StyledCalendar,\n StyledCalendarIconWrapper,\n StyledCalendarIconWrapperPseudo,\n StyledPseudoMonthYearPicker,\n} from './Calendar.styles';\nimport MonthWrapper from './month-wrapper/MonthWrapper';\n\ninterface BaseProps {\n /**\n * An array to group dates into a category.\n */\n categories?: Categories[];\n /**\n * Custom colors for the thumb.\n */\n customThumbColors?: CustomThumbColors;\n /**\n * An array with dates and corresponding styles to highlight.\n */\n highlightedDates?: HighlightedDates[];\n /**\n * To disable the Calendar\n */\n isDisabled?: boolean;\n /**\n * The locale language to format the dates.\n */\n locale?: Locale;\n /**\n * The maximum date that can be selected.\n */\n maxDate?: Date;\n /**\n * The minimum date that can be selected.\n */\n minDate?: Date;\n /**\n * An array of dates that should be disabled.\n */\n disabledDates?: Date[];\n /**\n * Whether the highlighted dates should be displayed for the greyed month overlay days.\n */\n shouldShowHighlightsInMonthOverlay?: boolean;\n /**\n * Shows the month and year pickers, if there are multiple months/years to select from.\n */\n showMonthYearPickers?: boolean;\n /**\n * Function to be executed when the selected date, dates or date interval change.\n * @param date\n */\n onChange?: (date: Date | Date[] | DateInterval) => void;\n /**\n * Function to be executed when the shown dates change. Returns the start of the displayed month and the end of the last displayed month (since depending on the available widths, there are one or two months displayed).\n @param { start: Date, end: Date }\n */\n onShownDatesChange?: (dates: { start: Date; end: Date }) => void;\n}\n\ninterface SingleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type?: CalendarType.Single;\n /**\n * A date that should be preselected.\n */\n selectedDate?: Date;\n selectedDates: never;\n selectedDateInterval: never;\n}\n\ninterface MultipleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Multiple;\n /**\n * An array of dates that should be preselected.\n */\n selectedDates?: Date[];\n selectedDate: never;\n selectedDateInterval: never;\n}\n\ninterface IntervalSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Interval;\n /**\n * An interval that should be preselected.\n */\n selectedDateInterval?: DateInterval;\n selectedDates: never;\n selectedDate: never;\n}\n\nexport type CalendarProps = BaseProps &\n (SingleSelectionProps | MultipleSelectionProps | IntervalSelectionProps);\n\nconst DEFAULT_MAX_DATE = addYears(new Date(), 1);\nconst DEFAULT_MIN_DATE = subYears(new Date(), 1);\n\nconst Calendar: FC<CalendarProps> = ({\n locale = de,\n maxDate = DEFAULT_MAX_DATE,\n minDate = DEFAULT_MIN_DATE,\n highlightedDates,\n onChange,customThumbColors,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\n shouldShowHighlightsInMonthOverlay = true,\n disabledDates = [],\n showMonthYearPickers: showMonthYearPickersProp,\n onShownDatesChange = () => {},\n}) => {\n const [currentDate, setCurrentDate] = useState<Date>();\n const [shouldRenderTwoMonths, setShouldRenderTwoMonths] = useState(true);\n const [internalSelectedDate, setInternalSelectedDate] = useState<\n Date | Date[] | DateInterval | undefined\n >(type === CalendarType.Multiple ? [] : undefined);\n const [direction, setDirection] = useState<'left' | 'right'>();\n const [width, setWidth] = useState(0);\n\n const showMonthYearPickers = useMemo(() => {\n const hasMultipleMonths = differenceInCalendarMonths(maxDate, minDate) > 0;\n const hasMultipleYears = getYearsBetween(minDate, maxDate).length > 1;\n\n return !!(showMonthYearPickersProp && (hasMultipleMonths || hasMultipleYears));\n }, [minDate, maxDate, showMonthYearPickersProp]);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (currentDate) {\n const start = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n\n if (shouldRenderTwoMonths) {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 2, 0);\n onShownDatesChange({\n start,\n end,\n });\n } else {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n onShownDatesChange({\n start,\n end,\n });\n }\n }\n }, [currentDate, shouldRenderTwoMonths]);\n\n useEffect(() => {\n const bounds = {\n start: minDate,\n end: maxDate,\n };\n if (type === CalendarType.Single) {\n if (selectedDate) {\n const isDisabledDate = disabledDates.some((disabledDate) =>\n isSameDay(selectedDate, disabledDate),\n );\n const isDateInBounds = isWithinInterval(selectedDate, bounds);\n\n if (!isDisabledDate && isDateInBounds) {\n setInternalSelectedDate(selectedDate);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDate, because it is disabled or out of bounds.',\n '\\nselectedDate:',\n selectedDate,\n ...(isDisabledDate ? ['\\nselectedDate is disabled'] : []),\n ...(isDateInBounds\n ? []\n : ['\\nselectedDate is outside of bounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n } else {\n setInternalSelectedDate(undefined);\n }\n } else if (type === CalendarType.Multiple) {\n if (selectedDates) {\n const disabledSelectedDates: Date[] = [];\n const datesOutsideOfBounds: Date[] = [];\n\n const filteredDates = selectedDates.filter((date) => {\n if (disabledDates.some((disabledDate) => isSameDay(date, disabledDate))) {\n disabledSelectedDates.push(date);\n return false;\n }\n\n if (!isWithinInterval(date, bounds)) {\n datesOutsideOfBounds.push(date);\n return false;\n }\n\n return true;\n });\n\n if (disabledSelectedDates.length > 0 || datesOutsideOfBounds.length > 0) {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set all selectedDates, because some are disabled or out of bounds.',\n ...(disabledSelectedDates.length > 0\n ? ['\\nselectedDates that are disabled:', disabledSelectedDates]\n : []),\n ...(datesOutsideOfBounds.length > 0\n ? [\n '\\nselectedDates that are outside of bounds:',\n datesOutsideOfBounds,\n 'bounds:',\n { minDate, maxDate },\n ]\n : []),\n );\n }\n\n setInternalSelectedDate(filteredDates);\n } else {\n setInternalSelectedDate([]);\n }\n } else if (type === CalendarType.Interval) {\n if (selectedDateInterval) {\n const intervalIncludesDisabledDate =\n selectedDateInterval.end &&\n disabledDates.some((disabledDate) =>\n isWithinInterval(disabledDate, {\n start: selectedDateInterval.start,\n end: selectedDateInterval.end as Date,\n }),\n );\n\n const intervalIsInBounds =\n isWithinInterval(selectedDateInterval.start, bounds) &&\n (!selectedDateInterval.end ||\n isWithinInterval(selectedDateInterval.end, bounds));\n\n if (!intervalIncludesDisabledDate && intervalIsInBounds) {\n setInternalSelectedDate(selectedDateInterval);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDateInterval, because it includes disabled dates or dates that are out of bounds.',\n '\\nselectedDateInterval:',\n selectedDateInterval,\n ...(intervalIncludesDisabledDate\n ? ['\\ndisabled dates:', disabledDates]\n : []),\n ...(intervalIsInBounds ? [] : ['\\nbounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n }\n }\n }, [type, selectedDate, selectedDates, selectedDateInterval, disabledDates, minDate, maxDate]);\n\n useEffect(() => {\n if (calendarRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries && entries[0]) {\n const observedWidth = entries[0].contentRect.width;\n\n setWidth(observedWidth - 30);\n\n if (observedWidth < 430) {\n setShouldRenderTwoMonths(false);\n } else {\n setShouldRenderTwoMonths(true);\n }\n }\n });\n\n resizeObserver.observe(calendarRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n\n return () => {};\n }, []);\n\n useEffect(() => {\n setCurrentDate((prevDate) =>\n isDateInRange({ minDate, maxDate, currentDate: prevDate || new Date() }),\n );\n }, [maxDate, minDate]);\n\n const handleLeftArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('left');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(-1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleRightArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('right');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleSelect = useCallback(\n (date: Date) => {\n setInternalSelectedDate((prevDate) => {\n let onChangePayload: Date | Date[] | DateInterval | null = null;\n let newInternalSelectedDate: Date | Date[] | DateInterval | undefined;\n\n if (type === CalendarType.Single) {\n onChangePayload = date;\n newInternalSelectedDate = date;\n } else if (type === CalendarType.Multiple) {\n const prevSelectedDates = prevDate as Date[];\n // Selects or unselects date , depending on if it is already selected.\n if (prevSelectedDates.some((d) => isSameDay(d, date))) {\n newInternalSelectedDate = prevSelectedDates.filter(\n (d) => !isSameDay(d, date),\n );\n } else {\n newInternalSelectedDate = [...prevSelectedDates, date];\n }\n\n onChangePayload = newInternalSelectedDate;\n } else if (type === CalendarType.Interval) {\n const prevSelectedDateInterval = prevDate as DateInterval;\n\n const updateInterval = (start: Date, end?: Date): void => {\n const newInterval = { start, end };\n onChangePayload = newInterval;\n newInternalSelectedDate = newInterval;\n };\n\n // Sets first selection as interval start.\n if (!prevSelectedDateInterval) {\n updateInterval(date);\n } else if (prevSelectedDateInterval.start && !prevSelectedDateInterval.end) {\n // Sets second selection as interval start, if it is earlier than the previous interval start.\n // Else sets it as interval end.\n if (date < prevSelectedDateInterval.start) {\n updateInterval(date);\n } else {\n updateInterval(prevSelectedDateInterval.start, date);\n }\n } else {\n // Resets interval if a third date is selected.\n updateInterval(date);\n }\n }\n\n if (typeof onChange === 'function' && onChangePayload) {\n onChange(onChangePayload);\n }\n\n return newInternalSelectedDate;\n });\n },\n [type, onChange],\n );\n\n const handleAnimationFinished = () => {\n setDirection(undefined);\n };\n\n const ShouldShowLeftArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, minDate);\n }, [currentDate, minDate]);\n\n const ShouldShowRightArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, maxDate);\n }, [currentDate, maxDate]);\n\n return (\n <StyledCalendar ref={calendarRef} $isDisabled={isDisabled}>\n {ShouldShowLeftArrow ? (\n <StyledCalendarIconWrapper onClick={handleLeftArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-left']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n {currentDate && (\n <MonthWrapper\n shouldRenderTwo={shouldRenderTwoMonths}\n currentDate={currentDate}\n width={width}\n locale={locale}\n direction={direction}\n customThumbColors={customThumbColors}\n onSelect={handleSelect}\n selectedDate={internalSelectedDate}\n highlightedDates={highlightedDates}\n categories={categories}\n onAnimationFinished={handleAnimationFinished}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n showMonthYearPickers={showMonthYearPickers}\n />\n )}\n {ShouldShowRightArrow ? (\n <StyledCalendarIconWrapper onClick={handleRightArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-right']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n </StyledCalendar>\n );\n};\n\nCalendar.displayName = 'Calendar';\n\nexport default Calendar;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Calendar.js","names":["_core","require","_react","_interopRequireWildcard","_calendar","_calendar2","_Calendar","_MonthWrapper","_interopRequireDefault","_chaynsApi","_date","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DEFAULT_MAX_DATE","addYears","Date","DEFAULT_MIN_DATE","subYears","Calendar","locale","Language","German","maxDate","minDate","highlightedDates","onChange","customThumbColors","selectedDate","selectedDates","selectedDateInterval","categories","isDisabled","type","CalendarType","Single","shouldShowHighlightsInMonthOverlay","disabledDates","showMonthYearPickers","showMonthYearPickersProp","onShownDatesChange","currentDate","setCurrentDate","useState","shouldRenderTwoMonths","setShouldRenderTwoMonths","internalSelectedDate","setInternalSelectedDate","Multiple","undefined","direction","setDirection","width","setWidth","useMemo","hasMultipleMonths","differenceInCalendarMonths","hasMultipleYears","getYearsBetween","length","calendarRef","useRef","useEffect","start","getFullYear","getMonth","end","bounds","isDisabledDate","some","disabledDate","isSameDay","isDateInBounds","isWithinInterval","console","warn","disabledSelectedDates","datesOutsideOfBounds","filteredDates","filter","date","push","Interval","intervalIncludesDisabledDate","intervalIsInBounds","current","resizeObserver","ResizeObserver","entries","observedWidth","contentRect","observe","disconnect","prevDate","isDateInRange","handleLeftArrowClick","useCallback","newDate","getNewDate","handleRightArrowClick","handleSelect","onChangePayload","newInternalSelectedDate","prevSelectedDates","d","prevSelectedDateInterval","updateInterval","newInterval","handleAnimationFinished","ShouldShowLeftArrow","isSameMonth","ShouldShowRightArrow","createElement","StyledCalendar","ref","$isDisabled","StyledCalendarIconWrapper","onClick","style","display","flexDirection","flexWrap","height","StyledPseudoMonthYearPicker","ComboBox","lists","list","placeholder","Icon","icons","StyledCalendarIconWrapperPseudo","shouldRenderTwo","onSelect","onAnimationFinished","displayName","_default","exports"],"sources":["../../../../src/components/calendar/Calendar.tsx"],"sourcesContent":["import { ComboBox, Icon } from '@chayns-components/core';\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {Categories, CustomThumbColors, DateInterval, HighlightedDates} from '../../types/calendar';\nimport { CalendarType } from '../../types/calendar';\nimport { getNewDate, getYearsBetween, isDateInRange } from '../../utils/calendar';\nimport {\n StyledCalendar,\n StyledCalendarIconWrapper,\n StyledCalendarIconWrapperPseudo,\n StyledPseudoMonthYearPicker,\n} from './Calendar.styles';\nimport MonthWrapper from './month-wrapper/MonthWrapper';\nimport {Language} from \"chayns-api\";\nimport {\n addYears,\n differenceInCalendarMonths,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n subYears\n} from \"../../utils/date\";\n\ninterface BaseProps {\n /**\n * An array to group dates into a category.\n */\n categories?: Categories[];\n /**\n * Custom colors for the thumb.\n */\n customThumbColors?: CustomThumbColors;\n /**\n * An array with dates and corresponding styles to highlight.\n */\n highlightedDates?: HighlightedDates[];\n /**\n * To disable the Calendar\n */\n isDisabled?: boolean;\n /**\n * The locale language to format the dates.\n */\n locale?: Language;\n /**\n * The maximum date that can be selected.\n */\n maxDate?: Date;\n /**\n * The minimum date that can be selected.\n */\n minDate?: Date;\n /**\n * An array of dates that should be disabled.\n */\n disabledDates?: Date[];\n /**\n * Whether the highlighted dates should be displayed for the greyed month overlay days.\n */\n shouldShowHighlightsInMonthOverlay?: boolean;\n /**\n * Shows the month and year pickers, if there are multiple months/years to select from.\n */\n showMonthYearPickers?: boolean;\n /**\n * Function to be executed when the selected date, dates or date interval change.\n * @param date\n */\n onChange?: (date: Date | Date[] | DateInterval) => void;\n /**\n * Function to be executed when the shown dates change. Returns the start of the displayed month and the end of the last displayed month (since depending on the available widths, there are one or two months displayed).\n @param { start: Date, end: Date }\n */\n onShownDatesChange?: (dates: { start: Date; end: Date }) => void;\n}\n\ninterface SingleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type?: CalendarType.Single;\n /**\n * A date that should be preselected.\n */\n selectedDate?: Date;\n selectedDates: never;\n selectedDateInterval: never;\n}\n\ninterface MultipleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Multiple;\n /**\n * An array of dates that should be preselected.\n */\n selectedDates?: Date[];\n selectedDate: never;\n selectedDateInterval: never;\n}\n\ninterface IntervalSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Interval;\n /**\n * An interval that should be preselected.\n */\n selectedDateInterval?: DateInterval;\n selectedDates: never;\n selectedDate: never;\n}\n\nexport type CalendarProps = BaseProps &\n (SingleSelectionProps | MultipleSelectionProps | IntervalSelectionProps);\n\nconst DEFAULT_MAX_DATE = addYears(new Date(), 1);\nconst DEFAULT_MIN_DATE = subYears(new Date(), 1);\n\nconst Calendar: FC<CalendarProps> = ({\n locale = Language.German,\n maxDate = DEFAULT_MAX_DATE,\n minDate = DEFAULT_MIN_DATE,\n highlightedDates,\n onChange,customThumbColors,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\n shouldShowHighlightsInMonthOverlay = true,\n disabledDates = [],\n showMonthYearPickers: showMonthYearPickersProp,\n onShownDatesChange = () => {},\n}) => {\n const [currentDate, setCurrentDate] = useState<Date>();\n const [shouldRenderTwoMonths, setShouldRenderTwoMonths] = useState(true);\n const [internalSelectedDate, setInternalSelectedDate] = useState<\n Date | Date[] | DateInterval | undefined\n >(type === CalendarType.Multiple ? [] : undefined);\n const [direction, setDirection] = useState<'left' | 'right'>();\n const [width, setWidth] = useState(0);\n\n const showMonthYearPickers = useMemo(() => {\n const hasMultipleMonths = differenceInCalendarMonths(maxDate, minDate) > 0;\n const hasMultipleYears = getYearsBetween(minDate, maxDate).length > 1;\n\n return !!(showMonthYearPickersProp && (hasMultipleMonths || hasMultipleYears));\n }, [minDate, maxDate, showMonthYearPickersProp]);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (currentDate) {\n const start = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n\n if (shouldRenderTwoMonths) {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 2, 0);\n onShownDatesChange({\n start,\n end,\n });\n } else {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n onShownDatesChange({\n start,\n end,\n });\n }\n }\n }, [currentDate, onShownDatesChange, shouldRenderTwoMonths]);\n\n useEffect(() => {\n const bounds = {\n start: minDate,\n end: maxDate,\n };\n if (type === CalendarType.Single) {\n if (selectedDate) {\n const isDisabledDate = disabledDates.some((disabledDate) =>\n isSameDay(selectedDate, disabledDate),\n );\n const isDateInBounds = isWithinInterval(selectedDate, bounds);\n\n if (!isDisabledDate && isDateInBounds) {\n setInternalSelectedDate(selectedDate);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDate, because it is disabled or out of bounds.',\n '\\nselectedDate:',\n selectedDate,\n ...(isDisabledDate ? ['\\nselectedDate is disabled'] : []),\n ...(isDateInBounds\n ? []\n : ['\\nselectedDate is outside of bounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n } else {\n setInternalSelectedDate(undefined);\n }\n } else if (type === CalendarType.Multiple) {\n if (selectedDates) {\n const disabledSelectedDates: Date[] = [];\n const datesOutsideOfBounds: Date[] = [];\n\n const filteredDates = selectedDates.filter((date) => {\n if (disabledDates.some((disabledDate) => isSameDay(date, disabledDate))) {\n disabledSelectedDates.push(date);\n return false;\n }\n\n if (!isWithinInterval(date, bounds)) {\n datesOutsideOfBounds.push(date);\n return false;\n }\n\n return true;\n });\n\n if (disabledSelectedDates.length > 0 || datesOutsideOfBounds.length > 0) {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set all selectedDates, because some are disabled or out of bounds.',\n ...(disabledSelectedDates.length > 0\n ? ['\\nselectedDates that are disabled:', disabledSelectedDates]\n : []),\n ...(datesOutsideOfBounds.length > 0\n ? [\n '\\nselectedDates that are outside of bounds:',\n datesOutsideOfBounds,\n 'bounds:',\n { minDate, maxDate },\n ]\n : []),\n );\n }\n\n setInternalSelectedDate(filteredDates);\n } else {\n setInternalSelectedDate([]);\n }\n } else if (type === CalendarType.Interval) {\n if (selectedDateInterval) {\n const intervalIncludesDisabledDate =\n selectedDateInterval.end &&\n disabledDates.some((disabledDate) =>\n isWithinInterval(disabledDate, {\n start: selectedDateInterval.start,\n end: selectedDateInterval.end as Date,\n }),\n );\n\n const intervalIsInBounds =\n isWithinInterval(selectedDateInterval.start, bounds) &&\n (!selectedDateInterval.end ||\n isWithinInterval(selectedDateInterval.end, bounds));\n\n if (!intervalIncludesDisabledDate && intervalIsInBounds) {\n setInternalSelectedDate(selectedDateInterval);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDateInterval, because it includes disabled dates or dates that are out of bounds.',\n '\\nselectedDateInterval:',\n selectedDateInterval,\n ...(intervalIncludesDisabledDate\n ? ['\\ndisabled dates:', disabledDates]\n : []),\n ...(intervalIsInBounds ? [] : ['\\nbounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n }\n }\n }, [type, selectedDate, selectedDates, selectedDateInterval, disabledDates, minDate, maxDate]);\n\n useEffect(() => {\n if (calendarRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries && entries[0]) {\n const observedWidth = entries[0].contentRect.width;\n\n setWidth(observedWidth - 30);\n\n if (observedWidth < 430) {\n setShouldRenderTwoMonths(false);\n } else {\n setShouldRenderTwoMonths(true);\n }\n }\n });\n\n resizeObserver.observe(calendarRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n\n return () => {};\n }, []);\n\n useEffect(() => {\n setCurrentDate((prevDate) =>\n isDateInRange({ minDate, maxDate, currentDate: prevDate || new Date() }),\n );\n }, [maxDate, minDate]);\n\n const handleLeftArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('left');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(-1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleRightArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('right');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleSelect = useCallback(\n (date: Date) => {\n setInternalSelectedDate((prevDate) => {\n let onChangePayload: Date | Date[] | DateInterval | null = null;\n let newInternalSelectedDate: Date | Date[] | DateInterval | undefined;\n\n if (type === CalendarType.Single) {\n onChangePayload = date;\n newInternalSelectedDate = date;\n } else if (type === CalendarType.Multiple) {\n const prevSelectedDates = prevDate as Date[];\n // Selects or unselects date , depending on if it is already selected.\n if (prevSelectedDates.some((d) => isSameDay(d, date))) {\n newInternalSelectedDate = prevSelectedDates.filter(\n (d) => !isSameDay(d, date),\n );\n } else {\n newInternalSelectedDate = [...prevSelectedDates, date];\n }\n\n onChangePayload = newInternalSelectedDate;\n } else if (type === CalendarType.Interval) {\n const prevSelectedDateInterval = prevDate as DateInterval;\n\n const updateInterval = (start: Date, end?: Date): void => {\n const newInterval = { start, end };\n onChangePayload = newInterval;\n newInternalSelectedDate = newInterval;\n };\n\n // Sets first selection as interval start.\n if (!prevSelectedDateInterval) {\n updateInterval(date);\n } else if (prevSelectedDateInterval.start && !prevSelectedDateInterval.end) {\n // Sets second selection as interval start, if it is earlier than the previous interval start.\n // Else sets it as interval end.\n if (date < prevSelectedDateInterval.start) {\n updateInterval(date);\n } else {\n updateInterval(prevSelectedDateInterval.start, date);\n }\n } else {\n // Resets interval if a third date is selected.\n updateInterval(date);\n }\n }\n\n if (typeof onChange === 'function' && onChangePayload) {\n onChange(onChangePayload);\n }\n\n return newInternalSelectedDate;\n });\n },\n [type, onChange],\n );\n\n const handleAnimationFinished = () => {\n setDirection(undefined);\n };\n\n const ShouldShowLeftArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, minDate);\n }, [currentDate, minDate]);\n\n const ShouldShowRightArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, maxDate);\n }, [currentDate, maxDate]);\n\n return (\n <StyledCalendar ref={calendarRef} $isDisabled={isDisabled}>\n {ShouldShowLeftArrow ? (\n <StyledCalendarIconWrapper onClick={handleLeftArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-left']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n {currentDate && (\n <MonthWrapper\n shouldRenderTwo={shouldRenderTwoMonths}\n currentDate={currentDate}\n width={width}\n locale={locale}\n direction={direction}\n customThumbColors={customThumbColors}\n onSelect={handleSelect}\n selectedDate={internalSelectedDate}\n highlightedDates={highlightedDates}\n categories={categories}\n onAnimationFinished={handleAnimationFinished}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n showMonthYearPickers={showMonthYearPickers}\n />\n )}\n {ShouldShowRightArrow ? (\n <StyledCalendarIconWrapper onClick={handleRightArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-right']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n </StyledCalendar>\n );\n};\n\nCalendar.displayName = 'Calendar';\n\nexport default Calendar;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthWrapper.js","names":["_react","_interopRequireWildcard","require","_calendar","_Month","_interopRequireDefault","_MonthWrapper","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MonthWrapper","locale","currentDate","highlightedDates","selectedDate","onSelect","categories","direction","onAnimationFinished","shouldRenderTwo","width","customThumbColors","isDisabled","minDate","maxDate","shouldShowHighlightsInMonthOverlay","type","disabledDates","setCurrentDate","showMonthYearPickers","content","setContent","useState","hoveringDay","setHoveringDay","monthHeight","useMemo","useEffect","items","date","getNewDate","month","year","getMonthAndYear","push","createElement","height","key","displayIndex","prevState","map","element","index","props","animate","x","StyledMonthWrapper","$height","$width","StyledMotionWrapper","$isDisabled","transition","duration","onAnimationComplete","displayName","_default","exports"],"sources":["../../../../../src/components/calendar/month-wrapper/MonthWrapper.tsx"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport type { MotionProps } from 'framer-motion';\nimport React, { FC, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport {\n CalendarType,\n Categories, CustomThumbColors,\n DateInterval,\n HighlightedDates,\n} from '../../../types/calendar';\nimport { getMonthAndYear, getNewDate } from '../../../utils/calendar';\nimport Month from './month/Month';\nimport { StyledMonthWrapper, StyledMotionWrapper } from './MonthWrapper.styles';\n\nexport type MonthWrapperProps = {\n locale: Locale;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n currentDate: Date;\n direction?: 'left' | 'right';\n onAnimationFinished: () => void;\n shouldRenderTwo: boolean;\n width: number;\n isDisabled?: boolean;\n maxDate: Date;\n minDate: Date;\n type: CalendarType;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n shouldShowHighlightsInMonthOverlay: boolean;\n showMonthYearPickers: boolean;\n customThumbColors?: CustomThumbColors;\n};\n\nconst MonthWrapper: FC<MonthWrapperProps> = ({\n locale,\n currentDate,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n direction,\n onAnimationFinished,\n shouldRenderTwo,\n width,customThumbColors,\n isDisabled,\n minDate,\n maxDate,\n shouldShowHighlightsInMonthOverlay,\n type,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n}) => {\n const [content, setContent] = useState<ReactElement[]>();\n\n const [hoveringDay, setHoveringDay] = useState<Date | null>(null);\n\n const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);\n\n useEffect(() => {\n setContent(() => {\n // Initial render of months\n const items: ReactElement[] = [];\n\n for (let i = -1; i < 3; i++) {\n const date = getNewDate(i, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n items.push(\n <Month\n height={monthHeight}\n key={`${month}-${year}`}\n month={month}\n year={year}\n locale={locale}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n customThumbColors={customThumbColors}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n displayIndex={i}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n }\n\n return items;\n });\n }, [monthHeight]);\n\n useEffect(() => {\n // Doesn't update props until animation is completed\n if (direction) return;\n\n setContent((prevState) =>\n (prevState ?? []).map((element, index) => {\n const date = getNewDate(index - 1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n return {\n ...element,\n props: {\n ...element.props,\n categories,\n disabledDates,\n displayIndex: index - 1,\n highlightedDates,\n hoveringDay,\n locale,\n onSelect,\n shouldShowHighlightsInMonthOverlay,\n maxDate,\n minDate,\n month,\n customThumbColors,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n year,\n } as ReactElement,\n };\n }),\n );\n }, [\n customThumbColors,\n categories,\n currentDate,\n direction,\n disabledDates,\n highlightedDates,\n hoveringDay,\n locale,\n onAnimationFinished,\n onSelect,\n maxDate,\n minDate,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n shouldShowHighlightsInMonthOverlay,\n ]);\n\n const animate: MotionProps['animate'] = useMemo(() => {\n if (shouldRenderTwo) {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-100%' };\n default:\n return { x: '-50%' };\n }\n } else {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-200%' };\n default:\n return { x: '-100%' };\n }\n }\n }, [direction, shouldRenderTwo]);\n\n return (\n <StyledMonthWrapper $height={monthHeight} $width={width}>\n <StyledMotionWrapper\n animate={animate}\n $isDisabled={isDisabled}\n transition={{\n type: 'tween',\n duration: !direction ? 0 : 0.2,\n }}\n onAnimationComplete={onAnimationFinished}\n >\n {content}\n </StyledMotionWrapper>\n </StyledMonthWrapper>\n );\n};\n\nMonthWrapper.displayName = 'MonthWrapper';\n\nexport default MonthWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"MonthWrapper.js","names":["_react","_interopRequireWildcard","require","_calendar","_Month","_interopRequireDefault","_MonthWrapper","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MonthWrapper","locale","currentDate","highlightedDates","selectedDate","onSelect","categories","direction","onAnimationFinished","shouldRenderTwo","width","customThumbColors","isDisabled","minDate","maxDate","shouldShowHighlightsInMonthOverlay","type","disabledDates","setCurrentDate","showMonthYearPickers","content","setContent","useState","hoveringDay","setHoveringDay","monthHeight","useMemo","useEffect","items","date","getNewDate","month","year","getMonthAndYear","push","createElement","height","key","displayIndex","prevState","map","element","index","props","animate","x","StyledMonthWrapper","$height","$width","StyledMotionWrapper","$isDisabled","transition","duration","onAnimationComplete","displayName","_default","exports"],"sources":["../../../../../src/components/calendar/month-wrapper/MonthWrapper.tsx"],"sourcesContent":["import type { MotionProps } from 'framer-motion';\nimport React, { FC, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport {\n CalendarType,\n Categories, CustomThumbColors,\n DateInterval,\n HighlightedDates,\n} from '../../../types/calendar';\nimport { getMonthAndYear, getNewDate } from '../../../utils/calendar';\nimport Month from './month/Month';\nimport { StyledMonthWrapper, StyledMotionWrapper } from './MonthWrapper.styles';\nimport {Language} from \"chayns-api\";\n\nexport type MonthWrapperProps = {\n locale: Language;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n currentDate: Date;\n direction?: 'left' | 'right';\n onAnimationFinished: () => void;\n shouldRenderTwo: boolean;\n width: number;\n isDisabled?: boolean;\n maxDate: Date;\n minDate: Date;\n type: CalendarType;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n shouldShowHighlightsInMonthOverlay: boolean;\n showMonthYearPickers: boolean;\n customThumbColors?: CustomThumbColors;\n};\n\nconst MonthWrapper: FC<MonthWrapperProps> = ({\n locale,\n currentDate,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n direction,\n onAnimationFinished,\n shouldRenderTwo,\n width,customThumbColors,\n isDisabled,\n minDate,\n maxDate,\n shouldShowHighlightsInMonthOverlay,\n type,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n}) => {\n const [content, setContent] = useState<ReactElement[]>();\n\n const [hoveringDay, setHoveringDay] = useState<Date | null>(null);\n\n const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);\n\n useEffect(() => {\n setContent(() => {\n // Initial render of months\n const items: ReactElement[] = [];\n\n for (let i = -1; i < 3; i++) {\n const date = getNewDate(i, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n items.push(\n <Month\n height={monthHeight}\n key={`${month}-${year}`}\n month={month}\n year={year}\n locale={locale}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n customThumbColors={customThumbColors}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n displayIndex={i}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n }\n\n return items;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [monthHeight]);\n\n useEffect(() => {\n // Doesn't update props until animation is completed\n if (direction) return;\n\n setContent((prevState) =>\n (prevState ?? []).map((element, index) => {\n const date = getNewDate(index - 1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n return {\n ...element,\n props: {\n ...element.props,\n categories,\n disabledDates,\n displayIndex: index - 1,\n highlightedDates,\n hoveringDay,\n locale,\n onSelect,\n shouldShowHighlightsInMonthOverlay,\n maxDate,\n minDate,\n month,\n customThumbColors,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n year,\n } as ReactElement,\n };\n }),\n );\n }, [\n customThumbColors,\n categories,\n currentDate,\n direction,\n disabledDates,\n highlightedDates,\n hoveringDay,\n locale,\n onAnimationFinished,\n onSelect,\n maxDate,\n minDate,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n shouldShowHighlightsInMonthOverlay,\n ]);\n\n const animate: MotionProps['animate'] = useMemo(() => {\n if (shouldRenderTwo) {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-100%' };\n default:\n return { x: '-50%' };\n }\n } else {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-200%' };\n default:\n return { x: '-100%' };\n }\n }\n }, [direction, shouldRenderTwo]);\n\n return (\n <StyledMonthWrapper $height={monthHeight} $width={width}>\n <StyledMotionWrapper\n animate={animate}\n $isDisabled={isDisabled}\n transition={{\n type: 'tween',\n duration: !direction ? 0 : 0.2,\n }}\n onAnimationComplete={onAnimationFinished}\n >\n {content}\n </StyledMotionWrapper>\n </StyledMonthWrapper>\n );\n};\n\nMonthWrapper.displayName = 'MonthWrapper';\n\nexport default MonthWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Month.js","names":["_react","_interopRequireDefault","require","_MonthYearPickers","_DayWrapper","_Month","_WeekdayWrapper","e","__esModule","default","Month","month","year","locale","highlightedDates","selectedDate","onSelect","categories","height","minDate","maxDate","customThumbColors","shouldShowHighlightsInMonthOverlay","type","hoveringDay","setHoveringDay","disabledDates","setCurrentDate","displayIndex","showMonthYearPickers","createElement","StyledMonth","$height","StyledMonthHead","key","displayName","_default","exports"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"Month.js","names":["_react","_interopRequireDefault","require","_MonthYearPickers","_DayWrapper","_Month","_WeekdayWrapper","e","__esModule","default","Month","month","year","locale","highlightedDates","selectedDate","onSelect","categories","height","minDate","maxDate","customThumbColors","shouldShowHighlightsInMonthOverlay","type","hoveringDay","setHoveringDay","disabledDates","setCurrentDate","displayIndex","showMonthYearPickers","createElement","StyledMonth","$height","StyledMonthHead","key","displayName","_default","exports"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport {\n CalendarType,\n Categories, CustomThumbColors,\n DateInterval,\n EMonth,\n HighlightedDates,\n} from '../../../../types/calendar';\nimport MonthYearPickers from '../../month-year-pickers/MonthYearPickers';\nimport DayWrapper from './day-wrapper/DayWrapper';\nimport { StyledMonth, StyledMonthHead } from './Month.styles';\nimport WeekdayWrapper from './weekday-wrapper/WeekdayWrapper';\nimport {Language} from \"chayns-api\";\n\nexport type MonthProps = {\n month: EMonth;\n year: number;\n locale: Language;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n height: number;\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n displayIndex?: number;\n shouldShowHighlightsInMonthOverlay: boolean;\n customThumbColors?: CustomThumbColors;\n showMonthYearPickers: boolean;\n};\n\nconst Month: FC<MonthProps> = ({\n month,\n year,\n locale,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n height,\n minDate,\n maxDate,customThumbColors,\n shouldShowHighlightsInMonthOverlay,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n setCurrentDate,\n displayIndex,\n showMonthYearPickers,\n}) => (\n <StyledMonth $height={height}>\n <StyledMonthHead>\n <MonthYearPickers\n month={month}\n year={year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n setCurrentDate={setCurrentDate}\n displayIndex={displayIndex}\n showMonthYearPickers={showMonthYearPickers}\n />\n </StyledMonthHead>\n <WeekdayWrapper locale={locale} />\n <DayWrapper\n key={`day-wrapper-${month}`}\n categories={categories}\n selectedDate={selectedDate}\n customThumbColors={customThumbColors}\n month={month}\n year={year}\n onSelect={onSelect}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n highlightedDates={highlightedDates}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n />\n </StyledMonth>\n);\n\nMonth.displayName = 'Month';\n\nexport default Month;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAQA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA8D,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAyB9D,MAAMG,KAAqB,GAAGA,CAAC;EAC3BC,KAAK;EACLC,IAAI;EACJC,MAAM;EACNC,gBAAgB;EAChBC,YAAY;EACZC,QAAQ;EACRC,UAAU;EACVC,MAAM;EACNC,OAAO;EACPC,OAAO;EAACC,iBAAiB;EACzBC,kCAAkC;EAClCC,IAAI;EACJC,WAAW;EACXC,cAAc;EACdC,aAAa;EACbC,cAAc;EACdC,YAAY;EACZC;AACJ,CAAC,kBACG7B,MAAA,CAAAS,OAAA,CAAAqB,aAAA,CAACzB,MAAA,CAAA0B,WAAW;EAACC,OAAO,EAAEd;AAAO,gBACzBlB,MAAA,CAAAS,OAAA,CAAAqB,aAAA,CAACzB,MAAA,CAAA4B,eAAe,qBACZjC,MAAA,CAAAS,OAAA,CAAAqB,aAAA,CAAC3B,iBAAA,CAAAM,OAAgB;EACbE,KAAK,EAAEA,KAAM;EACbC,IAAI,EAAEA,IAAK;EACXC,MAAM,EAAEA,MAAO;EACfM,OAAO,EAAEA,OAAQ;EACjBC,OAAO,EAAEA,OAAQ;EACjBO,cAAc,EAAEA,cAAe;EAC/BC,YAAY,EAAEA,YAAa;EAC3BC,oBAAoB,EAAEA;AAAqB,CAC9C,CACY,CAAC,eAClB7B,MAAA,CAAAS,OAAA,CAAAqB,aAAA,CAACxB,eAAA,CAAAG,OAAc;EAACI,MAAM,EAAEA;AAAO,CAAE,CAAC,eAClCb,MAAA,CAAAS,OAAA,CAAAqB,aAAA,CAAC1B,WAAA,CAAAK,OAAU;EACPyB,GAAG,EAAE,eAAevB,KAAK,EAAG;EAC5BM,UAAU,EAAEA,UAAW;EACvBF,YAAY,EAAEA,YAAa;EAC3BM,iBAAiB,EAAEA,iBAAkB;EACrCV,KAAK,EAAEA,KAAM;EACbC,IAAI,EAAEA,IAAK;EACXI,QAAQ,EAAEA,QAAS;EACnBM,kCAAkC,EAAEA,kCAAmC;EACvER,gBAAgB,EAAEA,gBAAiB;EACnCK,OAAO,EAAEA,OAAQ;EACjBC,OAAO,EAAEA,OAAQ;EACjBG,IAAI,EAAEA,IAAK;EACXC,WAAW,EAAEA,WAAY;EACzBC,cAAc,EAAEA,cAAe;EAC/BC,aAAa,EAAEA;AAAc,CAChC,CACQ,CAChB;AAEDhB,KAAK,CAACyB,WAAW,GAAG,OAAO;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA5B,OAAA,GAEbC,KAAK","ignoreList":[]}
|
|
@@ -4,12 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _dateFns = require("date-fns");
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
8
|
var _calendar = require("../../../../../types/calendar");
|
|
10
9
|
var _calendar2 = require("../../../../../utils/calendar");
|
|
11
10
|
var _Day = _interopRequireDefault(require("./day/Day"));
|
|
12
11
|
var _DayWrapper = require("./DayWrapper.styles");
|
|
12
|
+
var _date = require("../../../../../utils/date");
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
15
15
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -32,12 +32,10 @@ const DayWrapper = ({
|
|
|
32
32
|
const dayOfCurrentMonth = (0, _react.useMemo)(() => new Date(year, month - 1, 13), [month, year]);
|
|
33
33
|
const days = (0, _react.useMemo)(() => {
|
|
34
34
|
const dateArray = [];
|
|
35
|
-
const currentDate = (0,
|
|
36
|
-
const startDay = (0,
|
|
37
|
-
weekStartsOn: 1
|
|
38
|
-
});
|
|
35
|
+
const currentDate = (0, _date.startOfMonth)(dayOfCurrentMonth);
|
|
36
|
+
const startDay = (0, _date.startOfWeek)(currentDate);
|
|
39
37
|
for (let i = 0; i < 42; i++) {
|
|
40
|
-
const newDate = (0,
|
|
38
|
+
const newDate = (0, _date.addDays)(startDay, i);
|
|
41
39
|
dateArray.push(newDate);
|
|
42
40
|
}
|
|
43
41
|
return dateArray;
|
|
@@ -62,44 +60,44 @@ const DayWrapper = ({
|
|
|
62
60
|
const showHoverEffect = false;
|
|
63
61
|
let isDisabled =
|
|
64
62
|
// Disables dates, that are not between minDate and maxDate.
|
|
65
|
-
!(0,
|
|
63
|
+
!(0, _date.isWithinInterval)(day, {
|
|
66
64
|
start: minDate,
|
|
67
65
|
end: maxDate
|
|
68
66
|
}) ||
|
|
69
67
|
// Disables
|
|
70
|
-
disabledDates.some(disabledDate => (0,
|
|
68
|
+
disabledDates.some(disabledDate => (0, _date.isSameDay)(disabledDate, day));
|
|
71
69
|
if (type === _calendar.CalendarType.Single && selectedDate instanceof Date) {
|
|
72
|
-
isSelected = (0,
|
|
70
|
+
isSelected = (0, _date.isSameDay)(selectedDate, day);
|
|
73
71
|
} else if (type === _calendar.CalendarType.Multiple && Array.isArray(selectedDate)) {
|
|
74
|
-
isSelected = selectedDate.some(date => (0,
|
|
72
|
+
isSelected = selectedDate.some(date => (0, _date.isSameDay)(date, day));
|
|
75
73
|
} else if (type === _calendar.CalendarType.Interval && start) {
|
|
76
|
-
isIntervalStart = (0,
|
|
74
|
+
isIntervalStart = (0, _date.isSameDay)(start, day);
|
|
77
75
|
if (end) {
|
|
78
|
-
isIntervalEnd = (0,
|
|
79
|
-
isWithinIntervalSelection = (0,
|
|
76
|
+
isIntervalEnd = (0, _date.isSameDay)(end, day);
|
|
77
|
+
isWithinIntervalSelection = (0, _date.isWithinInterval)(day, {
|
|
80
78
|
start,
|
|
81
79
|
end
|
|
82
80
|
});
|
|
83
|
-
} else if (firstDisabledDateAfterStart && !isDisabled && (0,
|
|
81
|
+
} else if (firstDisabledDateAfterStart && !isDisabled && (0, _date.isAfter)(day, firstDisabledDateAfterStart)) {
|
|
84
82
|
// Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.
|
|
85
83
|
isDisabled = true;
|
|
86
84
|
}
|
|
87
85
|
}
|
|
88
86
|
if (type === _calendar.CalendarType.Interval && hoveringDay && !isIntervalStart && !isIntervalEnd && !isWithinIntervalSelection) {
|
|
89
87
|
if (!start) {
|
|
90
|
-
isIntervalStart = (0,
|
|
88
|
+
isIntervalStart = (0, _date.isSameDay)(day, hoveringDay);
|
|
91
89
|
} else if (start && !end) {
|
|
92
90
|
if (start > day) {
|
|
93
|
-
isIntervalStart = (0,
|
|
91
|
+
isIntervalStart = (0, _date.isSameDay)(day, hoveringDay);
|
|
94
92
|
} else {
|
|
95
|
-
isWithinIntervalSelection = (0,
|
|
93
|
+
isWithinIntervalSelection = (0, _date.isWithinInterval)(day, {
|
|
96
94
|
start,
|
|
97
95
|
end: hoveringDay
|
|
98
96
|
});
|
|
99
|
-
isIntervalEnd = (0,
|
|
97
|
+
isIntervalEnd = (0, _date.isSameDay)(hoveringDay, day);
|
|
100
98
|
}
|
|
101
|
-
} else if (start && end && (0,
|
|
102
|
-
isIntervalStart = !(0,
|
|
99
|
+
} else if (start && end && (0, _date.isSameDay)(hoveringDay, day)) {
|
|
100
|
+
isIntervalStart = !(0, _date.isWithinInterval)(day, {
|
|
103
101
|
start,
|
|
104
102
|
end
|
|
105
103
|
});
|
|
@@ -116,7 +114,7 @@ const DayWrapper = ({
|
|
|
116
114
|
isWithinIntervalSelection: isWithinIntervalSelection,
|
|
117
115
|
isDisabled: isDisabled,
|
|
118
116
|
shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
|
|
119
|
-
isSameMonth: (0,
|
|
117
|
+
isSameMonth: (0, _date.isSameMonth)(day, dayOfCurrentMonth),
|
|
120
118
|
onClick: handleDayClick,
|
|
121
119
|
highlightedDates: highlightedDates,
|
|
122
120
|
setHoveringDay: setHoveringDay
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DayWrapper.js","names":["_dateFns","require","_react","_interopRequireWildcard","_calendar","_calendar2","_Day","_interopRequireDefault","_DayWrapper","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DayWrapper","month","year","highlightedDates","onSelect","selectedDate","categories","minDate","maxDate","customThumbColors","type","hoveringDay","shouldShowHighlightsInMonthOverlay","setHoveringDay","disabledDates","dayOfCurrentMonth","useMemo","Date","days","dateArray","currentDate","startOfMonth","startDay","startOfWeek","weekStartsOn","newDate","addDays","push","handleDayClick","useCallback","date","shouldFireEvent","dayElements","items","start","end","firstDisabledDateAfterStart","findNextDate","forEach","day","isSelected","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","showHoverEffect","isDisabled","isWithinInterval","some","disabledDate","isSameDay","CalendarType","Single","Multiple","Array","isArray","Interval","isAfter","createElement","key","toDateString","isSameMonth","onClick","StyledDayWrapper","displayName","_default","exports"],"sources":["../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.tsx"],"sourcesContent":["import {\n addDays,\n isAfter,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport React, { FC, useCallback, useMemo, type ReactElement } from 'react';\nimport {\n CalendarType,\n type Categories, CustomThumbColors,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n customThumbColors?: CustomThumbColors;\n shouldShowHighlightsInMonthOverlay: boolean;\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,customThumbColors,\n type,\n hoveringDay,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n disabledDates,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate, { weekStartsOn: 1 });\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n const showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n customThumbColors={customThumbColors}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n />,\n );\n });\n\n return items;\n }, [selectedDate, disabledDates, days, minDate, maxDate, type, hoveringDay, categories, customThumbColors, shouldShowHighlightsInMonthOverlay, dayOfCurrentMonth, handleDayClick, highlightedDates, setHoveringDay]);\n\n return <StyledDayWrapper>{dayElements}</StyledDayWrapper>;\n};\n\nDayWrapper.displayName = 'DayWrapper';\n\nexport default DayWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DayWrapper.js","names":["_react","_interopRequireWildcard","require","_calendar","_calendar2","_Day","_interopRequireDefault","_DayWrapper","_date","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DayWrapper","month","year","highlightedDates","onSelect","selectedDate","categories","minDate","maxDate","customThumbColors","type","hoveringDay","shouldShowHighlightsInMonthOverlay","setHoveringDay","disabledDates","dayOfCurrentMonth","useMemo","Date","days","dateArray","currentDate","startOfMonth","startDay","startOfWeek","newDate","addDays","push","handleDayClick","useCallback","date","shouldFireEvent","dayElements","items","start","end","firstDisabledDateAfterStart","findNextDate","forEach","day","isSelected","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","showHoverEffect","isDisabled","isWithinInterval","some","disabledDate","isSameDay","CalendarType","Single","Multiple","Array","isArray","Interval","isAfter","createElement","key","toDateString","isSameMonth","onClick","StyledDayWrapper","displayName","_default","exports"],"sources":["../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.tsx"],"sourcesContent":["import React, { FC, useCallback, useMemo, type ReactElement } from 'react';\nimport {\n CalendarType,\n type Categories, CustomThumbColors,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\nimport {\n addDays,\n isAfter,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek\n} from \"../../../../../utils/date\";\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n customThumbColors?: CustomThumbColors;\n shouldShowHighlightsInMonthOverlay: boolean;\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,customThumbColors,\n type,\n hoveringDay,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n disabledDates,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate);\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n const showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n customThumbColors={customThumbColors}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n />,\n );\n });\n\n return items;\n }, [selectedDate, disabledDates, days, minDate, maxDate, type, hoveringDay, categories, customThumbColors, shouldShowHighlightsInMonthOverlay, dayOfCurrentMonth, handleDayClick, highlightedDates, setHoveringDay]);\n\n return <StyledDayWrapper>{dayElements}</StyledDayWrapper>;\n};\n\nDayWrapper.displayName = 'DayWrapper';\n\nexport default DayWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _dateFns = require("date-fns");
|
|
8
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
9
8
|
var _Category = _interopRequireDefault(require("./category/Category"));
|
|
10
9
|
var _Day = require("./Day.styles");
|
|
10
|
+
var _date = require("../../../../../../utils/date");
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -32,11 +32,11 @@ const Day = ({
|
|
|
32
32
|
if (!highlightedDates || !shouldShowHighlightsInMonthOverlay && !isSameMonth) {
|
|
33
33
|
return undefined;
|
|
34
34
|
}
|
|
35
|
-
return (_highlightedDates$fin = highlightedDates.find(highlightedDate => highlightedDate.dates.some(highlighted => (0,
|
|
35
|
+
return (_highlightedDates$fin = highlightedDates.find(highlightedDate => highlightedDate.dates.some(highlighted => (0, _date.isSameDay)(highlighted, date)))) === null || _highlightedDates$fin === void 0 ? void 0 : _highlightedDates$fin.style;
|
|
36
36
|
}, [date, highlightedDates, isSameMonth, shouldShowHighlightsInMonthOverlay]);
|
|
37
37
|
const categoryElements = (0, _react.useMemo)(() => {
|
|
38
38
|
if (!categories || !shouldShowHighlightsInMonthOverlay && !isSameMonth) return [];
|
|
39
|
-
return categories.flatMap(category => category.dates.filter(day => (0,
|
|
39
|
+
return categories.flatMap(category => category.dates.filter(day => (0, _date.isSameDay)(day, date)).map(day => /*#__PURE__*/_react.default.createElement(_Category.default, {
|
|
40
40
|
key: day.getTime() * Math.random(),
|
|
41
41
|
color: category.color
|
|
42
42
|
})));
|