@chayns-components/date 5.0.0-beta.898 → 5.0.0-beta.899

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.
Files changed (26) hide show
  1. package/lib/cjs/components/calendar/Calendar.js +3 -1
  2. package/lib/cjs/components/calendar/Calendar.js.map +1 -1
  3. package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js +4 -1
  4. package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
  5. package/lib/cjs/components/calendar/month-wrapper/month/Month.js +2 -0
  6. package/lib/cjs/components/calendar/month-wrapper/month/Month.js.map +1 -1
  7. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +4 -2
  8. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
  9. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +5 -4
  10. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
  11. package/lib/esm/components/calendar/Calendar.js +3 -1
  12. package/lib/esm/components/calendar/Calendar.js.map +1 -1
  13. package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js +4 -1
  14. package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
  15. package/lib/esm/components/calendar/month-wrapper/month/Month.js +2 -0
  16. package/lib/esm/components/calendar/month-wrapper/month/Month.js.map +1 -1
  17. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +4 -2
  18. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
  19. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +5 -4
  20. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
  21. package/lib/types/components/calendar/Calendar.d.ts +4 -0
  22. package/lib/types/components/calendar/month-wrapper/MonthWrapper.d.ts +1 -0
  23. package/lib/types/components/calendar/month-wrapper/month/Month.d.ts +1 -0
  24. package/lib/types/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.d.ts +1 -0
  25. package/lib/types/components/calendar/month-wrapper/month/day-wrapper/day/Day.d.ts +1 -0
  26. package/package.json +2 -2
