@chayns-components/date 5.0.0-beta.819 → 5.0.0-beta.821
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 +4 -2
- package/lib/cjs/components/calendar/Calendar.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js +20 -77
- package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
- package/lib/esm/components/calendar/Calendar.js +4 -2
- package/lib/esm/components/calendar/Calendar.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js +20 -77
- package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
- package/package.json +6 -4
|
@@ -156,6 +156,7 @@ const Calendar = ({
|
|
|
156
156
|
}));
|
|
157
157
|
}, [maxDate, minDate]);
|
|
158
158
|
const handleLeftArrowClick = (0, _react.useCallback)(() => {
|
|
159
|
+
if (direction) return;
|
|
159
160
|
setDirection('left');
|
|
160
161
|
setCurrentDate(prevDate => {
|
|
161
162
|
if (!prevDate) {
|
|
@@ -168,8 +169,9 @@ const Calendar = ({
|
|
|
168
169
|
currentDate: newDate
|
|
169
170
|
});
|
|
170
171
|
});
|
|
171
|
-
}, [maxDate, minDate]);
|
|
172
|
+
}, [maxDate, minDate, direction]);
|
|
172
173
|
const handleRightArrowClick = (0, _react.useCallback)(() => {
|
|
174
|
+
if (direction) return;
|
|
173
175
|
setDirection('right');
|
|
174
176
|
setCurrentDate(prevDate => {
|
|
175
177
|
if (!prevDate) {
|
|
@@ -182,7 +184,7 @@ const Calendar = ({
|
|
|
182
184
|
currentDate: newDate
|
|
183
185
|
});
|
|
184
186
|
});
|
|
185
|
-
}, [maxDate, minDate]);
|
|
187
|
+
}, [maxDate, minDate, direction]);
|
|
186
188
|
const handleSelect = (0, _react.useCallback)(date => {
|
|
187
189
|
setInternalSelectedDate(prevDate => {
|
|
188
190
|
let onChangePayload = null;
|
|
@@ -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","selectedDate","selectedDates","selectedDateInterval","categories","isDisabled","type","CalendarType","Single","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","isDateInRange","handleLeftArrowClick","useCallback","prevDate","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 type { Categories, 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 * 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 * 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,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\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 const date = new Date();\n\n setCurrentDate(isDateInRange({ minDate, maxDate, currentDate: date }));\n }, [maxDate, minDate]);\n\n const handleLeftArrowClick = useCallback(() => {\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]);\n\n const handleRightArrowClick = useCallback(() => {\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]);\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 = 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 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 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","_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","selectedDate","selectedDates","selectedDateInterval","categories","isDisabled","type","CalendarType","Single","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","isDateInRange","handleLeftArrowClick","useCallback","prevDate","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 type { Categories, 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 * 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 * 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,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\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 const date = new Date();\n\n setCurrentDate(isDateInRange({ minDate, maxDate, currentDate: date }));\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 = 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 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 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":[]}
|
|
@@ -34,49 +34,16 @@ const MonthWrapper = ({
|
|
|
34
34
|
const [hoveringDay, setHoveringDay] = (0, _react.useState)(null);
|
|
35
35
|
const monthHeight = (0, _react.useMemo)(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);
|
|
36
36
|
(0, _react.useEffect)(() => {
|
|
37
|
-
setContent(
|
|
38
|
-
}, [monthHeight]);
|
|
39
|
-
(0, _react.useEffect)(() => {
|
|
40
|
-
setContent(prevState => {
|
|
37
|
+
setContent(() => {
|
|
41
38
|
// Initial render of months
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const date = (0, _calendar.getNewDate)(i, currentDate);
|
|
46
|
-
const {
|
|
47
|
-
month,
|
|
48
|
-
year
|
|
49
|
-
} = (0, _calendar.getMonthAndYear)(date);
|
|
50
|
-
items.push( /*#__PURE__*/_react.default.createElement(_Month.default, {
|
|
51
|
-
height: monthHeight,
|
|
52
|
-
key: `${month}-${year}`,
|
|
53
|
-
month: month,
|
|
54
|
-
year: year,
|
|
55
|
-
locale: locale,
|
|
56
|
-
onSelect: onSelect,
|
|
57
|
-
highlightedDates: highlightedDates,
|
|
58
|
-
categories: categories,
|
|
59
|
-
selectedDate: selectedDate,
|
|
60
|
-
minDate: minDate,
|
|
61
|
-
maxDate: maxDate,
|
|
62
|
-
type: type,
|
|
63
|
-
hoveringDay: hoveringDay,
|
|
64
|
-
setHoveringDay: setHoveringDay,
|
|
65
|
-
disabledDates: disabledDates,
|
|
66
|
-
setCurrentDate: setCurrentDate,
|
|
67
|
-
displayIndex: i,
|
|
68
|
-
showMonthYearPickers: showMonthYearPickers
|
|
69
|
-
}));
|
|
70
|
-
}
|
|
71
|
-
return items;
|
|
72
|
-
}
|
|
73
|
-
if (direction === 'left') {
|
|
74
|
-
const date = (0, _calendar.getNewDate)(-1, currentDate);
|
|
39
|
+
const items = [];
|
|
40
|
+
for (let i = -1; i < 3; i++) {
|
|
41
|
+
const date = (0, _calendar.getNewDate)(i, currentDate);
|
|
75
42
|
const {
|
|
76
43
|
month,
|
|
77
44
|
year
|
|
78
45
|
} = (0, _calendar.getMonthAndYear)(date);
|
|
79
|
-
|
|
46
|
+
items.push( /*#__PURE__*/_react.default.createElement(_Month.default, {
|
|
80
47
|
height: monthHeight,
|
|
81
48
|
key: `${month}-${year}`,
|
|
82
49
|
month: month,
|
|
@@ -93,41 +60,15 @@ const MonthWrapper = ({
|
|
|
93
60
|
setHoveringDay: setHoveringDay,
|
|
94
61
|
disabledDates: disabledDates,
|
|
95
62
|
setCurrentDate: setCurrentDate,
|
|
63
|
+
displayIndex: i,
|
|
96
64
|
showMonthYearPickers: showMonthYearPickers
|
|
97
65
|
}));
|
|
98
|
-
prevState.pop();
|
|
99
66
|
}
|
|
100
|
-
|
|
101
|
-
const date = (0, _calendar.getNewDate)(2, currentDate);
|
|
102
|
-
const {
|
|
103
|
-
month,
|
|
104
|
-
year
|
|
105
|
-
} = (0, _calendar.getMonthAndYear)(date);
|
|
106
|
-
prevState.push( /*#__PURE__*/_react.default.createElement(_Month.default, {
|
|
107
|
-
height: monthHeight,
|
|
108
|
-
key: `${month}-${year}`,
|
|
109
|
-
month: month,
|
|
110
|
-
year: year,
|
|
111
|
-
locale: locale,
|
|
112
|
-
onSelect: onSelect,
|
|
113
|
-
highlightedDates: highlightedDates,
|
|
114
|
-
categories: categories,
|
|
115
|
-
selectedDate: selectedDate,
|
|
116
|
-
minDate: minDate,
|
|
117
|
-
maxDate: maxDate,
|
|
118
|
-
type: type,
|
|
119
|
-
hoveringDay: hoveringDay,
|
|
120
|
-
setHoveringDay: setHoveringDay,
|
|
121
|
-
disabledDates: disabledDates,
|
|
122
|
-
setCurrentDate: setCurrentDate,
|
|
123
|
-
showMonthYearPickers: showMonthYearPickers
|
|
124
|
-
}));
|
|
125
|
-
prevState.shift();
|
|
126
|
-
}
|
|
127
|
-
return prevState;
|
|
67
|
+
return items;
|
|
128
68
|
});
|
|
129
|
-
}, [
|
|
69
|
+
}, [monthHeight]);
|
|
130
70
|
(0, _react.useEffect)(() => {
|
|
71
|
+
// Doesn't update props until animation is completed
|
|
131
72
|
if (direction) return;
|
|
132
73
|
setContent(prevState => (prevState ?? []).map((element, index) => {
|
|
133
74
|
const date = (0, _calendar.getNewDate)(index - 1, currentDate);
|
|
@@ -140,23 +81,25 @@ const MonthWrapper = ({
|
|
|
140
81
|
props: {
|
|
141
82
|
...element.props,
|
|
142
83
|
categories,
|
|
84
|
+
disabledDates,
|
|
85
|
+
displayIndex: index - 1,
|
|
143
86
|
highlightedDates,
|
|
87
|
+
hoveringDay,
|
|
144
88
|
locale,
|
|
145
89
|
onSelect,
|
|
146
|
-
selectedDate,
|
|
147
|
-
minDate,
|
|
148
90
|
maxDate,
|
|
149
|
-
|
|
150
|
-
hoveringDay,
|
|
151
|
-
disabledDates,
|
|
91
|
+
minDate,
|
|
152
92
|
month,
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
93
|
+
selectedDate,
|
|
94
|
+
setCurrentDate,
|
|
95
|
+
setHoveringDay,
|
|
96
|
+
showMonthYearPickers,
|
|
97
|
+
type,
|
|
98
|
+
year
|
|
156
99
|
}
|
|
157
100
|
};
|
|
158
101
|
}));
|
|
159
|
-
}, [categories, disabledDates, highlightedDates, hoveringDay, locale, maxDate, minDate,
|
|
102
|
+
}, [categories, currentDate, direction, disabledDates, highlightedDates, hoveringDay, locale, onAnimationFinished, onSelect, maxDate, minDate, selectedDate, setCurrentDate, setHoveringDay, showMonthYearPickers, type]);
|
|
160
103
|
const animate = (0, _react.useMemo)(() => {
|
|
161
104
|
if (shouldRenderTwo) {
|
|
162
105
|
switch (true) {
|
|
@@ -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","isDisabled","minDate","maxDate","type","disabledDates","setCurrentDate","showMonthYearPickers","content","setContent","useState","hoveringDay","setHoveringDay","monthHeight","useMemo","useEffect","undefined","prevState","items","date","getNewDate","month","year","getMonthAndYear","push","createElement","height","key","displayIndex","unshift","pop","shift","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 type {\n CalendarType,\n Categories,\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 showMonthYearPickers: boolean;\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,\n isDisabled,\n minDate,\n maxDate,\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(undefined);\n }, [monthHeight]);\n\n useEffect(() => {\n setContent((prevState) => {\n // Initial render of months\n if (!prevState) {\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 categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\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\n if (direction === 'left') {\n const date = getNewDate(-1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n prevState.unshift(\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 categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n prevState.pop();\n }\n\n if (direction === 'right') {\n const date = getNewDate(2, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n prevState.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 categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n prevState.shift();\n }\n\n return prevState;\n });\n }, [\n categories,\n currentDate,\n direction,\n highlightedDates,\n locale,\n monthHeight,\n onSelect,\n selectedDate,\n minDate,\n maxDate,\n type,\n hoveringDay,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n ]);\n\n useEffect(() => {\n if (direction) return;\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 highlightedDates,\n locale,\n onSelect,\n selectedDate,\n minDate,\n maxDate,\n type,\n hoveringDay,\n disabledDates,\n month,\n year,\n displayIndex: index - 1,\n showMonthYearPickers,\n } as ReactElement,\n };\n }),\n );\n }, [\n categories,\n disabledDates,\n highlightedDates,\n hoveringDay,\n locale,\n maxDate,\n minDate,\n onSelect,\n selectedDate,\n type,\n currentDate,\n direction,\n showMonthYearPickers,\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","isDisabled","minDate","maxDate","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 type {\n CalendarType,\n Categories,\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 showMonthYearPickers: boolean;\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,\n isDisabled,\n minDate,\n maxDate,\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 categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\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 maxDate,\n minDate,\n month,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n year,\n } as ReactElement,\n };\n }),\n );\n }, [\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 ]);\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":[]}
|
|
@@ -148,6 +148,7 @@ const Calendar = _ref => {
|
|
|
148
148
|
}));
|
|
149
149
|
}, [maxDate, minDate]);
|
|
150
150
|
const handleLeftArrowClick = useCallback(() => {
|
|
151
|
+
if (direction) return;
|
|
151
152
|
setDirection('left');
|
|
152
153
|
setCurrentDate(prevDate => {
|
|
153
154
|
if (!prevDate) {
|
|
@@ -160,8 +161,9 @@ const Calendar = _ref => {
|
|
|
160
161
|
currentDate: newDate
|
|
161
162
|
});
|
|
162
163
|
});
|
|
163
|
-
}, [maxDate, minDate]);
|
|
164
|
+
}, [maxDate, minDate, direction]);
|
|
164
165
|
const handleRightArrowClick = useCallback(() => {
|
|
166
|
+
if (direction) return;
|
|
165
167
|
setDirection('right');
|
|
166
168
|
setCurrentDate(prevDate => {
|
|
167
169
|
if (!prevDate) {
|
|
@@ -174,7 +176,7 @@ const Calendar = _ref => {
|
|
|
174
176
|
currentDate: newDate
|
|
175
177
|
});
|
|
176
178
|
});
|
|
177
|
-
}, [maxDate, minDate]);
|
|
179
|
+
}, [maxDate, minDate, direction]);
|
|
178
180
|
const handleSelect = useCallback(date => {
|
|
179
181
|
setInternalSelectedDate(prevDate => {
|
|
180
182
|
let onChangePayload = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","names":["ComboBox","Icon","addYears","differenceInCalendarMonths","isSameDay","isSameMonth","isWithinInterval","subYears","de","React","useCallback","useEffect","useMemo","useRef","useState","CalendarType","getNewDate","getYearsBetween","isDateInRange","StyledCalendar","StyledCalendarIconWrapper","StyledCalendarIconWrapperPseudo","StyledPseudoMonthYearPicker","MonthWrapper","DEFAULT_MAX_DATE","Date","DEFAULT_MIN_DATE","Calendar","_ref","locale","maxDate","minDate","highlightedDates","onChange","selectedDate","selectedDates","selectedDateInterval","categories","isDisabled","type","Single","disabledDates","showMonthYearPickers","showMonthYearPickersProp","onShownDatesChange","currentDate","setCurrentDate","shouldRenderTwoMonths","setShouldRenderTwoMonths","internalSelectedDate","setInternalSelectedDate","Multiple","undefined","direction","setDirection","width","setWidth","hasMultipleMonths","hasMultipleYears","length","calendarRef","start","getFullYear","getMonth","end","bounds","isDisabledDate","some","disabledDate","isDateInBounds","console","warn","disabledSelectedDates","datesOutsideOfBounds","filteredDates","filter","date","push","Interval","intervalIncludesDisabledDate","intervalIsInBounds","current","resizeObserver","ResizeObserver","entries","observedWidth","contentRect","observe","disconnect","handleLeftArrowClick","prevDate","newDate","handleRightArrowClick","handleSelect","onChangePayload","newInternalSelectedDate","prevSelectedDates","d","prevSelectedDateInterval","updateInterval","newInterval","handleAnimationFinished","ShouldShowLeftArrow","ShouldShowRightArrow","createElement","ref","$isDisabled","onClick","style","display","flexDirection","flexWrap","height","lists","list","placeholder","icons","shouldRenderTwo","onSelect","onAnimationFinished","displayName"],"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 type { Categories, 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 * 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 * 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,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\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 const date = new Date();\n\n setCurrentDate(isDateInRange({ minDate, maxDate, currentDate: date }));\n }, [maxDate, minDate]);\n\n const handleLeftArrowClick = useCallback(() => {\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]);\n\n const handleRightArrowClick = useCallback(() => {\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]);\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 = 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 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 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":["ComboBox","Icon","addYears","differenceInCalendarMonths","isSameDay","isSameMonth","isWithinInterval","subYears","de","React","useCallback","useEffect","useMemo","useRef","useState","CalendarType","getNewDate","getYearsBetween","isDateInRange","StyledCalendar","StyledCalendarIconWrapper","StyledCalendarIconWrapperPseudo","StyledPseudoMonthYearPicker","MonthWrapper","DEFAULT_MAX_DATE","Date","DEFAULT_MIN_DATE","Calendar","_ref","locale","maxDate","minDate","highlightedDates","onChange","selectedDate","selectedDates","selectedDateInterval","categories","isDisabled","type","Single","disabledDates","showMonthYearPickers","showMonthYearPickersProp","onShownDatesChange","currentDate","setCurrentDate","shouldRenderTwoMonths","setShouldRenderTwoMonths","internalSelectedDate","setInternalSelectedDate","Multiple","undefined","direction","setDirection","width","setWidth","hasMultipleMonths","hasMultipleYears","length","calendarRef","start","getFullYear","getMonth","end","bounds","isDisabledDate","some","disabledDate","isDateInBounds","console","warn","disabledSelectedDates","datesOutsideOfBounds","filteredDates","filter","date","push","Interval","intervalIncludesDisabledDate","intervalIsInBounds","current","resizeObserver","ResizeObserver","entries","observedWidth","contentRect","observe","disconnect","handleLeftArrowClick","prevDate","newDate","handleRightArrowClick","handleSelect","onChangePayload","newInternalSelectedDate","prevSelectedDates","d","prevSelectedDateInterval","updateInterval","newInterval","handleAnimationFinished","ShouldShowLeftArrow","ShouldShowRightArrow","createElement","ref","$isDisabled","onClick","style","display","flexDirection","flexWrap","height","lists","list","placeholder","icons","shouldRenderTwo","onSelect","onAnimationFinished","displayName"],"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 type { Categories, 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 * 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 * 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,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\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 const date = new Date();\n\n setCurrentDate(isDateInRange({ minDate, maxDate, currentDate: date }));\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 = 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 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 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":[]}
|
|
@@ -26,49 +26,16 @@ const MonthWrapper = _ref => {
|
|
|
26
26
|
const [hoveringDay, setHoveringDay] = useState(null);
|
|
27
27
|
const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);
|
|
28
28
|
useEffect(() => {
|
|
29
|
-
setContent(
|
|
30
|
-
}, [monthHeight]);
|
|
31
|
-
useEffect(() => {
|
|
32
|
-
setContent(prevState => {
|
|
29
|
+
setContent(() => {
|
|
33
30
|
// Initial render of months
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const date = getNewDate(i, currentDate);
|
|
38
|
-
const {
|
|
39
|
-
month,
|
|
40
|
-
year
|
|
41
|
-
} = getMonthAndYear(date);
|
|
42
|
-
items.push( /*#__PURE__*/React.createElement(Month, {
|
|
43
|
-
height: monthHeight,
|
|
44
|
-
key: `${month}-${year}`,
|
|
45
|
-
month: month,
|
|
46
|
-
year: year,
|
|
47
|
-
locale: locale,
|
|
48
|
-
onSelect: onSelect,
|
|
49
|
-
highlightedDates: highlightedDates,
|
|
50
|
-
categories: categories,
|
|
51
|
-
selectedDate: selectedDate,
|
|
52
|
-
minDate: minDate,
|
|
53
|
-
maxDate: maxDate,
|
|
54
|
-
type: type,
|
|
55
|
-
hoveringDay: hoveringDay,
|
|
56
|
-
setHoveringDay: setHoveringDay,
|
|
57
|
-
disabledDates: disabledDates,
|
|
58
|
-
setCurrentDate: setCurrentDate,
|
|
59
|
-
displayIndex: i,
|
|
60
|
-
showMonthYearPickers: showMonthYearPickers
|
|
61
|
-
}));
|
|
62
|
-
}
|
|
63
|
-
return items;
|
|
64
|
-
}
|
|
65
|
-
if (direction === 'left') {
|
|
66
|
-
const date = getNewDate(-1, currentDate);
|
|
31
|
+
const items = [];
|
|
32
|
+
for (let i = -1; i < 3; i++) {
|
|
33
|
+
const date = getNewDate(i, currentDate);
|
|
67
34
|
const {
|
|
68
35
|
month,
|
|
69
36
|
year
|
|
70
37
|
} = getMonthAndYear(date);
|
|
71
|
-
|
|
38
|
+
items.push( /*#__PURE__*/React.createElement(Month, {
|
|
72
39
|
height: monthHeight,
|
|
73
40
|
key: `${month}-${year}`,
|
|
74
41
|
month: month,
|
|
@@ -85,41 +52,15 @@ const MonthWrapper = _ref => {
|
|
|
85
52
|
setHoveringDay: setHoveringDay,
|
|
86
53
|
disabledDates: disabledDates,
|
|
87
54
|
setCurrentDate: setCurrentDate,
|
|
55
|
+
displayIndex: i,
|
|
88
56
|
showMonthYearPickers: showMonthYearPickers
|
|
89
57
|
}));
|
|
90
|
-
prevState.pop();
|
|
91
58
|
}
|
|
92
|
-
|
|
93
|
-
const date = getNewDate(2, currentDate);
|
|
94
|
-
const {
|
|
95
|
-
month,
|
|
96
|
-
year
|
|
97
|
-
} = getMonthAndYear(date);
|
|
98
|
-
prevState.push( /*#__PURE__*/React.createElement(Month, {
|
|
99
|
-
height: monthHeight,
|
|
100
|
-
key: `${month}-${year}`,
|
|
101
|
-
month: month,
|
|
102
|
-
year: year,
|
|
103
|
-
locale: locale,
|
|
104
|
-
onSelect: onSelect,
|
|
105
|
-
highlightedDates: highlightedDates,
|
|
106
|
-
categories: categories,
|
|
107
|
-
selectedDate: selectedDate,
|
|
108
|
-
minDate: minDate,
|
|
109
|
-
maxDate: maxDate,
|
|
110
|
-
type: type,
|
|
111
|
-
hoveringDay: hoveringDay,
|
|
112
|
-
setHoveringDay: setHoveringDay,
|
|
113
|
-
disabledDates: disabledDates,
|
|
114
|
-
setCurrentDate: setCurrentDate,
|
|
115
|
-
showMonthYearPickers: showMonthYearPickers
|
|
116
|
-
}));
|
|
117
|
-
prevState.shift();
|
|
118
|
-
}
|
|
119
|
-
return prevState;
|
|
59
|
+
return items;
|
|
120
60
|
});
|
|
121
|
-
}, [
|
|
61
|
+
}, [monthHeight]);
|
|
122
62
|
useEffect(() => {
|
|
63
|
+
// Doesn't update props until animation is completed
|
|
123
64
|
if (direction) return;
|
|
124
65
|
setContent(prevState => (prevState ?? []).map((element, index) => {
|
|
125
66
|
const date = getNewDate(index - 1, currentDate);
|
|
@@ -132,23 +73,25 @@ const MonthWrapper = _ref => {
|
|
|
132
73
|
props: {
|
|
133
74
|
...element.props,
|
|
134
75
|
categories,
|
|
76
|
+
disabledDates,
|
|
77
|
+
displayIndex: index - 1,
|
|
135
78
|
highlightedDates,
|
|
79
|
+
hoveringDay,
|
|
136
80
|
locale,
|
|
137
81
|
onSelect,
|
|
138
|
-
selectedDate,
|
|
139
|
-
minDate,
|
|
140
82
|
maxDate,
|
|
141
|
-
|
|
142
|
-
hoveringDay,
|
|
143
|
-
disabledDates,
|
|
83
|
+
minDate,
|
|
144
84
|
month,
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
85
|
+
selectedDate,
|
|
86
|
+
setCurrentDate,
|
|
87
|
+
setHoveringDay,
|
|
88
|
+
showMonthYearPickers,
|
|
89
|
+
type,
|
|
90
|
+
year
|
|
148
91
|
}
|
|
149
92
|
};
|
|
150
93
|
}));
|
|
151
|
-
}, [categories, disabledDates, highlightedDates, hoveringDay, locale, maxDate, minDate,
|
|
94
|
+
}, [categories, currentDate, direction, disabledDates, highlightedDates, hoveringDay, locale, onAnimationFinished, onSelect, maxDate, minDate, selectedDate, setCurrentDate, setHoveringDay, showMonthYearPickers, type]);
|
|
152
95
|
const animate = useMemo(() => {
|
|
153
96
|
if (shouldRenderTwo) {
|
|
154
97
|
switch (true) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthWrapper.js","names":["React","useEffect","useMemo","useState","getMonthAndYear","getNewDate","Month","StyledMonthWrapper","StyledMotionWrapper","MonthWrapper","_ref","locale","currentDate","highlightedDates","selectedDate","onSelect","categories","direction","onAnimationFinished","shouldRenderTwo","width","isDisabled","minDate","maxDate","type","disabledDates","setCurrentDate","showMonthYearPickers","content","setContent","hoveringDay","setHoveringDay","monthHeight","undefined","prevState","items","i","date","month","year","push","createElement","height","key","displayIndex","unshift","pop","shift","map","element","index","props","animate","x","$height","$width","$isDisabled","transition","duration","onAnimationComplete","displayName"],"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 type {\n CalendarType,\n Categories,\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 showMonthYearPickers: boolean;\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,\n isDisabled,\n minDate,\n maxDate,\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(undefined);\n }, [monthHeight]);\n\n useEffect(() => {\n setContent((prevState) => {\n // Initial render of months\n if (!prevState) {\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 categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\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\n if (direction === 'left') {\n const date = getNewDate(-1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n prevState.unshift(\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 categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n prevState.pop();\n }\n\n if (direction === 'right') {\n const date = getNewDate(2, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n prevState.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 categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n prevState.shift();\n }\n\n return prevState;\n });\n }, [\n categories,\n currentDate,\n direction,\n highlightedDates,\n locale,\n monthHeight,\n onSelect,\n selectedDate,\n minDate,\n maxDate,\n type,\n hoveringDay,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n ]);\n\n useEffect(() => {\n if (direction) return;\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 highlightedDates,\n locale,\n onSelect,\n selectedDate,\n minDate,\n maxDate,\n type,\n hoveringDay,\n disabledDates,\n month,\n year,\n displayIndex: index - 1,\n showMonthYearPickers,\n } as ReactElement,\n };\n }),\n );\n }, [\n categories,\n disabledDates,\n highlightedDates,\n hoveringDay,\n locale,\n maxDate,\n minDate,\n onSelect,\n selectedDate,\n type,\n currentDate,\n direction,\n showMonthYearPickers,\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","useEffect","useMemo","useState","getMonthAndYear","getNewDate","Month","StyledMonthWrapper","StyledMotionWrapper","MonthWrapper","_ref","locale","currentDate","highlightedDates","selectedDate","onSelect","categories","direction","onAnimationFinished","shouldRenderTwo","width","isDisabled","minDate","maxDate","type","disabledDates","setCurrentDate","showMonthYearPickers","content","setContent","hoveringDay","setHoveringDay","monthHeight","items","i","date","month","year","push","createElement","height","key","displayIndex","prevState","map","element","index","props","animate","x","$height","$width","$isDisabled","transition","duration","onAnimationComplete","displayName"],"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 type {\n CalendarType,\n Categories,\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 showMonthYearPickers: boolean;\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,\n isDisabled,\n minDate,\n maxDate,\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 categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\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 maxDate,\n minDate,\n month,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n year,\n } as ReactElement,\n };\n }),\n );\n }, [\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 ]);\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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/date",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.821",
|
|
4
4
|
"description": "A set of beautiful React components for developing your own applications with chayns.",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"browserslist": [
|
|
@@ -43,7 +43,9 @@
|
|
|
43
43
|
"build:types": "tsc",
|
|
44
44
|
"build:cjs": "cross-env NODE_ENV=cjs babel src --out-dir lib/cjs --extensions=.ts,.tsx --source-maps --ignore=src/stories",
|
|
45
45
|
"build:esm": "cross-env NODE_ENV=esm babel src --out-dir lib/esm --extensions=.ts,.tsx --source-maps --ignore=src/stories",
|
|
46
|
-
"prepublishOnly": "npm run build"
|
|
46
|
+
"prepublishOnly": "npm run build",
|
|
47
|
+
"watch:js": "npm run build:esm -- --watch",
|
|
48
|
+
"link": "npm link && npm run watch:js"
|
|
47
49
|
},
|
|
48
50
|
"bugs": {
|
|
49
51
|
"url": "https://github.com/TobitSoftware/chayns-components/issues"
|
|
@@ -67,7 +69,7 @@
|
|
|
67
69
|
"typescript": "^5.6.2"
|
|
68
70
|
},
|
|
69
71
|
"dependencies": {
|
|
70
|
-
"@chayns-components/core": "^5.0.0-beta.
|
|
72
|
+
"@chayns-components/core": "^5.0.0-beta.821",
|
|
71
73
|
"date-fns": "^3.6.0",
|
|
72
74
|
"uuid": "^10.0.0"
|
|
73
75
|
},
|
|
@@ -81,5 +83,5 @@
|
|
|
81
83
|
"publishConfig": {
|
|
82
84
|
"access": "public"
|
|
83
85
|
},
|
|
84
|
-
"gitHead": "
|
|
86
|
+
"gitHead": "557a60e6b54cb4d886aa28e5358e9163cd9f33b7"
|
|
85
87
|
}
|