@chayns-components/date 5.0.0-beta.998 → 5.0.1

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 (130) hide show
  1. package/lib/cjs/components/calendar/Calendar.js +9 -22
  2. package/lib/cjs/components/calendar/Calendar.js.map +1 -1
  3. package/lib/cjs/components/calendar/Calendar.styles.js +7 -1
  4. package/lib/cjs/components/calendar/Calendar.styles.js.map +1 -1
  5. package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js +9 -4
  6. package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
  7. package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.styles.js +2 -2
  8. package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.styles.js.map +1 -1
  9. package/lib/cjs/components/calendar/month-wrapper/month/Month.js +64 -32
  10. package/lib/cjs/components/calendar/month-wrapper/month/Month.js.map +1 -1
  11. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +5 -4
  12. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
  13. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +7 -4
  14. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
  15. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.styles.js +17 -3
  16. package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.styles.js.map +1 -1
  17. package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +1 -2
  18. package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
  19. package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js +4 -3
  20. package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
  21. package/lib/cjs/components/date-info/DateInfo.js +4 -3
  22. package/lib/cjs/components/date-info/DateInfo.js.map +1 -1
  23. package/lib/cjs/components/opening-times/OpeningTimes.js +12 -15
  24. package/lib/cjs/components/opening-times/OpeningTimes.js.map +1 -1
  25. package/lib/cjs/components/opening-times/hint-text/HintText.js +1 -2
  26. package/lib/cjs/components/opening-times/hint-text/HintText.js.map +1 -1
  27. package/lib/cjs/components/opening-times/opening-inputs/OpeningInputs.js +16 -17
  28. package/lib/cjs/components/opening-times/opening-inputs/OpeningInputs.js.map +1 -1
  29. package/lib/cjs/components/opening-times/opening-inputs/OpeningInputs.styles.js +3 -4
  30. package/lib/cjs/components/opening-times/opening-inputs/OpeningInputs.styles.js.map +1 -1
  31. package/lib/cjs/components/opening-times/opening-inputs/opening-input/OpeningInput.js +1 -2
  32. package/lib/cjs/components/opening-times/opening-inputs/opening-input/OpeningInput.js.map +1 -1
  33. package/lib/cjs/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.js +2 -2
  34. package/lib/cjs/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.js.map +1 -1
  35. package/lib/cjs/hooks/useDateInfo.js +3 -1
  36. package/lib/cjs/hooks/useDateInfo.js.map +1 -1
  37. package/lib/cjs/index.js +6 -0
  38. package/lib/cjs/index.js.map +1 -1
  39. package/lib/cjs/types/calendar.js.map +1 -1
  40. package/lib/cjs/types/dateinfo.js +4 -0
  41. package/lib/cjs/types/dateinfo.js.map +1 -1
  42. package/lib/cjs/types/openingTimes.js.map +1 -1
  43. package/lib/cjs/utils/calendar.js.map +1 -1
  44. package/lib/cjs/utils/date.js.map +1 -1
  45. package/lib/cjs/utils/dateInfo.js +52 -28
  46. package/lib/cjs/utils/dateInfo.js.map +1 -1
  47. package/lib/esm/components/calendar/Calendar.js +26 -39
  48. package/lib/esm/components/calendar/Calendar.js.map +1 -1
  49. package/lib/esm/components/calendar/Calendar.styles.js +12 -12
  50. package/lib/esm/components/calendar/Calendar.styles.js.map +1 -1
  51. package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js +28 -23
  52. package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
  53. package/lib/esm/components/calendar/month-wrapper/MonthWrapper.styles.js +7 -13
  54. package/lib/esm/components/calendar/month-wrapper/MonthWrapper.styles.js.map +1 -1
  55. package/lib/esm/components/calendar/month-wrapper/month/Month.js +51 -25
  56. package/lib/esm/components/calendar/month-wrapper/month/Month.js.map +1 -1
  57. package/lib/esm/components/calendar/month-wrapper/month/Month.styles.js +3 -6
  58. package/lib/esm/components/calendar/month-wrapper/month/Month.styles.js.map +1 -1
  59. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +20 -19
  60. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
  61. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +22 -19
  62. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
  63. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.styles.js +51 -53
  64. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.styles.js.map +1 -1
  65. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.js +5 -8
  66. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.js.map +1 -1
  67. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.styles.js +3 -6
  68. package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/category/Category.styles.js.map +1 -1
  69. package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +4 -5
  70. package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
  71. package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.js +3 -6
  72. package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.js.map +1 -1
  73. package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.styles.js +3 -6
  74. package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.styles.js.map +1 -1
  75. package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js +13 -12
  76. package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
  77. package/lib/esm/components/date-info/DateInfo.js +12 -11
  78. package/lib/esm/components/date-info/DateInfo.js.map +1 -1
  79. package/lib/esm/components/opening-times/OpeningTimes.js +34 -44
  80. package/lib/esm/components/opening-times/OpeningTimes.js.map +1 -1
  81. package/lib/esm/components/opening-times/OpeningTimes.styles.js +3 -6
  82. package/lib/esm/components/opening-times/OpeningTimes.styles.js.map +1 -1
  83. package/lib/esm/components/opening-times/hint-text/HintText.js +3 -4
  84. package/lib/esm/components/opening-times/hint-text/HintText.js.map +1 -1
  85. package/lib/esm/components/opening-times/hint-text/HintText.styles.js +6 -12
  86. package/lib/esm/components/opening-times/hint-text/HintText.styles.js.map +1 -1
  87. package/lib/esm/components/opening-times/opening-inputs/OpeningInputs.js +21 -26
  88. package/lib/esm/components/opening-times/opening-inputs/OpeningInputs.js.map +1 -1
  89. package/lib/esm/components/opening-times/opening-inputs/OpeningInputs.styles.js +8 -14
  90. package/lib/esm/components/opening-times/opening-inputs/OpeningInputs.styles.js.map +1 -1
  91. package/lib/esm/components/opening-times/opening-inputs/opening-input/OpeningInput.js +11 -12
  92. package/lib/esm/components/opening-times/opening-inputs/opening-input/OpeningInput.js.map +1 -1
  93. package/lib/esm/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.js +7 -13
  94. package/lib/esm/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.js.map +1 -1
  95. package/lib/esm/hooks/useDateInfo.js +13 -12
  96. package/lib/esm/hooks/useDateInfo.js.map +1 -1
  97. package/lib/esm/index.js +1 -1
  98. package/lib/esm/index.js.map +1 -1
  99. package/lib/esm/types/calendar.js.map +1 -1
  100. package/lib/esm/types/dateinfo.js +1 -1
  101. package/lib/esm/types/dateinfo.js.map +1 -1
  102. package/lib/esm/types/openingTimes.js.map +1 -1
  103. package/lib/esm/utils/calendar.js +10 -12
  104. package/lib/esm/utils/calendar.js.map +1 -1
  105. package/lib/esm/utils/date.js.map +1 -1
  106. package/lib/esm/utils/dateInfo.js +65 -45
  107. package/lib/esm/utils/dateInfo.js.map +1 -1
  108. package/lib/types/components/calendar/Calendar.d.ts +5 -1
  109. package/lib/types/components/calendar/Calendar.styles.d.ts +1 -0
  110. package/lib/types/components/calendar/month-wrapper/MonthWrapper.d.ts +5 -2
  111. package/lib/types/components/calendar/month-wrapper/MonthWrapper.styles.d.ts +2 -263
  112. package/lib/types/components/calendar/month-wrapper/month/Month.d.ts +5 -2
  113. package/lib/types/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.d.ts +2 -1
  114. package/lib/types/components/calendar/month-wrapper/month/day-wrapper/day/Day.d.ts +2 -1
  115. package/lib/types/components/calendar/month-wrapper/month/day-wrapper/day/Day.styles.d.ts +5 -1
  116. package/lib/types/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.d.ts +1 -1
  117. package/lib/types/components/calendar/month-wrapper/month/weekday-wrapper/weekday/Weekday.styles.d.ts +1 -1
  118. package/lib/types/components/calendar/month-year-pickers/MonthYearPickers.d.ts +1 -1
  119. package/lib/types/components/opening-times/OpeningTimes.d.ts +2 -6
  120. package/lib/types/components/opening-times/OpeningTimes.styles.d.ts +1 -1
  121. package/lib/types/components/opening-times/hint-text/HintText.styles.d.ts +1 -1
  122. package/lib/types/components/opening-times/opening-inputs/OpeningInputs.styles.d.ts +3 -264
  123. package/lib/types/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.d.ts +2 -263
  124. package/lib/types/hooks/useDateInfo.d.ts +1 -1
  125. package/lib/types/index.d.ts +3 -3
  126. package/lib/types/types/dateinfo.d.ts +14 -5
  127. package/lib/types/types/openingTimes.d.ts +2 -0
  128. package/lib/types/utils/calendar.d.ts +1 -1
  129. package/lib/types/utils/dateInfo.d.ts +6 -1
  130. package/package.json +18 -17
