@chayns-components/date 5.0.0-beta.920 → 5.0.0-beta.922
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/calendar/Calendar.js +17 -17
- package/lib/cjs/components/calendar/Calendar.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js +1 -0
- package/lib/cjs/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/Month.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +19 -21
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +3 -3
- package/lib/cjs/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
- package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +9 -11
- package/lib/cjs/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
- package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js +2 -2
- package/lib/cjs/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
- package/lib/cjs/components/date-info/DateInfo.js.map +1 -1
- package/lib/cjs/hooks/useDateInfo.js +27 -72
- package/lib/cjs/hooks/useDateInfo.js.map +1 -1
- package/lib/cjs/index.js +130 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/types/dateinfo.js +2 -0
- package/lib/cjs/types/dateinfo.js.map +1 -0
- package/lib/cjs/utils/calendar.js +12 -9
- package/lib/cjs/utils/calendar.js.map +1 -1
- package/lib/cjs/utils/date.js +114 -0
- package/lib/cjs/utils/date.js.map +1 -0
- package/lib/cjs/utils/dateInfo.js +99 -344
- package/lib/cjs/utils/dateInfo.js.map +1 -1
- package/lib/esm/components/calendar/Calendar.js +4 -4
- package/lib/esm/components/calendar/Calendar.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js +1 -0
- package/lib/esm/components/calendar/month-wrapper/MonthWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/Month.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js +2 -4
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/DayWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/day-wrapper/day/Day.js.map +1 -1
- package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js +8 -10
- package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map +1 -1
- package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js +1 -1
- package/lib/esm/components/calendar/month-year-pickers/MonthYearPickers.js.map +1 -1
- package/lib/esm/components/date-info/DateInfo.js.map +1 -1
- package/lib/esm/hooks/useDateInfo.js +28 -73
- package/lib/esm/hooks/useDateInfo.js.map +1 -1
- package/lib/esm/index.js +10 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/types/dateinfo.js +2 -0
- package/lib/esm/types/dateinfo.js.map +1 -0
- package/lib/esm/utils/calendar.js +4 -3
- package/lib/esm/utils/calendar.js.map +1 -1
- package/lib/esm/utils/date.js +89 -0
- package/lib/esm/utils/date.js.map +1 -0
- package/lib/esm/utils/dateInfo.js +98 -339
- package/lib/esm/utils/dateInfo.js.map +1 -1
- package/lib/types/components/calendar/Calendar.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/MonthWrapper.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/MonthWrapper.styles.d.ts +1 -1
- package/lib/types/components/calendar/month-wrapper/month/Month.d.ts +2 -2
- package/lib/types/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.d.ts +2 -2
- package/lib/types/components/calendar/month-year-pickers/MonthYearPickers.d.ts +2 -2
- package/lib/types/components/date-info/DateInfo.d.ts +1 -1
- package/lib/types/components/opening-times/opening-inputs/OpeningInputs.styles.d.ts +1 -1
- package/lib/types/components/opening-times/opening-inputs/opening-input/OpeningInput.styles.d.ts +1 -1
- package/lib/types/hooks/useDateInfo.d.ts +1 -34
- package/lib/types/index.d.ts +6 -4
- package/lib/types/types/dateinfo.d.ts +34 -0
- package/lib/types/utils/calendar.d.ts +2 -2
- package/lib/types/utils/date.d.ts +27 -0
- package/lib/types/utils/dateInfo.d.ts +10 -51
- package/package.json +3 -4
- package/lib/cjs/constants/dateInfo.js +0 -639
- package/lib/cjs/constants/dateInfo.js.map +0 -1
- package/lib/esm/constants/dateInfo.js +0 -633
- package/lib/esm/constants/dateInfo.js.map +0 -1
- package/lib/types/constants/dateInfo.d.ts +0 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dateInfo.js","names":["_chaynsApi","require","_dateFns","_locale","_dateInfo","getLanguage","getChaynsLanguage","translation","site","enGB","nl","fr","it","pl","pt","es","tr","uk","de","exports","getTimeString","language","isMorning","getYearFormat","date","shouldShowYear","isThisYear","getMonthFormat","shouldUseShortText","getFormattedDayOfWeek","shouldShowRelativeDayOfWeek","shouldShowDayOfWeek","isToday","code","isTomorrow","isYesterday","format","locale","getFormattedTime","shouldShowTime","timeFormat","hours","getHours","TimeType","getTimeTypeStrings","TIME_TYPE_STRINGS","getTimeTillNow","currentDate","_getTimeTypeStrings","_getTimeTypeStrings2","time","value","type","Years","isPast","elapsedMilliseconds","getTime","Math","floor","Seconds","Minutes","minutes","getFormattedPastTimeString","Hours","and","Days","Weeks","Months","remainingMilliseconds","getFormattedFutureTimeString","timeTypeStrings","isSingular","seconds","days","weeks","months","years","past","singular","plural","future"],"sources":["../../../src/utils/dateInfo.ts"],"sourcesContent":["import { getLanguage as getChaynsLanguage } from 'chayns-api';\nimport {\n format,\n isPast,\n isThisYear,\n isToday,\n isTomorrow,\n isYesterday,\n type Locale,\n} from 'date-fns';\nimport { de, enGB, es, fr, it, nl, pl, pt, tr, uk } from 'date-fns/locale';\nimport { TIME_TYPE_STRINGS, type TimeTypeStringsRecord } from '../constants/dateInfo';\n\nexport const getLanguage = (): Locale => {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n switch (getChaynsLanguage().translation || getChaynsLanguage().site) {\n case 'en':\n return enGB;\n case 'nl':\n return nl;\n case 'fr':\n return fr;\n case 'it':\n return it;\n case 'pl':\n return pl;\n case 'pt':\n return pt;\n case 'es':\n return es;\n case 'tr':\n return tr;\n case 'uk':\n return uk;\n default:\n return de;\n }\n};\n\ninterface GetTimeStringProps {\n language?: string;\n isMorning?: boolean;\n}\n\nexport const getTimeString = ({ language, isMorning }: GetTimeStringProps) => {\n switch (language) {\n case 'en-GB':\n case 'pt':\n return isMorning ? 'AM' : 'PM';\n case 'nl':\n return 'uur';\n case 'fr':\n return 'heures';\n case 'de':\n return 'Uhr';\n case 'es':\n return 'h';\n default:\n return '';\n }\n};\n\ninterface GetFormattedYearOptions {\n date: Date;\n shouldShowYear?: boolean;\n}\n\nexport const getYearFormat = ({ date, shouldShowYear }: GetFormattedYearOptions) =>\n (typeof shouldShowYear === 'boolean' && !shouldShowYear) || isThisYear(date) ? '' : ' yyyy';\n\ninterface GetFormattedMonthOptions {\n shouldUseShortText?: boolean;\n}\n\nexport const getMonthFormat = ({ shouldUseShortText }: GetFormattedMonthOptions) => {\n if (shouldUseShortText) {\n return 'LLL.';\n }\n\n return 'LLLL';\n};\n\ninterface GetFormattedDayOfWeekOptions {\n shouldShowDayOfWeek?: boolean;\n shouldShowRelativeDayOfWeek?: boolean;\n shouldUseShortText?: boolean;\n date: Date;\n language?: Locale;\n}\n\nexport const getFormattedDayOfWeek = ({\n shouldShowRelativeDayOfWeek,\n shouldShowDayOfWeek,\n shouldUseShortText,\n date,\n language,\n}: GetFormattedDayOfWeekOptions) => {\n if (!shouldShowDayOfWeek && !shouldShowRelativeDayOfWeek) {\n return '';\n }\n\n if (shouldShowRelativeDayOfWeek) {\n if (isToday(date)) {\n switch (language?.code) {\n case 'en-GB':\n return 'Today, ';\n case 'nl':\n return 'Vandaag, ';\n case 'fr':\n return \"Aujourd'hui, \";\n case 'it':\n return 'Oggi, ';\n case 'pl':\n return 'Dzisiaj, ';\n case 'pt':\n return 'Hoje, ';\n case 'es':\n return 'Hoy, ';\n case 'tr':\n return 'Bugün, ';\n case 'uk':\n return 'Сьогодні, ';\n default:\n return 'Heute, ';\n }\n }\n\n if (isTomorrow(date)) {\n switch (language?.code) {\n case 'en-GB':\n return 'Tomorrow, ';\n case 'nl':\n return 'Morgen, ';\n case 'fr':\n return 'Demain, ';\n case 'it':\n return 'Domani, ';\n case 'pl':\n return 'Jutro, ';\n case 'pt':\n return 'Amanhã, ';\n case 'es':\n return 'Mañana, ';\n case 'tr':\n return 'Yarın, ';\n case 'uk':\n return 'Завтра, ';\n default:\n return 'Morgen, ';\n }\n }\n\n if (isYesterday(date)) {\n switch (language?.code) {\n case 'en-GB':\n return 'Yesterday, ';\n case 'nl':\n return 'Gisteren, ';\n case 'fr':\n return 'Hier, ';\n case 'it':\n return 'Ieri, ';\n case 'pl':\n return 'Wczoraj, ';\n case 'pt':\n return 'Ontem, ';\n case 'es':\n return 'Ayer, ';\n case 'tr':\n return 'Dün, ';\n case 'uk':\n return 'Вчора, ';\n default:\n return 'Gestern, ';\n }\n }\n }\n\n if (shouldUseShortText) {\n return format(date, 'E, ', { locale: language });\n }\n\n return format(date, 'EEEE, ', { locale: language });\n};\n\ninterface GetFormattedTimeOptions {\n shouldShowTime?: boolean;\n date: Date;\n language: Locale;\n}\n\nexport const getFormattedTime = ({ shouldShowTime, date, language }: GetFormattedTimeOptions) => {\n if (!shouldShowTime) {\n return '';\n }\n\n let timeFormat = 'HH:mm';\n\n if (language.code === 'en-GB' || language.code === 'pt') {\n timeFormat = 'KK:mm';\n }\n\n return `, ${format(date, timeFormat)} ${getTimeString({\n language: language.code,\n isMorning: isMorning(date),\n })}`;\n};\n\nexport const isMorning = (date: Date) => {\n const hours = date.getHours();\n\n return hours >= 0 && hours < 12;\n};\n\nexport interface Time {\n value: number;\n type: TimeType;\n isPast: boolean;\n}\n\nexport enum TimeType {\n Seconds,\n Minutes,\n Hours,\n Days,\n Weeks,\n Months,\n Years,\n}\n\nexport const getTimeTypeStrings = (language: string): TimeTypeStringsRecord | undefined =>\n TIME_TYPE_STRINGS[language === 'en-GB' ? 'en' : language];\n\ninterface GetTimeTillNowOptions {\n date: Date;\n currentDate: Date;\n language: Locale;\n}\n\nexport const getTimeTillNow = ({ date, currentDate, language }: GetTimeTillNowOptions): string => {\n const time: Time = {\n value: 0,\n type: TimeType.Years,\n isPast: false,\n };\n\n if (isPast(date)) {\n const elapsedMilliseconds = currentDate.getTime() - date.getTime();\n\n switch (true) {\n case elapsedMilliseconds < 60000:\n time.value = Math.floor(elapsedMilliseconds / 1000);\n time.type = TimeType.Seconds;\n break;\n case elapsedMilliseconds < 3600000:\n time.value = Math.floor(elapsedMilliseconds / 60000);\n time.type = TimeType.Minutes;\n break;\n case elapsedMilliseconds < 86400000:\n const hours = Math.floor(elapsedMilliseconds / 3600000);\n const minutes = Math.floor((elapsedMilliseconds % 3600000) / 60000);\n return `${hours} ${getFormattedPastTimeString({ value: hours, type: TimeType.Hours, isPast: true }, language)} \n ${minutes > 0 ? `${getTimeTypeStrings(language.code ?? 'de')?.and ?? ''} ${minutes} ${getFormattedPastTimeString({ value: minutes, type: TimeType.Minutes, isPast: true }, language)}` : ''}`;\n case elapsedMilliseconds < 604800000:\n time.value = Math.floor(elapsedMilliseconds / 86400000);\n time.type = TimeType.Days;\n break;\n case elapsedMilliseconds < 2592000000:\n time.value = Math.floor(elapsedMilliseconds / 604800000);\n time.type = TimeType.Weeks;\n break;\n case elapsedMilliseconds < 31536000000:\n time.value = Math.floor(elapsedMilliseconds / 2592000000);\n time.type = TimeType.Months;\n break;\n default:\n time.value = Math.floor(elapsedMilliseconds / 31536000000);\n time.type = TimeType.Years;\n break;\n }\n\n return `${time.value} ${getFormattedPastTimeString(time, language)}`;\n }\n\n const remainingMilliseconds = date.getTime() - currentDate.getTime();\n\n switch (true) {\n case remainingMilliseconds < 60000:\n time.value = Math.floor(remainingMilliseconds / 1000);\n time.type = TimeType.Seconds;\n break;\n case remainingMilliseconds < 3600000:\n time.value = Math.floor(remainingMilliseconds / 60000);\n time.type = TimeType.Minutes;\n break;\n case remainingMilliseconds < 86400000:\n const hours = Math.floor(remainingMilliseconds / 3600000);\n const minutes = Math.floor((remainingMilliseconds % 3600000) / 60000);\n return `${hours} ${getFormattedFutureTimeString({ value: hours, type: TimeType.Hours, isPast: false }, language)} \n ${minutes > 0 ? `${getTimeTypeStrings(language.code ?? 'de')?.and ?? ''} ${minutes} ${getFormattedFutureTimeString({ value: minutes, type: TimeType.Minutes, isPast: false }, language)}` : ''}`;\n case remainingMilliseconds < 604800000:\n time.value = Math.floor(remainingMilliseconds / 86400000);\n time.type = TimeType.Days;\n break;\n case remainingMilliseconds < 2592000000:\n time.value = Math.floor(remainingMilliseconds / 604800000);\n time.type = TimeType.Weeks;\n break;\n case remainingMilliseconds < 31536000000:\n time.value = Math.floor(remainingMilliseconds / 2592000000);\n time.type = TimeType.Months;\n break;\n default:\n time.value = Math.floor(remainingMilliseconds / 31536000000);\n time.type = TimeType.Years;\n break;\n }\n\n return `${time.value} ${getFormattedFutureTimeString(time, language)}`;\n};\n\nexport const getFormattedPastTimeString = (time: Time, language: Locale): string => {\n const { value, type } = time;\n\n const timeTypeStrings = getTimeTypeStrings(language.code ?? 'de');\n const isSingular = value === 1;\n\n if (!timeTypeStrings) {\n return '';\n }\n\n const { seconds, days, weeks, months, years, minutes, hours } = timeTypeStrings.past;\n\n switch (true) {\n case type === TimeType.Seconds:\n return isSingular ? seconds.singular : seconds.plural;\n case type === TimeType.Minutes:\n return isSingular ? minutes.singular : minutes.plural;\n case type === TimeType.Hours:\n return isSingular ? hours.singular : hours.plural;\n case type === TimeType.Days:\n return isSingular ? days.singular : days.plural;\n case type === TimeType.Weeks:\n return isSingular ? weeks.singular : weeks.plural;\n case type === TimeType.Months:\n return isSingular ? months.singular : months.plural;\n default:\n return isSingular ? years.singular : years.plural;\n }\n};\n\nexport const getFormattedFutureTimeString = (time: Time, language: Locale): string => {\n const { value, type } = time;\n const timeTypeStrings = getTimeTypeStrings(language.code ?? 'de');\n const isSingular = value === 1;\n\n if (!timeTypeStrings) {\n return '';\n }\n\n const { seconds, days, weeks, months, years, minutes, hours } = timeTypeStrings.future;\n\n switch (true) {\n case type === TimeType.Seconds:\n return isSingular ? seconds.singular : seconds.plural;\n case type === TimeType.Minutes:\n return isSingular ? minutes.singular : minutes.plural;\n case type === TimeType.Hours:\n return isSingular ? hours.singular : hours.plural;\n case type === TimeType.Days:\n return isSingular ? days.singular : days.plural;\n case type === TimeType.Weeks:\n return isSingular ? weeks.singular : weeks.plural;\n case type === TimeType.Months:\n return isSingular ? months.singular : months.plural;\n default:\n return isSingular ? years.singular : years.plural;\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"dateInfo.js","names":["_chaynsApi","require","_date","getDateInfo","date","shouldShowYear","shouldShowTime","shouldShowDayOfWeek","shouldShowRelativeDayOfWeek","shouldUseShortText","active","language","getLanguage","dayPart","rtf","Intl","RelativeTimeFormat","numeric","isToday","capitalizeFirstLetter","format","isTomorrow","isYesterday","toLocaleDateString","weekday","dateParts","day","month","isCurrentYear","year","timeParts","hour","minute","formattedTime","Object","keys","length","toLocaleTimeString","hourWord","getTimeString","formattedDate","exports","text","charAt","toUpperCase","slice","getTimeTillNow","currentDate","Language","English","diffInSeconds","Math","floor","getTime","isPast","units","label","seconds","absDiff","abs","find","u","count","formatter","map","isMorning"],"sources":["../../../src/utils/dateInfo.ts"],"sourcesContent":["import {getLanguage, Language} from 'chayns-api';\nimport {UseDateInfoOptions} from '../types/dateinfo';\nimport {isCurrentYear, isMorning, isToday, isTomorrow, isYesterday} from \"./date\";\n\nexport const getDateInfo = ({\n date,\n shouldShowYear,\n shouldShowTime,\n shouldShowDayOfWeek,\n shouldShowRelativeDayOfWeek,\n shouldUseShortText,\n }: Omit<UseDateInfoOptions, 'shouldShowDateToNowDifference' & 'preText'>) => {\n const {active: language} = getLanguage();\n\n let dayPart = '';\n\n if (shouldShowRelativeDayOfWeek) {\n const rtf = new Intl.RelativeTimeFormat(language, {numeric: 'auto'});\n\n if (isToday(date)) {\n dayPart = capitalizeFirstLetter(rtf.format(0, 'day'));\n }\n\n if (isTomorrow(date)) {\n dayPart = capitalizeFirstLetter(rtf.format(1, 'day'));\n }\n\n if (isYesterday(date)) {\n dayPart = capitalizeFirstLetter(rtf.format(-1, 'day'));\n }\n }\n\n if (!dayPart && shouldShowDayOfWeek) {\n dayPart = date.toLocaleDateString(language, {\n weekday: shouldUseShortText ? 'short' : 'long',\n });\n }\n\n const dateParts: Intl.DateTimeFormatOptions = {\n day: '2-digit',\n month: shouldUseShortText ? 'short' : 'long',\n };\n\n if (shouldShowYear && !isCurrentYear(date)) {\n dateParts.year = 'numeric';\n }\n\n const timeParts: Intl.DateTimeFormatOptions = {};\n\n if (shouldShowTime) {\n timeParts.hour = '2-digit';\n timeParts.minute = '2-digit';\n }\n\n let formattedTime = '';\n if (Object.keys(timeParts).length > 0) {\n formattedTime = `, ${date.toLocaleTimeString(language, {...timeParts})}`;\n }\n\n const hourWord = getTimeString({language, date});\n formattedTime += shouldShowTime ? ` ${hourWord}` : '';\n\n const formattedDate = `${date.toLocaleDateString(\n language,\n dateParts,\n )}${formattedTime}`;\n return `${dayPart}${dayPart ? ', ' : ''}${formattedDate}`;\n};\n\nconst capitalizeFirstLetter = (text: string): string => text.charAt(0).toUpperCase() + text.slice(1)\n\ntype RelativeTimeUnit = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second';\n\ninterface GetTimeTillNow {\n date: Date;\n currentDate: Date;\n language: Language;\n}\n\nexport const getTimeTillNow = ({\n date,\n currentDate,\n language = Language.English,\n }: GetTimeTillNow): string => {\n const diffInSeconds = Math.floor((currentDate.getTime() - date.getTime()) / 1000);\n const isPast = diffInSeconds > 0;\n\n const units: { label: RelativeTimeUnit; seconds: number }[] = [\n {label: 'year', seconds: 31536000},\n {label: 'month', seconds: 2592000},\n {label: 'day', seconds: 86400},\n {label: 'hour', seconds: 3600},\n {label: 'minute', seconds: 60},\n {label: 'second', seconds: 1},\n ];\n\n const absDiff = Math.abs(diffInSeconds);\n const {label, seconds} = units.find((u) => absDiff >= u.seconds) || {\n label: 'second',\n seconds: 1,\n };\n const count = Math.floor(absDiff / seconds);\n\n const formatter = new Intl.RelativeTimeFormat(language, {numeric: 'auto'});\n\n return formatter.format(isPast ? -count : count, label);\n};\n\ninterface GetTimeStringProps {\n language?: Language;\n date: Date;\n}\n\nexport const getTimeString = ({language, date}: GetTimeStringProps) => {\n const map: { [key: string]: string } = {\n 'nl': 'uur',\n 'fr': 'heures',\n 'de': 'Uhr',\n 'es': 'horas',\n 'it': 'ore',\n 'pt': 'horas',\n 'pl': 'godzina',\n 'tr': 'saat',\n 'uk': 'година'\n }\n\n return map[language ?? ''] || (isMorning(date) ? 'AM' : 'PM');\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { ComboBox, Icon } from '@chayns-components/core';
|
|
2
|
-
import { addYears, differenceInCalendarMonths, isSameDay, isSameMonth, isWithinInterval, subYears } from 'date-fns';
|
|
3
|
-
import { de } from 'date-fns/locale';
|
|
4
2
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
3
|
import { CalendarType } from '../../types/calendar';
|
|
6
4
|
import { getNewDate, getYearsBetween, isDateInRange } from '../../utils/calendar';
|
|
7
5
|
import { StyledCalendar, StyledCalendarIconWrapper, StyledCalendarIconWrapperPseudo, StyledPseudoMonthYearPicker } from './Calendar.styles';
|
|
8
6
|
import MonthWrapper from './month-wrapper/MonthWrapper';
|
|
7
|
+
import { Language } from "chayns-api";
|
|
8
|
+
import { addYears, differenceInCalendarMonths, isSameDay, isSameMonth, isWithinInterval, subYears } from "../../utils/date";
|
|
9
9
|
const DEFAULT_MAX_DATE = addYears(new Date(), 1);
|
|
10
10
|
const DEFAULT_MIN_DATE = subYears(new Date(), 1);
|
|
11
11
|
const Calendar = _ref => {
|
|
12
12
|
let {
|
|
13
|
-
locale =
|
|
13
|
+
locale = Language.German,
|
|
14
14
|
maxDate = DEFAULT_MAX_DATE,
|
|
15
15
|
minDate = DEFAULT_MIN_DATE,
|
|
16
16
|
highlightedDates,
|
|
@@ -55,7 +55,7 @@ const Calendar = _ref => {
|
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
|
-
}, [currentDate, shouldRenderTwoMonths]);
|
|
58
|
+
}, [currentDate, onShownDatesChange, shouldRenderTwoMonths]);
|
|
59
59
|
useEffect(() => {
|
|
60
60
|
const bounds = {
|
|
61
61
|
start: minDate,
|
|
@@ -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","customThumbColors","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 {Categories, CustomThumbColors, DateInterval, HighlightedDates} from '../../types/calendar';\nimport { CalendarType } from '../../types/calendar';\nimport { getNewDate, getYearsBetween, isDateInRange } from '../../utils/calendar';\nimport {\n StyledCalendar,\n StyledCalendarIconWrapper,\n StyledCalendarIconWrapperPseudo,\n StyledPseudoMonthYearPicker,\n} from './Calendar.styles';\nimport MonthWrapper from './month-wrapper/MonthWrapper';\n\ninterface BaseProps {\n /**\n * An array to group dates into a category.\n */\n categories?: Categories[];\n /**\n * Custom colors for the thumb.\n */\n customThumbColors?: CustomThumbColors;\n /**\n * An array with dates and corresponding styles to highlight.\n */\n highlightedDates?: HighlightedDates[];\n /**\n * To disable the Calendar\n */\n isDisabled?: boolean;\n /**\n * The locale language to format the dates.\n */\n locale?: Locale;\n /**\n * The maximum date that can be selected.\n */\n maxDate?: Date;\n /**\n * The minimum date that can be selected.\n */\n minDate?: Date;\n /**\n * An array of dates that should be disabled.\n */\n disabledDates?: Date[];\n /**\n * Whether the highlighted dates should be displayed for the greyed month overlay days.\n */\n shouldShowHighlightsInMonthOverlay?: boolean;\n /**\n * Shows the month and year pickers, if there are multiple months/years to select from.\n */\n showMonthYearPickers?: boolean;\n /**\n * Function to be executed when the selected date, dates or date interval change.\n * @param date\n */\n onChange?: (date: Date | Date[] | DateInterval) => void;\n /**\n * Function to be executed when the shown dates change. Returns the start of the displayed month and the end of the last displayed month (since depending on the available widths, there are one or two months displayed).\n @param { start: Date, end: Date }\n */\n onShownDatesChange?: (dates: { start: Date; end: Date }) => void;\n}\n\ninterface SingleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type?: CalendarType.Single;\n /**\n * A date that should be preselected.\n */\n selectedDate?: Date;\n selectedDates: never;\n selectedDateInterval: never;\n}\n\ninterface MultipleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Multiple;\n /**\n * An array of dates that should be preselected.\n */\n selectedDates?: Date[];\n selectedDate: never;\n selectedDateInterval: never;\n}\n\ninterface IntervalSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Interval;\n /**\n * An interval that should be preselected.\n */\n selectedDateInterval?: DateInterval;\n selectedDates: never;\n selectedDate: never;\n}\n\nexport type CalendarProps = BaseProps &\n (SingleSelectionProps | MultipleSelectionProps | IntervalSelectionProps);\n\nconst DEFAULT_MAX_DATE = addYears(new Date(), 1);\nconst DEFAULT_MIN_DATE = subYears(new Date(), 1);\n\nconst Calendar: FC<CalendarProps> = ({\n locale = de,\n maxDate = DEFAULT_MAX_DATE,\n minDate = DEFAULT_MIN_DATE,\n highlightedDates,\n onChange,customThumbColors,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\n shouldShowHighlightsInMonthOverlay = true,\n disabledDates = [],\n showMonthYearPickers: showMonthYearPickersProp,\n onShownDatesChange = () => {},\n}) => {\n const [currentDate, setCurrentDate] = useState<Date>();\n const [shouldRenderTwoMonths, setShouldRenderTwoMonths] = useState(true);\n const [internalSelectedDate, setInternalSelectedDate] = useState<\n Date | Date[] | DateInterval | undefined\n >(type === CalendarType.Multiple ? [] : undefined);\n const [direction, setDirection] = useState<'left' | 'right'>();\n const [width, setWidth] = useState(0);\n\n const showMonthYearPickers = useMemo(() => {\n const hasMultipleMonths = differenceInCalendarMonths(maxDate, minDate) > 0;\n const hasMultipleYears = getYearsBetween(minDate, maxDate).length > 1;\n\n return !!(showMonthYearPickersProp && (hasMultipleMonths || hasMultipleYears));\n }, [minDate, maxDate, showMonthYearPickersProp]);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (currentDate) {\n const start = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n\n if (shouldRenderTwoMonths) {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 2, 0);\n onShownDatesChange({\n start,\n end,\n });\n } else {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n onShownDatesChange({\n start,\n end,\n });\n }\n }\n }, [currentDate, shouldRenderTwoMonths]);\n\n useEffect(() => {\n const bounds = {\n start: minDate,\n end: maxDate,\n };\n if (type === CalendarType.Single) {\n if (selectedDate) {\n const isDisabledDate = disabledDates.some((disabledDate) =>\n isSameDay(selectedDate, disabledDate),\n );\n const isDateInBounds = isWithinInterval(selectedDate, bounds);\n\n if (!isDisabledDate && isDateInBounds) {\n setInternalSelectedDate(selectedDate);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDate, because it is disabled or out of bounds.',\n '\\nselectedDate:',\n selectedDate,\n ...(isDisabledDate ? ['\\nselectedDate is disabled'] : []),\n ...(isDateInBounds\n ? []\n : ['\\nselectedDate is outside of bounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n } else {\n setInternalSelectedDate(undefined);\n }\n } else if (type === CalendarType.Multiple) {\n if (selectedDates) {\n const disabledSelectedDates: Date[] = [];\n const datesOutsideOfBounds: Date[] = [];\n\n const filteredDates = selectedDates.filter((date) => {\n if (disabledDates.some((disabledDate) => isSameDay(date, disabledDate))) {\n disabledSelectedDates.push(date);\n return false;\n }\n\n if (!isWithinInterval(date, bounds)) {\n datesOutsideOfBounds.push(date);\n return false;\n }\n\n return true;\n });\n\n if (disabledSelectedDates.length > 0 || datesOutsideOfBounds.length > 0) {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set all selectedDates, because some are disabled or out of bounds.',\n ...(disabledSelectedDates.length > 0\n ? ['\\nselectedDates that are disabled:', disabledSelectedDates]\n : []),\n ...(datesOutsideOfBounds.length > 0\n ? [\n '\\nselectedDates that are outside of bounds:',\n datesOutsideOfBounds,\n 'bounds:',\n { minDate, maxDate },\n ]\n : []),\n );\n }\n\n setInternalSelectedDate(filteredDates);\n } else {\n setInternalSelectedDate([]);\n }\n } else if (type === CalendarType.Interval) {\n if (selectedDateInterval) {\n const intervalIncludesDisabledDate =\n selectedDateInterval.end &&\n disabledDates.some((disabledDate) =>\n isWithinInterval(disabledDate, {\n start: selectedDateInterval.start,\n end: selectedDateInterval.end as Date,\n }),\n );\n\n const intervalIsInBounds =\n isWithinInterval(selectedDateInterval.start, bounds) &&\n (!selectedDateInterval.end ||\n isWithinInterval(selectedDateInterval.end, bounds));\n\n if (!intervalIncludesDisabledDate && intervalIsInBounds) {\n setInternalSelectedDate(selectedDateInterval);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDateInterval, because it includes disabled dates or dates that are out of bounds.',\n '\\nselectedDateInterval:',\n selectedDateInterval,\n ...(intervalIncludesDisabledDate\n ? ['\\ndisabled dates:', disabledDates]\n : []),\n ...(intervalIsInBounds ? [] : ['\\nbounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n }\n }\n }, [type, selectedDate, selectedDates, selectedDateInterval, disabledDates, minDate, maxDate]);\n\n useEffect(() => {\n if (calendarRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries && entries[0]) {\n const observedWidth = entries[0].contentRect.width;\n\n setWidth(observedWidth - 30);\n\n if (observedWidth < 430) {\n setShouldRenderTwoMonths(false);\n } else {\n setShouldRenderTwoMonths(true);\n }\n }\n });\n\n resizeObserver.observe(calendarRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n\n return () => {};\n }, []);\n\n useEffect(() => {\n setCurrentDate((prevDate) =>\n isDateInRange({ minDate, maxDate, currentDate: prevDate || new Date() }),\n );\n }, [maxDate, minDate]);\n\n const handleLeftArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('left');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(-1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleRightArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('right');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleSelect = useCallback(\n (date: Date) => {\n setInternalSelectedDate((prevDate) => {\n let onChangePayload: Date | Date[] | DateInterval | null = null;\n let newInternalSelectedDate: Date | Date[] | DateInterval | undefined;\n\n if (type === CalendarType.Single) {\n onChangePayload = date;\n newInternalSelectedDate = date;\n } else if (type === CalendarType.Multiple) {\n const prevSelectedDates = prevDate as Date[];\n // Selects or unselects date , depending on if it is already selected.\n if (prevSelectedDates.some((d) => isSameDay(d, date))) {\n newInternalSelectedDate = prevSelectedDates.filter(\n (d) => !isSameDay(d, date),\n );\n } else {\n newInternalSelectedDate = [...prevSelectedDates, date];\n }\n\n onChangePayload = newInternalSelectedDate;\n } else if (type === CalendarType.Interval) {\n const prevSelectedDateInterval = prevDate as DateInterval;\n\n const updateInterval = (start: Date, end?: Date): void => {\n const newInterval = { start, end };\n onChangePayload = newInterval;\n newInternalSelectedDate = newInterval;\n };\n\n // Sets first selection as interval start.\n if (!prevSelectedDateInterval) {\n updateInterval(date);\n } else if (prevSelectedDateInterval.start && !prevSelectedDateInterval.end) {\n // Sets second selection as interval start, if it is earlier than the previous interval start.\n // Else sets it as interval end.\n if (date < prevSelectedDateInterval.start) {\n updateInterval(date);\n } else {\n updateInterval(prevSelectedDateInterval.start, date);\n }\n } else {\n // Resets interval if a third date is selected.\n updateInterval(date);\n }\n }\n\n if (typeof onChange === 'function' && onChangePayload) {\n onChange(onChangePayload);\n }\n\n return newInternalSelectedDate;\n });\n },\n [type, onChange],\n );\n\n const handleAnimationFinished = () => {\n setDirection(undefined);\n };\n\n const ShouldShowLeftArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, minDate);\n }, [currentDate, minDate]);\n\n const ShouldShowRightArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, maxDate);\n }, [currentDate, maxDate]);\n\n return (\n <StyledCalendar ref={calendarRef} $isDisabled={isDisabled}>\n {ShouldShowLeftArrow ? (\n <StyledCalendarIconWrapper onClick={handleLeftArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-left']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n {currentDate && (\n <MonthWrapper\n shouldRenderTwo={shouldRenderTwoMonths}\n currentDate={currentDate}\n width={width}\n locale={locale}\n direction={direction}\n customThumbColors={customThumbColors}\n onSelect={handleSelect}\n selectedDate={internalSelectedDate}\n highlightedDates={highlightedDates}\n categories={categories}\n onAnimationFinished={handleAnimationFinished}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n showMonthYearPickers={showMonthYearPickers}\n />\n )}\n {ShouldShowRightArrow ? (\n <StyledCalendarIconWrapper onClick={handleRightArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-right']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n </StyledCalendar>\n );\n};\n\nCalendar.displayName = 'Calendar';\n\nexport default Calendar;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Calendar.js","names":["ComboBox","Icon","React","useCallback","useEffect","useMemo","useRef","useState","CalendarType","getNewDate","getYearsBetween","isDateInRange","StyledCalendar","StyledCalendarIconWrapper","StyledCalendarIconWrapperPseudo","StyledPseudoMonthYearPicker","MonthWrapper","Language","addYears","differenceInCalendarMonths","isSameDay","isSameMonth","isWithinInterval","subYears","DEFAULT_MAX_DATE","Date","DEFAULT_MIN_DATE","Calendar","_ref","locale","German","maxDate","minDate","highlightedDates","onChange","customThumbColors","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 React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport {Categories, CustomThumbColors, DateInterval, HighlightedDates} from '../../types/calendar';\nimport { CalendarType } from '../../types/calendar';\nimport { getNewDate, getYearsBetween, isDateInRange } from '../../utils/calendar';\nimport {\n StyledCalendar,\n StyledCalendarIconWrapper,\n StyledCalendarIconWrapperPseudo,\n StyledPseudoMonthYearPicker,\n} from './Calendar.styles';\nimport MonthWrapper from './month-wrapper/MonthWrapper';\nimport {Language} from \"chayns-api\";\nimport {\n addYears,\n differenceInCalendarMonths,\n isSameDay,\n isSameMonth,\n isWithinInterval,\n subYears\n} from \"../../utils/date\";\n\ninterface BaseProps {\n /**\n * An array to group dates into a category.\n */\n categories?: Categories[];\n /**\n * Custom colors for the thumb.\n */\n customThumbColors?: CustomThumbColors;\n /**\n * An array with dates and corresponding styles to highlight.\n */\n highlightedDates?: HighlightedDates[];\n /**\n * To disable the Calendar\n */\n isDisabled?: boolean;\n /**\n * The locale language to format the dates.\n */\n locale?: Language;\n /**\n * The maximum date that can be selected.\n */\n maxDate?: Date;\n /**\n * The minimum date that can be selected.\n */\n minDate?: Date;\n /**\n * An array of dates that should be disabled.\n */\n disabledDates?: Date[];\n /**\n * Whether the highlighted dates should be displayed for the greyed month overlay days.\n */\n shouldShowHighlightsInMonthOverlay?: boolean;\n /**\n * Shows the month and year pickers, if there are multiple months/years to select from.\n */\n showMonthYearPickers?: boolean;\n /**\n * Function to be executed when the selected date, dates or date interval change.\n * @param date\n */\n onChange?: (date: Date | Date[] | DateInterval) => void;\n /**\n * Function to be executed when the shown dates change. Returns the start of the displayed month and the end of the last displayed month (since depending on the available widths, there are one or two months displayed).\n @param { start: Date, end: Date }\n */\n onShownDatesChange?: (dates: { start: Date; end: Date }) => void;\n}\n\ninterface SingleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type?: CalendarType.Single;\n /**\n * A date that should be preselected.\n */\n selectedDate?: Date;\n selectedDates: never;\n selectedDateInterval: never;\n}\n\ninterface MultipleSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Multiple;\n /**\n * An array of dates that should be preselected.\n */\n selectedDates?: Date[];\n selectedDate: never;\n selectedDateInterval: never;\n}\n\ninterface IntervalSelectionProps {\n /**\n * The type of the calendar selection.\n */\n type: CalendarType.Interval;\n /**\n * An interval that should be preselected.\n */\n selectedDateInterval?: DateInterval;\n selectedDates: never;\n selectedDate: never;\n}\n\nexport type CalendarProps = BaseProps &\n (SingleSelectionProps | MultipleSelectionProps | IntervalSelectionProps);\n\nconst DEFAULT_MAX_DATE = addYears(new Date(), 1);\nconst DEFAULT_MIN_DATE = subYears(new Date(), 1);\n\nconst Calendar: FC<CalendarProps> = ({\n locale = Language.German,\n maxDate = DEFAULT_MAX_DATE,\n minDate = DEFAULT_MIN_DATE,\n highlightedDates,\n onChange,customThumbColors,\n selectedDate,\n selectedDates,\n selectedDateInterval,\n categories,\n isDisabled,\n type = CalendarType.Single,\n shouldShowHighlightsInMonthOverlay = true,\n disabledDates = [],\n showMonthYearPickers: showMonthYearPickersProp,\n onShownDatesChange = () => {},\n}) => {\n const [currentDate, setCurrentDate] = useState<Date>();\n const [shouldRenderTwoMonths, setShouldRenderTwoMonths] = useState(true);\n const [internalSelectedDate, setInternalSelectedDate] = useState<\n Date | Date[] | DateInterval | undefined\n >(type === CalendarType.Multiple ? [] : undefined);\n const [direction, setDirection] = useState<'left' | 'right'>();\n const [width, setWidth] = useState(0);\n\n const showMonthYearPickers = useMemo(() => {\n const hasMultipleMonths = differenceInCalendarMonths(maxDate, minDate) > 0;\n const hasMultipleYears = getYearsBetween(minDate, maxDate).length > 1;\n\n return !!(showMonthYearPickersProp && (hasMultipleMonths || hasMultipleYears));\n }, [minDate, maxDate, showMonthYearPickersProp]);\n\n const calendarRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (currentDate) {\n const start = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\n\n if (shouldRenderTwoMonths) {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 2, 0);\n onShownDatesChange({\n start,\n end,\n });\n } else {\n const end = new Date(currentDate.getFullYear(), currentDate.getMonth() + 1, 0);\n onShownDatesChange({\n start,\n end,\n });\n }\n }\n }, [currentDate, onShownDatesChange, shouldRenderTwoMonths]);\n\n useEffect(() => {\n const bounds = {\n start: minDate,\n end: maxDate,\n };\n if (type === CalendarType.Single) {\n if (selectedDate) {\n const isDisabledDate = disabledDates.some((disabledDate) =>\n isSameDay(selectedDate, disabledDate),\n );\n const isDateInBounds = isWithinInterval(selectedDate, bounds);\n\n if (!isDisabledDate && isDateInBounds) {\n setInternalSelectedDate(selectedDate);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDate, because it is disabled or out of bounds.',\n '\\nselectedDate:',\n selectedDate,\n ...(isDisabledDate ? ['\\nselectedDate is disabled'] : []),\n ...(isDateInBounds\n ? []\n : ['\\nselectedDate is outside of bounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n } else {\n setInternalSelectedDate(undefined);\n }\n } else if (type === CalendarType.Multiple) {\n if (selectedDates) {\n const disabledSelectedDates: Date[] = [];\n const datesOutsideOfBounds: Date[] = [];\n\n const filteredDates = selectedDates.filter((date) => {\n if (disabledDates.some((disabledDate) => isSameDay(date, disabledDate))) {\n disabledSelectedDates.push(date);\n return false;\n }\n\n if (!isWithinInterval(date, bounds)) {\n datesOutsideOfBounds.push(date);\n return false;\n }\n\n return true;\n });\n\n if (disabledSelectedDates.length > 0 || datesOutsideOfBounds.length > 0) {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set all selectedDates, because some are disabled or out of bounds.',\n ...(disabledSelectedDates.length > 0\n ? ['\\nselectedDates that are disabled:', disabledSelectedDates]\n : []),\n ...(datesOutsideOfBounds.length > 0\n ? [\n '\\nselectedDates that are outside of bounds:',\n datesOutsideOfBounds,\n 'bounds:',\n { minDate, maxDate },\n ]\n : []),\n );\n }\n\n setInternalSelectedDate(filteredDates);\n } else {\n setInternalSelectedDate([]);\n }\n } else if (type === CalendarType.Interval) {\n if (selectedDateInterval) {\n const intervalIncludesDisabledDate =\n selectedDateInterval.end &&\n disabledDates.some((disabledDate) =>\n isWithinInterval(disabledDate, {\n start: selectedDateInterval.start,\n end: selectedDateInterval.end as Date,\n }),\n );\n\n const intervalIsInBounds =\n isWithinInterval(selectedDateInterval.start, bounds) &&\n (!selectedDateInterval.end ||\n isWithinInterval(selectedDateInterval.end, bounds));\n\n if (!intervalIncludesDisabledDate && intervalIsInBounds) {\n setInternalSelectedDate(selectedDateInterval);\n } else {\n console.warn(\n '[@chayns-components/date] Warning: Failed to set selectedDateInterval, because it includes disabled dates or dates that are out of bounds.',\n '\\nselectedDateInterval:',\n selectedDateInterval,\n ...(intervalIncludesDisabledDate\n ? ['\\ndisabled dates:', disabledDates]\n : []),\n ...(intervalIsInBounds ? [] : ['\\nbounds:', { minDate, maxDate }]),\n );\n setInternalSelectedDate(undefined);\n }\n }\n }\n }, [type, selectedDate, selectedDates, selectedDateInterval, disabledDates, minDate, maxDate]);\n\n useEffect(() => {\n if (calendarRef.current) {\n const resizeObserver = new ResizeObserver((entries) => {\n if (entries && entries[0]) {\n const observedWidth = entries[0].contentRect.width;\n\n setWidth(observedWidth - 30);\n\n if (observedWidth < 430) {\n setShouldRenderTwoMonths(false);\n } else {\n setShouldRenderTwoMonths(true);\n }\n }\n });\n\n resizeObserver.observe(calendarRef.current);\n\n return () => {\n resizeObserver.disconnect();\n };\n }\n\n return () => {};\n }, []);\n\n useEffect(() => {\n setCurrentDate((prevDate) =>\n isDateInRange({ minDate, maxDate, currentDate: prevDate || new Date() }),\n );\n }, [maxDate, minDate]);\n\n const handleLeftArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('left');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(-1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleRightArrowClick = useCallback(() => {\n if (direction) return;\n\n setDirection('right');\n\n setCurrentDate((prevDate) => {\n if (!prevDate) {\n return prevDate;\n }\n\n const newDate = getNewDate(1, prevDate);\n\n return isDateInRange({ minDate, maxDate, currentDate: newDate });\n });\n }, [maxDate, minDate, direction]);\n\n const handleSelect = useCallback(\n (date: Date) => {\n setInternalSelectedDate((prevDate) => {\n let onChangePayload: Date | Date[] | DateInterval | null = null;\n let newInternalSelectedDate: Date | Date[] | DateInterval | undefined;\n\n if (type === CalendarType.Single) {\n onChangePayload = date;\n newInternalSelectedDate = date;\n } else if (type === CalendarType.Multiple) {\n const prevSelectedDates = prevDate as Date[];\n // Selects or unselects date , depending on if it is already selected.\n if (prevSelectedDates.some((d) => isSameDay(d, date))) {\n newInternalSelectedDate = prevSelectedDates.filter(\n (d) => !isSameDay(d, date),\n );\n } else {\n newInternalSelectedDate = [...prevSelectedDates, date];\n }\n\n onChangePayload = newInternalSelectedDate;\n } else if (type === CalendarType.Interval) {\n const prevSelectedDateInterval = prevDate as DateInterval;\n\n const updateInterval = (start: Date, end?: Date): void => {\n const newInterval = { start, end };\n onChangePayload = newInterval;\n newInternalSelectedDate = newInterval;\n };\n\n // Sets first selection as interval start.\n if (!prevSelectedDateInterval) {\n updateInterval(date);\n } else if (prevSelectedDateInterval.start && !prevSelectedDateInterval.end) {\n // Sets second selection as interval start, if it is earlier than the previous interval start.\n // Else sets it as interval end.\n if (date < prevSelectedDateInterval.start) {\n updateInterval(date);\n } else {\n updateInterval(prevSelectedDateInterval.start, date);\n }\n } else {\n // Resets interval if a third date is selected.\n updateInterval(date);\n }\n }\n\n if (typeof onChange === 'function' && onChangePayload) {\n onChange(onChangePayload);\n }\n\n return newInternalSelectedDate;\n });\n },\n [type, onChange],\n );\n\n const handleAnimationFinished = () => {\n setDirection(undefined);\n };\n\n const ShouldShowLeftArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, minDate);\n }, [currentDate, minDate]);\n\n const ShouldShowRightArrow = useMemo(() => {\n if (!currentDate) {\n return false;\n }\n\n return !isSameMonth(currentDate, maxDate);\n }, [currentDate, maxDate]);\n\n return (\n <StyledCalendar ref={calendarRef} $isDisabled={isDisabled}>\n {ShouldShowLeftArrow ? (\n <StyledCalendarIconWrapper onClick={handleLeftArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-left']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n {currentDate && (\n <MonthWrapper\n shouldRenderTwo={shouldRenderTwoMonths}\n currentDate={currentDate}\n width={width}\n locale={locale}\n direction={direction}\n customThumbColors={customThumbColors}\n onSelect={handleSelect}\n selectedDate={internalSelectedDate}\n highlightedDates={highlightedDates}\n categories={categories}\n onAnimationFinished={handleAnimationFinished}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n showMonthYearPickers={showMonthYearPickers}\n />\n )}\n {ShouldShowRightArrow ? (\n <StyledCalendarIconWrapper onClick={handleRightArrowClick}>\n <div // TODO Use styled-components instead of inline styles\n style={{\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n height: 'fit-content',\n }}\n >\n {showMonthYearPickers && (\n <StyledPseudoMonthYearPicker>\n <ComboBox lists={[{ list: [] }]} placeholder=\"\" />\n </StyledPseudoMonthYearPicker>\n )}\n <Icon icons={['fa fa-angle-right']} />\n </div>\n </StyledCalendarIconWrapper>\n ) : (\n <StyledCalendarIconWrapperPseudo />\n )}\n </StyledCalendar>\n );\n};\n\nCalendar.displayName = 'Calendar';\n\nexport default Calendar;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthWrapper.js","names":["React","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 { Locale } from 'date-fns';\nimport type { MotionProps } from 'framer-motion';\nimport React, { FC, useEffect, useMemo, useState, type ReactElement } from 'react';\nimport {\n CalendarType,\n Categories, CustomThumbColors,\n DateInterval,\n HighlightedDates,\n} from '../../../types/calendar';\nimport { getMonthAndYear, getNewDate } from '../../../utils/calendar';\nimport Month from './month/Month';\nimport { StyledMonthWrapper, StyledMotionWrapper } from './MonthWrapper.styles';\n\nexport type MonthWrapperProps = {\n locale: Locale;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n currentDate: Date;\n direction?: 'left' | 'right';\n onAnimationFinished: () => void;\n shouldRenderTwo: boolean;\n width: number;\n isDisabled?: boolean;\n maxDate: Date;\n minDate: Date;\n type: CalendarType;\n disabledDates: Date[];\n setCurrentDate: (date: Date) => void;\n shouldShowHighlightsInMonthOverlay: boolean;\n showMonthYearPickers: boolean;\n customThumbColors?: CustomThumbColors;\n};\n\nconst MonthWrapper: FC<MonthWrapperProps> = ({\n locale,\n currentDate,\n highlightedDates,\n selectedDate,\n onSelect,\n categories,\n direction,\n onAnimationFinished,\n shouldRenderTwo,\n width,customThumbColors,\n isDisabled,\n minDate,\n maxDate,\n shouldShowHighlightsInMonthOverlay,\n type,\n disabledDates,\n setCurrentDate,\n showMonthYearPickers,\n}) => {\n const [content, setContent] = useState<ReactElement[]>();\n\n const [hoveringDay, setHoveringDay] = useState<Date | null>(null);\n\n const monthHeight = useMemo(() => width / (shouldRenderTwo ? 2 : 1), [width, shouldRenderTwo]);\n\n useEffect(() => {\n setContent(() => {\n // Initial render of months\n const items: ReactElement[] = [];\n\n for (let i = -1; i < 3; i++) {\n const date = getNewDate(i, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n items.push(\n <Month\n height={monthHeight}\n key={`${month}-${year}`}\n month={month}\n year={year}\n locale={locale}\n onSelect={onSelect}\n highlightedDates={highlightedDates}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n categories={categories}\n selectedDate={selectedDate}\n minDate={minDate}\n maxDate={maxDate}\n type={type}\n customThumbColors={customThumbColors}\n hoveringDay={hoveringDay}\n setHoveringDay={setHoveringDay}\n disabledDates={disabledDates}\n setCurrentDate={setCurrentDate}\n displayIndex={i}\n showMonthYearPickers={showMonthYearPickers}\n />,\n );\n }\n\n return items;\n });\n }, [monthHeight]);\n\n useEffect(() => {\n // Doesn't update props until animation is completed\n if (direction) return;\n\n setContent((prevState) =>\n (prevState ?? []).map((element, index) => {\n const date = getNewDate(index - 1, currentDate);\n\n const { month, year } = getMonthAndYear(date);\n\n return {\n ...element,\n props: {\n ...element.props,\n categories,\n disabledDates,\n displayIndex: index - 1,\n highlightedDates,\n hoveringDay,\n locale,\n onSelect,\n shouldShowHighlightsInMonthOverlay,\n maxDate,\n minDate,\n month,\n customThumbColors,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n year,\n } as ReactElement,\n };\n }),\n );\n }, [\n customThumbColors,\n categories,\n currentDate,\n direction,\n disabledDates,\n highlightedDates,\n hoveringDay,\n locale,\n onAnimationFinished,\n onSelect,\n maxDate,\n minDate,\n selectedDate,\n setCurrentDate,\n setHoveringDay,\n showMonthYearPickers,\n type,\n shouldShowHighlightsInMonthOverlay,\n ]);\n\n const animate: MotionProps['animate'] = useMemo(() => {\n if (shouldRenderTwo) {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-100%' };\n default:\n return { x: '-50%' };\n }\n } else {\n switch (true) {\n case direction === 'left':\n return { x: '0%' };\n case direction === 'right':\n return { x: '-200%' };\n default:\n return { x: '-100%' };\n }\n }\n }, [direction, shouldRenderTwo]);\n\n return (\n <StyledMonthWrapper $height={monthHeight} $width={width}>\n <StyledMotionWrapper\n animate={animate}\n $isDisabled={isDisabled}\n transition={{\n type: 'tween',\n duration: !direction ? 0 : 0.2,\n }}\n onAnimationComplete={onAnimationFinished}\n >\n {content}\n </StyledMotionWrapper>\n </StyledMonthWrapper>\n );\n};\n\nMonthWrapper.displayName = 'MonthWrapper';\n\nexport default MonthWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"MonthWrapper.js","names":["React","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 +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
|
|
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,9 +1,9 @@
|
|
|
1
|
-
import { addDays, isAfter, isSameDay, isSameMonth, isWithinInterval, startOfMonth, startOfWeek } from 'date-fns';
|
|
2
1
|
import React, { useCallback, useMemo } from 'react';
|
|
3
2
|
import { CalendarType } from '../../../../../types/calendar';
|
|
4
3
|
import { findNextDate } from '../../../../../utils/calendar';
|
|
5
4
|
import Day from './day/Day';
|
|
6
5
|
import { StyledDayWrapper } from './DayWrapper.styles';
|
|
6
|
+
import { addDays, isAfter, isSameDay, isSameMonth, isWithinInterval, startOfMonth, startOfWeek } from "../../../../../utils/date";
|
|
7
7
|
const DayWrapper = _ref => {
|
|
8
8
|
let {
|
|
9
9
|
month,
|
|
@@ -25,9 +25,7 @@ const DayWrapper = _ref => {
|
|
|
25
25
|
const days = useMemo(() => {
|
|
26
26
|
const dateArray = [];
|
|
27
27
|
const currentDate = startOfMonth(dayOfCurrentMonth);
|
|
28
|
-
const startDay = startOfWeek(currentDate
|
|
29
|
-
weekStartsOn: 1
|
|
30
|
-
});
|
|
28
|
+
const startDay = startOfWeek(currentDate);
|
|
31
29
|
for (let i = 0; i < 42; i++) {
|
|
32
30
|
const newDate = addDays(startDay, i);
|
|
33
31
|
dateArray.push(newDate);
|
|
@@ -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","customThumbColors","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, CustomThumbColors,\n type DateInterval,\n type EMonth,\n type HighlightedDates,\n} from '../../../../../types/calendar';\nimport { findNextDate } from '../../../../../utils/calendar';\nimport Day from './day/Day';\nimport { StyledDayWrapper } from './DayWrapper.styles';\n\nexport type DayWrapperProps = {\n month: EMonth;\n year: number;\n highlightedDates?: HighlightedDates[];\n onSelect: (date: Date) => void;\n selectedDate?: Date | Date[] | DateInterval;\n categories?: Categories[];\n minDate: Date;\n maxDate: Date;\n type: CalendarType;\n hoveringDay: Date | null;\n setHoveringDay: (date: Date | null) => void;\n disabledDates: Date[];\n customThumbColors?: CustomThumbColors;\n shouldShowHighlightsInMonthOverlay: boolean;\n};\n\nconst DayWrapper: FC<DayWrapperProps> = ({\n month,\n year,\n highlightedDates,\n onSelect,\n selectedDate,\n categories,\n minDate,\n maxDate,customThumbColors,\n type,\n hoveringDay,\n shouldShowHighlightsInMonthOverlay,\n setHoveringDay,\n disabledDates,\n}) => {\n const dayOfCurrentMonth = useMemo(() => new Date(year, month - 1, 13), [month, year]);\n\n const days = useMemo(() => {\n const dateArray: Date[] = [];\n\n const currentDate = startOfMonth(dayOfCurrentMonth);\n\n const startDay = startOfWeek(currentDate, { weekStartsOn: 1 });\n\n for (let i = 0; i < 42; i++) {\n const newDate = addDays(startDay, i);\n dateArray.push(newDate);\n }\n\n return dateArray;\n }, [dayOfCurrentMonth]);\n\n const handleDayClick = useCallback(\n (date: Date, shouldFireEvent: boolean) => {\n if (shouldFireEvent) {\n onSelect(date);\n }\n },\n [onSelect],\n );\n\n const dayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n const { start, end } = (selectedDate || {}) as DateInterval;\n const firstDisabledDateAfterStart = findNextDate(start, disabledDates);\n\n days.forEach((day) => {\n let isSelected = false;\n let isIntervalStart = false;\n let isIntervalEnd = false;\n let isWithinIntervalSelection = false;\n const showHoverEffect = false;\n\n let isDisabled =\n // Disables dates, that are not between minDate and maxDate.\n !isWithinInterval(day, { start: minDate, end: maxDate }) ||\n // Disables\n disabledDates.some((disabledDate) => isSameDay(disabledDate, day));\n\n if (type === CalendarType.Single && selectedDate instanceof Date) {\n isSelected = isSameDay(selectedDate, day);\n } else if (type === CalendarType.Multiple && Array.isArray(selectedDate)) {\n isSelected = selectedDate.some((date) => isSameDay(date, day));\n } else if (type === CalendarType.Interval && start) {\n isIntervalStart = isSameDay(start, day);\n if (end) {\n isIntervalEnd = isSameDay(end, day);\n\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end,\n });\n } else if (\n firstDisabledDateAfterStart &&\n !isDisabled &&\n isAfter(day, firstDisabledDateAfterStart)\n ) {\n // Ensures, that the interval end can't be set in a way, that the interval includes disabled dates.\n isDisabled = true;\n }\n }\n\n if (\n type === CalendarType.Interval &&\n hoveringDay &&\n !isIntervalStart &&\n !isIntervalEnd &&\n !isWithinIntervalSelection\n ) {\n if (!start) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else if (start && !end) {\n if (start > day) {\n isIntervalStart = isSameDay(day, hoveringDay);\n } else {\n isWithinIntervalSelection = isWithinInterval(day, {\n start,\n end: hoveringDay,\n });\n isIntervalEnd = isSameDay(hoveringDay, day);\n }\n } else if (start && end && isSameDay(hoveringDay, day)) {\n isIntervalStart = !isWithinInterval(day, { start, end });\n }\n }\n\n items.push(\n <Day\n key={`single-day-${day.toDateString()}`}\n categories={categories}\n date={day}\n isSelected={isSelected}\n customThumbColors={customThumbColors}\n isIntervalStart={isIntervalStart}\n isIntervalEnd={isIntervalEnd}\n isWithinIntervalSelection={isWithinIntervalSelection}\n isDisabled={isDisabled}\n shouldShowHighlightsInMonthOverlay={shouldShowHighlightsInMonthOverlay}\n isSameMonth={isSameMonth(day, dayOfCurrentMonth)}\n onClick={handleDayClick}\n highlightedDates={highlightedDates}\n setHoveringDay={setHoveringDay}\n />,\n );\n });\n\n return items;\n }, [selectedDate, disabledDates, days, minDate, maxDate, type, hoveringDay, categories, customThumbColors, shouldShowHighlightsInMonthOverlay, dayOfCurrentMonth, handleDayClick, highlightedDates, setHoveringDay]);\n\n return <StyledDayWrapper>{dayElements}</StyledDayWrapper>;\n};\n\nDayWrapper.displayName = 'DayWrapper';\n\nexport default DayWrapper;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DayWrapper.js","names":["React","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,7 +1,7 @@
|
|
|
1
|
-
import { isSameDay } from 'date-fns';
|
|
2
1
|
import React, { useMemo, useRef } from 'react';
|
|
3
2
|
import Category from './category/Category';
|
|
4
3
|
import { StyledDay, StyledDayCategoryWrapper, StyledDayNumber } from './Day.styles';
|
|
4
|
+
import { isSameDay } from "../../../../../../utils/date";
|
|
5
5
|
const Day = _ref => {
|
|
6
6
|
let {
|
|
7
7
|
date,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Day.js","names":["
|
|
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":"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","ignoreList":[]}
|
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
|
-
import { startOfWeek, endOfWeek, eachDayOfInterval, format } from 'date-fns';
|
|
3
2
|
import { StyledWeekdayWrapper } from './WeekdayWrapper.styles';
|
|
4
3
|
import Weekday from './weekday/Weekday';
|
|
4
|
+
import { eachDayOfInterval, endOfWeek, startOfWeek } from "../../../../../utils/date";
|
|
5
5
|
const WeekdayWrapper = _ref => {
|
|
6
6
|
let {
|
|
7
7
|
locale
|
|
8
8
|
} = _ref;
|
|
9
|
-
const monday = startOfWeek(new Date()
|
|
10
|
-
|
|
11
|
-
});
|
|
12
|
-
const sunday = endOfWeek(new Date(), {
|
|
13
|
-
weekStartsOn: 1
|
|
14
|
-
});
|
|
9
|
+
const monday = startOfWeek(new Date());
|
|
10
|
+
const sunday = endOfWeek(new Date());
|
|
15
11
|
const weekdays = eachDayOfInterval({
|
|
16
12
|
start: monday,
|
|
17
13
|
end: sunday
|
|
@@ -19,9 +15,11 @@ const WeekdayWrapper = _ref => {
|
|
|
19
15
|
const weekdayElements = useMemo(() => {
|
|
20
16
|
const items = [];
|
|
21
17
|
weekdays.forEach(day => {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
}
|
|
18
|
+
const options = {
|
|
19
|
+
weekday: 'short'
|
|
20
|
+
};
|
|
21
|
+
const formatter = new Intl.DateTimeFormat(locale, options);
|
|
22
|
+
const formattedDay = formatter.format(day);
|
|
25
23
|
items.push(/*#__PURE__*/React.createElement(Weekday, {
|
|
26
24
|
key: `weekday-${formattedDay}`,
|
|
27
25
|
name: formattedDay
|
package/lib/esm/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeekdayWrapper.js","names":["React","useMemo","
|
|
1
|
+
{"version":3,"file":"WeekdayWrapper.js","names":["React","useMemo","StyledWeekdayWrapper","Weekday","eachDayOfInterval","endOfWeek","startOfWeek","WeekdayWrapper","_ref","locale","monday","Date","sunday","weekdays","start","end","weekdayElements","items","forEach","day","options","weekday","formatter","Intl","DateTimeFormat","formattedDay","format","push","createElement","key","name","displayName"],"sources":["../../../../../../../src/components/calendar/month-wrapper/month/weekday-wrapper/WeekdayWrapper.tsx"],"sourcesContent":["import React, { FC, type ReactElement, useMemo } from 'react';\nimport { StyledWeekdayWrapper } from './WeekdayWrapper.styles';\nimport Weekday from './weekday/Weekday';\nimport {Language} from \"chayns-api\";\nimport {eachDayOfInterval, endOfWeek, startOfWeek} from \"../../../../../utils/date\";\n\nexport type WeekdayWrapperProps = {\n locale?: Language;\n};\n\nconst WeekdayWrapper: FC<WeekdayWrapperProps> = ({ locale }) => {\n const monday = startOfWeek(new Date());\n const sunday = endOfWeek(new Date());\n const weekdays = eachDayOfInterval({ start: monday, end: sunday });\n\n const weekdayElements = useMemo(() => {\n const items: ReactElement[] = [];\n\n weekdays.forEach((day) => {\n const options: Intl.DateTimeFormatOptions = { weekday: 'short' };\n const formatter = new Intl.DateTimeFormat(locale, options);\n const formattedDay = formatter.format(day);\n\n items.push(<Weekday key={`weekday-${formattedDay}`} name={formattedDay} />);\n });\n\n return items;\n }, [locale, weekdays]);\n\n return <StyledWeekdayWrapper>{weekdayElements}</StyledWeekdayWrapper>;\n};\n\nWeekdayWrapper.displayName = 'WeekdayWrapper';\n\nexport default WeekdayWrapper;\n"],"mappings":"AAAA,OAAOA,KAAK,IAA2BC,OAAO,QAAQ,OAAO;AAC7D,SAASC,oBAAoB,QAAQ,yBAAyB;AAC9D,OAAOC,OAAO,MAAM,mBAAmB;AAEvC,SAAQC,iBAAiB,EAAEC,SAAS,EAAEC,WAAW,QAAO,2BAA2B;AAMnF,MAAMC,cAAuC,GAAGC,IAAA,IAAgB;EAAA,IAAf;IAAEC;EAAO,CAAC,GAAAD,IAAA;EACvD,MAAME,MAAM,GAAGJ,WAAW,CAAC,IAAIK,IAAI,CAAC,CAAC,CAAC;EACtC,MAAMC,MAAM,GAAGP,SAAS,CAAC,IAAIM,IAAI,CAAC,CAAC,CAAC;EACpC,MAAME,QAAQ,GAAGT,iBAAiB,CAAC;IAAEU,KAAK,EAAEJ,MAAM;IAAEK,GAAG,EAAEH;EAAO,CAAC,CAAC;EAElE,MAAMI,eAAe,GAAGf,OAAO,CAAC,MAAM;IAClC,MAAMgB,KAAqB,GAAG,EAAE;IAEhCJ,QAAQ,CAACK,OAAO,CAAEC,GAAG,IAAK;MACtB,MAAMC,OAAmC,GAAG;QAAEC,OAAO,EAAE;MAAQ,CAAC;MAChE,MAAMC,SAAS,GAAG,IAAIC,IAAI,CAACC,cAAc,CAACf,MAAM,EAAEW,OAAO,CAAC;MAC1D,MAAMK,YAAY,GAAGH,SAAS,CAACI,MAAM,CAACP,GAAG,CAAC;MAE1CF,KAAK,CAACU,IAAI,cAAC3B,KAAA,CAAA4B,aAAA,CAACzB,OAAO;QAAC0B,GAAG,EAAE,WAAWJ,YAAY,EAAG;QAACK,IAAI,EAAEL;MAAa,CAAE,CAAC,CAAC;IAC/E,CAAC,CAAC;IAEF,OAAOR,KAAK;EAChB,CAAC,EAAE,CAACR,MAAM,EAAEI,QAAQ,CAAC,CAAC;EAEtB,oBAAOb,KAAA,CAAA4B,aAAA,CAAC1B,oBAAoB,QAAEc,eAAsC,CAAC;AACzE,CAAC;AAEDT,cAAc,CAACwB,WAAW,GAAG,gBAAgB;AAE7C,eAAexB,cAAc","ignoreList":[]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ComboBox } from '@chayns-components/core';
|
|
2
|
-
import { differenceInCalendarMonths } from 'date-fns';
|
|
3
2
|
import React, { useMemo, useState } from 'react';
|
|
4
3
|
import { formatMonth, getYearsBetween, isDateInRange } from '../../../utils/calendar';
|
|
5
4
|
import { StyledMonthName } from '../month-wrapper/month/Month.styles';
|
|
5
|
+
import { differenceInCalendarMonths } from "../../../utils/date";
|
|
6
6
|
export let MonthYearPickerType = /*#__PURE__*/function (MonthYearPickerType) {
|
|
7
7
|
MonthYearPickerType["Month"] = "month";
|
|
8
8
|
MonthYearPickerType["Year"] = "year";
|