@@ -29,6 +29,7 @@ const Calendar = ({
29
29
  categories,
30
30
  isDisabled,
31
31
  type = _calendar.CalendarType.Single,
32
+ shouldShowHighlightsInMonthOverlay = true,
32
33
  disabledDates = [],
33
34
  showMonthYearPickers: showMonthYearPickersProp,
34
35
  onShownDatesChange = () => {}
@@ -187,7 +188,7 @@ const Calendar = ({
187
188
  const handleSelect = (0, _react.useCallback)(date => {
188
189
  setInternalSelectedDate(prevDate => {
189
190
  let onChangePayload = null;
190
- let newInternalSelectedDate = undefined;
191
+ let newInternalSelectedDate;
191
192
  if (type === _calendar.CalendarType.Single) {
192
193
  onChangePayload = date;
193
194
  newInternalSelectedDate = date;
@@ -284,6 +285,7 @@ const Calendar = ({
284
285
  type: type,
285
286
  disabledDates: disabledDates,
286
287
  setCurrentDate: setCurrentDate,
288
+ shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
287
289
  showMonthYearPickers: showMonthYearPickers
288
290
  }), ShouldShowRightArrow ? /*#__PURE__*/_react.default.createElement(_Calendar.StyledCalendarIconWrapper, {
289
291
  onClick: handleRightArrowClick
@@ -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","prevDate","isDateInRange","handleLeftArrowClick","useCallback","newDate","getNewDate","handleRightArrowClick","handleSelect","onChangePayload","newInternalSelectedDate","prevSelectedDates","d","prevSelectedDateInterval","updateInterval","newInterval","handleAnimationFinished","ShouldShowLeftArrow","isSameMonth","ShouldShowRightArrow","createElement","StyledCalendar","ref","$isDisabled","StyledCalendarIconWrapper","onClick","style","display","flexDirection","flexWrap","height","StyledPseudoMonthYearPicker","ComboBox","lists","list","placeholder","Icon","icons","StyledCalendarIconWrapperPseudo","shouldRenderTwo","onSelect","onAnimationFinished","displayName","_default","exports"],"sources":["../../../../src/components/calendar/Calendar.tsx"],"sourcesContent":["import { ComboBox, Icon } from '@chayns-components/core';\nimport {\n addYears,\n differenceInCalendarMonths,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n subYears,\n type Locale,\n} from 'date-fns';\nimport { de } from 'date-fns/locale';\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport 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 setCurrentDate((prevDate) => isDateInRange({ minDate, maxDate, currentDate: prevDate || new 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":[]}
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","shouldShowHighlightsInMonthOverlay","disabledDates","showMonthYearPickers","showMonthYearPickersProp","onShownDatesChange","currentDate","setCurrentDate","useState","shouldRenderTwoMonths","setShouldRenderTwoMonths","internalSelectedDate","setInternalSelectedDate","Multiple","undefined","direction","setDirection","width","setWidth","useMemo","hasMultipleMonths","differenceInCalendarMonths","hasMultipleYears","getYearsBetween","length","calendarRef","useRef","useEffect","start","getFullYear","getMonth","end","bounds","isDisabledDate","some","disabledDate","isSameDay","isDateInBounds","isWithinInterval","console","warn","disabledSelectedDates","datesOutsideOfBounds","filteredDates","filter","date","push","Interval","intervalIncludesDisabledDate","intervalIsInBounds","current","resizeObserver","ResizeObserver","entries","observedWidth","contentRect","observe","disconnect","prevDate","isDateInRange","handleLeftArrowClick","useCallback","newDate","getNewDate","handleRightArrowClick","handleSelect","onChangePayload","newInternalSelectedDate","prevSelectedDates","d","prevSelectedDateInterval","updateInterval","newInterval","handleAnimationFinished","ShouldShowLeftArrow","isSameMonth","ShouldShowRightArrow","createElement","StyledCalendar","ref","$isDisabled","StyledCalendarIconWrapper","onClick","style","display","flexDirection","flexWrap","height","StyledPseudoMonthYearPicker","ComboBox","lists","list","placeholder","Icon","icons","StyledCalendarIconWrapperPseudo","shouldRenderTwo","onSelect","onAnimationFinished","displayName","_default","exports"],"sources":["../../../../src/components/calendar/Calendar.tsx"],"sourcesContent":["import { ComboBox, Icon } from '@chayns-components/core';\nimport {\n addYears,\n differenceInCalendarMonths,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n subYears,\n type Locale,\n} from 'date-fns';\nimport { de } from 'date-fns/locale';\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport 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 * Whether the highlighted dates should be displayed for the greyed month overlay days.\n */\n shouldShowHighlightsInMonthOverlay?: boolean;\n /**\n * Shows the month and year pickers, if there are multiple months/years to select from.\n */\n showMonthYearPickers?: boolean;\n /**\n * Function to be executed when the selected date, dates or date interval change.\n * @param date\n */\n onChange?: (date: Date | Date[] | DateInterval) => void;\n /**\n * Function to be executed when the shown dates change. Returns the start of the displayed month and the end of the last displayed month (since depending on the available widths, there are one or two months displayed).\n @param { start: Date, end: Date }\n */\n onShownDatesChange?: (dates: { start: Date; end: Date }) => void;\n}\n\ninterface SingleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type?: CalendarType.Single;\n /**\n * A date that should be preselected.\n */\n selectedDate?: Date;\n selectedDates: never;\n selectedDateInterval: never;\n}\n\ninterface MultipleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Multiple;\n /**\n * An array of dates that should be preselected.\n */\n selectedDates?: Date[];\n selectedDate: never;\n selectedDateInterval: never;\n}\n\ninterface IntervalSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Interval;\n /**\n * An interval that should be preselected.\n */\n selectedDateInterval?: DateInterval;\n selectedDates: never;\n selectedDate: never;\n}\n\nexport type CalendarProps = BaseProps &\n (SingleSelectionProps | MultipleSelectionProps | IntervalSelectionProps);\n\nconst DEFAULT_MAX_DATE = addYears(new Date(), 1);\nconst DEFAULT_MIN_DATE = subYears(new Date(), 1);\n\nconst Calendar: FC<CalendarProps> = ({\n locale = de,\n maxDate = DEFAULT_MAX_DATE,\n minDate = DEFAULT_MIN_DATE,\n highlightedDates,\n onChange,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\n shouldShowHighlightsInMonthOverlay = true,\n disabledDates = [],\n showMonthYearPickers: showMonthYearPickersProp,\n onShownDatesChange = () => {},\n}) => {\n const [currentDate, setCurrentDate] = useState<Date>();\n const [shouldRenderTwoMonths, setShouldRenderTwoMonths] = useState(true);\n const [internalSelectedDate, setInternalSelectedDate] = useState<\n Date | Date[] | DateInterval | undefined\n >(type === CalendarType.Multiple ? [] : undefined);\n const [direction, setDirection] = useState<'left' | 'right'>();\n const [width, setWidth] = useState(0);\n\n const showMonthYearPickers = useMemo(() => {\n const hasMultipleMonths = differenceInCalendarMonths(maxDate, minDate) > 0;\n const hasMultipleYears = getYearsBetween(minDate, maxDate).length > 1;\n\n return !!(showMonthYearPickersProp && (hasMultipleMonths || hasMultipleYears));\n }, [minDate, maxDate, showMonthYearPickersProp]);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (currentDate) {\n const start = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n\n if (shouldRenderTwoMonths) {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 2, 0);\n onShownDatesChange({\n start,\n end,\n });\n } else {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n onShownDatesChange({\n start,\n end,\n });\n }\n }\n }, [currentDate, shouldRenderTwoMonths]);\n\n useEffect(() => {\n const bounds = {\n start: minDate,\n end: maxDate,\n };\n if (type === CalendarType.Single) {\n if (selectedDate) {\n const isDisabledDate = disabledDates.some((disabledDate) =>\n isSameDay(selectedDate, disabledDate),\n );\n const isDateInBounds = isWithinInterval(selectedDate, bounds);\n\n if (!isDisabledDate && isDateInBounds) {\n setInternalSelectedDate(selectedDate);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDate, because it is disabled or out of bounds.',\n '\\nselectedDate:',\n selectedDate,\n ...(isDisabledDate ? ['\\nselectedDate is disabled'] : []),\n ...(isDateInBounds\n ? []\n : ['\\nselectedDate is outside of bounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n } else {\n setInternalSelectedDate(undefined);\n }\n } else if (type === CalendarType.Multiple) {\n if (selectedDates) {\n const disabledSelectedDates: Date[] = [];\n const datesOutsideOfBounds: Date[] = [];\n\n const filteredDates = selectedDates.filter((date) => {\n if (disabledDates.some((disabledDate) => isSameDay(date, disabledDate))) {\n disabledSelectedDates.push(date);\n return false;\n }\n\n if (!isWithinInterval(date, bounds)) {\n datesOutsideOfBounds.push(date);\n return false;\n }\n\n return true;\n });\n\n if (disabledSelectedDates.length > 0 || datesOutsideOfBounds.length > 0) {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set all selectedDates, because some are disabled or out of bounds.',\n ...(disabledSelectedDates.length > 0\n ? ['\\nselectedDates that are disabled:', disabledSelectedDates]\n : []),\n ...(datesOutsideOfBounds.length > 0\n ? [\n '\\nselectedDates that are outside of bounds:',\n datesOutsideOfBounds,\n 'bounds:',\n { minDate, maxDate },\n ]\n : []),\n );\n }\n\n setInternalSelectedDate(filteredDates);\n } else {\n setInternalSelectedDate([]);\n }\n } else if (type === CalendarType.Interval) {\n if (selectedDateInterval) {\n const intervalIncludesDisabledDate =\n selectedDateInterval.end &&\n disabledDates.some((disabledDate) =>\n isWithinInterval(disabledDate, {\n start: selectedDateInterval.start,\n end: selectedDateInterval.end as Date,\n }),\n );\n\n const intervalIsInBounds =\n isWithinInterval(selectedDateInterval.start, bounds) &&\n (!selectedDateInterval.end ||\n isWithinInterval(selectedDateInterval.end, bounds));\n\n if (!intervalIncludesDisabledDate && intervalIsInBounds) {\n setInternalSelectedDate(selectedDateInterval);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDateInterval, because it includes disabled dates or dates that are out of bounds.',\n '\\nselectedDateInterval:',\n selectedDateInterval,\n ...(intervalIncludesDisabledDate\n ? ['\\ndisabled dates:', disabledDates]\n : []),\n ...(intervalIsInBounds ? [] : ['\\nbounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n }\n }\n }, [type, selectedDate, selectedDates, selectedDateInterval, disabledDates, minDate, maxDate]);\n\n useEffect(() => {\n if (calendarRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries && entries[0]) {\n const observedWidth = entries[0].contentRect.width;\n\n setWidth(observedWidth - 30);\n\n if (observedWidth < 430) {\n setShouldRenderTwoMonths(false);\n } else {\n setShouldRenderTwoMonths(true);\n }\n }\n });\n\n resizeObserver.observe(calendarRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n\n return () => {};\n }, []);\n\n useEffect(() => {\n setCurrentDate((prevDate) =>\n isDateInRange({ minDate, maxDate, currentDate: prevDate || new Date() }),\n );\n }, [maxDate, minDate]);\n\n const handleLeftArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('left');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(-1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleRightArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('right');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleSelect = useCallback(\n (date: Date) => {\n setInternalSelectedDate((prevDate) => {\n let onChangePayload: Date | Date[] | DateInterval | null = null;\n let newInternalSelectedDate: Date | Date[] | DateInterval | undefined;\n\n if (type === CalendarType.Single) {\n onChangePayload = date;\n newInternalSelectedDate = date;\n } else if (type === CalendarType.Multiple) {\n const prevSelectedDates = prevDate as Date[];\n // Selects or unselects date , depending on if it is already selected.\n if (prevSelectedDates.some((d) => isSameDay(d, date))) {\n newInternalSelectedDate = prevSelectedDates.filter(\n (d) => !isSameDay(d, date),\n );\n } else {\n newInternalSelectedDate = [...prevSelectedDates, date];\n }\n\n onChangePayload = newInternalSelectedDate;\n } else if (type === CalendarType.Interval) {\n const prevSelectedDateInterval = prevDate as DateInterval;\n\n const updateInterval = (start: Date, end?: Date): void => {\n const newInterval = { start, end };\n onChangePayload = newInterval;\n newInternalSelectedDate = newInterval;\n };\n\n // Sets first selection as interval start.\n if (!prevSelectedDateInterval) {\n updateInterval(date);\n } else if (prevSelectedDateInterval.start && !prevSelectedDateInterval.end) {\n // Sets second selection as interval start, if it is earlier than the previous interval start.\n // Else sets it as interval end.\n if (date < prevSelectedDateInterval.start) {\n updateInterval(date);\n } else {\n updateInterval(prevSelectedDateInterval.start, date);\n }\n } else {\n // Resets interval if a third date is selected.\n updateInterval(date);\n }\n }\n\n if (typeof onChange === 'function' && onChangePayload) {\n onChange(onChangePayload);\n }\n\n return newInternalSelectedDate;\n });\n },\n [type, onChange],\n );\n\n const handleAnimationFinished = () => {\n setDirection(undefined);\n };\n\n const ShouldShowLeftArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, minDate);\n }, [currentDate, minDate]);\n\n const ShouldShowRightArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, maxDate);\n }, [currentDate, maxDate]);\n\n return (\n <StyledCalendar ref={calendarRef} $isDisabled={isDisabled}>\n {ShouldShowLeftArrow ? (\n <StyledCalendarIconWrapper onClick={handleLeftArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-left']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n {currentDate && (\n <MonthWrapper\n shouldRenderTwo={shouldRenderTwoMonths}\n currentDate={currentDate}\n width={width}\n locale={locale}\n direction={direction}\n onSelect={handleSelect}\n selectedDate={internalSelectedDate}\n highlightedDates={highlightedDates}\n categories={categories}\n onAnimationFinished={handleAnimationFinished}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n showMonthYearPickers={showMonthYearPickers}\n />\n )}\n {ShouldShowRightArrow ? (\n <StyledCalendarIconWrapper onClick={handleRightArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-right']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n </StyledCalendar>\n );\n};\n\nCalendar.displayName = 'Calendar';\n\nexport default Calendar;\n"],"mappings":"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","ignoreList":[]}
@@ -25,6 +25,7 @@ const MonthWrapper = ({
25
25
  isDisabled,
26
26
  minDate,
27
27
  maxDate,
28
+ shouldShowHighlightsInMonthOverlay,
28
29
  type,
29
30
  disabledDates,
30
31
  setCurrentDate,
@@ -51,6 +52,7 @@ const MonthWrapper = ({
51
52
  locale: locale,
52
53
  onSelect: onSelect,
53
54
  highlightedDates: highlightedDates,
55
+ shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
54
56
  categories: categories,
55
57
  selectedDate: selectedDate,
56
58
  minDate: minDate,
@@ -87,6 +89,7 @@ const MonthWrapper = ({
87
89
  hoveringDay,
88
90
  locale,
89
91
  onSelect,
92
+ shouldShowHighlightsInMonthOverlay,
90
93
  maxDate,
91
94
  minDate,
92
95
  month,
@@ -99,7 +102,7 @@ const MonthWrapper = ({
99
102
  }
100
103
  };
101
104
  }));
102
- }, [categories, currentDate, direction, disabledDates, highlightedDates, hoveringDay, locale, onAnimationFinished, onSelect, maxDate, minDate, selectedDate, setCurrentDate, setHoveringDay, showMonthYearPickers, type]);
105
+ }, [categories, currentDate, direction, disabledDates, highlightedDates, hoveringDay, locale, onAnimationFinished, onSelect, maxDate, minDate, selectedDate, setCurrentDate, setHoveringDay, showMonthYearPickers, type, shouldShowHighlightsInMonthOverlay]);
103
106
  const animate = (0, _react.useMemo)(() => {
104
107
  if (shouldRenderTwo) {
105
108
  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","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":[]}
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","shouldShowHighlightsInMonthOverlay","type","disabledDates","setCurrentDate","showMonthYearPickers","content","setContent","useState","hoveringDay","setHoveringDay","monthHeight","useMemo","useEffect","items","date","getNewDate","month","year","getMonthAndYear","push","createElement","height","key","displayIndex","prevState","map","element","index","props","animate","x","StyledMonthWrapper","$height","$width","StyledMotionWrapper","$isDisabled","transition","duration","onAnimationComplete","displayName","_default","exports"],"sources":["../../../../../src/components/calendar/month-wrapper/MonthWrapper.tsx"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport type { MotionProps } from 'framer-motion';\nimport React, { FC, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport 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 shouldShowHighlightsInMonthOverlay: boolean;\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 shouldShowHighlightsInMonthOverlay,\n type,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n}) => {\n const [content, setContent] = useState<ReactElement[]>();\n\n const [hoveringDay, setHoveringDay] = useState<Date | null>(null);\n\n const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);\n\n useEffect(() => {\n setContent(() => {\n // Initial render of months\n const items: ReactElement[] = [];\n\n for (let i = -1; i < 3; i++) {\n const date = getNewDate(i, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n items.push(\n <Month\n height={monthHeight}\n key={`${month}-${year}`}\n month={month}\n year={year}\n locale={locale}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n displayIndex={i}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n }\n\n return items;\n });\n }, [monthHeight]);\n\n useEffect(() => {\n // Doesn't update props until animation is completed\n if (direction) return;\n\n setContent((prevState) =>\n (prevState ?? []).map((element, index) => {\n const date = getNewDate(index - 1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n return {\n ...element,\n props: {\n ...element.props,\n categories,\n disabledDates,\n displayIndex: index - 1,\n highlightedDates,\n hoveringDay,\n locale,\n onSelect,\n shouldShowHighlightsInMonthOverlay,\n maxDate,\n minDate,\n month,\n 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 shouldShowHighlightsInMonthOverlay,\n ]);\n\n const animate: MotionProps['animate'] = useMemo(() => {\n if (shouldRenderTwo) {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-100%' };\n default:\n return { x: '-50%' };\n }\n } else {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-200%' };\n default:\n return { x: '-100%' };\n }\n }\n }, [direction, shouldRenderTwo]);\n\n return (\n <StyledMonthWrapper $height={monthHeight} $width={width}>\n <StyledMotionWrapper\n animate={animate}\n $isDisabled={isDisabled}\n transition={{\n type: 'tween',\n duration: !direction ? 0 : 0.2,\n }}\n onAnimationComplete={onAnimationFinished}\n >\n {content}\n </StyledMotionWrapper>\n </StyledMonthWrapper>\n );\n};\n\nMonthWrapper.displayName = 'MonthWrapper';\n\nexport default MonthWrapper;\n"],"mappings":"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","ignoreList":[]}
@@ -21,6 +21,7 @@ const Month = ({
21
21
  height,
22
22
  minDate,
23
23
  maxDate,
24
+ shouldShowHighlightsInMonthOverlay,
24
25
  type,
25
26
  hoveringDay,
26
27
  setHoveringDay,
@@ -48,6 +49,7 @@ const Month = ({
48
49
  month: month,
49
50
  year: year,
50
51
  onSelect: onSelect,
52
+ shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
51
53
  highlightedDates: highlightedDates,
52
54
  minDate: minDate,
53
55
  maxDate: maxDate,
@@ -1 +1 @@
1
- {"version":3,"file":"Month.js","names":["_react","_interopRequireDefault","require","_MonthYearPickers","_DayWrapper","_Month","_WeekdayWrapper","e","__esModule","default","Month","month","year","locale","highlightedDates","selectedDate","onSelect","categories","height","minDate","maxDate","type","hoveringDay","setHoveringDay","disabledDates","setCurrentDate","displayIndex","showMonthYearPickers","createElement","StyledMonth","$height","StyledMonthHead","key","displayName","_default","exports"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.tsx"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport React, { FC } from 'react';\nimport type {\n CalendarType,\n Categories,\n DateInterval,\n EMonth,\n HighlightedDates,\n} from '../../../../types/calendar';\nimport MonthYearPickers from '../../month-year-pickers/MonthYearPickers';\nimport DayWrapper from './day-wrapper/DayWrapper';\nimport { StyledMonth, StyledMonthHead } from './Month.styles';\nimport WeekdayWrapper from './weekday-wrapper/WeekdayWrapper';\n\nexport type MonthProps = {\n month: EMonth;\n year: number;\n locale: Locale;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n height: number;\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n displayIndex?: number;\n showMonthYearPickers: boolean;\n};\n\nconst Month: FC<MonthProps> = ({\n month,\n year,\n locale,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n height,\n minDate,\n maxDate,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n setCurrentDate,\n displayIndex,\n showMonthYearPickers,\n}) => (\n <StyledMonth $height={height}>\n <StyledMonthHead>\n <MonthYearPickers\n month={month}\n year={year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n setCurrentDate={setCurrentDate}\n displayIndex={displayIndex}\n showMonthYearPickers={showMonthYearPickers}\n />\n </StyledMonthHead>\n <WeekdayWrapper locale={locale} />\n <DayWrapper\n key={`day-wrapper-${month}`}\n categories={categories}\n selectedDate={selectedDate}\n month={month}\n year={year}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n />\n </StyledMonth>\n);\n\nMonth.displayName = 'Month';\n\nexport default Month;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAQA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA8D,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAsB9D,MAAMG,KAAqB,GAAGA,CAAC;EAC3BC,KAAK;EACLC,IAAI;EACJC,MAAM;EACNC,gBAAgB;EAChBC,YAAY;EACZC,QAAQ;EACRC,UAAU;EACVC,MAAM;EACNC,OAAO;EACPC,OAAO;EACPC,IAAI;EACJC,WAAW;EACXC,cAAc;EACdC,aAAa;EACbC,cAAc;EACdC,YAAY;EACZC;AACJ,CAAC,kBACG3B,MAAA,CAAAS,OAAA,CAAAmB,aAAA,CAACvB,MAAA,CAAAwB,WAAW;EAACC,OAAO,EAAEZ;AAAO,gBACzBlB,MAAA,CAAAS,OAAA,CAAAmB,aAAA,CAACvB,MAAA,CAAA0B,eAAe,qBACZ/B,MAAA,CAAAS,OAAA,CAAAmB,aAAA,CAACzB,iBAAA,CAAAM,OAAgB;EACbE,KAAK,EAAEA,KAAM;EACbC,IAAI,EAAEA,IAAK;EACXC,MAAM,EAAEA,MAAO;EACfM,OAAO,EAAEA,OAAQ;EACjBC,OAAO,EAAEA,OAAQ;EACjBK,cAAc,EAAEA,cAAe;EAC/BC,YAAY,EAAEA,YAAa;EAC3BC,oBAAoB,EAAEA;AAAqB,CAC9C,CACY,CAAC,eAClB3B,MAAA,CAAAS,OAAA,CAAAmB,aAAA,CAACtB,eAAA,CAAAG,OAAc;EAACI,MAAM,EAAEA;AAAO,CAAE,CAAC,eAClCb,MAAA,CAAAS,OAAA,CAAAmB,aAAA,CAACxB,WAAA,CAAAK,OAAU;EACPuB,GAAG,EAAE,eAAerB,KAAK,EAAG;EAC5BM,UAAU,EAAEA,UAAW;EACvBF,YAAY,EAAEA,YAAa;EAC3BJ,KAAK,EAAEA,KAAM;EACbC,IAAI,EAAEA,IAAK;EACXI,QAAQ,EAAEA,QAAS;EACnBF,gBAAgB,EAAEA,gBAAiB;EACnCK,OAAO,EAAEA,OAAQ;EACjBC,OAAO,EAAEA,OAAQ;EACjBC,IAAI,EAAEA,IAAK;EACXC,WAAW,EAAEA,WAAY;EACzBC,cAAc,EAAEA,cAAe;EAC/BC,aAAa,EAAEA;AAAc,CAChC,CACQ,CAChB;AAEDd,KAAK,CAACuB,WAAW,GAAG,OAAO;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA1B,OAAA,GAEbC,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"Month.js","names":["_react","_interopRequireDefault","require","_MonthYearPickers","_DayWrapper","_Month","_WeekdayWrapper","e","__esModule","default","Month","month","year","locale","highlightedDates","selectedDate","onSelect","categories","height","minDate","maxDate","shouldShowHighlightsInMonthOverlay","type","hoveringDay","setHoveringDay","disabledDates","setCurrentDate","displayIndex","showMonthYearPickers","createElement","StyledMonth","$height","StyledMonthHead","key","displayName","_default","exports"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.tsx"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport React, { FC } from 'react';\nimport type {\n CalendarType,\n Categories,\n DateInterval,\n EMonth,\n HighlightedDates,\n} from '../../../../types/calendar';\nimport MonthYearPickers from '../../month-year-pickers/MonthYearPickers';\nimport DayWrapper from './day-wrapper/DayWrapper';\nimport { StyledMonth, StyledMonthHead } from './Month.styles';\nimport WeekdayWrapper from './weekday-wrapper/WeekdayWrapper';\n\nexport type MonthProps = {\n month: EMonth;\n year: number;\n locale: Locale;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n height: number;\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n displayIndex?: number;\n shouldShowHighlightsInMonthOverlay: boolean;\n showMonthYearPickers: boolean;\n};\n\nconst Month: FC<MonthProps> = ({\n month,\n year,\n locale,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n height,\n minDate,\n maxDate,\n shouldShowHighlightsInMonthOverlay,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n setCurrentDate,\n displayIndex,\n showMonthYearPickers,\n}) => (\n <StyledMonth $height={height}>\n <StyledMonthHead>\n <MonthYearPickers\n month={month}\n year={year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n setCurrentDate={setCurrentDate}\n displayIndex={displayIndex}\n showMonthYearPickers={showMonthYearPickers}\n />\n </StyledMonthHead>\n <WeekdayWrapper locale={locale} />\n <DayWrapper\n key={`day-wrapper-${month}`}\n categories={categories}\n selectedDate={selectedDate}\n month={month}\n year={year}\n onSelect={onSelect}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n highlightedDates={highlightedDates}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n />\n </StyledMonth>\n);\n\nMonth.displayName = 'Month';\n\nexport default Month;\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAQA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AAA8D,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAuB9D,MAAMG,KAAqB,GAAGA,CAAC;EAC3BC,KAAK;EACLC,IAAI;EACJC,MAAM;EACNC,gBAAgB;EAChBC,YAAY;EACZC,QAAQ;EACRC,UAAU;EACVC,MAAM;EACNC,OAAO;EACPC,OAAO;EACPC,kCAAkC;EAClCC,IAAI;EACJC,WAAW;EACXC,cAAc;EACdC,aAAa;EACbC,cAAc;EACdC,YAAY;EACZC;AACJ,CAAC,kBACG5B,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAACxB,MAAA,CAAAyB,WAAW;EAACC,OAAO,EAAEb;AAAO,gBACzBlB,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAACxB,MAAA,CAAA2B,eAAe,qBACZhC,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAAC1B,iBAAA,CAAAM,OAAgB;EACbE,KAAK,EAAEA,KAAM;EACbC,IAAI,EAAEA,IAAK;EACXC,MAAM,EAAEA,MAAO;EACfM,OAAO,EAAEA,OAAQ;EACjBC,OAAO,EAAEA,OAAQ;EACjBM,cAAc,EAAEA,cAAe;EAC/BC,YAAY,EAAEA,YAAa;EAC3BC,oBAAoB,EAAEA;AAAqB,CAC9C,CACY,CAAC,eAClB5B,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAACvB,eAAA,CAAAG,OAAc;EAACI,MAAM,EAAEA;AAAO,CAAE,CAAC,eAClCb,MAAA,CAAAS,OAAA,CAAAoB,aAAA,CAACzB,WAAA,CAAAK,OAAU;EACPwB,GAAG,EAAE,eAAetB,KAAK,EAAG;EAC5BM,UAAU,EAAEA,UAAW;EACvBF,YAAY,EAAEA,YAAa;EAC3BJ,KAAK,EAAEA,KAAM;EACbC,IAAI,EAAEA,IAAK;EACXI,QAAQ,EAAEA,QAAS;EACnBK,kCAAkC,EAAEA,kCAAmC;EACvEP,gBAAgB,EAAEA,gBAAiB;EACnCK,OAAO,EAAEA,OAAQ;EACjBC,OAAO,EAAEA,OAAQ;EACjBE,IAAI,EAAEA,IAAK;EACXC,WAAW,EAAEA,WAAY;EACzBC,cAAc,EAAEA,cAAe;EAC/BC,aAAa,EAAEA;AAAc,CAChC,CACQ,CAChB;AAEDf,KAAK,CAACwB,WAAW,GAAG,OAAO;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA3B,OAAA,GAEbC,KAAK","ignoreList":[]}
@@ -24,6 +24,7 @@ const DayWrapper = ({
24
24
  maxDate,
25
25
  type,
26
26
  hoveringDay,
27
+ shouldShowHighlightsInMonthOverlay,
27
28
  setHoveringDay,
28
29
  disabledDates
29
30
  }) => {
@@ -57,7 +58,7 @@ const DayWrapper = ({
57
58
  let isIntervalStart = false;
58
59
  let isIntervalEnd = false;
59
60
  let isWithinIntervalSelection = false;
60
- let showHoverEffect = false;
61
+ const showHoverEffect = false;
61
62
  let isDisabled =
62
63
  // Disables dates, that are not between minDate and maxDate.
63
64
  !(0, _dateFns.isWithinInterval)(day, {
@@ -112,6 +113,7 @@ const DayWrapper = ({
112
113
  isIntervalEnd: isIntervalEnd,
113
114
  isWithinIntervalSelection: isWithinIntervalSelection,
114
115
  isDisabled: isDisabled,
116
+ shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
115
117
  isSameMonth: (0, _dateFns.isSameMonth)(day, dayOfCurrentMonth),
116
118
  onClick: handleDayClick,
117
119
  highlightedDates: highlightedDates,
@@ -119,7 +121,7 @@ const DayWrapper = ({
119
121
  }));
120
122
  });
121
123
  return items;
122
- }, [categories, dayOfCurrentMonth, days, handleDayClick, highlightedDates, selectedDate, minDate, maxDate, type, hoveringDay, disabledDates, setHoveringDay]);
124
+ }, [selectedDate, disabledDates, days, minDate, maxDate, type, hoveringDay, categories, shouldShowHighlightsInMonthOverlay, dayOfCurrentMonth, handleDayClick, highlightedDates, setHoveringDay]);
123
125
  return /*#__PURE__*/_react.default.createElement(_DayWrapper.StyledDayWrapper, null, dayElements);
124
126
  };
125
127
  DayWrapper.displayName = 'DayWrapper';
@@ -1 +1 @@
1
- {"version":3,"file":"DayWrapper.js","names":["_dateFns","require","_react","_interopRequireWildcard","_calendar","_calendar2","_Day","_interopRequireDefault","_DayWrapper","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DayWrapper","month","year","highlightedDates","onSelect","selectedDate","categories","minDate","maxDate","type","hoveringDay","setHoveringDay","disabledDates","dayOfCurrentMonth","useMemo","Date","days","dateArray","currentDate","startOfMonth","startDay","startOfWeek","weekStartsOn","newDate","addDays","push","handleDayClick","useCallback","date","shouldFireEvent","dayElements","items","start","end","firstDisabledDateAfterStart","findNextDate","forEach","day","isSelected","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","showHoverEffect","isDisabled","isWithinInterval","some","disabledDate","isSameDay","CalendarType","Single","Multiple","Array","isArray","Interval","isAfter","createElement","key","toDateString","isSameMonth","onClick","StyledDayWrapper","displayName","_default","exports"],"sources":["../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.tsx"],"sourcesContent":["import {\n addDays,\n isAfter,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport React, { FC, useCallback, useMemo, type ReactElement } from 'react';\nimport {\n CalendarType,\n type Categories,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate, { weekStartsOn: 1 });\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n let showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n />,\n );\n });\n\n return items;\n }, [\n categories,\n dayOfCurrentMonth,\n days,\n handleDayClick,\n highlightedDates,\n selectedDate,\n minDate,\n maxDate,\n type,\n hoveringDay,\n disabledDates,\n setHoveringDay,\n ]);\n\n return <StyledDayWrapper>{dayElements}</StyledDayWrapper>;\n};\n\nDayWrapper.displayName = 'DayWrapper';\n\nexport default DayWrapper;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DayWrapper.js","names":["_dateFns","require","_react","_interopRequireWildcard","_calendar","_calendar2","_Day","_interopRequireDefault","_DayWrapper","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","DayWrapper","month","year","highlightedDates","onSelect","selectedDate","categories","minDate","maxDate","type","hoveringDay","shouldShowHighlightsInMonthOverlay","setHoveringDay","disabledDates","dayOfCurrentMonth","useMemo","Date","days","dateArray","currentDate","startOfMonth","startDay","startOfWeek","weekStartsOn","newDate","addDays","push","handleDayClick","useCallback","date","shouldFireEvent","dayElements","items","start","end","firstDisabledDateAfterStart","findNextDate","forEach","day","isSelected","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","showHoverEffect","isDisabled","isWithinInterval","some","disabledDate","isSameDay","CalendarType","Single","Multiple","Array","isArray","Interval","isAfter","createElement","key","toDateString","isSameMonth","onClick","StyledDayWrapper","displayName","_default","exports"],"sources":["../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.tsx"],"sourcesContent":["import {\n addDays,\n isAfter,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport React, { FC, useCallback, useMemo, type ReactElement } from 'react';\nimport {\n CalendarType,\n type Categories,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n shouldShowHighlightsInMonthOverlay: boolean;\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,\n type,\n hoveringDay,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n disabledDates,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate, { weekStartsOn: 1 });\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n const showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n />,\n );\n });\n\n return items;\n }, [\n selectedDate,\n disabledDates,\n days,\n minDate,\n maxDate,\n type,\n hoveringDay,\n categories,\n shouldShowHighlightsInMonthOverlay,\n dayOfCurrentMonth,\n handleDayClick,\n highlightedDates,\n setHoveringDay,\n ]);\n\n return <StyledDayWrapper>{dayElements}</StyledDayWrapper>;\n};\n\nDayWrapper.displayName = 'DayWrapper';\n\nexport default DayWrapper;\n"],"mappings":"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","ignoreList":[]}
@@ -22,23 +22,24 @@ const Day = ({
22
22
  isIntervalStart,
23
23
  isIntervalEnd,
24
24
  isWithinIntervalSelection,
25
+ shouldShowHighlightsInMonthOverlay,
25
26
  setHoveringDay
26
27
  }) => {
27
28
  const dayRef = (0, _react.useRef)(null);
28
29
  const styles = (0, _react.useMemo)(() => {
29
30
  var _highlightedDates$fin;
30
- if (!highlightedDates) {
31
+ if (!highlightedDates || !shouldShowHighlightsInMonthOverlay && !isSameMonth) {
31
32
  return undefined;
32
33
  }
33
34
  return (_highlightedDates$fin = highlightedDates.find(highlightedDate => highlightedDate.dates.some(highlighted => (0, _dateFns.isSameDay)(highlighted, date)))) === null || _highlightedDates$fin === void 0 ? void 0 : _highlightedDates$fin.style;
34
- }, [date, highlightedDates, isSameMonth]);
35
+ }, [date, highlightedDates, isSameMonth, shouldShowHighlightsInMonthOverlay]);
35
36
  const categoryElements = (0, _react.useMemo)(() => {
36
- if (!categories) return [];
37
+ if (!categories || !shouldShowHighlightsInMonthOverlay && !isSameMonth) return [];
37
38
  return categories.flatMap(category => category.dates.filter(day => (0, _dateFns.isSameDay)(day, date)).map(day => /*#__PURE__*/_react.default.createElement(_Category.default, {
38
39
  key: day.getTime() * Math.random(),
39
40
  color: category.color
40
41
  })));
41
- }, [categories, date]);
42
+ }, [categories, date, isSameMonth, shouldShowHighlightsInMonthOverlay]);
42
43
  return /*#__PURE__*/_react.default.createElement(_Day.StyledDay, {
43
44
  ref: dayRef,
44
45
  onClick: () => onClick(date, isSameMonth && !isDisabled),
@@ -1 +1 @@
1
- {"version":3,"file":"Day.js","names":["_dateFns","require","_react","_interopRequireWildcard","_Category","_interopRequireDefault","_Day","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Day","date","highlightedDates","categories","isSameMonth","isSelected","onClick","isDisabled","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","setHoveringDay","dayRef","useRef","styles","useMemo","_highlightedDates$fin","undefined","find","highlightedDate","dates","some","highlighted","isSameDay","style","categoryElements","flatMap","category","filter","day","map","createElement","key","getTime","Math","random","color","StyledDay","ref","$isSameMonth","$isDisabled","$backgroundColor","backgroundColor","$textColor","textColor","onMouseEnter","onMouseLeave","StyledDayNumber","$isSelected","$isIntervalStart","$isIntervalEnd","$isWithinIntervalSelection","getDate","StyledDayCategoryWrapper","displayName","_default","exports"],"sources":["../../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/day/Day.tsx"],"sourcesContent":["import { isSameDay } from 'date-fns';\nimport React, { FC, useMemo, useRef } from 'react';\nimport type {\n Categories,\n HighlightedDates,\n HighlightedDateStyles,\n} from '../../../../../../types/calendar';\nimport Category from './category/Category';\nimport { StyledDay, StyledDayCategoryWrapper, StyledDayNumber } from './Day.styles';\n\nexport type DayProps = {\n date: Date;\n isSameMonth: boolean;\n isSelected: boolean;\n onClick: (date: Date, shouldFireEvent: boolean) => void;\n highlightedDates?: HighlightedDates[];\n categories?: Categories[];\n isDisabled: boolean;\n isIntervalStart: boolean;\n isIntervalEnd: boolean;\n isWithinIntervalSelection: boolean;\n setHoveringDay: (date: Date | null) => void;\n};\n\nconst Day: FC<DayProps> = ({\n date,\n highlightedDates,\n categories,\n isSameMonth,\n isSelected,\n onClick,\n isDisabled,\n isIntervalStart,\n isIntervalEnd,\n isWithinIntervalSelection,\n setHoveringDay,\n}) => {\n const dayRef = useRef<HTMLDivElement>(null);\n\n const styles: HighlightedDateStyles | undefined = useMemo(() => {\n if (!highlightedDates) {\n return undefined;\n }\n\n return highlightedDates.find((highlightedDate) =>\n highlightedDate.dates.some((highlighted) => isSameDay(highlighted, date)),\n )?.style;\n }, [date, highlightedDates, isSameMonth]);\n\n const categoryElements = useMemo(() => {\n if (!categories) return [];\n\n return categories.flatMap((category) =>\n category.dates\n .filter((day) => isSameDay(day, date))\n .map((day) => (\n <Category key={day.getTime() * Math.random()} color={category.color} />\n )),\n );\n }, [categories, date]);\n\n return (\n <StyledDay\n ref={dayRef}\n onClick={() => onClick(date, isSameMonth && !isDisabled)}\n $isSameMonth={isSameMonth}\n $isDisabled={isDisabled}\n $backgroundColor={styles?.backgroundColor}\n $textColor={styles?.textColor}\n onMouseEnter={() => setHoveringDay(date)}\n onMouseLeave={() => setHoveringDay(null)}\n >\n <StyledDayNumber\n $isSelected={isSelected}\n $isIntervalStart={isIntervalStart}\n $isIntervalEnd={isIntervalEnd}\n $isWithinIntervalSelection={isWithinIntervalSelection}\n >\n {date.getDate()}\n </StyledDayNumber>\n {categoryElements && (\n <StyledDayCategoryWrapper>{categoryElements}</StyledDayCategoryWrapper>\n )}\n </StyledDay>\n );\n};\n\nDay.displayName = 'Day';\n\nexport default Day;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Day.js","names":["_dateFns","require","_react","_interopRequireWildcard","_Category","_interopRequireDefault","_Day","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","Day","date","highlightedDates","categories","isSameMonth","isSelected","onClick","isDisabled","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","shouldShowHighlightsInMonthOverlay","setHoveringDay","dayRef","useRef","styles","useMemo","_highlightedDates$fin","undefined","find","highlightedDate","dates","some","highlighted","isSameDay","style","categoryElements","flatMap","category","filter","day","map","createElement","key","getTime","Math","random","color","StyledDay","ref","$isSameMonth","$isDisabled","$backgroundColor","backgroundColor","$textColor","textColor","onMouseEnter","onMouseLeave","StyledDayNumber","$isSelected","$isIntervalStart","$isIntervalEnd","$isWithinIntervalSelection","getDate","StyledDayCategoryWrapper","displayName","_default","exports"],"sources":["../../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/day/Day.tsx"],"sourcesContent":["import { isSameDay } from 'date-fns';\nimport React, { FC, useMemo, useRef } from 'react';\nimport type {\n Categories,\n HighlightedDates,\n HighlightedDateStyles,\n} from '../../../../../../types/calendar';\nimport Category from './category/Category';\nimport { StyledDay, StyledDayCategoryWrapper, StyledDayNumber } from './Day.styles';\n\nexport type DayProps = {\n date: Date;\n isSameMonth: boolean;\n isSelected: boolean;\n onClick: (date: Date, shouldFireEvent: boolean) => void;\n highlightedDates?: HighlightedDates[];\n categories?: Categories[];\n isDisabled: boolean;\n isIntervalStart: boolean;\n isIntervalEnd: boolean;\n isWithinIntervalSelection: boolean;\n setHoveringDay: (date: Date | null) => void;\n shouldShowHighlightsInMonthOverlay: boolean;\n};\n\nconst Day: FC<DayProps> = ({\n date,\n highlightedDates,\n categories,\n isSameMonth,\n isSelected,\n onClick,\n isDisabled,\n isIntervalStart,\n isIntervalEnd,\n isWithinIntervalSelection,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n}) => {\n const dayRef = useRef<HTMLDivElement>(null);\n\n const styles: HighlightedDateStyles | undefined = useMemo(() => {\n if (!highlightedDates || (!shouldShowHighlightsInMonthOverlay && !isSameMonth)) {\n return undefined;\n }\n\n return highlightedDates.find((highlightedDate) =>\n highlightedDate.dates.some((highlighted) => isSameDay(highlighted, date)),\n )?.style;\n }, [date, highlightedDates, isSameMonth, shouldShowHighlightsInMonthOverlay]);\n\n const categoryElements = useMemo(() => {\n if (!categories || (!shouldShowHighlightsInMonthOverlay && !isSameMonth)) return [];\n\n return categories.flatMap((category) =>\n category.dates\n .filter((day) => isSameDay(day, date))\n .map((day) => (\n <Category key={day.getTime() * Math.random()} color={category.color} />\n )),\n );\n }, [categories, date, isSameMonth, shouldShowHighlightsInMonthOverlay]);\n\n return (\n <StyledDay\n ref={dayRef}\n onClick={() => onClick(date, isSameMonth && !isDisabled)}\n $isSameMonth={isSameMonth}\n $isDisabled={isDisabled}\n $backgroundColor={styles?.backgroundColor}\n $textColor={styles?.textColor}\n onMouseEnter={() => setHoveringDay(date)}\n onMouseLeave={() => setHoveringDay(null)}\n >\n <StyledDayNumber\n $isSelected={isSelected}\n $isIntervalStart={isIntervalStart}\n $isIntervalEnd={isIntervalEnd}\n $isWithinIntervalSelection={isWithinIntervalSelection}\n >\n {date.getDate()}\n </StyledDayNumber>\n {categoryElements && (\n <StyledDayCategoryWrapper>{categoryElements}</StyledDayCategoryWrapper>\n )}\n </StyledDay>\n );\n};\n\nDay.displayName = 'Day';\n\nexport default Day;\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAMA,IAAAG,SAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AAAoF,SAAAI,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAG,yBAAAH,CAAA,6BAAAI,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAD,wBAAA,YAAAA,CAAAH,CAAA,WAAAA,CAAA,GAAAM,CAAA,GAAAD,CAAA,KAAAL,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAK,CAAA,SAAAA,CAAA,IAAAL,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAE,OAAA,EAAAF,CAAA,QAAAM,CAAA,GAAAH,wBAAA,CAAAE,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAP,CAAA,UAAAM,CAAA,CAAAE,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAP,OAAA,GAAAF,CAAA,EAAAM,CAAA,IAAAA,CAAA,CAAAa,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAiBpF,MAAMW,GAAiB,GAAGA,CAAC;EACvBC,IAAI;EACJC,gBAAgB;EAChBC,UAAU;EACVC,WAAW;EACXC,UAAU;EACVC,OAAO;EACPC,UAAU;EACVC,eAAe;EACfC,aAAa;EACbC,yBAAyB;EACzBC,kCAAkC;EAClCC;AACJ,CAAC,KAAK;EACF,MAAMC,MAAM,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EAE3C,MAAMC,MAAyC,GAAG,IAAAC,cAAO,EAAC,MAAM;IAAA,IAAAC,qBAAA;IAC5D,IAAI,CAACf,gBAAgB,IAAK,CAACS,kCAAkC,IAAI,CAACP,WAAY,EAAE;MAC5E,OAAOc,SAAS;IACpB;IAEA,QAAAD,qBAAA,GAAOf,gBAAgB,CAACiB,IAAI,CAAEC,eAAe,IACzCA,eAAe,CAACC,KAAK,CAACC,IAAI,CAAEC,WAAW,IAAK,IAAAC,kBAAS,EAACD,WAAW,EAAEtB,IAAI,CAAC,CAC5E,CAAC,cAAAgB,qBAAA,uBAFMA,qBAAA,CAEJQ,KAAK;EACZ,CAAC,EAAE,CAACxB,IAAI,EAAEC,gBAAgB,EAAEE,WAAW,EAAEO,kCAAkC,CAAC,CAAC;EAE7E,MAAMe,gBAAgB,GAAG,IAAAV,cAAO,EAAC,MAAM;IACnC,IAAI,CAACb,UAAU,IAAK,CAACQ,kCAAkC,IAAI,CAACP,WAAY,EAAE,OAAO,EAAE;IAEnF,OAAOD,UAAU,CAACwB,OAAO,CAAEC,QAAQ,IAC/BA,QAAQ,CAACP,KAAK,CACTQ,MAAM,CAAEC,GAAG,IAAK,IAAAN,kBAAS,EAACM,GAAG,EAAE7B,IAAI,CAAC,CAAC,CACrC8B,GAAG,CAAED,GAAG,iBACLvD,MAAA,CAAAO,OAAA,CAAAkD,aAAA,CAACvD,SAAA,CAAAK,OAAQ;MAACmD,GAAG,EAAEH,GAAG,CAACI,OAAO,CAAC,CAAC,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAE;MAACC,KAAK,EAAET,QAAQ,CAACS;IAAM,CAAE,CACzE,CACT,CAAC;EACL,CAAC,EAAE,CAAClC,UAAU,EAAEF,IAAI,EAAEG,WAAW,EAAEO,kCAAkC,CAAC,CAAC;EAEvE,oBACIpC,MAAA,CAAAO,OAAA,CAAAkD,aAAA,CAACrD,IAAA,CAAA2D,SAAS;IACNC,GAAG,EAAE1B,MAAO;IACZP,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACL,IAAI,EAAEG,WAAW,IAAI,CAACG,UAAU,CAAE;IACzDiC,YAAY,EAAEpC,WAAY;IAC1BqC,WAAW,EAAElC,UAAW;IACxBmC,gBAAgB,EAAE3B,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE4B,eAAgB;IAC1CC,UAAU,EAAE7B,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE8B,SAAU;IAC9BC,YAAY,EAAEA,CAAA,KAAMlC,cAAc,CAACX,IAAI,CAAE;IACzC8C,YAAY,EAAEA,CAAA,KAAMnC,cAAc,CAAC,IAAI;EAAE,gBAEzCrC,MAAA,CAAAO,OAAA,CAAAkD,aAAA,CAACrD,IAAA,CAAAqE,eAAe;IACZC,WAAW,EAAE5C,UAAW;IACxB6C,gBAAgB,EAAE1C,eAAgB;IAClC2C,cAAc,EAAE1C,aAAc;IAC9B2C,0BAA0B,EAAE1C;EAA0B,GAErDT,IAAI,CAACoD,OAAO,CAAC,CACD,CAAC,EACjB3B,gBAAgB,iBACbnD,MAAA,CAAAO,OAAA,CAAAkD,aAAA,CAACrD,IAAA,CAAA2E,wBAAwB,QAAE5B,gBAA2C,CAEnE,CAAC;AAEpB,CAAC;AAED1B,GAAG,CAACuD,WAAW,GAAG,KAAK;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAA3E,OAAA,GAETkB,GAAG","ignoreList":[]}
@@ -21,6 +21,7 @@ const Calendar = _ref => {
21
21
  categories,
22
22
  isDisabled,
23
23
  type = CalendarType.Single,
24
+ shouldShowHighlightsInMonthOverlay = true,
24
25
  disabledDates = [],
25
26
  showMonthYearPickers: showMonthYearPickersProp,
26
27
  onShownDatesChange = () => {}
@@ -179,7 +180,7 @@ const Calendar = _ref => {
179
180
  const handleSelect = useCallback(date => {
180
181
  setInternalSelectedDate(prevDate => {
181
182
  let onChangePayload = null;
182
- let newInternalSelectedDate = undefined;
183
+ let newInternalSelectedDate;
183
184
  if (type === CalendarType.Single) {
184
185
  onChangePayload = date;
185
186
  newInternalSelectedDate = date;
@@ -276,6 +277,7 @@ const Calendar = _ref => {
276
277
  type: type,
277
278
  disabledDates: disabledDates,
278
279
  setCurrentDate: setCurrentDate,
280
+ shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
279
281
  showMonthYearPickers: showMonthYearPickers
280
282
  }), ShouldShowRightArrow ? /*#__PURE__*/React.createElement(StyledCalendarIconWrapper, {
281
283
  onClick: handleRightArrowClick
@@ -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","prevDate","handleLeftArrowClick","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 setCurrentDate((prevDate) => isDateInRange({ minDate, maxDate, currentDate: prevDate || new 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":[]}
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","shouldShowHighlightsInMonthOverlay","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","prevDate","handleLeftArrowClick","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 * Whether the highlighted dates should be displayed for the greyed month overlay days.\n */\n shouldShowHighlightsInMonthOverlay?: boolean;\n /**\n * Shows the month and year pickers, if there are multiple months/years to select from.\n */\n showMonthYearPickers?: boolean;\n /**\n * Function to be executed when the selected date, dates or date interval change.\n * @param date\n */\n onChange?: (date: Date | Date[] | DateInterval) => void;\n /**\n * Function to be executed when the shown dates change. Returns the start of the displayed month and the end of the last displayed month (since depending on the available widths, there are one or two months displayed).\n @param { start: Date, end: Date }\n */\n onShownDatesChange?: (dates: { start: Date; end: Date }) => void;\n}\n\ninterface SingleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type?: CalendarType.Single;\n /**\n * A date that should be preselected.\n */\n selectedDate?: Date;\n selectedDates: never;\n selectedDateInterval: never;\n}\n\ninterface MultipleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Multiple;\n /**\n * An array of dates that should be preselected.\n */\n selectedDates?: Date[];\n selectedDate: never;\n selectedDateInterval: never;\n}\n\ninterface IntervalSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Interval;\n /**\n * An interval that should be preselected.\n */\n selectedDateInterval?: DateInterval;\n selectedDates: never;\n selectedDate: never;\n}\n\nexport type CalendarProps = BaseProps &\n (SingleSelectionProps | MultipleSelectionProps | IntervalSelectionProps);\n\nconst DEFAULT_MAX_DATE = addYears(new Date(), 1);\nconst DEFAULT_MIN_DATE = subYears(new Date(), 1);\n\nconst Calendar: FC<CalendarProps> = ({\n locale = de,\n maxDate = DEFAULT_MAX_DATE,\n minDate = DEFAULT_MIN_DATE,\n highlightedDates,\n onChange,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\n shouldShowHighlightsInMonthOverlay = true,\n disabledDates = [],\n showMonthYearPickers: showMonthYearPickersProp,\n onShownDatesChange = () => {},\n}) => {\n const [currentDate, setCurrentDate] = useState<Date>();\n const [shouldRenderTwoMonths, setShouldRenderTwoMonths] = useState(true);\n const [internalSelectedDate, setInternalSelectedDate] = useState<\n Date | Date[] | DateInterval | undefined\n >(type === CalendarType.Multiple ? [] : undefined);\n const [direction, setDirection] = useState<'left' | 'right'>();\n const [width, setWidth] = useState(0);\n\n const showMonthYearPickers = useMemo(() => {\n const hasMultipleMonths = differenceInCalendarMonths(maxDate, minDate) > 0;\n const hasMultipleYears = getYearsBetween(minDate, maxDate).length > 1;\n\n return !!(showMonthYearPickersProp && (hasMultipleMonths || hasMultipleYears));\n }, [minDate, maxDate, showMonthYearPickersProp]);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (currentDate) {\n const start = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n\n if (shouldRenderTwoMonths) {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 2, 0);\n onShownDatesChange({\n start,\n end,\n });\n } else {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n onShownDatesChange({\n start,\n end,\n });\n }\n }\n }, [currentDate, shouldRenderTwoMonths]);\n\n useEffect(() => {\n const bounds = {\n start: minDate,\n end: maxDate,\n };\n if (type === CalendarType.Single) {\n if (selectedDate) {\n const isDisabledDate = disabledDates.some((disabledDate) =>\n isSameDay(selectedDate, disabledDate),\n );\n const isDateInBounds = isWithinInterval(selectedDate, bounds);\n\n if (!isDisabledDate && isDateInBounds) {\n setInternalSelectedDate(selectedDate);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDate, because it is disabled or out of bounds.',\n '\\nselectedDate:',\n selectedDate,\n ...(isDisabledDate ? ['\\nselectedDate is disabled'] : []),\n ...(isDateInBounds\n ? []\n : ['\\nselectedDate is outside of bounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n } else {\n setInternalSelectedDate(undefined);\n }\n } else if (type === CalendarType.Multiple) {\n if (selectedDates) {\n const disabledSelectedDates: Date[] = [];\n const datesOutsideOfBounds: Date[] = [];\n\n const filteredDates = selectedDates.filter((date) => {\n if (disabledDates.some((disabledDate) => isSameDay(date, disabledDate))) {\n disabledSelectedDates.push(date);\n return false;\n }\n\n if (!isWithinInterval(date, bounds)) {\n datesOutsideOfBounds.push(date);\n return false;\n }\n\n return true;\n });\n\n if (disabledSelectedDates.length > 0 || datesOutsideOfBounds.length > 0) {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set all selectedDates, because some are disabled or out of bounds.',\n ...(disabledSelectedDates.length > 0\n ? ['\\nselectedDates that are disabled:', disabledSelectedDates]\n : []),\n ...(datesOutsideOfBounds.length > 0\n ? [\n '\\nselectedDates that are outside of bounds:',\n datesOutsideOfBounds,\n 'bounds:',\n { minDate, maxDate },\n ]\n : []),\n );\n }\n\n setInternalSelectedDate(filteredDates);\n } else {\n setInternalSelectedDate([]);\n }\n } else if (type === CalendarType.Interval) {\n if (selectedDateInterval) {\n const intervalIncludesDisabledDate =\n selectedDateInterval.end &&\n disabledDates.some((disabledDate) =>\n isWithinInterval(disabledDate, {\n start: selectedDateInterval.start,\n end: selectedDateInterval.end as Date,\n }),\n );\n\n const intervalIsInBounds =\n isWithinInterval(selectedDateInterval.start, bounds) &&\n (!selectedDateInterval.end ||\n isWithinInterval(selectedDateInterval.end, bounds));\n\n if (!intervalIncludesDisabledDate && intervalIsInBounds) {\n setInternalSelectedDate(selectedDateInterval);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDateInterval, because it includes disabled dates or dates that are out of bounds.',\n '\\nselectedDateInterval:',\n selectedDateInterval,\n ...(intervalIncludesDisabledDate\n ? ['\\ndisabled dates:', disabledDates]\n : []),\n ...(intervalIsInBounds ? [] : ['\\nbounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n }\n }\n }, [type, selectedDate, selectedDates, selectedDateInterval, disabledDates, minDate, maxDate]);\n\n useEffect(() => {\n if (calendarRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries && entries[0]) {\n const observedWidth = entries[0].contentRect.width;\n\n setWidth(observedWidth - 30);\n\n if (observedWidth < 430) {\n setShouldRenderTwoMonths(false);\n } else {\n setShouldRenderTwoMonths(true);\n }\n }\n });\n\n resizeObserver.observe(calendarRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n\n return () => {};\n }, []);\n\n useEffect(() => {\n setCurrentDate((prevDate) =>\n isDateInRange({ minDate, maxDate, currentDate: prevDate || new Date() }),\n );\n }, [maxDate, minDate]);\n\n const handleLeftArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('left');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(-1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleRightArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('right');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleSelect = useCallback(\n (date: Date) => {\n setInternalSelectedDate((prevDate) => {\n let onChangePayload: Date | Date[] | DateInterval | null = null;\n let newInternalSelectedDate: Date | Date[] | DateInterval | undefined;\n\n if (type === CalendarType.Single) {\n onChangePayload = date;\n newInternalSelectedDate = date;\n } else if (type === CalendarType.Multiple) {\n const prevSelectedDates = prevDate as Date[];\n // Selects or unselects date , depending on if it is already selected.\n if (prevSelectedDates.some((d) => isSameDay(d, date))) {\n newInternalSelectedDate = prevSelectedDates.filter(\n (d) => !isSameDay(d, date),\n );\n } else {\n newInternalSelectedDate = [...prevSelectedDates, date];\n }\n\n onChangePayload = newInternalSelectedDate;\n } else if (type === CalendarType.Interval) {\n const prevSelectedDateInterval = prevDate as DateInterval;\n\n const updateInterval = (start: Date, end?: Date): void => {\n const newInterval = { start, end };\n onChangePayload = newInterval;\n newInternalSelectedDate = newInterval;\n };\n\n // Sets first selection as interval start.\n if (!prevSelectedDateInterval) {\n updateInterval(date);\n } else if (prevSelectedDateInterval.start && !prevSelectedDateInterval.end) {\n // Sets second selection as interval start, if it is earlier than the previous interval start.\n // Else sets it as interval end.\n if (date < prevSelectedDateInterval.start) {\n updateInterval(date);\n } else {\n updateInterval(prevSelectedDateInterval.start, date);\n }\n } else {\n // Resets interval if a third date is selected.\n updateInterval(date);\n }\n }\n\n if (typeof onChange === 'function' && onChangePayload) {\n onChange(onChangePayload);\n }\n\n return newInternalSelectedDate;\n });\n },\n [type, onChange],\n );\n\n const handleAnimationFinished = () => {\n setDirection(undefined);\n };\n\n const ShouldShowLeftArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, minDate);\n }, [currentDate, minDate]);\n\n const ShouldShowRightArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, maxDate);\n }, [currentDate, maxDate]);\n\n return (\n <StyledCalendar ref={calendarRef} $isDisabled={isDisabled}>\n {ShouldShowLeftArrow ? (\n <StyledCalendarIconWrapper onClick={handleLeftArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-left']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n {currentDate && (\n <MonthWrapper\n shouldRenderTwo={shouldRenderTwoMonths}\n currentDate={currentDate}\n width={width}\n locale={locale}\n direction={direction}\n onSelect={handleSelect}\n selectedDate={internalSelectedDate}\n highlightedDates={highlightedDates}\n categories={categories}\n onAnimationFinished={handleAnimationFinished}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n showMonthYearPickers={showMonthYearPickers}\n />\n )}\n {ShouldShowRightArrow ? (\n <StyledCalendarIconWrapper onClick={handleRightArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-right']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n </StyledCalendar>\n );\n};\n\nCalendar.displayName = 'Calendar';\n\nexport default Calendar;\n"],"mappings":"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","ignoreList":[]}
@@ -17,6 +17,7 @@ const MonthWrapper = _ref => {
17
17
  isDisabled,
18
18
  minDate,
19
19
  maxDate,
20
+ shouldShowHighlightsInMonthOverlay,
20
21
  type,
21
22
  disabledDates,
22
23
  setCurrentDate,
@@ -43,6 +44,7 @@ const MonthWrapper = _ref => {
43
44
  locale: locale,
44
45
  onSelect: onSelect,
45
46
  highlightedDates: highlightedDates,
47
+ shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
46
48
  categories: categories,
47
49
  selectedDate: selectedDate,
48
50
  minDate: minDate,
@@ -79,6 +81,7 @@ const MonthWrapper = _ref => {
79
81
  hoveringDay,
80
82
  locale,
81
83
  onSelect,
84
+ shouldShowHighlightsInMonthOverlay,
82
85
  maxDate,
83
86
  minDate,
84
87
  month,
@@ -91,7 +94,7 @@ const MonthWrapper = _ref => {
91
94
  }
92
95
  };
93
96
  }));
94
- }, [categories, currentDate, direction, disabledDates, highlightedDates, hoveringDay, locale, onAnimationFinished, onSelect, maxDate, minDate, selectedDate, setCurrentDate, setHoveringDay, showMonthYearPickers, type]);
97
+ }, [categories, currentDate, direction, disabledDates, highlightedDates, hoveringDay, locale, onAnimationFinished, onSelect, maxDate, minDate, selectedDate, setCurrentDate, setHoveringDay, showMonthYearPickers, type, shouldShowHighlightsInMonthOverlay]);
95
98
  const animate = useMemo(() => {
96
99
  if (shouldRenderTwo) {
97
100
  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","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":[]}
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","shouldShowHighlightsInMonthOverlay","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 shouldShowHighlightsInMonthOverlay: boolean;\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 shouldShowHighlightsInMonthOverlay,\n type,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n}) => {\n const [content, setContent] = useState<ReactElement[]>();\n\n const [hoveringDay, setHoveringDay] = useState<Date | null>(null);\n\n const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);\n\n useEffect(() => {\n setContent(() => {\n // Initial render of months\n const items: ReactElement[] = [];\n\n for (let i = -1; i < 3; i++) {\n const date = getNewDate(i, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n items.push(\n <Month\n height={monthHeight}\n key={`${month}-${year}`}\n month={month}\n year={year}\n locale={locale}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n displayIndex={i}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n }\n\n return items;\n });\n }, [monthHeight]);\n\n useEffect(() => {\n // Doesn't update props until animation is completed\n if (direction) return;\n\n setContent((prevState) =>\n (prevState ?? []).map((element, index) => {\n const date = getNewDate(index - 1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n return {\n ...element,\n props: {\n ...element.props,\n categories,\n disabledDates,\n displayIndex: index - 1,\n highlightedDates,\n hoveringDay,\n locale,\n onSelect,\n shouldShowHighlightsInMonthOverlay,\n maxDate,\n minDate,\n month,\n 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 shouldShowHighlightsInMonthOverlay,\n ]);\n\n const animate: MotionProps['animate'] = useMemo(() => {\n if (shouldRenderTwo) {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-100%' };\n default:\n return { x: '-50%' };\n }\n } else {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-200%' };\n default:\n return { x: '-100%' };\n }\n }\n }, [direction, shouldRenderTwo]);\n\n return (\n <StyledMonthWrapper $height={monthHeight} $width={width}>\n <StyledMotionWrapper\n animate={animate}\n $isDisabled={isDisabled}\n transition={{\n type: 'tween',\n duration: !direction ? 0 : 0.2,\n }}\n onAnimationComplete={onAnimationFinished}\n >\n {content}\n </StyledMotionWrapper>\n </StyledMonthWrapper>\n );\n};\n\nMonthWrapper.displayName = 'MonthWrapper';\n\nexport default MonthWrapper;\n"],"mappings":"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","ignoreList":[]}
@@ -15,6 +15,7 @@ const Month = _ref => {
15
15
  height,
16
16
  minDate,
17
17
  maxDate,
18
+ shouldShowHighlightsInMonthOverlay,
18
19
  type,
19
20
  hoveringDay,
20
21
  setHoveringDay,
@@ -43,6 +44,7 @@ const Month = _ref => {
43
44
  month: month,
44
45
  year: year,
45
46
  onSelect: onSelect,
47
+ shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
46
48
  highlightedDates: highlightedDates,
47
49
  minDate: minDate,
48
50
  maxDate: maxDate,
@@ -1 +1 @@
1
- {"version":3,"file":"Month.js","names":["React","MonthYearPickers","DayWrapper","StyledMonth","StyledMonthHead","WeekdayWrapper","Month","_ref","month","year","locale","highlightedDates","selectedDate","onSelect","categories","height","minDate","maxDate","type","hoveringDay","setHoveringDay","disabledDates","setCurrentDate","displayIndex","showMonthYearPickers","createElement","$height","key","displayName"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.tsx"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport React, { FC } from 'react';\nimport type {\n CalendarType,\n Categories,\n DateInterval,\n EMonth,\n HighlightedDates,\n} from '../../../../types/calendar';\nimport MonthYearPickers from '../../month-year-pickers/MonthYearPickers';\nimport DayWrapper from './day-wrapper/DayWrapper';\nimport { StyledMonth, StyledMonthHead } from './Month.styles';\nimport WeekdayWrapper from './weekday-wrapper/WeekdayWrapper';\n\nexport type MonthProps = {\n month: EMonth;\n year: number;\n locale: Locale;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n height: number;\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n displayIndex?: number;\n showMonthYearPickers: boolean;\n};\n\nconst Month: FC<MonthProps> = ({\n month,\n year,\n locale,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n height,\n minDate,\n maxDate,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n setCurrentDate,\n displayIndex,\n showMonthYearPickers,\n}) => (\n <StyledMonth $height={height}>\n <StyledMonthHead>\n <MonthYearPickers\n month={month}\n year={year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n setCurrentDate={setCurrentDate}\n displayIndex={displayIndex}\n showMonthYearPickers={showMonthYearPickers}\n />\n </StyledMonthHead>\n <WeekdayWrapper locale={locale} />\n <DayWrapper\n key={`day-wrapper-${month}`}\n categories={categories}\n selectedDate={selectedDate}\n month={month}\n year={year}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n />\n </StyledMonth>\n);\n\nMonth.displayName = 'Month';\n\nexport default Month;\n"],"mappings":"AACA,OAAOA,KAAK,MAAc,OAAO;AAQjC,OAAOC,gBAAgB,MAAM,2CAA2C;AACxE,OAAOC,UAAU,MAAM,0BAA0B;AACjD,SAASC,WAAW,EAAEC,eAAe,QAAQ,gBAAgB;AAC7D,OAAOC,cAAc,MAAM,kCAAkC;AAsB7D,MAAMC,KAAqB,GAAGC,IAAA;EAAA,IAAC;IAC3BC,KAAK;IACLC,IAAI;IACJC,MAAM;IACNC,gBAAgB;IAChBC,YAAY;IACZC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,IAAI;IACJC,WAAW;IACXC,cAAc;IACdC,aAAa;IACbC,cAAc;IACdC,YAAY;IACZC;EACJ,CAAC,GAAAjB,IAAA;EAAA,oBACGP,KAAA,CAAAyB,aAAA,CAACtB,WAAW;IAACuB,OAAO,EAAEX;EAAO,gBACzBf,KAAA,CAAAyB,aAAA,CAACrB,eAAe,qBACZJ,KAAA,CAAAyB,aAAA,CAACxB,gBAAgB;IACbO,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfM,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBK,cAAc,EAAEA,cAAe;IAC/BC,YAAY,EAAEA,YAAa;IAC3BC,oBAAoB,EAAEA;EAAqB,CAC9C,CACY,CAAC,eAClBxB,KAAA,CAAAyB,aAAA,CAACpB,cAAc;IAACK,MAAM,EAAEA;EAAO,CAAE,CAAC,eAClCV,KAAA,CAAAyB,aAAA,CAACvB,UAAU;IACPyB,GAAG,EAAE,eAAenB,KAAK,EAAG;IAC5BM,UAAU,EAAEA,UAAW;IACvBF,YAAY,EAAEA,YAAa;IAC3BJ,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXI,QAAQ,EAAEA,QAAS;IACnBF,gBAAgB,EAAEA,gBAAiB;IACnCK,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBC,IAAI,EAAEA,IAAK;IACXC,WAAW,EAAEA,WAAY;IACzBC,cAAc,EAAEA,cAAe;IAC/BC,aAAa,EAAEA;EAAc,CAChC,CACQ,CAAC;AAAA,CACjB;AAEDf,KAAK,CAACsB,WAAW,GAAG,OAAO;AAE3B,eAAetB,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"Month.js","names":["React","MonthYearPickers","DayWrapper","StyledMonth","StyledMonthHead","WeekdayWrapper","Month","_ref","month","year","locale","highlightedDates","selectedDate","onSelect","categories","height","minDate","maxDate","shouldShowHighlightsInMonthOverlay","type","hoveringDay","setHoveringDay","disabledDates","setCurrentDate","displayIndex","showMonthYearPickers","createElement","$height","key","displayName"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.tsx"],"sourcesContent":["import type { Locale } from 'date-fns';\nimport React, { FC } from 'react';\nimport type {\n CalendarType,\n Categories,\n DateInterval,\n EMonth,\n HighlightedDates,\n} from '../../../../types/calendar';\nimport MonthYearPickers from '../../month-year-pickers/MonthYearPickers';\nimport DayWrapper from './day-wrapper/DayWrapper';\nimport { StyledMonth, StyledMonthHead } from './Month.styles';\nimport WeekdayWrapper from './weekday-wrapper/WeekdayWrapper';\n\nexport type MonthProps = {\n month: EMonth;\n year: number;\n locale: Locale;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n height: number;\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n displayIndex?: number;\n shouldShowHighlightsInMonthOverlay: boolean;\n showMonthYearPickers: boolean;\n};\n\nconst Month: FC<MonthProps> = ({\n month,\n year,\n locale,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n height,\n minDate,\n maxDate,\n shouldShowHighlightsInMonthOverlay,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n setCurrentDate,\n displayIndex,\n showMonthYearPickers,\n}) => (\n <StyledMonth $height={height}>\n <StyledMonthHead>\n <MonthYearPickers\n month={month}\n year={year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n setCurrentDate={setCurrentDate}\n displayIndex={displayIndex}\n showMonthYearPickers={showMonthYearPickers}\n />\n </StyledMonthHead>\n <WeekdayWrapper locale={locale} />\n <DayWrapper\n key={`day-wrapper-${month}`}\n categories={categories}\n selectedDate={selectedDate}\n month={month}\n year={year}\n onSelect={onSelect}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n highlightedDates={highlightedDates}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n />\n </StyledMonth>\n);\n\nMonth.displayName = 'Month';\n\nexport default Month;\n"],"mappings":"AACA,OAAOA,KAAK,MAAc,OAAO;AAQjC,OAAOC,gBAAgB,MAAM,2CAA2C;AACxE,OAAOC,UAAU,MAAM,0BAA0B;AACjD,SAASC,WAAW,EAAEC,eAAe,QAAQ,gBAAgB;AAC7D,OAAOC,cAAc,MAAM,kCAAkC;AAuB7D,MAAMC,KAAqB,GAAGC,IAAA;EAAA,IAAC;IAC3BC,KAAK;IACLC,IAAI;IACJC,MAAM;IACNC,gBAAgB;IAChBC,YAAY;IACZC,QAAQ;IACRC,UAAU;IACVC,MAAM;IACNC,OAAO;IACPC,OAAO;IACPC,kCAAkC;IAClCC,IAAI;IACJC,WAAW;IACXC,cAAc;IACdC,aAAa;IACbC,cAAc;IACdC,YAAY;IACZC;EACJ,CAAC,GAAAlB,IAAA;EAAA,oBACGP,KAAA,CAAA0B,aAAA,CAACvB,WAAW;IAACwB,OAAO,EAAEZ;EAAO,gBACzBf,KAAA,CAAA0B,aAAA,CAACtB,eAAe,qBACZJ,KAAA,CAAA0B,aAAA,CAACzB,gBAAgB;IACbO,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfM,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBM,cAAc,EAAEA,cAAe;IAC/BC,YAAY,EAAEA,YAAa;IAC3BC,oBAAoB,EAAEA;EAAqB,CAC9C,CACY,CAAC,eAClBzB,KAAA,CAAA0B,aAAA,CAACrB,cAAc;IAACK,MAAM,EAAEA;EAAO,CAAE,CAAC,eAClCV,KAAA,CAAA0B,aAAA,CAACxB,UAAU;IACP0B,GAAG,EAAE,eAAepB,KAAK,EAAG;IAC5BM,UAAU,EAAEA,UAAW;IACvBF,YAAY,EAAEA,YAAa;IAC3BJ,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXI,QAAQ,EAAEA,QAAS;IACnBK,kCAAkC,EAAEA,kCAAmC;IACvEP,gBAAgB,EAAEA,gBAAiB;IACnCK,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBE,IAAI,EAAEA,IAAK;IACXC,WAAW,EAAEA,WAAY;IACzBC,cAAc,EAAEA,cAAe;IAC/BC,aAAa,EAAEA;EAAc,CAChC,CACQ,CAAC;AAAA,CACjB;AAEDhB,KAAK,CAACuB,WAAW,GAAG,OAAO;AAE3B,eAAevB,KAAK","ignoreList":[]}
@@ -16,6 +16,7 @@ const DayWrapper = _ref => {
16
16
  maxDate,
17
17
  type,
18
18
  hoveringDay,
19
+ shouldShowHighlightsInMonthOverlay,
19
20
  setHoveringDay,
20
21
  disabledDates
21
22
  } = _ref;
@@ -49,7 +50,7 @@ const DayWrapper = _ref => {
49
50
  let isIntervalStart = false;
50
51
  let isIntervalEnd = false;
51
52
  let isWithinIntervalSelection = false;
52
- let showHoverEffect = false;
53
+ const showHoverEffect = false;
53
54
  let isDisabled =
54
55
  // Disables dates, that are not between minDate and maxDate.
55
56
  !isWithinInterval(day, {
@@ -104,6 +105,7 @@ const DayWrapper = _ref => {
104
105
  isIntervalEnd: isIntervalEnd,
105
106
  isWithinIntervalSelection: isWithinIntervalSelection,
106
107
  isDisabled: isDisabled,
108
+ shouldShowHighlightsInMonthOverlay: shouldShowHighlightsInMonthOverlay,
107
109
  isSameMonth: isSameMonth(day, dayOfCurrentMonth),
108
110
  onClick: handleDayClick,
109
111
  highlightedDates: highlightedDates,
@@ -111,7 +113,7 @@ const DayWrapper = _ref => {
111
113
  }));
112
114
  });
113
115
  return items;
114
- }, [categories, dayOfCurrentMonth, days, handleDayClick, highlightedDates, selectedDate, minDate, maxDate, type, hoveringDay, disabledDates, setHoveringDay]);
116
+ }, [selectedDate, disabledDates, days, minDate, maxDate, type, hoveringDay, categories, shouldShowHighlightsInMonthOverlay, dayOfCurrentMonth, handleDayClick, highlightedDates, setHoveringDay]);
115
117
  return /*#__PURE__*/React.createElement(StyledDayWrapper, null, dayElements);
116
118
  };
117
119
  DayWrapper.displayName = 'DayWrapper';
@@ -1 +1 @@
1
- {"version":3,"file":"DayWrapper.js","names":["addDays","isAfter","isSameDay","isSameMonth","isWithinInterval","startOfMonth","startOfWeek","React","useCallback","useMemo","CalendarType","findNextDate","Day","StyledDayWrapper","DayWrapper","_ref","month","year","highlightedDates","onSelect","selectedDate","categories","minDate","maxDate","type","hoveringDay","setHoveringDay","disabledDates","dayOfCurrentMonth","Date","days","dateArray","currentDate","startDay","weekStartsOn","i","newDate","push","handleDayClick","date","shouldFireEvent","dayElements","items","start","end","firstDisabledDateAfterStart","forEach","day","isSelected","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","showHoverEffect","isDisabled","some","disabledDate","Single","Multiple","Array","isArray","Interval","createElement","key","toDateString","onClick","displayName"],"sources":["../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.tsx"],"sourcesContent":["import {\n addDays,\n isAfter,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport React, { FC, useCallback, useMemo, type ReactElement } from 'react';\nimport {\n CalendarType,\n type Categories,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate, { weekStartsOn: 1 });\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n let showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n />,\n );\n });\n\n return items;\n }, [\n categories,\n dayOfCurrentMonth,\n days,\n handleDayClick,\n highlightedDates,\n selectedDate,\n minDate,\n maxDate,\n type,\n hoveringDay,\n disabledDates,\n setHoveringDay,\n ]);\n\n return <StyledDayWrapper>{dayElements}</StyledDayWrapper>;\n};\n\nDayWrapper.displayName = 'DayWrapper';\n\nexport default DayWrapper;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DayWrapper.js","names":["addDays","isAfter","isSameDay","isSameMonth","isWithinInterval","startOfMonth","startOfWeek","React","useCallback","useMemo","CalendarType","findNextDate","Day","StyledDayWrapper","DayWrapper","_ref","month","year","highlightedDates","onSelect","selectedDate","categories","minDate","maxDate","type","hoveringDay","shouldShowHighlightsInMonthOverlay","setHoveringDay","disabledDates","dayOfCurrentMonth","Date","days","dateArray","currentDate","startDay","weekStartsOn","i","newDate","push","handleDayClick","date","shouldFireEvent","dayElements","items","start","end","firstDisabledDateAfterStart","forEach","day","isSelected","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","showHoverEffect","isDisabled","some","disabledDate","Single","Multiple","Array","isArray","Interval","createElement","key","toDateString","onClick","displayName"],"sources":["../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.tsx"],"sourcesContent":["import {\n addDays,\n isAfter,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek,\n} from 'date-fns';\nimport React, { FC, useCallback, useMemo, type ReactElement } from 'react';\nimport {\n CalendarType,\n type Categories,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n shouldShowHighlightsInMonthOverlay: boolean;\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,\n type,\n hoveringDay,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n disabledDates,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate, { weekStartsOn: 1 });\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n const showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n />,\n );\n });\n\n return items;\n }, [\n selectedDate,\n disabledDates,\n days,\n minDate,\n maxDate,\n type,\n hoveringDay,\n categories,\n shouldShowHighlightsInMonthOverlay,\n dayOfCurrentMonth,\n handleDayClick,\n highlightedDates,\n setHoveringDay,\n ]);\n\n return <StyledDayWrapper>{dayElements}</StyledDayWrapper>;\n};\n\nDayWrapper.displayName = 'DayWrapper';\n\nexport default DayWrapper;\n"],"mappings":"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","ignoreList":[]}
@@ -14,22 +14,23 @@ const Day = _ref => {
14
14
  isIntervalStart,
15
15
  isIntervalEnd,
16
16
  isWithinIntervalSelection,
17
+ shouldShowHighlightsInMonthOverlay,
17
18
  setHoveringDay
18
19
  } = _ref;
19
20
  const dayRef = useRef(null);
20
21
  const styles = useMemo(() => {
21
- if (!highlightedDates) {
22
+ if (!highlightedDates || !shouldShowHighlightsInMonthOverlay && !isSameMonth) {
22
23
  return undefined;
23
24
  }
24
25
  return highlightedDates.find(highlightedDate => highlightedDate.dates.some(highlighted => isSameDay(highlighted, date)))?.style;
25
- }, [date, highlightedDates, isSameMonth]);
26
+ }, [date, highlightedDates, isSameMonth, shouldShowHighlightsInMonthOverlay]);
26
27
  const categoryElements = useMemo(() => {
27
- if (!categories) return [];
28
+ if (!categories || !shouldShowHighlightsInMonthOverlay && !isSameMonth) return [];
28
29
  return categories.flatMap(category => category.dates.filter(day => isSameDay(day, date)).map(day => /*#__PURE__*/React.createElement(Category, {
29
30
  key: day.getTime() * Math.random(),
30
31
  color: category.color
31
32
  })));
32
- }, [categories, date]);
33
+ }, [categories, date, isSameMonth, shouldShowHighlightsInMonthOverlay]);
33
34
  return /*#__PURE__*/React.createElement(StyledDay, {
34
35
  ref: dayRef,
35
36
  onClick: () => onClick(date, isSameMonth && !isDisabled),
@@ -1 +1 @@
1
- {"version":3,"file":"Day.js","names":["isSameDay","React","useMemo","useRef","Category","StyledDay","StyledDayCategoryWrapper","StyledDayNumber","Day","_ref","date","highlightedDates","categories","isSameMonth","isSelected","onClick","isDisabled","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","setHoveringDay","dayRef","styles","undefined","find","highlightedDate","dates","some","highlighted","style","categoryElements","flatMap","category","filter","day","map","createElement","key","getTime","Math","random","color","ref","$isSameMonth","$isDisabled","$backgroundColor","backgroundColor","$textColor","textColor","onMouseEnter","onMouseLeave","$isSelected","$isIntervalStart","$isIntervalEnd","$isWithinIntervalSelection","getDate","displayName"],"sources":["../../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/day/Day.tsx"],"sourcesContent":["import { isSameDay } from 'date-fns';\nimport React, { FC, useMemo, useRef } from 'react';\nimport type {\n Categories,\n HighlightedDates,\n HighlightedDateStyles,\n} from '../../../../../../types/calendar';\nimport Category from './category/Category';\nimport { StyledDay, StyledDayCategoryWrapper, StyledDayNumber } from './Day.styles';\n\nexport type DayProps = {\n date: Date;\n isSameMonth: boolean;\n isSelected: boolean;\n onClick: (date: Date, shouldFireEvent: boolean) => void;\n highlightedDates?: HighlightedDates[];\n categories?: Categories[];\n isDisabled: boolean;\n isIntervalStart: boolean;\n isIntervalEnd: boolean;\n isWithinIntervalSelection: boolean;\n setHoveringDay: (date: Date | null) => void;\n};\n\nconst Day: FC<DayProps> = ({\n date,\n highlightedDates,\n categories,\n isSameMonth,\n isSelected,\n onClick,\n isDisabled,\n isIntervalStart,\n isIntervalEnd,\n isWithinIntervalSelection,\n setHoveringDay,\n}) => {\n const dayRef = useRef<HTMLDivElement>(null);\n\n const styles: HighlightedDateStyles | undefined = useMemo(() => {\n if (!highlightedDates) {\n return undefined;\n }\n\n return highlightedDates.find((highlightedDate) =>\n highlightedDate.dates.some((highlighted) => isSameDay(highlighted, date)),\n )?.style;\n }, [date, highlightedDates, isSameMonth]);\n\n const categoryElements = useMemo(() => {\n if (!categories) return [];\n\n return categories.flatMap((category) =>\n category.dates\n .filter((day) => isSameDay(day, date))\n .map((day) => (\n <Category key={day.getTime() * Math.random()} color={category.color} />\n )),\n );\n }, [categories, date]);\n\n return (\n <StyledDay\n ref={dayRef}\n onClick={() => onClick(date, isSameMonth && !isDisabled)}\n $isSameMonth={isSameMonth}\n $isDisabled={isDisabled}\n $backgroundColor={styles?.backgroundColor}\n $textColor={styles?.textColor}\n onMouseEnter={() => setHoveringDay(date)}\n onMouseLeave={() => setHoveringDay(null)}\n >\n <StyledDayNumber\n $isSelected={isSelected}\n $isIntervalStart={isIntervalStart}\n $isIntervalEnd={isIntervalEnd}\n $isWithinIntervalSelection={isWithinIntervalSelection}\n >\n {date.getDate()}\n </StyledDayNumber>\n {categoryElements && (\n <StyledDayCategoryWrapper>{categoryElements}</StyledDayCategoryWrapper>\n )}\n </StyledDay>\n );\n};\n\nDay.displayName = 'Day';\n\nexport default Day;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,UAAU;AACpC,OAAOC,KAAK,IAAQC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAMlD,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,SAAS,EAAEC,wBAAwB,EAAEC,eAAe,QAAQ,cAAc;AAgBnF,MAAMC,GAAiB,GAAGC,IAAA,IAYpB;EAAA,IAZqB;IACvBC,IAAI;IACJC,gBAAgB;IAChBC,UAAU;IACVC,WAAW;IACXC,UAAU;IACVC,OAAO;IACPC,UAAU;IACVC,eAAe;IACfC,aAAa;IACbC,yBAAyB;IACzBC;EACJ,CAAC,GAAAX,IAAA;EACG,MAAMY,MAAM,GAAGlB,MAAM,CAAiB,IAAI,CAAC;EAE3C,MAAMmB,MAAyC,GAAGpB,OAAO,CAAC,MAAM;IAC5D,IAAI,CAACS,gBAAgB,EAAE;MACnB,OAAOY,SAAS;IACpB;IAEA,OAAOZ,gBAAgB,CAACa,IAAI,CAAEC,eAAe,IACzCA,eAAe,CAACC,KAAK,CAACC,IAAI,CAAEC,WAAW,IAAK5B,SAAS,CAAC4B,WAAW,EAAElB,IAAI,CAAC,CAC5E,CAAC,EAAEmB,KAAK;EACZ,CAAC,EAAE,CAACnB,IAAI,EAAEC,gBAAgB,EAAEE,WAAW,CAAC,CAAC;EAEzC,MAAMiB,gBAAgB,GAAG5B,OAAO,CAAC,MAAM;IACnC,IAAI,CAACU,UAAU,EAAE,OAAO,EAAE;IAE1B,OAAOA,UAAU,CAACmB,OAAO,CAAEC,QAAQ,IAC/BA,QAAQ,CAACN,KAAK,CACTO,MAAM,CAAEC,GAAG,IAAKlC,SAAS,CAACkC,GAAG,EAAExB,IAAI,CAAC,CAAC,CACrCyB,GAAG,CAAED,GAAG,iBACLjC,KAAA,CAAAmC,aAAA,CAAChC,QAAQ;MAACiC,GAAG,EAAEH,GAAG,CAACI,OAAO,CAAC,CAAC,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAE;MAACC,KAAK,EAAET,QAAQ,CAACS;IAAM,CAAE,CACzE,CACT,CAAC;EACL,CAAC,EAAE,CAAC7B,UAAU,EAAEF,IAAI,CAAC,CAAC;EAEtB,oBACIT,KAAA,CAAAmC,aAAA,CAAC/B,SAAS;IACNqC,GAAG,EAAErB,MAAO;IACZN,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACL,IAAI,EAAEG,WAAW,IAAI,CAACG,UAAU,CAAE;IACzD2B,YAAY,EAAE9B,WAAY;IAC1B+B,WAAW,EAAE5B,UAAW;IACxB6B,gBAAgB,EAAEvB,MAAM,EAAEwB,eAAgB;IAC1CC,UAAU,EAAEzB,MAAM,EAAE0B,SAAU;IAC9BC,YAAY,EAAEA,CAAA,KAAM7B,cAAc,CAACV,IAAI,CAAE;IACzCwC,YAAY,EAAEA,CAAA,KAAM9B,cAAc,CAAC,IAAI;EAAE,gBAEzCnB,KAAA,CAAAmC,aAAA,CAAC7B,eAAe;IACZ4C,WAAW,EAAErC,UAAW;IACxBsC,gBAAgB,EAAEnC,eAAgB;IAClCoC,cAAc,EAAEnC,aAAc;IAC9BoC,0BAA0B,EAAEnC;EAA0B,GAErDT,IAAI,CAAC6C,OAAO,CAAC,CACD,CAAC,EACjBzB,gBAAgB,iBACb7B,KAAA,CAAAmC,aAAA,CAAC9B,wBAAwB,QAAEwB,gBAA2C,CAEnE,CAAC;AAEpB,CAAC;AAEDtB,GAAG,CAACgD,WAAW,GAAG,KAAK;AAEvB,eAAehD,GAAG","ignoreList":[]}
1
+ {"version":3,"file":"Day.js","names":["isSameDay","React","useMemo","useRef","Category","StyledDay","StyledDayCategoryWrapper","StyledDayNumber","Day","_ref","date","highlightedDates","categories","isSameMonth","isSelected","onClick","isDisabled","isIntervalStart","isIntervalEnd","isWithinIntervalSelection","shouldShowHighlightsInMonthOverlay","setHoveringDay","dayRef","styles","undefined","find","highlightedDate","dates","some","highlighted","style","categoryElements","flatMap","category","filter","day","map","createElement","key","getTime","Math","random","color","ref","$isSameMonth","$isDisabled","$backgroundColor","backgroundColor","$textColor","textColor","onMouseEnter","onMouseLeave","$isSelected","$isIntervalStart","$isIntervalEnd","$isWithinIntervalSelection","getDate","displayName"],"sources":["../../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/day/Day.tsx"],"sourcesContent":["import { isSameDay } from 'date-fns';\nimport React, { FC, useMemo, useRef } from 'react';\nimport type {\n Categories,\n HighlightedDates,\n HighlightedDateStyles,\n} from '../../../../../../types/calendar';\nimport Category from './category/Category';\nimport { StyledDay, StyledDayCategoryWrapper, StyledDayNumber } from './Day.styles';\n\nexport type DayProps = {\n date: Date;\n isSameMonth: boolean;\n isSelected: boolean;\n onClick: (date: Date, shouldFireEvent: boolean) => void;\n highlightedDates?: HighlightedDates[];\n categories?: Categories[];\n isDisabled: boolean;\n isIntervalStart: boolean;\n isIntervalEnd: boolean;\n isWithinIntervalSelection: boolean;\n setHoveringDay: (date: Date | null) => void;\n shouldShowHighlightsInMonthOverlay: boolean;\n};\n\nconst Day: FC<DayProps> = ({\n date,\n highlightedDates,\n categories,\n isSameMonth,\n isSelected,\n onClick,\n isDisabled,\n isIntervalStart,\n isIntervalEnd,\n isWithinIntervalSelection,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n}) => {\n const dayRef = useRef<HTMLDivElement>(null);\n\n const styles: HighlightedDateStyles | undefined = useMemo(() => {\n if (!highlightedDates || (!shouldShowHighlightsInMonthOverlay && !isSameMonth)) {\n return undefined;\n }\n\n return highlightedDates.find((highlightedDate) =>\n highlightedDate.dates.some((highlighted) => isSameDay(highlighted, date)),\n )?.style;\n }, [date, highlightedDates, isSameMonth, shouldShowHighlightsInMonthOverlay]);\n\n const categoryElements = useMemo(() => {\n if (!categories || (!shouldShowHighlightsInMonthOverlay && !isSameMonth)) return [];\n\n return categories.flatMap((category) =>\n category.dates\n .filter((day) => isSameDay(day, date))\n .map((day) => (\n <Category key={day.getTime() * Math.random()} color={category.color} />\n )),\n );\n }, [categories, date, isSameMonth, shouldShowHighlightsInMonthOverlay]);\n\n return (\n <StyledDay\n ref={dayRef}\n onClick={() => onClick(date, isSameMonth && !isDisabled)}\n $isSameMonth={isSameMonth}\n $isDisabled={isDisabled}\n $backgroundColor={styles?.backgroundColor}\n $textColor={styles?.textColor}\n onMouseEnter={() => setHoveringDay(date)}\n onMouseLeave={() => setHoveringDay(null)}\n >\n <StyledDayNumber\n $isSelected={isSelected}\n $isIntervalStart={isIntervalStart}\n $isIntervalEnd={isIntervalEnd}\n $isWithinIntervalSelection={isWithinIntervalSelection}\n >\n {date.getDate()}\n </StyledDayNumber>\n {categoryElements && (\n <StyledDayCategoryWrapper>{categoryElements}</StyledDayCategoryWrapper>\n )}\n </StyledDay>\n );\n};\n\nDay.displayName = 'Day';\n\nexport default Day;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,UAAU;AACpC,OAAOC,KAAK,IAAQC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAMlD,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,SAAS,EAAEC,wBAAwB,EAAEC,eAAe,QAAQ,cAAc;AAiBnF,MAAMC,GAAiB,GAAGC,IAAA,IAapB;EAAA,IAbqB;IACvBC,IAAI;IACJC,gBAAgB;IAChBC,UAAU;IACVC,WAAW;IACXC,UAAU;IACVC,OAAO;IACPC,UAAU;IACVC,eAAe;IACfC,aAAa;IACbC,yBAAyB;IACzBC,kCAAkC;IAClCC;EACJ,CAAC,GAAAZ,IAAA;EACG,MAAMa,MAAM,GAAGnB,MAAM,CAAiB,IAAI,CAAC;EAE3C,MAAMoB,MAAyC,GAAGrB,OAAO,CAAC,MAAM;IAC5D,IAAI,CAACS,gBAAgB,IAAK,CAACS,kCAAkC,IAAI,CAACP,WAAY,EAAE;MAC5E,OAAOW,SAAS;IACpB;IAEA,OAAOb,gBAAgB,CAACc,IAAI,CAAEC,eAAe,IACzCA,eAAe,CAACC,KAAK,CAACC,IAAI,CAAEC,WAAW,IAAK7B,SAAS,CAAC6B,WAAW,EAAEnB,IAAI,CAAC,CAC5E,CAAC,EAAEoB,KAAK;EACZ,CAAC,EAAE,CAACpB,IAAI,EAAEC,gBAAgB,EAAEE,WAAW,EAAEO,kCAAkC,CAAC,CAAC;EAE7E,MAAMW,gBAAgB,GAAG7B,OAAO,CAAC,MAAM;IACnC,IAAI,CAACU,UAAU,IAAK,CAACQ,kCAAkC,IAAI,CAACP,WAAY,EAAE,OAAO,EAAE;IAEnF,OAAOD,UAAU,CAACoB,OAAO,CAAEC,QAAQ,IAC/BA,QAAQ,CAACN,KAAK,CACTO,MAAM,CAAEC,GAAG,IAAKnC,SAAS,CAACmC,GAAG,EAAEzB,IAAI,CAAC,CAAC,CACrC0B,GAAG,CAAED,GAAG,iBACLlC,KAAA,CAAAoC,aAAA,CAACjC,QAAQ;MAACkC,GAAG,EAAEH,GAAG,CAACI,OAAO,CAAC,CAAC,GAAGC,IAAI,CAACC,MAAM,CAAC,CAAE;MAACC,KAAK,EAAET,QAAQ,CAACS;IAAM,CAAE,CACzE,CACT,CAAC;EACL,CAAC,EAAE,CAAC9B,UAAU,EAAEF,IAAI,EAAEG,WAAW,EAAEO,kCAAkC,CAAC,CAAC;EAEvE,oBACInB,KAAA,CAAAoC,aAAA,CAAChC,SAAS;IACNsC,GAAG,EAAErB,MAAO;IACZP,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACL,IAAI,EAAEG,WAAW,IAAI,CAACG,UAAU,CAAE;IACzD4B,YAAY,EAAE/B,WAAY;IAC1BgC,WAAW,EAAE7B,UAAW;IACxB8B,gBAAgB,EAAEvB,MAAM,EAAEwB,eAAgB;IAC1CC,UAAU,EAAEzB,MAAM,EAAE0B,SAAU;IAC9BC,YAAY,EAAEA,CAAA,KAAM7B,cAAc,CAACX,IAAI,CAAE;IACzCyC,YAAY,EAAEA,CAAA,KAAM9B,cAAc,CAAC,IAAI;EAAE,gBAEzCpB,KAAA,CAAAoC,aAAA,CAAC9B,eAAe;IACZ6C,WAAW,EAAEtC,UAAW;IACxBuC,gBAAgB,EAAEpC,eAAgB;IAClCqC,cAAc,EAAEpC,aAAc;IAC9BqC,0BAA0B,EAAEpC;EAA0B,GAErDT,IAAI,CAAC8C,OAAO,CAAC,CACD,CAAC,EACjBzB,gBAAgB,iBACb9B,KAAA,CAAAoC,aAAA,CAAC/B,wBAAwB,QAAEyB,gBAA2C,CAEnE,CAAC;AAEpB,CAAC;AAEDvB,GAAG,CAACiD,WAAW,GAAG,KAAK;AAEvB,eAAejD,GAAG","ignoreList":[]}
@@ -31,6 +31,10 @@ interface BaseProps {
31
31
  * An array of dates that should be disabled.
32
32
  */
33
33
  disabledDates?: Date[];
34
+ /**
35
+ * Whether the highlighted dates should be displayed for the greyed month overlay days.
36
+ */
37
+ shouldShowHighlightsInMonthOverlay?: boolean;
34
38
  /**
35
39
  * Shows the month and year pickers, if there are multiple months/years to select from.
36
40
  */
@@ -18,6 +18,7 @@ export type MonthWrapperProps = {
18
18
  type: CalendarType;
19
19
  disabledDates: Date[];
20
20
  setCurrentDate: (date: Date) => void;
21
+ shouldShowHighlightsInMonthOverlay: boolean;
21
22
  showMonthYearPickers: boolean;
22
23
  };
23
24
  declare const MonthWrapper: FC<MonthWrapperProps>;
@@ -18,6 +18,7 @@ export type MonthProps = {
18
18
  disabledDates: Date[];
19
19
  setCurrentDate: (date: Date) => void;
20
20
  displayIndex?: number;
21
+ shouldShowHighlightsInMonthOverlay: boolean;
21
22
  showMonthYearPickers: boolean;
22
23
  };
23
24
  declare const Month: FC<MonthProps>;
@@ -13,6 +13,7 @@ export type DayWrapperProps = {
13
13
  hoveringDay: Date | null;
14
14
  setHoveringDay: (date: Date | null) => void;
15
15
  disabledDates: Date[];
16
+ shouldShowHighlightsInMonthOverlay: boolean;
16
17
  };
17
18
  declare const DayWrapper: FC<DayWrapperProps>;
18
19
  export default DayWrapper;
@@ -12,6 +12,7 @@ export type DayProps = {
12
12
  isIntervalEnd: boolean;
13
13
  isWithinIntervalSelection: boolean;
14
14
  setHoveringDay: (date: Date | null) => void;
15
+ shouldShowHighlightsInMonthOverlay: boolean;
15
16
  };
16
17
  declare const Day: FC<DayProps>;
17
18
  export default Day;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/date",
3
- "version": "5.0.0-beta.898",
3
+ "version": "5.0.0-beta.899",
4
4
  "description": "A set of beautiful React components for developing your own applications with chayns.",
5
5
  "sideEffects": false,
6
6
  "browserslist": [
@@ -83,5 +83,5 @@
83
83
  "publishConfig": {
84
84
  "access": "public"
85
85
  },
86
- "gitHead": "b35e8abea35547d7a6b855c8dc0bc17e7c92ecd1"
86
+ "gitHead": "67f23e6a3906a29c02ea4693e97fcc892c2071cc"
87
87
  }