@@ -2,28 +2,30 @@ import React, { useEffect, useMemo, useState } from 'react';
2
2
  import { getMonthAndYear, getNewDate } from '../../../utils/calendar';
3
3
  import Month from './month/Month';
4
4
  import { StyledMonthWrapper, StyledMotionWrapper } from './MonthWrapper.styles';
5
- const MonthWrapper = _ref => {
6
- let {
7
- locale,
8
- currentDate,
9
- highlightedDates,
10
- selectedDate,
11
- onSelect,
12
- categories,
13
- direction,
14
- onAnimationFinished,
15
- shouldRenderTwo,
16
- width,
17
- customThumbColors,
18
- isDisabled,
19
- minDate,
20
- maxDate,
21
- shouldShowHighlightsInMonthOverlay,
22
- type,
23
- disabledDates,
24
- setCurrentDate,
25
- showMonthYearPickers
26
- } = _ref;
5
+ const MonthWrapper = ({
6
+ locale,
7
+ currentDate,
8
+ highlightedDates,
9
+ selectedDate,
10
+ onSelect,
11
+ categories,
12
+ direction,
13
+ onAnimationFinished,
14
+ shouldRenderTwo,
15
+ width,
16
+ customThumbColors,
17
+ isDisabled,
18
+ minDate,
19
+ maxDate,
20
+ shouldShowHighlightsInMonthOverlay,
21
+ type,
22
+ disabledDates,
23
+ setCurrentDate,
24
+ showMonthYearPickers,
25
+ handleLeftArrowClick,
26
+ handleRightArrowClick,
27
+ currentDateBackgroundColor
28
+ }) => {
27
29
  const [content, setContent] = useState();
28
30
  const [hoveringDay, setHoveringDay] = useState(null);
29
31
  const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);
@@ -57,7 +59,10 @@ const MonthWrapper = _ref => {
57
59
  disabledDates: disabledDates,
58
60
  setCurrentDate: setCurrentDate,
59
61
  displayIndex: i,
60
- showMonthYearPickers: showMonthYearPickers
62
+ showMonthYearPickers: showMonthYearPickers,
63
+ handleLeftArrowClick: handleLeftArrowClick,
64
+ handleRightArrowClick: handleRightArrowClick,
65
+ currentDateBackgroundColor: currentDateBackgroundColor
61
66
  }));
62
67
  }
63
68
  return items;
