@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.
@@ -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(undefined);
38
- }, [monthHeight]);
39
- (0, _react.useEffect)(() => {
40
- setContent(prevState => {
37
+ setContent(() => {
41
38
  // Initial render of months
42
- if (!prevState) {
43
- const items = [];
44
- for (let i = -1; i < 3; i++) {
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
- prevState.unshift( /*#__PURE__*/_react.default.createElement(_Month.default, {
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
- if (direction === 'right') {
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
- }, [categories, currentDate, direction, highlightedDates, locale, monthHeight, onSelect, selectedDate, minDate, maxDate, type, hoveringDay, disabledDates, setCurrentDate, showMonthYearPickers]);
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
- type,
150
- hoveringDay,
151
- disabledDates,
91
+ minDate,
152
92
  month,
153
- year,
154
- displayIndex: index - 1,
155
- showMonthYearPickers
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, onSelect, selectedDate, type, currentDate, direction, showMonthYearPickers]);
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":"AAAA,SAASA,QAAQ,EAAEC,IAAI,QAAQ,yBAAyB;AACxD,SACIC,QAAQ,EACRC,0BAA0B,EAC1BC,SAAS,EACTC,WAAW,EACXC,gBAAgB,EAChBC,QAAQ,QAEL,UAAU;AACjB,SAASC,EAAE,QAAQ,iBAAiB;AACpC,OAAOC,KAAK,IAAQC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAEpF,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,UAAU,EAAEC,eAAe,EAAEC,aAAa,QAAQ,sBAAsB;AACjF,SACIC,cAAc,EACdC,yBAAyB,EACzBC,+BAA+B,EAC/BC,2BAA2B,QACxB,mBAAmB;AAC1B,OAAOC,YAAY,MAAM,8BAA8B;AAyFvD,MAAMC,gBAAgB,GAAGtB,QAAQ,CAAC,IAAIuB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAChD,MAAMC,gBAAgB,GAAGnB,QAAQ,CAAC,IAAIkB,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAEhD,MAAME,QAA2B,GAAGC,IAAA,IAe9B;EAAA,IAf+B;IACjCC,MAAM,GAAGrB,EAAE;IACXsB,OAAO,GAAGN,gBAAgB;IAC1BO,OAAO,GAAGL,gBAAgB;IAC1BM,gBAAgB;IAChBC,QAAQ;IACRC,YAAY;IACZC,aAAa;IACbC,oBAAoB;IACpBC,UAAU;IACVC,UAAU;IACVC,IAAI,GAAGxB,YAAY,CAACyB,MAAM;IAC1BC,aAAa,GAAG,EAAE;IAClBC,oBAAoB,EAAEC,wBAAwB;IAC9CC,kBAAkB,GAAGA,CAAA,KAAM,CAAC;EAChC,CAAC,GAAAhB,IAAA;EACG,MAAM,CAACiB,WAAW,EAAEC,cAAc,CAAC,GAAGhC,QAAQ,CAAO,CAAC;EACtD,MAAM,CAACiC,qBAAqB,EAAEC,wBAAwB,CAAC,GAAGlC,QAAQ,CAAC,IAAI,CAAC;EACxE,MAAM,CAACmC,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGpC,QAAQ,CAE9DyB,IAAI,KAAKxB,YAAY,CAACoC,QAAQ,GAAG,EAAE,GAAGC,SAAS,CAAC;EAClD,MAAM,CAACC,SAAS,EAAEC,YAAY,CAAC,GAAGxC,QAAQ,CAAmB,CAAC;EAC9D,MAAM,CAACyC,KAAK,EAAEC,QAAQ,CAAC,GAAG1C,QAAQ,CAAC,CAAC,CAAC;EAErC,MAAM4B,oBAAoB,GAAG9B,OAAO,CAAC,MAAM;IACvC,MAAM6C,iBAAiB,GAAGtD,0BAA0B,CAAC2B,OAAO,EAAEC,OAAO,CAAC,GAAG,CAAC;IAC1E,MAAM2B,gBAAgB,GAAGzC,eAAe,CAACc,OAAO,EAAED,OAAO,CAAC,CAAC6B,MAAM,GAAG,CAAC;IAErE,OAAO,CAAC,EAAEhB,wBAAwB,KAAKc,iBAAiB,IAAIC,gBAAgB,CAAC,CAAC;EAClF,CAAC,EAAE,CAAC3B,OAAO,EAAED,OAAO,EAAEa,wBAAwB,CAAC,CAAC;EAEhD,MAAMiB,WAAW,GAAG/C,MAAM,CAAiB,IAAI,CAAC;EAEhDF,SAAS,CAAC,MAAM;IACZ,IAAIkC,WAAW,EAAE;MACb,MAAMgB,KAAK,GAAG,IAAIpC,IAAI,CAACoB,WAAW,CAACiB,WAAW,CAAC,CAAC,EAAEjB,WAAW,CAACkB,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;MAE5E,IAAIhB,qBAAqB,EAAE;QACvB,MAAMiB,GAAG,GAAG,IAAIvC,IAAI,CAACoB,WAAW,CAACiB,WAAW,CAAC,CAAC,EAAEjB,WAAW,CAACkB,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9EnB,kBAAkB,CAAC;UACfiB,KAAK;UACLG;QACJ,CAAC,CAAC;MACN,CAAC,MAAM;QACH,MAAMA,GAAG,GAAG,IAAIvC,IAAI,CAACoB,WAAW,CAACiB,WAAW,CAAC,CAAC,EAAEjB,WAAW,CAACkB,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9EnB,kBAAkB,CAAC;UACfiB,KAAK;UACLG;QACJ,CAAC,CAAC;MACN;IACJ;EACJ,CAAC,EAAE,CAACnB,WAAW,EAAEE,qBAAqB,CAAC,CAAC;EAExCpC,SAAS,CAAC,MAAM;IACZ,MAAMsD,MAAM,GAAG;MACXJ,KAAK,EAAE9B,OAAO;MACdiC,GAAG,EAAElC;IACT,CAAC;IACD,IAAIS,IAAI,KAAKxB,YAAY,CAACyB,MAAM,EAAE;MAC9B,IAAIN,YAAY,EAAE;QACd,MAAMgC,cAAc,GAAGzB,aAAa,CAAC0B,IAAI,CAAEC,YAAY,IACnDhE,SAAS,CAAC8B,YAAY,EAAEkC,YAAY,CACxC,CAAC;QACD,MAAMC,cAAc,GAAG/D,gBAAgB,CAAC4B,YAAY,EAAE+B,MAAM,CAAC;QAE7D,IAAI,CAACC,cAAc,IAAIG,cAAc,EAAE;UACnCnB,uBAAuB,CAAChB,YAAY,CAAC;QACzC,CAAC,MAAM;UACHoC,OAAO,CAACC,IAAI,CACR,yGAAyG,EACzG,iBAAiB,EACjBrC,YAAY,EACZ,IAAIgC,cAAc,GAAG,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,EACzD,IAAIG,cAAc,GACZ,EAAE,GACF,CAAC,sCAAsC,EAAE;YAAEtC,OAAO;YAAED;UAAQ,CAAC,CAAC,CACxE,CAAC;UACDoB,uBAAuB,CAACE,SAAS,CAAC;QACtC;MACJ,CAAC,MAAM;QACHF,uBAAuB,CAACE,SAAS,CAAC;MACtC;IACJ,CAAC,MAAM,IAAIb,IAAI,KAAKxB,YAAY,CAACoC,QAAQ,EAAE;MACvC,IAAIhB,aAAa,EAAE;QACf,MAAMqC,qBAA6B,GAAG,EAAE;QACxC,MAAMC,oBAA4B,GAAG,EAAE;QAEvC,MAAMC,aAAa,GAAGvC,aAAa,CAACwC,MAAM,CAAEC,IAAI,IAAK;UACjD,IAAInC,aAAa,CAAC0B,IAAI,CAAEC,YAAY,IAAKhE,SAAS,CAACwE,IAAI,EAAER,YAAY,CAAC,CAAC,EAAE;YACrEI,qBAAqB,CAACK,IAAI,CAACD,IAAI,CAAC;YAChC,OAAO,KAAK;UAChB;UAEA,IAAI,CAACtE,gBAAgB,CAACsE,IAAI,EAAEX,MAAM,CAAC,EAAE;YACjCQ,oBAAoB,CAACI,IAAI,CAACD,IAAI,CAAC;YAC/B,OAAO,KAAK;UAChB;UAEA,OAAO,IAAI;QACf,CAAC,CAAC;QAEF,IAAIJ,qBAAqB,CAACb,MAAM,GAAG,CAAC,IAAIc,oBAAoB,CAACd,MAAM,GAAG,CAAC,EAAE;UACrEW,OAAO,CAACC,IAAI,CACR,iHAAiH,EACjH,IAAIC,qBAAqB,CAACb,MAAM,GAAG,CAAC,GAC9B,CAAC,oCAAoC,EAAEa,qBAAqB,CAAC,GAC7D,EAAE,CAAC,EACT,IAAIC,oBAAoB,CAACd,MAAM,GAAG,CAAC,GAC7B,CACI,6CAA6C,EAC7Cc,oBAAoB,EACpB,SAAS,EACT;YAAE1C,OAAO;YAAED;UAAQ,CAAC,CACvB,GACD,EAAE,CACZ,CAAC;QACL;QAEAoB,uBAAuB,CAACwB,aAAa,CAAC;MAC1C,CAAC,MAAM;QACHxB,uBAAuB,CAAC,EAAE,CAAC;MAC/B;IACJ,CAAC,MAAM,IAAIX,IAAI,KAAKxB,YAAY,CAAC+D,QAAQ,EAAE;MACvC,IAAI1C,oBAAoB,EAAE;QACtB,MAAM2C,4BAA4B,GAC9B3C,oBAAoB,CAAC4B,GAAG,IACxBvB,aAAa,CAAC0B,IAAI,CAAEC,YAAY,IAC5B9D,gBAAgB,CAAC8D,YAAY,EAAE;UAC3BP,KAAK,EAAEzB,oBAAoB,CAACyB,KAAK;UACjCG,GAAG,EAAE5B,oBAAoB,CAAC4B;QAC9B,CAAC,CACL,CAAC;QAEL,MAAMgB,kBAAkB,GACpB1E,gBAAgB,CAAC8B,oBAAoB,CAACyB,KAAK,EAAEI,MAAM,CAAC,KACnD,CAAC7B,oBAAoB,CAAC4B,GAAG,IACtB1D,gBAAgB,CAAC8B,oBAAoB,CAAC4B,GAAG,EAAEC,MAAM,CAAC,CAAC;QAE3D,IAAI,CAACc,4BAA4B,IAAIC,kBAAkB,EAAE;UACrD9B,uBAAuB,CAACd,oBAAoB,CAAC;QACjD,CAAC,MAAM;UACHkC,OAAO,CAACC,IAAI,CACR,4IAA4I,EAC5I,yBAAyB,EACzBnC,oBAAoB,EACpB,IAAI2C,4BAA4B,GAC1B,CAAC,mBAAmB,EAAEtC,aAAa,CAAC,GACpC,EAAE,CAAC,EACT,IAAIuC,kBAAkB,GAAG,EAAE,GAAG,CAAC,WAAW,EAAE;YAAEjD,OAAO;YAAED;UAAQ,CAAC,CAAC,CACrE,CAAC;UACDoB,uBAAuB,CAACE,SAAS,CAAC;QACtC;MACJ;IACJ;EACJ,CAAC,EAAE,CAACb,IAAI,EAAEL,YAAY,EAAEC,aAAa,EAAEC,oBAAoB,EAAEK,aAAa,EAAEV,OAAO,EAAED,OAAO,CAAC,CAAC;EAE9FnB,SAAS,CAAC,MAAM;IACZ,IAAIiD,WAAW,CAACqB,OAAO,EAAE;MACrB,MAAMC,cAAc,GAAG,IAAIC,cAAc,CAAEC,OAAO,IAAK;QACnD,IAAIA,OAAO,IAAIA,OAAO,CAAC,CAAC,CAAC,EAAE;UACvB,MAAMC,aAAa,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACE,WAAW,CAAC/B,KAAK;UAElDC,QAAQ,CAAC6B,aAAa,GAAG,EAAE,CAAC;UAE5B,IAAIA,aAAa,GAAG,GAAG,EAAE;YACrBrC,wBAAwB,CAAC,KAAK,CAAC;UACnC,CAAC,MAAM;YACHA,wBAAwB,CAAC,IAAI,CAAC;UAClC;QACJ;MACJ,CAAC,CAAC;MAEFkC,cAAc,CAACK,OAAO,CAAC3B,WAAW,CAACqB,OAAO,CAAC;MAE3C,OAAO,MAAM;QACTC,cAAc,CAACM,UAAU,CAAC,CAAC;MAC/B,CAAC;IACL;IAEA,OAAO,MAAM,CAAC,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;EAEN7E,SAAS,CAAC,MAAM;IACZ,MAAMiE,IAAI,GAAG,IAAInD,IAAI,CAAC,CAAC;IAEvBqB,cAAc,CAAC5B,aAAa,CAAC;MAAEa,OAAO;MAAED,OAAO;MAAEe,WAAW,EAAE+B;IAAK,CAAC,CAAC,CAAC;EAC1E,CAAC,EAAE,CAAC9C,OAAO,EAAEC,OAAO,CAAC,CAAC;EAEtB,MAAM0D,oBAAoB,GAAG/E,WAAW,CAAC,MAAM;IAC3C,IAAI2C,SAAS,EAAE;IAEfC,YAAY,CAAC,MAAM,CAAC;IAEpBR,cAAc,CAAE4C,QAAQ,IAAK;MACzB,IAAI,CAACA,QAAQ,EAAE;QACX,OAAOA,QAAQ;MACnB;MAEA,MAAMC,OAAO,GAAG3E,UAAU,CAAC,CAAC,CAAC,EAAE0E,QAAQ,CAAC;MAExC,OAAOxE,aAAa,CAAC;QAAEa,OAAO;QAAED,OAAO;QAAEe,WAAW,EAAE8C;MAAQ,CAAC,CAAC;IACpE,CAAC,CAAC;EACN,CAAC,EAAE,CAAC7D,OAAO,EAAEC,OAAO,EAAEsB,SAAS,CAAC,CAAC;EAEjC,MAAMuC,qBAAqB,GAAGlF,WAAW,CAAC,MAAM;IAC5C,IAAI2C,SAAS,EAAE;IAEfC,YAAY,CAAC,OAAO,CAAC;IAErBR,cAAc,CAAE4C,QAAQ,IAAK;MACzB,IAAI,CAACA,QAAQ,EAAE;QACX,OAAOA,QAAQ;MACnB;MAEA,MAAMC,OAAO,GAAG3E,UAAU,CAAC,CAAC,EAAE0E,QAAQ,CAAC;MAEvC,OAAOxE,aAAa,CAAC;QAAEa,OAAO;QAAED,OAAO;QAAEe,WAAW,EAAE8C;MAAQ,CAAC,CAAC;IACpE,CAAC,CAAC;EACN,CAAC,EAAE,CAAC7D,OAAO,EAAEC,OAAO,EAAEsB,SAAS,CAAC,CAAC;EAEjC,MAAMwC,YAAY,GAAGnF,WAAW,CAC3BkE,IAAU,IAAK;IACZ1B,uBAAuB,CAAEwC,QAAQ,IAAK;MAClC,IAAII,eAAoD,GAAG,IAAI;MAC/D,IAAIC,uBAAiE,GAAG3C,SAAS;MAEjF,IAAIb,IAAI,KAAKxB,YAAY,CAACyB,MAAM,EAAE;QAC9BsD,eAAe,GAAGlB,IAAI;QACtBmB,uBAAuB,GAAGnB,IAAI;MAClC,CAAC,MAAM,IAAIrC,IAAI,KAAKxB,YAAY,CAACoC,QAAQ,EAAE;QACvC,MAAM6C,iBAAiB,GAAGN,QAAkB;QAC5C;QACA,IAAIM,iBAAiB,CAAC7B,IAAI,CAAE8B,CAAC,IAAK7F,SAAS,CAAC6F,CAAC,EAAErB,IAAI,CAAC,CAAC,EAAE;UACnDmB,uBAAuB,GAAGC,iBAAiB,CAACrB,MAAM,CAC7CsB,CAAC,IAAK,CAAC7F,SAAS,CAAC6F,CAAC,EAAErB,IAAI,CAC7B,CAAC;QACL,CAAC,MAAM;UACHmB,uBAAuB,GAAG,CAAC,GAAGC,iBAAiB,EAAEpB,IAAI,CAAC;QAC1D;QAEAkB,eAAe,GAAGC,uBAAuB;MAC7C,CAAC,MAAM,IAAIxD,IAAI,KAAKxB,YAAY,CAAC+D,QAAQ,EAAE;QACvC,MAAMoB,wBAAwB,GAAGR,QAAwB;QAEzD,MAAMS,cAAc,GAAGA,CAACtC,KAAW,EAAEG,GAAU,KAAW;UACtD,MAAMoC,WAAW,GAAG;YAAEvC,KAAK;YAAEG;UAAI,CAAC;UAClC8B,eAAe,GAAGM,WAAW;UAC7BL,uBAAuB,GAAGK,WAAW;QACzC,CAAC;;QAED;QACA,IAAI,CAACF,wBAAwB,EAAE;UAC3BC,cAAc,CAACvB,IAAI,CAAC;QACxB,CAAC,MAAM,IAAIsB,wBAAwB,CAACrC,KAAK,IAAI,CAACqC,wBAAwB,CAAClC,GAAG,EAAE;UACxE;UACA;UACA,IAAIY,IAAI,GAAGsB,wBAAwB,CAACrC,KAAK,EAAE;YACvCsC,cAAc,CAACvB,IAAI,CAAC;UACxB,CAAC,MAAM;YACHuB,cAAc,CAACD,wBAAwB,CAACrC,KAAK,EAAEe,IAAI,CAAC;UACxD;QACJ,CAAC,MAAM;UACH;UACAuB,cAAc,CAACvB,IAAI,CAAC;QACxB;MACJ;MAEA,IAAI,OAAO3C,QAAQ,KAAK,UAAU,IAAI6D,eAAe,EAAE;QACnD7D,QAAQ,CAAC6D,eAAe,CAAC;MAC7B;MAEA,OAAOC,uBAAuB;IAClC,CAAC,CAAC;EACN,CAAC,EACD,CAACxD,IAAI,EAAEN,QAAQ,CACnB,CAAC;EAED,MAAMoE,uBAAuB,GAAGA,CAAA,KAAM;IAClC/C,YAAY,CAACF,SAAS,CAAC;EAC3B,CAAC;EAED,MAAMkD,mBAAmB,GAAG1F,OAAO,CAAC,MAAM;IACtC,IAAI,CAACiC,WAAW,EAAE;MACd,OAAO,KAAK;IAChB;IAEA,OAAO,CAACxC,WAAW,CAACwC,WAAW,EAAEd,OAAO,CAAC;EAC7C,CAAC,EAAE,CAACc,WAAW,EAAEd,OAAO,CAAC,CAAC;EAE1B,MAAMwE,oBAAoB,GAAG3F,OAAO,CAAC,MAAM;IACvC,IAAI,CAACiC,WAAW,EAAE;MACd,OAAO,KAAK;IAChB;IAEA,OAAO,CAACxC,WAAW,CAACwC,WAAW,EAAEf,OAAO,CAAC;EAC7C,CAAC,EAAE,CAACe,WAAW,EAAEf,OAAO,CAAC,CAAC;EAE1B,oBACIrB,KAAA,CAAA+F,aAAA,CAACrF,cAAc;IAACsF,GAAG,EAAE7C,WAAY;IAAC8C,WAAW,EAAEpE;EAAW,GACrDgE,mBAAmB,gBAChB7F,KAAA,CAAA+F,aAAA,CAACpF,yBAAyB;IAACuF,OAAO,EAAElB;EAAqB,gBACrDhF,KAAA,CAAA+F,aAAA;IAAK;IACDI,KAAK,EAAE;MACHC,OAAO,EAAE,MAAM;MACfC,aAAa,EAAE,KAAK;MACpBC,QAAQ,EAAE,QAAQ;MAClBC,MAAM,EAAE;IACZ;EAAE,GAEDtE,oBAAoB,iBACjBjC,KAAA,CAAA+F,aAAA,CAAClF,2BAA2B,qBACxBb,KAAA,CAAA+F,aAAA,CAACxG,QAAQ;IAACiH,KAAK,EAAE,CAAC;MAAEC,IAAI,EAAE;IAAG,CAAC,CAAE;IAACC,WAAW,EAAC;EAAE,CAAE,CACxB,CAChC,eACD1G,KAAA,CAAA+F,aAAA,CAACvG,IAAI;IAACmH,KAAK,EAAE,CAAC,kBAAkB;EAAE,CAAE,CACnC,CACkB,CAAC,gBAE5B3G,KAAA,CAAA+F,aAAA,CAACnF,+BAA+B,MAAE,CACrC,EACAwB,WAAW,iBACRpC,KAAA,CAAA+F,aAAA,CAACjF,YAAY;IACT8F,eAAe,EAAEtE,qBAAsB;IACvCF,WAAW,EAAEA,WAAY;IACzBU,KAAK,EAAEA,KAAM;IACb1B,MAAM,EAAEA,MAAO;IACfwB,SAAS,EAAEA,SAAU;IACrBiE,QAAQ,EAAEzB,YAAa;IACvB3D,YAAY,EAAEe,oBAAqB;IACnCjB,gBAAgB,EAAEA,gBAAiB;IACnCK,UAAU,EAAEA,UAAW;IACvBkF,mBAAmB,EAAElB,uBAAwB;IAC7CtE,OAAO,EAAEA,OAAQ;IACjBD,OAAO,EAAEA,OAAQ;IACjBS,IAAI,EAAEA,IAAK;IACXE,aAAa,EAAEA,aAAc;IAC7BK,cAAc,EAAEA,cAAe;IAC/BJ,oBAAoB,EAAEA;EAAqB,CAC9C,CACJ,EACA6D,oBAAoB,gBACjB9F,KAAA,CAAA+F,aAAA,CAACpF,yBAAyB;IAACuF,OAAO,EAAEf;EAAsB,gBACtDnF,KAAA,CAAA+F,aAAA;IAAK;IACDI,KAAK,EAAE;MACHC,OAAO,EAAE,MAAM;MACfC,aAAa,EAAE,KAAK;MACpBC,QAAQ,EAAE,QAAQ;MAClBC,MAAM,EAAE;IACZ;EAAE,GAEDtE,oBAAoB,iBACjBjC,KAAA,CAAA+F,aAAA,CAAClF,2BAA2B,qBACxBb,KAAA,CAAA+F,aAAA,CAACxG,QAAQ;IAACiH,KAAK,EAAE,CAAC;MAAEC,IAAI,EAAE;IAAG,CAAC,CAAE;IAACC,WAAW,EAAC;EAAE,CAAE,CACxB,CAChC,eACD1G,KAAA,CAAA+F,aAAA,CAACvG,IAAI;IAACmH,KAAK,EAAE,CAAC,mBAAmB;EAAE,CAAE,CACpC,CACkB,CAAC,gBAE5B3G,KAAA,CAAA+F,aAAA,CAACnF,+BAA+B,MAAE,CAE1B,CAAC;AAEzB,CAAC;AAEDM,QAAQ,CAAC6F,WAAW,GAAG,UAAU;AAEjC,eAAe7F,QAAQ","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(undefined);
30
- }, [monthHeight]);
31
- useEffect(() => {
32
- setContent(prevState => {
29
+ setContent(() => {
33
30
  // Initial render of months
34
- if (!prevState) {
35
- const items = [];
36
- for (let i = -1; i < 3; i++) {
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
- prevState.unshift( /*#__PURE__*/React.createElement(Month, {
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
- if (direction === 'right') {
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
- }, [categories, currentDate, direction, highlightedDates, locale, monthHeight, onSelect, selectedDate, minDate, maxDate, type, hoveringDay, disabledDates, setCurrentDate, showMonthYearPickers]);
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
- type,
142
- hoveringDay,
143
- disabledDates,
83
+ minDate,
144
84
  month,
145
- year,
146
- displayIndex: index - 1,
147
- showMonthYearPickers
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, onSelect, selectedDate, type, currentDate, direction, showMonthYearPickers]);
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.819",
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.816",
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": "b6b52fe0ff3d39bf99000b9ea32bd2a62c53c14c"
86
+ "gitHead": "557a60e6b54cb4d886aa28e5358e9163cd9f33b7"
85
87
  }