@@ -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","customThumbColors","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 { MotionProps } from 'framer-motion';\nimport React, { FC, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport {\n CalendarType,\n Categories, CustomThumbColors,\n DateInterval,\n HighlightedDates,\n} from '../../../types/calendar';\nimport { getMonthAndYear, getNewDate } from '../../../utils/calendar';\nimport Month from './month/Month';\nimport { StyledMonthWrapper, StyledMotionWrapper } from './MonthWrapper.styles';\nimport {Language} from \"chayns-api\";\n\nexport type MonthWrapperProps = {\n locale: Language;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n currentDate: Date;\n direction?: 'left' | 'right';\n onAnimationFinished: () => void;\n shouldRenderTwo: boolean;\n width: number;\n isDisabled?: boolean;\n maxDate: Date;\n minDate: Date;\n type: CalendarType;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n shouldShowHighlightsInMonthOverlay: boolean;\n showMonthYearPickers: boolean;\n customThumbColors?: CustomThumbColors;\n};\n\nconst MonthWrapper: FC<MonthWrapperProps> = ({\n locale,\n currentDate,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n direction,\n onAnimationFinished,\n shouldRenderTwo,\n width,customThumbColors,\n isDisabled,\n minDate,\n maxDate,\n shouldShowHighlightsInMonthOverlay,\n type,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n}) => {\n const [content, setContent] = useState<ReactElement[]>();\n\n const [hoveringDay, setHoveringDay] = useState<Date | null>(null);\n\n const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);\n\n useEffect(() => {\n setContent(() => {\n // Initial render of months\n const items: ReactElement[] = [];\n\n for (let i = -1; i < 3; i++) {\n const date = getNewDate(i, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n items.push(\n <Month\n height={monthHeight}\n key={`${month}-${year}`}\n month={month}\n year={year}\n locale={locale}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n customThumbColors={customThumbColors}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n displayIndex={i}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n }\n\n return items;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [monthHeight]);\n\n useEffect(() => {\n // Doesn't update props until animation is completed\n if (direction) return;\n\n setContent((prevState) =>\n (prevState ?? []).map((element, index) => {\n const date = getNewDate(index - 1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n return {\n ...element,\n props: {\n ...element.props,\n categories,\n disabledDates,\n displayIndex: index - 1,\n highlightedDates,\n hoveringDay,\n locale,\n onSelect,\n shouldShowHighlightsInMonthOverlay,\n maxDate,\n minDate,\n month,\n customThumbColors,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n year,\n } as ReactElement,\n };\n }),\n );\n }, [\n customThumbColors,\n categories,\n currentDate,\n direction,\n disabledDates,\n highlightedDates,\n hoveringDay,\n locale,\n onAnimationFinished,\n onSelect,\n maxDate,\n minDate,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n shouldShowHighlightsInMonthOverlay,\n ]);\n\n const animate: MotionProps['animate'] = useMemo(() => {\n if (shouldRenderTwo) {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-100%' };\n default:\n return { x: '-50%' };\n }\n } else {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-200%' };\n default:\n return { x: '-100%' };\n }\n }\n }, [direction, shouldRenderTwo]);\n\n return (\n <StyledMonthWrapper $height={monthHeight} $width={width}>\n <StyledMotionWrapper\n animate={animate}\n $isDisabled={isDisabled}\n transition={{\n type: 'tween',\n duration: !direction ? 0 : 0.2,\n }}\n onAnimationComplete={onAnimationFinished}\n >\n {content}\n </StyledMotionWrapper>\n </StyledMonthWrapper>\n );\n};\n\nMonthWrapper.displayName = 'MonthWrapper';\n\nexport default MonthWrapper;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MonthWrapper.js","names":["React","useEffect","useMemo","useState","getMonthAndYear","getNewDate","Month","StyledMonthWrapper","StyledMotionWrapper","MonthWrapper","locale","currentDate","highlightedDates","selectedDate","onSelect","categories","direction","onAnimationFinished","shouldRenderTwo","width","customThumbColors","isDisabled","minDate","maxDate","shouldShowHighlightsInMonthOverlay","type","disabledDates","setCurrentDate","showMonthYearPickers","handleLeftArrowClick","handleRightArrowClick","currentDateBackgroundColor","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 { Language } from 'chayns-api';\nimport type { MotionProps } from 'motion/react';\nimport React, { FC, useEffect, useMemo, useState, type ReactElement, CSSProperties } from 'react';\nimport {\n CalendarType,\n Categories,\n CustomThumbColors,\n DateInterval,\n HighlightedDates,\n} from '../../../types/calendar';\nimport { getMonthAndYear, getNewDate } from '../../../utils/calendar';\nimport Month from './month/Month';\nimport { StyledMonthWrapper, StyledMotionWrapper } from './MonthWrapper.styles';\n\nexport type MonthWrapperProps = {\n locale: Language;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n currentDate: Date;\n direction?: 'left' | 'right';\n onAnimationFinished: () => void;\n shouldRenderTwo: boolean;\n width: number;\n isDisabled?: boolean;\n maxDate: Date;\n minDate: Date;\n type: CalendarType;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n shouldShowHighlightsInMonthOverlay: boolean;\n showMonthYearPickers: boolean;\n customThumbColors?: CustomThumbColors;\n handleLeftArrowClick: () => void;\n handleRightArrowClick: () => void;\n currentDateBackgroundColor?: CSSProperties['backgroundColor'];\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 customThumbColors,\n isDisabled,\n minDate,\n maxDate,\n shouldShowHighlightsInMonthOverlay,\n type,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n handleLeftArrowClick,\n handleRightArrowClick,\n currentDateBackgroundColor,\n}) => {\n const [content, setContent] = useState<ReactElement[]>();\n\n const [hoveringDay, setHoveringDay] = useState<Date | null>(null);\n\n const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);\n\n useEffect(() => {\n setContent(() => {\n // Initial render of months\n const items: ReactElement[] = [];\n\n for (let i = -1; i < 3; i++) {\n const date = getNewDate(i, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n items.push(\n <Month\n height={monthHeight}\n key={`${month}-${year}`}\n month={month}\n year={year}\n locale={locale}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n customThumbColors={customThumbColors}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n displayIndex={i}\n showMonthYearPickers={showMonthYearPickers}\n handleLeftArrowClick={handleLeftArrowClick}\n handleRightArrowClick={handleRightArrowClick}\n currentDateBackgroundColor={currentDateBackgroundColor}\n />,\n );\n }\n\n return items;\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [monthHeight]);\n\n useEffect(() => {\n // Doesn't update props until animation is completed\n if (direction) return;\n\n setContent((prevState) =>\n (prevState ?? []).map((element, index) => {\n const date = getNewDate(index - 1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n return {\n ...element,\n props: {\n ...element.props,\n categories,\n disabledDates,\n displayIndex: index - 1,\n highlightedDates,\n hoveringDay,\n locale,\n onSelect,\n shouldShowHighlightsInMonthOverlay,\n maxDate,\n minDate,\n month,\n customThumbColors,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n year,\n } as ReactElement,\n };\n }),\n );\n }, [\n customThumbColors,\n categories,\n currentDate,\n direction,\n disabledDates,\n highlightedDates,\n hoveringDay,\n locale,\n onAnimationFinished,\n onSelect,\n maxDate,\n minDate,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n shouldShowHighlightsInMonthOverlay,\n ]);\n\n const animate: MotionProps['animate'] = useMemo(() => {\n if (shouldRenderTwo) {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-100%' };\n default:\n return { x: '-50%' };\n }\n } else {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-200%' };\n default:\n return { x: '-100%' };\n }\n }\n }, [direction, shouldRenderTwo]);\n\n return (\n <StyledMonthWrapper $height={monthHeight} $width={width}>\n <StyledMotionWrapper\n animate={animate}\n $isDisabled={isDisabled}\n transition={{\n type: 'tween',\n duration: !direction ? 0 : 0.2,\n }}\n onAnimationComplete={onAnimationFinished}\n >\n {content}\n </StyledMotionWrapper>\n </StyledMonthWrapper>\n );\n};\n\nMonthWrapper.displayName = 'MonthWrapper';\n\nexport default MonthWrapper;\n"],"mappings":"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","ignoreList":[]}
@@ -1,19 +1,13 @@
1
- import { motion } from 'framer-motion';
1
+ import { motion } from 'motion/react';
2
2
  import styled from 'styled-components';
3
3
  export const StyledMonthWrapper = styled.div`
4
- width: ${_ref => {
5
- let {
6
- $width
7
- } = _ref;
8
- return $width;
9
- }}px;
4
+ width: ${({
5
+ $width
6
+ }) => $width}px;
10
7
  overflow-x: clip;
11
- height: ${_ref2 => {
12
- let {
13
- $height
14
- } = _ref2;
15
- return $height;
16
- }}px;
8
+ height: ${({
9
+ $height
10
+ }) => $height}px;
17
11
  `;
18
12
  export const StyledMotionWrapper = styled(motion.div)`
19
13
  display: flex;
@@ -1 +1 @@
1
- {"version":3,"file":"MonthWrapper.styles.js","names":["motion","styled","StyledMonthWrapper","div","_ref","$width","_ref2","$height","StyledMotionWrapper"],"sources":["../../../../../src/components/calendar/month-wrapper/MonthWrapper.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport { motion } from 'framer-motion';\nimport styled from 'styled-components';\n\ntype StyledMonthWrapperProps = WithTheme<{ $height: number; $width: number }>;\n\nexport const StyledMonthWrapper = styled.div<StyledMonthWrapperProps>`\n width: ${({ $width }) => $width}px;\n overflow-x: clip;\n height: ${({ $height }) => $height}px;\n`;\n\ntype StyledMotionWrapperProps = { $isDisabled?: boolean };\n\nexport const StyledMotionWrapper = styled(motion.div)<StyledMotionWrapperProps>`\n display: flex;\n height: 100%;\n`;\n"],"mappings":"AACA,SAASA,MAAM,QAAQ,eAAe;AACtC,OAAOC,MAAM,MAAM,mBAAmB;AAItC,OAAO,MAAMC,kBAAkB,GAAGD,MAAM,CAACE,GAA4B;AACrE,aAAaC,IAAA;EAAA,IAAC;IAAEC;EAAO,CAAC,GAAAD,IAAA;EAAA,OAAKC,MAAM;AAAA;AACnC;AACA,cAAcC,KAAA;EAAA,IAAC;IAAEC;EAAQ,CAAC,GAAAD,KAAA;EAAA,OAAKC,OAAO;AAAA;AACtC,CAAC;AAID,OAAO,MAAMC,mBAAmB,GAAGP,MAAM,CAACD,MAAM,CAACG,GAAG,CAA2B;AAC/E;AACA;AACA,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"MonthWrapper.styles.js","names":["motion","styled","StyledMonthWrapper","div","$width","$height","StyledMotionWrapper"],"sources":["../../../../../src/components/calendar/month-wrapper/MonthWrapper.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport { motion } from 'motion/react';\nimport styled from 'styled-components';\n\ntype StyledMonthWrapperProps = WithTheme<{ $height: number; $width: number }>;\n\nexport const StyledMonthWrapper = styled.div<StyledMonthWrapperProps>`\n width: ${({ $width }) => $width}px;\n overflow-x: clip;\n height: ${({ $height }) => $height}px;\n`;\n\ntype StyledMotionWrapperProps = { $isDisabled?: boolean };\n\nexport const StyledMotionWrapper = styled(motion.div)<StyledMotionWrapperProps>`\n display: flex;\n height: 100%;\n`;\n"],"mappings":"AACA,SAASA,MAAM,QAAQ,cAAc;AACrC,OAAOC,MAAM,MAAM,mBAAmB;AAItC,OAAO,MAAMC,kBAAkB,GAAGD,MAAM,CAACE,GAA4B;AACrE,aAAa,CAAC;EAAEC;AAAO,CAAC,KAAKA,MAAM;AACnC;AACA,cAAc,CAAC;EAAEC;AAAQ,CAAC,KAAKA,OAAO;AACtC,CAAC;AAID,OAAO,MAAMC,mBAAmB,GAAGL,MAAM,CAACD,MAAM,CAACG,GAAG,CAA2B;AAC/E;AACA;AACA,CAAC","ignoreList":[]}
@@ -1,32 +1,57 @@
1
- import React from 'react';
1
+ import React, { useState } from 'react';
2
2
  import MonthYearPickers from '../../month-year-pickers/MonthYearPickers';
3
3
  import DayWrapper from './day-wrapper/DayWrapper';
4
4
  import { StyledMonth, StyledMonthHead } from './Month.styles';
5
5
  import WeekdayWrapper from './weekday-wrapper/WeekdayWrapper';
6
- const Month = _ref => {
7
- let {
8
- month,
9
- year,
10
- locale,
11
- highlightedDates,
12
- selectedDate,
13
- onSelect,
14
- categories,
15
- height,
16
- minDate,
17
- maxDate,
18
- customThumbColors,
19
- shouldShowHighlightsInMonthOverlay,
20
- type,
21
- hoveringDay,
22
- setHoveringDay,
23
- disabledDates,
24
- setCurrentDate,
25
- displayIndex,
26
- showMonthYearPickers
27
- } = _ref;
6
+ const minSwipeDistance = 50;
7
+ const Month = ({
8
+ month,
9
+ year,
10
+ locale,
11
+ highlightedDates,
12
+ selectedDate,
13
+ onSelect,
14
+ categories,
15
+ height,
16
+ minDate,
17
+ maxDate,
18
+ customThumbColors,
19
+ shouldShowHighlightsInMonthOverlay,
20
+ type,
21
+ hoveringDay,
22
+ setHoveringDay,
23
+ disabledDates,
24
+ setCurrentDate,
25
+ displayIndex,
26
+ showMonthYearPickers,
27
+ handleLeftArrowClick,
28
+ handleRightArrowClick,
29
+ currentDateBackgroundColor
30
+ }) => {
31
+ const [touchStart, setTouchStart] = useState();
32
+ const [touchEnd, setTouchEnd] = useState();
33
+ const onTouchStart = e => {
34
+ setTouchEnd(undefined);
35
+ setTouchStart(e.targetTouches[0]?.clientX);
36
+ };
37
+ const onTouchMove = e => {
38
+ setTouchEnd(e.targetTouches[0]?.clientX);
39
+ };
40
+ const onTouchEnd = () => {
41
+ if (!touchStart || !touchEnd) return;
42
+ const distance = touchStart - touchEnd;
43
+ if (distance < -minSwipeDistance) {
44
+ handleLeftArrowClick();
45
+ }
46
+ if (distance > minSwipeDistance) {
47
+ handleRightArrowClick();
48
+ }
49
+ };
28
50
  return /*#__PURE__*/React.createElement(StyledMonth, {
29
- $height: height
51
+ $height: height,
52
+ onTouchStart: onTouchStart,
53
+ onTouchMove: onTouchMove,
54
+ onTouchEnd: onTouchEnd
30
55
  }, /*#__PURE__*/React.createElement(StyledMonthHead, null, /*#__PURE__*/React.createElement(MonthYearPickers, {
31
56
  month: month,
32
57
  year: year,
@@ -53,7 +78,8 @@ const Month = _ref => {
53
78
  type: type,
54
79
  hoveringDay: hoveringDay,
55
80
  setHoveringDay: setHoveringDay,
56
- disabledDates: disabledDates
81
+ disabledDates: disabledDates,
82
+ currentDateBackgroundColor: currentDateBackgroundColor
57
83
  }));
58
84
  };
59
85
  Month.displayName = 'Month';
@@ -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","customThumbColors","shouldShowHighlightsInMonthOverlay","type","hoveringDay","setHoveringDay","disabledDates","setCurrentDate","displayIndex","showMonthYearPickers","createElement","$height","key","displayName"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.tsx"],"sourcesContent":["import React, { FC } from 'react';\nimport {\n CalendarType,\n Categories, CustomThumbColors,\n DateInterval,\n EMonth,\n HighlightedDates,\n} from '../../../../types/calendar';\nimport MonthYearPickers from '../../month-year-pickers/MonthYearPickers';\nimport DayWrapper from './day-wrapper/DayWrapper';\nimport { StyledMonth, StyledMonthHead } from './Month.styles';\nimport WeekdayWrapper from './weekday-wrapper/WeekdayWrapper';\nimport {Language} from \"chayns-api\";\n\nexport type MonthProps = {\n month: EMonth;\n year: number;\n locale: Language;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n height: number;\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n displayIndex?: number;\n shouldShowHighlightsInMonthOverlay: boolean;\n customThumbColors?: CustomThumbColors;\n showMonthYearPickers: boolean;\n};\n\nconst Month: FC<MonthProps> = ({\n month,\n year,\n locale,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n height,\n minDate,\n maxDate,customThumbColors,\n shouldShowHighlightsInMonthOverlay,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n setCurrentDate,\n displayIndex,\n showMonthYearPickers,\n}) => (\n <StyledMonth $height={height}>\n <StyledMonthHead>\n <MonthYearPickers\n month={month}\n year={year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n setCurrentDate={setCurrentDate}\n displayIndex={displayIndex}\n showMonthYearPickers={showMonthYearPickers}\n />\n </StyledMonthHead>\n <WeekdayWrapper locale={locale} />\n <DayWrapper\n key={`day-wrapper-${month}`}\n categories={categories}\n selectedDate={selectedDate}\n customThumbColors={customThumbColors}\n month={month}\n year={year}\n onSelect={onSelect}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n highlightedDates={highlightedDates}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n />\n </StyledMonth>\n);\n\nMonth.displayName = 'Month';\n\nexport default Month;\n"],"mappings":"AAAA,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;AAyB7D,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;IAACC,iBAAiB;IACzBC,kCAAkC;IAClCC,IAAI;IACJC,WAAW;IACXC,cAAc;IACdC,aAAa;IACbC,cAAc;IACdC,YAAY;IACZC;EACJ,CAAC,GAAAnB,IAAA;EAAA,oBACGP,KAAA,CAAA2B,aAAA,CAACxB,WAAW;IAACyB,OAAO,EAAEb;EAAO,gBACzBf,KAAA,CAAA2B,aAAA,CAACvB,eAAe,qBACZJ,KAAA,CAAA2B,aAAA,CAAC1B,gBAAgB;IACbO,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXC,MAAM,EAAEA,MAAO;IACfM,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBO,cAAc,EAAEA,cAAe;IAC/BC,YAAY,EAAEA,YAAa;IAC3BC,oBAAoB,EAAEA;EAAqB,CAC9C,CACY,CAAC,eAClB1B,KAAA,CAAA2B,aAAA,CAACtB,cAAc;IAACK,MAAM,EAAEA;EAAO,CAAE,CAAC,eAClCV,KAAA,CAAA2B,aAAA,CAACzB,UAAU;IACP2B,GAAG,EAAE,eAAerB,KAAK,EAAG;IAC5BM,UAAU,EAAEA,UAAW;IACvBF,YAAY,EAAEA,YAAa;IAC3BM,iBAAiB,EAAEA,iBAAkB;IACrCV,KAAK,EAAEA,KAAM;IACbC,IAAI,EAAEA,IAAK;IACXI,QAAQ,EAAEA,QAAS;IACnBM,kCAAkC,EAAEA,kCAAmC;IACvER,gBAAgB,EAAEA,gBAAiB;IACnCK,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBG,IAAI,EAAEA,IAAK;IACXC,WAAW,EAAEA,WAAY;IACzBC,cAAc,EAAEA,cAAe;IAC/BC,aAAa,EAAEA;EAAc,CAChC,CACQ,CAAC;AAAA,CACjB;AAEDjB,KAAK,CAACwB,WAAW,GAAG,OAAO;AAE3B,eAAexB,KAAK","ignoreList":[]}
1
+ {"version":3,"file":"Month.js","names":["React","useState","MonthYearPickers","DayWrapper","StyledMonth","StyledMonthHead","WeekdayWrapper","minSwipeDistance","Month","month","year","locale","highlightedDates","selectedDate","onSelect","categories","height","minDate","maxDate","customThumbColors","shouldShowHighlightsInMonthOverlay","type","hoveringDay","setHoveringDay","disabledDates","setCurrentDate","displayIndex","showMonthYearPickers","handleLeftArrowClick","handleRightArrowClick","currentDateBackgroundColor","touchStart","setTouchStart","touchEnd","setTouchEnd","onTouchStart","e","undefined","targetTouches","clientX","onTouchMove","onTouchEnd","distance","createElement","$height","key","displayName"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.tsx"],"sourcesContent":["import React, { CSSProperties, FC, TouchEvent, useState } from 'react';\nimport {\n CalendarType,\n Categories,\n CustomThumbColors,\n DateInterval,\n EMonth,\n HighlightedDates,\n} from '../../../../types/calendar';\nimport MonthYearPickers from '../../month-year-pickers/MonthYearPickers';\nimport DayWrapper from './day-wrapper/DayWrapper';\nimport { StyledMonth, StyledMonthHead } from './Month.styles';\nimport WeekdayWrapper from './weekday-wrapper/WeekdayWrapper';\nimport { Language } from 'chayns-api';\n\nexport type MonthProps = {\n month: EMonth;\n year: number;\n locale: Language;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n height: number;\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n displayIndex?: number;\n shouldShowHighlightsInMonthOverlay: boolean;\n customThumbColors?: CustomThumbColors;\n showMonthYearPickers: boolean;\n handleLeftArrowClick: () => void;\n handleRightArrowClick: () => void;\n currentDateBackgroundColor?: CSSProperties['backgroundColor'];\n};\n\nconst minSwipeDistance = 50;\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 customThumbColors,\n shouldShowHighlightsInMonthOverlay,\n type,\n hoveringDay,\n setHoveringDay,\n disabledDates,\n setCurrentDate,\n displayIndex,\n showMonthYearPickers,\n handleLeftArrowClick,\n handleRightArrowClick,\n currentDateBackgroundColor,\n}) => {\n const [touchStart, setTouchStart] = useState<undefined | number>();\n const [touchEnd, setTouchEnd] = useState<undefined | number>();\n\n const onTouchStart = (e: TouchEvent<HTMLDivElement>) => {\n setTouchEnd(undefined);\n setTouchStart(e.targetTouches[0]?.clientX);\n };\n\n const onTouchMove = (e: TouchEvent<HTMLDivElement>) => {\n setTouchEnd(e.targetTouches[0]?.clientX);\n };\n\n const onTouchEnd = () => {\n if (!touchStart || !touchEnd) return;\n const distance = touchStart - touchEnd;\n if (distance < -minSwipeDistance) {\n handleLeftArrowClick();\n }\n if (distance > minSwipeDistance) {\n handleRightArrowClick();\n }\n };\n\n return (\n <StyledMonth\n $height={height}\n onTouchStart={onTouchStart}\n onTouchMove={onTouchMove}\n onTouchEnd={onTouchEnd}\n >\n <StyledMonthHead>\n <MonthYearPickers\n month={month}\n year={year}\n locale={locale}\n minDate={minDate}\n maxDate={maxDate}\n setCurrentDate={setCurrentDate}\n displayIndex={displayIndex}\n showMonthYearPickers={showMonthYearPickers}\n />\n </StyledMonthHead>\n <WeekdayWrapper locale={locale} />\n <DayWrapper\n key={`day-wrapper-${month}`}\n categories={categories}\n selectedDate={selectedDate}\n customThumbColors={customThumbColors}\n month={month}\n year={year}\n onSelect={onSelect}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n highlightedDates={highlightedDates}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n currentDateBackgroundColor={currentDateBackgroundColor}\n />\n </StyledMonth>\n );\n};\n\nMonth.displayName = 'Month';\n\nexport default Month;\n"],"mappings":"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","ignoreList":[]}
@@ -1,11 +1,8 @@
1
1
  import styled from 'styled-components';
2
2
  export const StyledMonth = styled.div`
3
- height: ${_ref => {
4
- let {
5
- $height
6
- } = _ref;
7
- return $height;
8
- }}px;
3
+ height: ${({
4
+ $height
5
+ }) => $height}px;
9
6
  aspect-ratio: 1;
10
7
  `;
11
8
  export const StyledMonthHead = styled.div`
@@ -1 +1 @@
1
- {"version":3,"file":"Month.styles.js","names":["styled","StyledMonth","div","_ref","$height","StyledMonthHead","StyledMonthName"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\n\ntype StyledMonthProps = WithTheme<{ $height: number }>;\n\nexport const StyledMonth = styled.div<StyledMonthProps>`\n height: ${({ $height }) => $height}px;\n aspect-ratio: 1;\n`;\n\nexport const StyledMonthHead = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n column-gap: 7px;\n`;\n\nexport const StyledMonthName = styled.div`\n font-weight: bold;\n text-align: center;\n user-select: none;\n`;\n"],"mappings":"AACA,OAAOA,MAAM,MAAM,mBAAmB;AAItC,OAAO,MAAMC,WAAW,GAAGD,MAAM,CAACE,GAAqB;AACvD,cAAcC,IAAA;EAAA,IAAC;IAAEC;EAAQ,CAAC,GAAAD,IAAA;EAAA,OAAKC,OAAO;AAAA;AACtC;AACA,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGL,MAAM,CAACE,GAAG;AACzC;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMI,eAAe,GAAGN,MAAM,CAACE,GAAG;AACzC;AACA;AACA;AACA,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Month.styles.js","names":["styled","StyledMonth","div","$height","StyledMonthHead","StyledMonthName"],"sources":["../../../../../../src/components/calendar/month-wrapper/month/Month.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\n\ntype StyledMonthProps = WithTheme<{ $height: number }>;\n\nexport const StyledMonth = styled.div<StyledMonthProps>`\n height: ${({ $height }) => $height}px;\n aspect-ratio: 1;\n`;\n\nexport const StyledMonthHead = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n column-gap: 7px;\n`;\n\nexport const StyledMonthName = styled.div`\n font-weight: bold;\n text-align: center;\n user-select: none;\n`;\n"],"mappings":"AACA,OAAOA,MAAM,MAAM,mBAAmB;AAItC,OAAO,MAAMC,WAAW,GAAGD,MAAM,CAACE,GAAqB;AACvD,cAAc,CAAC;EAAEC;AAAQ,CAAC,KAAKA,OAAO;AACtC;AACA,CAAC;AAED,OAAO,MAAMC,eAAe,GAAGJ,MAAM,CAACE,GAAG;AACzC;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMG,eAAe,GAAGL,MAAM,CAACE,GAAG;AACzC;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -3,24 +3,24 @@ import { CalendarType } from '../../../../../types/calendar';
3
3
  import { findNextDate } from '../../../../../utils/calendar';
4
4
  import Day from './day/Day';
5
5
  import { StyledDayWrapper } from './DayWrapper.styles';
6
- import { addDays, isAfter, isSameDay, isSameMonth, isWithinInterval, startOfMonth, startOfWeek } from "../../../../../utils/date";
7
- const DayWrapper = _ref => {
8
- let {
9
- month,
10
- year,
11
- highlightedDates,
12
- onSelect,
13
- selectedDate,
14
- categories,
15
- minDate,
16
- maxDate,
17
- customThumbColors,
18
- type,
19
- hoveringDay,
20
- shouldShowHighlightsInMonthOverlay,
21
- setHoveringDay,
22
- disabledDates
23
- } = _ref;
6
+ import { addDays, isAfter, isSameDay, isSameMonth, isWithinInterval, startOfMonth, startOfWeek } from '../../../../../utils/date';
7
+ const DayWrapper = ({
8
+ month,
9
+ year,
10
+ highlightedDates,
11
+ onSelect,
12
+ selectedDate,
13
+ categories,
14
+ minDate,
15
+ maxDate,
16
+ customThumbColors,
17
+ type,
18
+ hoveringDay,
19
+ shouldShowHighlightsInMonthOverlay,
20
+ setHoveringDay,
21
+ disabledDates,
22
+ currentDateBackgroundColor
23
+ }) => {
24
24
  const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);
25
25
  const days = useMemo(() => {
26
26
  const dateArray = [];
@@ -109,7 +109,8 @@ const DayWrapper = _ref => {
109
109
  isSameMonth: isSameMonth(day, dayOfCurrentMonth),
110
110
  onClick: handleDayClick,
111
111
  highlightedDates: highlightedDates,
112
- setHoveringDay: setHoveringDay
112
+ setHoveringDay: setHoveringDay,
113
+ currentDateBackgroundColor: currentDateBackgroundColor
113
114
  }));
114
115
  });
115
116
  return items;
@@ -1 +1 @@
1
- {"version":3,"file":"DayWrapper.js","names":["React","useCallback","useMemo","CalendarType","findNextDate","Day","StyledDayWrapper","addDays","isAfter","isSameDay","isSameMonth","isWithinInterval","startOfMonth","startOfWeek","DayWrapper","_ref","month","year","highlightedDates","onSelect","selectedDate","categories","minDate","maxDate","customThumbColors","type","hoveringDay","shouldShowHighlightsInMonthOverlay","setHoveringDay","disabledDates","dayOfCurrentMonth","Date","days","dateArray","currentDate","startDay","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 React, { FC, useCallback, useMemo, type ReactElement } from 'react';\nimport {\n CalendarType,\n type Categories, CustomThumbColors,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\nimport {\n addDays,\n isAfter,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek\n} from \"../../../../../utils/date\";\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n customThumbColors?: CustomThumbColors;\n shouldShowHighlightsInMonthOverlay: boolean;\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,customThumbColors,\n type,\n hoveringDay,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n disabledDates,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate);\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n const showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n customThumbColors={customThumbColors}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n />,\n );\n });\n\n return items;\n }, [selectedDate, disabledDates, days, minDate, maxDate, type, hoveringDay, categories, customThumbColors, shouldShowHighlightsInMonthOverlay, dayOfCurrentMonth, handleDayClick, highlightedDates, setHoveringDay]);\n\n return <StyledDayWrapper>{dayElements}</StyledDayWrapper>;\n};\n\nDayWrapper.displayName = 'DayWrapper';\n\nexport default DayWrapper;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DayWrapper.js","names":["React","useCallback","useMemo","CalendarType","findNextDate","Day","StyledDayWrapper","addDays","isAfter","isSameDay","isSameMonth","isWithinInterval","startOfMonth","startOfWeek","DayWrapper","month","year","highlightedDates","onSelect","selectedDate","categories","minDate","maxDate","customThumbColors","type","hoveringDay","shouldShowHighlightsInMonthOverlay","setHoveringDay","disabledDates","currentDateBackgroundColor","dayOfCurrentMonth","Date","days","dateArray","currentDate","startDay","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 React, { FC, useCallback, useMemo, type ReactElement, CSSProperties } from 'react';\nimport {\n CalendarType,\n type Categories,\n CustomThumbColors,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\nimport {\n addDays,\n isAfter,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n startOfMonth,\n startOfWeek,\n} from '../../../../../utils/date';\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n customThumbColors?: CustomThumbColors;\n shouldShowHighlightsInMonthOverlay: boolean;\n currentDateBackgroundColor?: CSSProperties['backgroundColor'];\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,\n customThumbColors,\n type,\n hoveringDay,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n disabledDates,\n currentDateBackgroundColor,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate);\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n const showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n customThumbColors={customThumbColors}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n currentDateBackgroundColor={currentDateBackgroundColor}\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 customThumbColors,\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":[]}
@@ -1,24 +1,25 @@
1
1
  import React, { useMemo, useRef } from 'react';
2
2
  import Category from './category/Category';
3
- import { StyledDay, StyledDayCategoryWrapper, StyledDayNumber } from './Day.styles';
4
- import { isSameDay } from "../../../../../../utils/date";
5
- const Day = _ref => {
6
- let {
7
- date,
8
- highlightedDates,
9
- categories,
10
- isSameMonth,
11
- isSelected,
12
- onClick,
13
- isDisabled,
14
- isIntervalStart,
15
- isIntervalEnd,
16
- customThumbColors,
17
- isWithinIntervalSelection,
18
- shouldShowHighlightsInMonthOverlay,
19
- setHoveringDay
20
- } = _ref;
3
+ import { StyledCurrentDay, StyledDay, StyledDayCategoryWrapper, StyledDayNumber } from './Day.styles';
4
+ import { isSameDay } from '../../../../../../utils/date';
5
+ const Day = ({
6
+ date,
7
+ highlightedDates,
8
+ categories,
9
+ isSameMonth,
10
+ isSelected,
11
+ onClick,
12
+ isDisabled,
13
+ isIntervalStart,
14
+ isIntervalEnd,
15
+ customThumbColors,
16
+ isWithinIntervalSelection,
17
+ shouldShowHighlightsInMonthOverlay,
18
+ setHoveringDay,
19
+ currentDateBackgroundColor
20
+ }) => {
21
21
  const dayRef = useRef(null);
22
+ const isCurrentDay = useMemo(() => isSameDay(date, new Date()), [date]);
22
23
  const styles = useMemo(() => {
23
24
  if (!highlightedDates || !shouldShowHighlightsInMonthOverlay && !isSameMonth) {
24
25
  return undefined;
@@ -41,7 +42,9 @@ const Day = _ref => {
41
42
  $textColor: styles?.textColor,
42
43
  onMouseEnter: () => setHoveringDay(date),
43
44
  onMouseLeave: () => setHoveringDay(null)
44
- }, /*#__PURE__*/React.createElement(StyledDayNumber, {
45
+ }, isCurrentDay && currentDateBackgroundColor ? /*#__PURE__*/React.createElement(StyledCurrentDay, {
46
+ $backgroundColor: currentDateBackgroundColor
47
+ }) : null, /*#__PURE__*/React.createElement(StyledDayNumber, {
45
48
  $customThumbColors: customThumbColors,
46
49
  $isSelected: shouldShowHighlightsInMonthOverlay ? isSelected : isSelected && isSameMonth,
47
50
  $isIntervalStart: shouldShowHighlightsInMonthOverlay ? isIntervalStart : isIntervalStart && isSameMonth,
@@ -1 +1 @@
1
- {"version":3,"file":"Day.js","names":["React","useMemo","useRef","Category","StyledDay","StyledDayCategoryWrapper","StyledDayNumber","isSameDay","Day","_ref","date","highlightedDates","categories","isSameMonth","isSelected","onClick","isDisabled","isIntervalStart","isIntervalEnd","customThumbColors","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","$customThumbColors","$isSelected","$isIntervalStart","$isIntervalEnd","$isWithinIntervalSelection","getDate","displayName"],"sources":["../../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/day/Day.tsx"],"sourcesContent":["import React, { FC, useMemo, useRef } from 'react';\nimport {\n Categories, CustomThumbColors,\n HighlightedDates,\n HighlightedDateStyles,\n} from '../../../../../../types/calendar';\nimport Category from './category/Category';\nimport { StyledDay, StyledDayCategoryWrapper, StyledDayNumber } from './Day.styles';\nimport {isSameDay} from \"../../../../../../utils/date\";\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 customThumbColors?: CustomThumbColors;\n};\n\nconst Day: FC<DayProps> = ({\n date,\n highlightedDates,\n categories,\n isSameMonth,\n isSelected,\n onClick,\n isDisabled,\n isIntervalStart,\n isIntervalEnd,customThumbColors,\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 $customThumbColors={customThumbColors}\n $isSelected={\n shouldShowHighlightsInMonthOverlay ? isSelected : isSelected && isSameMonth\n }\n $isIntervalStart={\n shouldShowHighlightsInMonthOverlay\n ? isIntervalStart\n : isIntervalStart && isSameMonth\n }\n $isIntervalEnd={\n shouldShowHighlightsInMonthOverlay\n ? isIntervalEnd\n : isIntervalEnd && isSameMonth\n }\n $isWithinIntervalSelection={\n shouldShowHighlightsInMonthOverlay\n ? isWithinIntervalSelection\n : isWithinIntervalSelection && isSameMonth\n }\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,OAAOA,KAAK,IAAQC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAMlD,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SAASC,SAAS,EAAEC,wBAAwB,EAAEC,eAAe,QAAQ,cAAc;AACnF,SAAQC,SAAS,QAAO,8BAA8B;AAkBtD,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;IAACC,iBAAiB;IAC/BC,yBAAyB;IACzBC,kCAAkC;IAClCC;EACJ,CAAC,GAAAb,IAAA;EACG,MAAMc,MAAM,GAAGrB,MAAM,CAAiB,IAAI,CAAC;EAE3C,MAAMsB,MAAyC,GAAGvB,OAAO,CAAC,MAAM;IAC5D,IAAI,CAACU,gBAAgB,IAAK,CAACU,kCAAkC,IAAI,CAACR,WAAY,EAAE;MAC5E,OAAOY,SAAS;IACpB;IAEA,OAAOd,gBAAgB,CAACe,IAAI,CAAEC,eAAe,IACzCA,eAAe,CAACC,KAAK,CAACC,IAAI,CAAEC,WAAW,IAAKvB,SAAS,CAACuB,WAAW,EAAEpB,IAAI,CAAC,CAC5E,CAAC,EAAEqB,KAAK;EACZ,CAAC,EAAE,CAACrB,IAAI,EAAEC,gBAAgB,EAAEE,WAAW,EAAEQ,kCAAkC,CAAC,CAAC;EAE7E,MAAMW,gBAAgB,GAAG/B,OAAO,CAAC,MAAM;IACnC,IAAI,CAACW,UAAU,IAAK,CAACS,kCAAkC,IAAI,CAACR,WAAY,EAAE,OAAO,EAAE;IAEnF,OAAOD,UAAU,CAACqB,OAAO,CAAEC,QAAQ,IAC/BA,QAAQ,CAACN,KAAK,CACTO,MAAM,CAAEC,GAAG,IAAK7B,SAAS,CAAC6B,GAAG,EAAE1B,IAAI,CAAC,CAAC,CACrC2B,GAAG,CAAED,GAAG,iBACLpC,KAAA,CAAAsC,aAAA,CAACnC,QAAQ;MAACoC,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,CAAC/B,UAAU,EAAEF,IAAI,EAAEG,WAAW,EAAEQ,kCAAkC,CAAC,CAAC;EAEvE,oBACIrB,KAAA,CAAAsC,aAAA,CAAClC,SAAS;IACNwC,GAAG,EAAErB,MAAO;IACZR,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACL,IAAI,EAAEG,WAAW,IAAI,CAACG,UAAU,CAAE;IACzD6B,YAAY,EAAEhC,WAAY;IAC1BiC,WAAW,EAAE9B,UAAW;IACxB+B,gBAAgB,EAAEvB,MAAM,EAAEwB,eAAgB;IAC1CC,UAAU,EAAEzB,MAAM,EAAE0B,SAAU;IAC9BC,YAAY,EAAEA,CAAA,KAAM7B,cAAc,CAACZ,IAAI,CAAE;IACzC0C,YAAY,EAAEA,CAAA,KAAM9B,cAAc,CAAC,IAAI;EAAE,gBAEzCtB,KAAA,CAAAsC,aAAA,CAAChC,eAAe;IACZ+C,kBAAkB,EAAElC,iBAAkB;IACtCmC,WAAW,EACPjC,kCAAkC,GAAGP,UAAU,GAAGA,UAAU,IAAID,WACnE;IACD0C,gBAAgB,EACZlC,kCAAkC,GAC5BJ,eAAe,GACfA,eAAe,IAAIJ,WAC5B;IACD2C,cAAc,EACVnC,kCAAkC,GAC5BH,aAAa,GACbA,aAAa,IAAIL,WAC1B;IACD4C,0BAA0B,EACtBpC,kCAAkC,GAC5BD,yBAAyB,GACzBA,yBAAyB,IAAIP;EACtC,GAEAH,IAAI,CAACgD,OAAO,CAAC,CACD,CAAC,EACjB1B,gBAAgB,iBACbhC,KAAA,CAAAsC,aAAA,CAACjC,wBAAwB,QAAE2B,gBAA2C,CAEnE,CAAC;AAEpB,CAAC;AAEDxB,GAAG,CAACmD,WAAW,GAAG,KAAK;AAEvB,eAAenD,GAAG","ignoreList":[]}
1
+ {"version":3,"file":"Day.js","names":["React","useMemo","useRef","Category","StyledCurrentDay","StyledDay","StyledDayCategoryWrapper","StyledDayNumber","isSameDay","Day","date","highlightedDates","categories","isSameMonth","isSelected","onClick","isDisabled","isIntervalStart","isIntervalEnd","customThumbColors","isWithinIntervalSelection","shouldShowHighlightsInMonthOverlay","setHoveringDay","currentDateBackgroundColor","dayRef","isCurrentDay","Date","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","$customThumbColors","$isSelected","$isIntervalStart","$isIntervalEnd","$isWithinIntervalSelection","getDate","displayName"],"sources":["../../../../../../../../src/components/calendar/month-wrapper/month/day-wrapper/day/Day.tsx"],"sourcesContent":["import React, { CSSProperties, FC, useMemo, useRef } from 'react';\nimport {\n Categories,\n CustomThumbColors,\n HighlightedDates,\n HighlightedDateStyles,\n} from '../../../../../../types/calendar';\nimport Category from './category/Category';\nimport {\n StyledCurrentDay,\n StyledDay,\n StyledDayCategoryWrapper,\n StyledDayNumber,\n} from './Day.styles';\nimport { isSameDay } from '../../../../../../utils/date';\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 customThumbColors?: CustomThumbColors;\n currentDateBackgroundColor?: CSSProperties['backgroundColor'];\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 customThumbColors,\n isWithinIntervalSelection,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n currentDateBackgroundColor,\n}) => {\n const dayRef = useRef<HTMLDivElement>(null);\n const isCurrentDay = useMemo(() => isSameDay(date, new Date()), [date]);\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 {isCurrentDay && currentDateBackgroundColor ? (\n <StyledCurrentDay $backgroundColor={currentDateBackgroundColor} />\n ) : null}\n <StyledDayNumber\n $customThumbColors={customThumbColors}\n $isSelected={\n shouldShowHighlightsInMonthOverlay ? isSelected : isSelected && isSameMonth\n }\n $isIntervalStart={\n shouldShowHighlightsInMonthOverlay\n ? isIntervalStart\n : isIntervalStart && isSameMonth\n }\n $isIntervalEnd={\n shouldShowHighlightsInMonthOverlay\n ? isIntervalEnd\n : isIntervalEnd && isSameMonth\n }\n $isWithinIntervalSelection={\n shouldShowHighlightsInMonthOverlay\n ? isWithinIntervalSelection\n : isWithinIntervalSelection && isSameMonth\n }\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,OAAOA,KAAK,IAAuBC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAOjE,OAAOC,QAAQ,MAAM,qBAAqB;AAC1C,SACIC,gBAAgB,EAChBC,SAAS,EACTC,wBAAwB,EACxBC,eAAe,QACZ,cAAc;AACrB,SAASC,SAAS,QAAQ,8BAA8B;AAmBxD,MAAMC,GAAiB,GAAGA,CAAC;EACvBC,IAAI;EACJC,gBAAgB;EAChBC,UAAU;EACVC,WAAW;EACXC,UAAU;EACVC,OAAO;EACPC,UAAU;EACVC,eAAe;EACfC,aAAa;EACbC,iBAAiB;EACjBC,yBAAyB;EACzBC,kCAAkC;EAClCC,cAAc;EACdC;AACJ,CAAC,KAAK;EACF,MAAMC,MAAM,GAAGtB,MAAM,CAAiB,IAAI,CAAC;EAC3C,MAAMuB,YAAY,GAAGxB,OAAO,CAAC,MAAMO,SAAS,CAACE,IAAI,EAAE,IAAIgB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAChB,IAAI,CAAC,CAAC;EAEvE,MAAMiB,MAAyC,GAAG1B,OAAO,CAAC,MAAM;IAC5D,IAAI,CAACU,gBAAgB,IAAK,CAACU,kCAAkC,IAAI,CAACR,WAAY,EAAE;MAC5E,OAAOe,SAAS;IACpB;IAEA,OAAOjB,gBAAgB,CAACkB,IAAI,CAAEC,eAAe,IACzCA,eAAe,CAACC,KAAK,CAACC,IAAI,CAAEC,WAAW,IAAKzB,SAAS,CAACyB,WAAW,EAAEvB,IAAI,CAAC,CAC5E,CAAC,EAAEwB,KAAK;EACZ,CAAC,EAAE,CAACxB,IAAI,EAAEC,gBAAgB,EAAEE,WAAW,EAAEQ,kCAAkC,CAAC,CAAC;EAE7E,MAAMc,gBAAgB,GAAGlC,OAAO,CAAC,MAAM;IACnC,IAAI,CAACW,UAAU,IAAK,CAACS,kCAAkC,IAAI,CAACR,WAAY,EAAE,OAAO,EAAE;IAEnF,OAAOD,UAAU,CAACwB,OAAO,CAAEC,QAAQ,IAC/BA,QAAQ,CAACN,KAAK,CACTO,MAAM,CAAEC,GAAG,IAAK/B,SAAS,CAAC+B,GAAG,EAAE7B,IAAI,CAAC,CAAC,CACrC8B,GAAG,CAAED,GAAG,iBACLvC,KAAA,CAAAyC,aAAA,CAACtC,QAAQ;MAACuC,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,EAAEQ,kCAAkC,CAAC,CAAC;EAEvE,oBACIrB,KAAA,CAAAyC,aAAA,CAACpC,SAAS;IACN0C,GAAG,EAAEvB,MAAO;IACZT,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACL,IAAI,EAAEG,WAAW,IAAI,CAACG,UAAU,CAAE;IACzDgC,YAAY,EAAEnC,WAAY;IAC1BoC,WAAW,EAAEjC,UAAW;IACxBkC,gBAAgB,EAAEvB,MAAM,EAAEwB,eAAgB;IAC1CC,UAAU,EAAEzB,MAAM,EAAE0B,SAAU;IAC9BC,YAAY,EAAEA,CAAA,KAAMhC,cAAc,CAACZ,IAAI,CAAE;IACzC6C,YAAY,EAAEA,CAAA,KAAMjC,cAAc,CAAC,IAAI;EAAE,GAExCG,YAAY,IAAIF,0BAA0B,gBACvCvB,KAAA,CAAAyC,aAAA,CAACrC,gBAAgB;IAAC8C,gBAAgB,EAAE3B;EAA2B,CAAE,CAAC,GAClE,IAAI,eACRvB,KAAA,CAAAyC,aAAA,CAAClC,eAAe;IACZiD,kBAAkB,EAAErC,iBAAkB;IACtCsC,WAAW,EACPpC,kCAAkC,GAAGP,UAAU,GAAGA,UAAU,IAAID,WACnE;IACD6C,gBAAgB,EACZrC,kCAAkC,GAC5BJ,eAAe,GACfA,eAAe,IAAIJ,WAC5B;IACD8C,cAAc,EACVtC,kCAAkC,GAC5BH,aAAa,GACbA,aAAa,IAAIL,WAC1B;IACD+C,0BAA0B,EACtBvC,kCAAkC,GAC5BD,yBAAyB,GACzBA,yBAAyB,IAAIP;EACtC,GAEAH,IAAI,CAACmD,OAAO,CAAC,CACD,CAAC,EACjB1B,gBAAgB,iBACbnC,KAAA,CAAAyC,aAAA,CAACnC,wBAAwB,QAAE6B,gBAA2C,CAEnE,CAAC;AAEpB,CAAC;AAED1B,GAAG,CAACqD,WAAW,GAAG,KAAK;AAEvB,eAAerD,GAAG","ignoreList":[]}