@mantine/dates 3.5.4 → 3.5.5
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/cjs/components/CalendarBase/CalendarBase.js +12 -3
- package/cjs/components/CalendarBase/CalendarBase.js.map +1 -1
- package/cjs/components/Month/Month.js +13 -8
- package/cjs/components/Month/Month.js.map +1 -1
- package/cjs/components/RangeCalendar/RangeCalendar.js +19 -15
- package/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/esm/components/CalendarBase/CalendarBase.js +12 -3
- package/esm/components/CalendarBase/CalendarBase.js.map +1 -1
- package/esm/components/Month/Month.js +13 -8
- package/esm/components/Month/Month.js.map +1 -1
- package/esm/components/RangeCalendar/RangeCalendar.js +19 -15
- package/esm/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/lib/components/CalendarBase/CalendarBase.d.ts.map +1 -1
- package/lib/components/Month/Month.d.ts +6 -0
- package/lib/components/Month/Month.d.ts.map +1 -1
- package/lib/components/RangeCalendar/RangeCalendar.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -77,7 +77,10 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
77
77
|
previousMonthLabel,
|
|
78
78
|
previousYearLabel,
|
|
79
79
|
labelFormat = "MMMM YYYY",
|
|
80
|
-
hideOutsideDates
|
|
80
|
+
hideOutsideDates,
|
|
81
|
+
isDateInRange,
|
|
82
|
+
isDateFirstInRange,
|
|
83
|
+
isDateLastInRange
|
|
81
84
|
} = _b, others = __objRest(_b, [
|
|
82
85
|
"className",
|
|
83
86
|
"classNames",
|
|
@@ -112,7 +115,10 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
112
115
|
"previousMonthLabel",
|
|
113
116
|
"previousYearLabel",
|
|
114
117
|
"labelFormat",
|
|
115
|
-
"hideOutsideDates"
|
|
118
|
+
"hideOutsideDates",
|
|
119
|
+
"isDateInRange",
|
|
120
|
+
"isDateFirstInRange",
|
|
121
|
+
"isDateLastInRange"
|
|
116
122
|
]);
|
|
117
123
|
const [selectionState, setSelectionState] = React.useState(initialLevel);
|
|
118
124
|
const { classes, cx, theme } = CalendarBase_styles['default']({ size, fullWidth, amountOfMonths: selectionState === "date" ? amountOfMonths : 1 }, { name: __staticSelector, styles, classNames });
|
|
@@ -235,7 +241,10 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
235
241
|
previousMonthLabel,
|
|
236
242
|
labelFormat,
|
|
237
243
|
onDayMouseEnter,
|
|
238
|
-
hideOutsideDates
|
|
244
|
+
hideOutsideDates,
|
|
245
|
+
isDateInRange,
|
|
246
|
+
isDateFirstInRange,
|
|
247
|
+
isDateLastInRange
|
|
239
248
|
}));
|
|
240
249
|
});
|
|
241
250
|
CalendarBase.displayName = "@mantine/dates/CalendarBase";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarBase.js","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Box, MantineSize, ClassNames, DefaultProps } from '@mantine/core';\nimport { MonthSettings, DayKeydownPayload } from '../Month';\nimport { YearPicker, YearPickerStylesNames } from './YearPicker/YearPicker';\nimport { MonthPicker, MonthPickerStylesNames } from './MonthPicker/MonthPicker';\nimport { MonthsList, MonthsListStylesNames } from './MonthsList/MonthsList';\nimport useStyles from './CalendarBase.styles';\n\nexport type CalendarBaseStylesNames =\n | ClassNames<typeof useStyles>\n | YearPickerStylesNames\n | MonthPickerStylesNames\n | MonthsListStylesNames;\n\nexport interface CalendarSharedProps extends DefaultProps<CalendarBaseStylesNames>, MonthSettings {\n /** Month for controlled calendar */\n month?: Date;\n\n /** Initial month for uncontrolled calendar */\n initialMonth?: Date;\n\n /** Called when month changes */\n onMonthChange?(month: Date): void;\n\n /** Locale used for labels formatting, defaults to theme.datesLocale */\n locale?: string;\n\n /** Amount of months */\n amountOfMonths?: number;\n\n /** Selected value */\n value?: Date | null;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Calendar size */\n size?: MantineSize;\n\n /** Allow to change level (date – month – year) */\n allowLevelChange?: boolean;\n\n /** Initial date selection level */\n initialLevel?: 'date' | 'month' | 'year';\n\n /** Static selector base */\n __staticSelector?: string;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Next month control aria-label */\n nextMonthLabel?: string;\n\n /** Previous month control aria-label */\n previousMonthLabel?: string;\n\n /** Next year control aria-label */\n nextYearLabel?: string;\n\n /** Previous year control aria-label */\n previousYearLabel?: string;\n\n /** Next decade control aria-label */\n nextDecadeLabel?: string;\n\n /** Previous decade control aria-label */\n previousDecadeLabel?: string;\n\n /** dayjs label format */\n labelFormat?: string;\n}\n\nexport interface CalendarBaseProps\n extends CalendarSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {}\n\nexport const CalendarBase = forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n classNames,\n styles,\n month,\n initialMonth,\n onMonthChange,\n locale,\n amountOfMonths = 1,\n size = 'sm',\n allowLevelChange = true,\n initialLevel = 'date',\n minDate,\n maxDate,\n __staticSelector = 'CalendarBase',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n excludeDate,\n hideWeekdays,\n fullWidth,\n preventFocus,\n firstDayOfWeek = 'monday',\n value,\n onChange,\n onDayMouseEnter,\n range,\n nextDecadeLabel,\n nextMonthLabel,\n nextYearLabel,\n previousDecadeLabel,\n previousMonthLabel,\n previousYearLabel,\n labelFormat = 'MMMM YYYY',\n hideOutsideDates,\n ...others\n }: CalendarBaseProps,\n ref\n ) => {\n const [selectionState, setSelectionState] = useState(initialLevel);\n const { classes, cx, theme } = useStyles(\n { size, fullWidth, amountOfMonths: selectionState === 'date' ? amountOfMonths : 1 },\n { name: __staticSelector, styles, classNames }\n );\n const finalLocale = locale || theme.datesLocale;\n\n const daysRefs = useRef<HTMLButtonElement[][][]>(\n Array(amountOfMonths)\n .fill(0)\n .map(() => [])\n );\n\n const [_month, setMonth] = useUncontrolled({\n value: month,\n defaultValue: initialMonth,\n finalValue: new Date(),\n onChange: onMonthChange,\n rule: (val) => val instanceof Date,\n });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 0;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n\n if (payload.rowIndex + 1 < daysRefs.current[monthIndex].length) {\n daysRefs.current[monthIndex][payload.rowIndex + 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n if (payload.rowIndex > 0) {\n daysRefs.current[monthIndex][payload.rowIndex - 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== 6) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex + 1].focus();\n } else if (monthIndex + 1 < amountOfMonths) {\n if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {\n daysRefs.current[monthIndex + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex - 1].focus();\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][6].focus();\n }\n }\n }\n }\n };\n\n return (\n <Box className={cx(classes.calendarBase, className)} ref={ref} {...others}>\n {selectionState === 'year' && (\n <YearPicker\n size={size}\n value={yearSelection}\n minYear={minYear}\n maxYear={maxYear}\n onChange={(year) => {\n setYearSelection(year);\n setSelectionState('month');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextDecadeLabel={nextDecadeLabel}\n previousDecadeLabel={previousDecadeLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'month' && (\n <MonthPicker\n size={size}\n value={{ month: _month.getMonth(), year: _month.getFullYear() }}\n year={yearSelection}\n onYearChange={setYearSelection}\n onNextLevel={() => setSelectionState('year')}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n onChange={(monthValue) => {\n setMonth(new Date(yearSelection, monthValue, 1));\n setSelectionState('date');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextYearLabel={nextYearLabel}\n previousYearLabel={previousYearLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n month={_month}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n allowLevelChange={allowLevelChange}\n size={size}\n daysRefs={daysRefs}\n onMonthChange={setMonth}\n onNextLevel={() => setSelectionState('month')}\n onDayKeyDown={handleDayKeyDown}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n excludeDate={excludeDate}\n hideWeekdays={hideWeekdays}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n firstDayOfWeek={firstDayOfWeek}\n value={value}\n range={range}\n onChange={onChange}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n labelFormat={labelFormat}\n onDayMouseEnter={onDayMouseEnter}\n hideOutsideDates={hideOutsideDates}\n />\n )}\n </Box>\n );\n }\n);\n\nCalendarBase.displayName = '@mantine/dates/CalendarBase';\n"],"names":["forwardRef","useState","useStyles","useRef","useUncontrolled","React","Box","YearPicker","MonthPicker","MonthsList"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalendarBase.js","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Box, MantineSize, ClassNames, DefaultProps } from '@mantine/core';\nimport { MonthSettings, DayKeydownPayload } from '../Month';\nimport { YearPicker, YearPickerStylesNames } from './YearPicker/YearPicker';\nimport { MonthPicker, MonthPickerStylesNames } from './MonthPicker/MonthPicker';\nimport { MonthsList, MonthsListStylesNames } from './MonthsList/MonthsList';\nimport useStyles from './CalendarBase.styles';\n\nexport type CalendarBaseStylesNames =\n | ClassNames<typeof useStyles>\n | YearPickerStylesNames\n | MonthPickerStylesNames\n | MonthsListStylesNames;\n\nexport interface CalendarSharedProps extends DefaultProps<CalendarBaseStylesNames>, MonthSettings {\n /** Month for controlled calendar */\n month?: Date;\n\n /** Initial month for uncontrolled calendar */\n initialMonth?: Date;\n\n /** Called when month changes */\n onMonthChange?(month: Date): void;\n\n /** Locale used for labels formatting, defaults to theme.datesLocale */\n locale?: string;\n\n /** Amount of months */\n amountOfMonths?: number;\n\n /** Selected value */\n value?: Date | null;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Calendar size */\n size?: MantineSize;\n\n /** Allow to change level (date – month – year) */\n allowLevelChange?: boolean;\n\n /** Initial date selection level */\n initialLevel?: 'date' | 'month' | 'year';\n\n /** Static selector base */\n __staticSelector?: string;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Next month control aria-label */\n nextMonthLabel?: string;\n\n /** Previous month control aria-label */\n previousMonthLabel?: string;\n\n /** Next year control aria-label */\n nextYearLabel?: string;\n\n /** Previous year control aria-label */\n previousYearLabel?: string;\n\n /** Next decade control aria-label */\n nextDecadeLabel?: string;\n\n /** Previous decade control aria-label */\n previousDecadeLabel?: string;\n\n /** dayjs label format */\n labelFormat?: string;\n}\n\nexport interface CalendarBaseProps\n extends CalendarSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {}\n\nexport const CalendarBase = forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n classNames,\n styles,\n month,\n initialMonth,\n onMonthChange,\n locale,\n amountOfMonths = 1,\n size = 'sm',\n allowLevelChange = true,\n initialLevel = 'date',\n minDate,\n maxDate,\n __staticSelector = 'CalendarBase',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n excludeDate,\n hideWeekdays,\n fullWidth,\n preventFocus,\n firstDayOfWeek = 'monday',\n value,\n onChange,\n onDayMouseEnter,\n range,\n nextDecadeLabel,\n nextMonthLabel,\n nextYearLabel,\n previousDecadeLabel,\n previousMonthLabel,\n previousYearLabel,\n labelFormat = 'MMMM YYYY',\n hideOutsideDates,\n isDateInRange,\n isDateFirstInRange,\n isDateLastInRange,\n ...others\n }: CalendarBaseProps,\n ref\n ) => {\n const [selectionState, setSelectionState] = useState(initialLevel);\n const { classes, cx, theme } = useStyles(\n { size, fullWidth, amountOfMonths: selectionState === 'date' ? amountOfMonths : 1 },\n { name: __staticSelector, styles, classNames }\n );\n const finalLocale = locale || theme.datesLocale;\n\n const daysRefs = useRef<HTMLButtonElement[][][]>(\n Array(amountOfMonths)\n .fill(0)\n .map(() => [])\n );\n\n const [_month, setMonth] = useUncontrolled({\n value: month,\n defaultValue: initialMonth,\n finalValue: new Date(),\n onChange: onMonthChange,\n rule: (val) => val instanceof Date,\n });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 0;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n\n if (payload.rowIndex + 1 < daysRefs.current[monthIndex].length) {\n daysRefs.current[monthIndex][payload.rowIndex + 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n if (payload.rowIndex > 0) {\n daysRefs.current[monthIndex][payload.rowIndex - 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== 6) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex + 1].focus();\n } else if (monthIndex + 1 < amountOfMonths) {\n if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {\n daysRefs.current[monthIndex + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex - 1].focus();\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][6].focus();\n }\n }\n }\n }\n };\n\n return (\n <Box className={cx(classes.calendarBase, className)} ref={ref} {...others}>\n {selectionState === 'year' && (\n <YearPicker\n size={size}\n value={yearSelection}\n minYear={minYear}\n maxYear={maxYear}\n onChange={(year) => {\n setYearSelection(year);\n setSelectionState('month');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextDecadeLabel={nextDecadeLabel}\n previousDecadeLabel={previousDecadeLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'month' && (\n <MonthPicker\n size={size}\n value={{ month: _month.getMonth(), year: _month.getFullYear() }}\n year={yearSelection}\n onYearChange={setYearSelection}\n onNextLevel={() => setSelectionState('year')}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n onChange={(monthValue) => {\n setMonth(new Date(yearSelection, monthValue, 1));\n setSelectionState('date');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextYearLabel={nextYearLabel}\n previousYearLabel={previousYearLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n month={_month}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n allowLevelChange={allowLevelChange}\n size={size}\n daysRefs={daysRefs}\n onMonthChange={setMonth}\n onNextLevel={() => setSelectionState('month')}\n onDayKeyDown={handleDayKeyDown}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n excludeDate={excludeDate}\n hideWeekdays={hideWeekdays}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n firstDayOfWeek={firstDayOfWeek}\n value={value}\n range={range}\n onChange={onChange}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n labelFormat={labelFormat}\n onDayMouseEnter={onDayMouseEnter}\n hideOutsideDates={hideOutsideDates}\n isDateInRange={isDateInRange}\n isDateFirstInRange={isDateFirstInRange}\n isDateLastInRange={isDateLastInRange}\n />\n )}\n </Box>\n );\n }\n);\n\nCalendarBase.displayName = '@mantine/dates/CalendarBase';\n"],"names":["forwardRef","useState","useStyles","useRef","useUncontrolled","React","Box","YearPicker","MonthPicker","MonthsList"],"mappings":"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"}
|
|
@@ -46,8 +46,7 @@ var __objRest = (source, exclude) => {
|
|
|
46
46
|
}
|
|
47
47
|
return target;
|
|
48
48
|
};
|
|
49
|
-
const
|
|
50
|
-
};
|
|
49
|
+
const no = () => false;
|
|
51
50
|
const Month = React.forwardRef((_a, ref) => {
|
|
52
51
|
var _b = _a, {
|
|
53
52
|
className,
|
|
@@ -74,7 +73,10 @@ const Month = React.forwardRef((_a, ref) => {
|
|
|
74
73
|
firstDayOfWeek = "monday",
|
|
75
74
|
onDayKeyDown,
|
|
76
75
|
daysRefs,
|
|
77
|
-
hideOutsideDates = false
|
|
76
|
+
hideOutsideDates = false,
|
|
77
|
+
isDateInRange = no,
|
|
78
|
+
isDateFirstInRange = no,
|
|
79
|
+
isDateLastInRange = no
|
|
78
80
|
} = _b, others = __objRest(_b, [
|
|
79
81
|
"className",
|
|
80
82
|
"month",
|
|
@@ -100,7 +102,10 @@ const Month = React.forwardRef((_a, ref) => {
|
|
|
100
102
|
"firstDayOfWeek",
|
|
101
103
|
"onDayKeyDown",
|
|
102
104
|
"daysRefs",
|
|
103
|
-
"hideOutsideDates"
|
|
105
|
+
"hideOutsideDates",
|
|
106
|
+
"isDateInRange",
|
|
107
|
+
"isDateFirstInRange",
|
|
108
|
+
"isDateLastInRange"
|
|
104
109
|
]);
|
|
105
110
|
const { classes, cx, theme } = Month_styles['default']({ fullWidth }, { classNames, styles, name: __staticSelector });
|
|
106
111
|
const finalLocale = locale || theme.datesLocale;
|
|
@@ -145,9 +150,9 @@ const Month = React.forwardRef((_a, ref) => {
|
|
|
145
150
|
value: date,
|
|
146
151
|
outside: dayProps.outside,
|
|
147
152
|
weekend: dayProps.weekend,
|
|
148
|
-
inRange: dayProps.inRange,
|
|
149
|
-
firstInRange: dayProps.firstInRange,
|
|
150
|
-
lastInRange: dayProps.lastInRange,
|
|
153
|
+
inRange: dayProps.inRange || isDateInRange(date, dayProps),
|
|
154
|
+
firstInRange: dayProps.firstInRange || isDateFirstInRange(date, dayProps),
|
|
155
|
+
lastInRange: dayProps.lastInRange || isDateLastInRange(date, dayProps),
|
|
151
156
|
firstInMonth: hideOutsideDates ? isSameDate.isSameDate(date, dayjs__default(month).startOf("month").toDate()) : cellIndex === 0 && rowIndex === 0,
|
|
152
157
|
selected: dayProps.selected || dayProps.selectedInRange,
|
|
153
158
|
hasValue: hasValueInMonthRange,
|
|
@@ -155,7 +160,7 @@ const Month = React.forwardRef((_a, ref) => {
|
|
|
155
160
|
className: typeof dayClassName === "function" ? dayClassName(date, dayProps) : null,
|
|
156
161
|
style: typeof dayStyle === "function" ? dayStyle(date, dayProps) : null,
|
|
157
162
|
disabled: dayProps.disabled,
|
|
158
|
-
onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter :
|
|
163
|
+
onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter : no,
|
|
159
164
|
size,
|
|
160
165
|
fullWidth,
|
|
161
166
|
focusable,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst noop = () => {};\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange}\n firstInRange={dayProps.firstInRange}\n lastInRange={dayProps.lastInRange}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : noop}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":["forwardRef","useStyles","getMonthDays","getWeekdaysNames","React","Text","upperFirst","dayjs","getDayProps","Day","isSameDate","Box"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n\n /** Should date be displayed as in range */\n isDateInRange?(date: Date, modifiers: DayModifiers): boolean;\n\n /** Should date be displayed as first in range */\n isDateFirstInRange?(date: Date, modifiers: DayModifiers): boolean;\n\n /** Should date be displayed as last in range */\n isDateLastInRange?(date: Date, modifiers: DayModifiers): boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst no = () => false;\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n isDateInRange = no,\n isDateFirstInRange = no,\n isDateLastInRange = no,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange || isDateInRange(date, dayProps)}\n firstInRange={dayProps.firstInRange || isDateFirstInRange(date, dayProps)}\n lastInRange={dayProps.lastInRange || isDateLastInRange(date, dayProps)}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : no}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":["forwardRef","useStyles","getMonthDays","getWeekdaysNames","React","Text","upperFirst","dayjs","getDayProps","Day","isSameDate","Box"],"mappings":"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"}
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
|
-
var core = require('@mantine/core');
|
|
7
6
|
var dayjs = require('dayjs');
|
|
8
7
|
var isSameDate = require('../../utils/is-same-date/is-same-date.js');
|
|
9
8
|
var CalendarBase = require('../CalendarBase/CalendarBase.js');
|
|
@@ -14,8 +13,6 @@ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
|
14
13
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
15
14
|
|
|
16
15
|
var __defProp = Object.defineProperty;
|
|
17
|
-
var __defProps = Object.defineProperties;
|
|
18
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
19
16
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
20
17
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
21
18
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -31,7 +28,6 @@ var __spreadValues = (a, b) => {
|
|
|
31
28
|
}
|
|
32
29
|
return a;
|
|
33
30
|
};
|
|
34
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
35
31
|
var __objRest = (source, exclude) => {
|
|
36
32
|
var target = {};
|
|
37
33
|
for (var prop in source)
|
|
@@ -62,7 +58,6 @@ const RangeCalendar = React.forwardRef((_a, ref) => {
|
|
|
62
58
|
"allowSingleDateInRange",
|
|
63
59
|
"amountOfMonths"
|
|
64
60
|
]);
|
|
65
|
-
const theme = core.useMantineTheme();
|
|
66
61
|
const [hoveredDay, setHoveredDay] = React.useState(null);
|
|
67
62
|
const [pickedDate, setPickedDate] = React.useState(null);
|
|
68
63
|
const setRangeDate = (date) => {
|
|
@@ -94,18 +89,24 @@ const RangeCalendar = React.forwardRef((_a, ref) => {
|
|
|
94
89
|
}
|
|
95
90
|
return false;
|
|
96
91
|
};
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
borderRadius: 0
|
|
103
|
-
});
|
|
92
|
+
const isPickedDateFirstInRange = (date, modifiers) => {
|
|
93
|
+
if (pickedDate instanceof Date && hoveredDay instanceof Date) {
|
|
94
|
+
const result = [hoveredDay, pickedDate];
|
|
95
|
+
result.sort((a, b) => a.getTime() - b.getTime());
|
|
96
|
+
return modifiers.selected && dayjs__default(date).isBefore(result[1]);
|
|
104
97
|
}
|
|
105
|
-
return
|
|
98
|
+
return false;
|
|
99
|
+
};
|
|
100
|
+
const isPickedDateLastInRange = (date, modifiers) => {
|
|
101
|
+
if (pickedDate instanceof Date && hoveredDay instanceof Date) {
|
|
102
|
+
const result = [hoveredDay, pickedDate];
|
|
103
|
+
result.sort((a, b) => a.getTime() - b.getTime());
|
|
104
|
+
return modifiers.selected && dayjs__default(date).isAfter(result[0]);
|
|
105
|
+
}
|
|
106
|
+
return false;
|
|
106
107
|
};
|
|
107
108
|
return /* @__PURE__ */ React__default.createElement(CalendarBase.CalendarBase, __spreadValues({
|
|
108
|
-
dayStyle
|
|
109
|
+
dayStyle,
|
|
109
110
|
onMouseLeave: handleMouseLeave,
|
|
110
111
|
onDayMouseEnter: (date) => setHoveredDay(date),
|
|
111
112
|
onChange: setRangeDate,
|
|
@@ -114,7 +115,10 @@ const RangeCalendar = React.forwardRef((_a, ref) => {
|
|
|
114
115
|
ref,
|
|
115
116
|
__staticSelector,
|
|
116
117
|
amountOfMonths,
|
|
117
|
-
hideOutsideDates: amountOfMonths > 1
|
|
118
|
+
hideOutsideDates: amountOfMonths > 1,
|
|
119
|
+
isDateInRange: shouldHighlightDate,
|
|
120
|
+
isDateFirstInRange: isPickedDateFirstInRange,
|
|
121
|
+
isDateLastInRange: isPickedDateLastInRange
|
|
118
122
|
}, others));
|
|
119
123
|
});
|
|
120
124
|
RangeCalendar.displayName = "@mantine/dates/RangeCalendar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport
|
|
1
|
+
{"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport dayjs from 'dayjs';\nimport { isSameDate } from '../../utils';\nimport { DayModifiers } from '../Month';\nimport { CalendarBase, CalendarBaseProps } from '../CalendarBase/CalendarBase';\n\nexport interface RangeCalendarProps extends Omit<CalendarBaseProps, 'value' | 'onChange'> {\n /** Selected dates */\n value: [Date | null, Date | null];\n\n /** Called when selected date changes */\n onChange(value: [Date, Date]): void;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n}\n\nexport const RangeCalendar = forwardRef<HTMLDivElement, RangeCalendarProps>(\n (\n {\n value,\n onChange,\n dayStyle,\n onMouseLeave,\n __staticSelector = 'RangeCalendar',\n allowSingleDateInRange = false,\n amountOfMonths = 1,\n ...others\n }: RangeCalendarProps,\n ref\n ) => {\n const [hoveredDay, setHoveredDay] = useState<Date>(null);\n const [pickedDate, setPickedDate] = useState<Date>(null);\n\n const setRangeDate = (date: Date) => {\n if (pickedDate instanceof Date) {\n if (isSameDate(date, pickedDate) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDay(null);\n return null;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n onChange(result);\n setPickedDate(null);\n return null;\n }\n\n onChange([null, null]);\n setPickedDate(date);\n return null;\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n typeof onMouseLeave === 'function' && onMouseLeave(event);\n setHoveredDay(null);\n };\n\n const shouldHighlightDate = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return (\n !modifiers.selected &&\n dayjs(date).subtract(1, 'day').isBefore(result[1]) &&\n dayjs(date).add(1, 'day').isAfter(result[0])\n );\n }\n\n return false;\n };\n\n const isPickedDateFirstInRange = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return modifiers.selected && dayjs(date).isBefore(result[1]);\n }\n\n return false;\n };\n\n const isPickedDateLastInRange = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return modifiers.selected && dayjs(date).isAfter(result[0]);\n }\n\n return false;\n };\n\n return (\n <CalendarBase\n dayStyle={dayStyle}\n onMouseLeave={handleMouseLeave}\n onDayMouseEnter={(date) => setHoveredDay(date)}\n onChange={setRangeDate}\n value={pickedDate}\n range={value}\n ref={ref}\n __staticSelector={__staticSelector}\n amountOfMonths={amountOfMonths}\n hideOutsideDates={amountOfMonths > 1}\n isDateInRange={shouldHighlightDate}\n isDateFirstInRange={isPickedDateFirstInRange}\n isDateLastInRange={isPickedDateLastInRange}\n {...others}\n />\n );\n }\n);\n\nRangeCalendar.displayName = '@mantine/dates/RangeCalendar';\n"],"names":["forwardRef","useState","isSameDate","dayjs","React","CalendarBase"],"mappings":"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"}
|
|
@@ -69,7 +69,10 @@ const CalendarBase = forwardRef((_a, ref) => {
|
|
|
69
69
|
previousMonthLabel,
|
|
70
70
|
previousYearLabel,
|
|
71
71
|
labelFormat = "MMMM YYYY",
|
|
72
|
-
hideOutsideDates
|
|
72
|
+
hideOutsideDates,
|
|
73
|
+
isDateInRange,
|
|
74
|
+
isDateFirstInRange,
|
|
75
|
+
isDateLastInRange
|
|
73
76
|
} = _b, others = __objRest(_b, [
|
|
74
77
|
"className",
|
|
75
78
|
"classNames",
|
|
@@ -104,7 +107,10 @@ const CalendarBase = forwardRef((_a, ref) => {
|
|
|
104
107
|
"previousMonthLabel",
|
|
105
108
|
"previousYearLabel",
|
|
106
109
|
"labelFormat",
|
|
107
|
-
"hideOutsideDates"
|
|
110
|
+
"hideOutsideDates",
|
|
111
|
+
"isDateInRange",
|
|
112
|
+
"isDateFirstInRange",
|
|
113
|
+
"isDateLastInRange"
|
|
108
114
|
]);
|
|
109
115
|
const [selectionState, setSelectionState] = useState(initialLevel);
|
|
110
116
|
const { classes, cx, theme } = useStyles({ size, fullWidth, amountOfMonths: selectionState === "date" ? amountOfMonths : 1 }, { name: __staticSelector, styles, classNames });
|
|
@@ -227,7 +233,10 @@ const CalendarBase = forwardRef((_a, ref) => {
|
|
|
227
233
|
previousMonthLabel,
|
|
228
234
|
labelFormat,
|
|
229
235
|
onDayMouseEnter,
|
|
230
|
-
hideOutsideDates
|
|
236
|
+
hideOutsideDates,
|
|
237
|
+
isDateInRange,
|
|
238
|
+
isDateFirstInRange,
|
|
239
|
+
isDateLastInRange
|
|
231
240
|
}));
|
|
232
241
|
});
|
|
233
242
|
CalendarBase.displayName = "@mantine/dates/CalendarBase";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarBase.js","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Box, MantineSize, ClassNames, DefaultProps } from '@mantine/core';\nimport { MonthSettings, DayKeydownPayload } from '../Month';\nimport { YearPicker, YearPickerStylesNames } from './YearPicker/YearPicker';\nimport { MonthPicker, MonthPickerStylesNames } from './MonthPicker/MonthPicker';\nimport { MonthsList, MonthsListStylesNames } from './MonthsList/MonthsList';\nimport useStyles from './CalendarBase.styles';\n\nexport type CalendarBaseStylesNames =\n | ClassNames<typeof useStyles>\n | YearPickerStylesNames\n | MonthPickerStylesNames\n | MonthsListStylesNames;\n\nexport interface CalendarSharedProps extends DefaultProps<CalendarBaseStylesNames>, MonthSettings {\n /** Month for controlled calendar */\n month?: Date;\n\n /** Initial month for uncontrolled calendar */\n initialMonth?: Date;\n\n /** Called when month changes */\n onMonthChange?(month: Date): void;\n\n /** Locale used for labels formatting, defaults to theme.datesLocale */\n locale?: string;\n\n /** Amount of months */\n amountOfMonths?: number;\n\n /** Selected value */\n value?: Date | null;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Calendar size */\n size?: MantineSize;\n\n /** Allow to change level (date – month – year) */\n allowLevelChange?: boolean;\n\n /** Initial date selection level */\n initialLevel?: 'date' | 'month' | 'year';\n\n /** Static selector base */\n __staticSelector?: string;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Next month control aria-label */\n nextMonthLabel?: string;\n\n /** Previous month control aria-label */\n previousMonthLabel?: string;\n\n /** Next year control aria-label */\n nextYearLabel?: string;\n\n /** Previous year control aria-label */\n previousYearLabel?: string;\n\n /** Next decade control aria-label */\n nextDecadeLabel?: string;\n\n /** Previous decade control aria-label */\n previousDecadeLabel?: string;\n\n /** dayjs label format */\n labelFormat?: string;\n}\n\nexport interface CalendarBaseProps\n extends CalendarSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {}\n\nexport const CalendarBase = forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n classNames,\n styles,\n month,\n initialMonth,\n onMonthChange,\n locale,\n amountOfMonths = 1,\n size = 'sm',\n allowLevelChange = true,\n initialLevel = 'date',\n minDate,\n maxDate,\n __staticSelector = 'CalendarBase',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n excludeDate,\n hideWeekdays,\n fullWidth,\n preventFocus,\n firstDayOfWeek = 'monday',\n value,\n onChange,\n onDayMouseEnter,\n range,\n nextDecadeLabel,\n nextMonthLabel,\n nextYearLabel,\n previousDecadeLabel,\n previousMonthLabel,\n previousYearLabel,\n labelFormat = 'MMMM YYYY',\n hideOutsideDates,\n ...others\n }: CalendarBaseProps,\n ref\n ) => {\n const [selectionState, setSelectionState] = useState(initialLevel);\n const { classes, cx, theme } = useStyles(\n { size, fullWidth, amountOfMonths: selectionState === 'date' ? amountOfMonths : 1 },\n { name: __staticSelector, styles, classNames }\n );\n const finalLocale = locale || theme.datesLocale;\n\n const daysRefs = useRef<HTMLButtonElement[][][]>(\n Array(amountOfMonths)\n .fill(0)\n .map(() => [])\n );\n\n const [_month, setMonth] = useUncontrolled({\n value: month,\n defaultValue: initialMonth,\n finalValue: new Date(),\n onChange: onMonthChange,\n rule: (val) => val instanceof Date,\n });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 0;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n\n if (payload.rowIndex + 1 < daysRefs.current[monthIndex].length) {\n daysRefs.current[monthIndex][payload.rowIndex + 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n if (payload.rowIndex > 0) {\n daysRefs.current[monthIndex][payload.rowIndex - 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== 6) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex + 1].focus();\n } else if (monthIndex + 1 < amountOfMonths) {\n if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {\n daysRefs.current[monthIndex + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex - 1].focus();\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][6].focus();\n }\n }\n }\n }\n };\n\n return (\n <Box className={cx(classes.calendarBase, className)} ref={ref} {...others}>\n {selectionState === 'year' && (\n <YearPicker\n size={size}\n value={yearSelection}\n minYear={minYear}\n maxYear={maxYear}\n onChange={(year) => {\n setYearSelection(year);\n setSelectionState('month');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextDecadeLabel={nextDecadeLabel}\n previousDecadeLabel={previousDecadeLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'month' && (\n <MonthPicker\n size={size}\n value={{ month: _month.getMonth(), year: _month.getFullYear() }}\n year={yearSelection}\n onYearChange={setYearSelection}\n onNextLevel={() => setSelectionState('year')}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n onChange={(monthValue) => {\n setMonth(new Date(yearSelection, monthValue, 1));\n setSelectionState('date');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextYearLabel={nextYearLabel}\n previousYearLabel={previousYearLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n month={_month}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n allowLevelChange={allowLevelChange}\n size={size}\n daysRefs={daysRefs}\n onMonthChange={setMonth}\n onNextLevel={() => setSelectionState('month')}\n onDayKeyDown={handleDayKeyDown}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n excludeDate={excludeDate}\n hideWeekdays={hideWeekdays}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n firstDayOfWeek={firstDayOfWeek}\n value={value}\n range={range}\n onChange={onChange}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n labelFormat={labelFormat}\n onDayMouseEnter={onDayMouseEnter}\n hideOutsideDates={hideOutsideDates}\n />\n )}\n </Box>\n );\n }\n);\n\nCalendarBase.displayName = '@mantine/dates/CalendarBase';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalendarBase.js","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Box, MantineSize, ClassNames, DefaultProps } from '@mantine/core';\nimport { MonthSettings, DayKeydownPayload } from '../Month';\nimport { YearPicker, YearPickerStylesNames } from './YearPicker/YearPicker';\nimport { MonthPicker, MonthPickerStylesNames } from './MonthPicker/MonthPicker';\nimport { MonthsList, MonthsListStylesNames } from './MonthsList/MonthsList';\nimport useStyles from './CalendarBase.styles';\n\nexport type CalendarBaseStylesNames =\n | ClassNames<typeof useStyles>\n | YearPickerStylesNames\n | MonthPickerStylesNames\n | MonthsListStylesNames;\n\nexport interface CalendarSharedProps extends DefaultProps<CalendarBaseStylesNames>, MonthSettings {\n /** Month for controlled calendar */\n month?: Date;\n\n /** Initial month for uncontrolled calendar */\n initialMonth?: Date;\n\n /** Called when month changes */\n onMonthChange?(month: Date): void;\n\n /** Locale used for labels formatting, defaults to theme.datesLocale */\n locale?: string;\n\n /** Amount of months */\n amountOfMonths?: number;\n\n /** Selected value */\n value?: Date | null;\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Calendar size */\n size?: MantineSize;\n\n /** Allow to change level (date – month – year) */\n allowLevelChange?: boolean;\n\n /** Initial date selection level */\n initialLevel?: 'date' | 'month' | 'year';\n\n /** Static selector base */\n __staticSelector?: string;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Next month control aria-label */\n nextMonthLabel?: string;\n\n /** Previous month control aria-label */\n previousMonthLabel?: string;\n\n /** Next year control aria-label */\n nextYearLabel?: string;\n\n /** Previous year control aria-label */\n previousYearLabel?: string;\n\n /** Next decade control aria-label */\n nextDecadeLabel?: string;\n\n /** Previous decade control aria-label */\n previousDecadeLabel?: string;\n\n /** dayjs label format */\n labelFormat?: string;\n}\n\nexport interface CalendarBaseProps\n extends CalendarSharedProps,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {}\n\nexport const CalendarBase = forwardRef<HTMLDivElement, CalendarBaseProps>(\n (\n {\n className,\n classNames,\n styles,\n month,\n initialMonth,\n onMonthChange,\n locale,\n amountOfMonths = 1,\n size = 'sm',\n allowLevelChange = true,\n initialLevel = 'date',\n minDate,\n maxDate,\n __staticSelector = 'CalendarBase',\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n excludeDate,\n hideWeekdays,\n fullWidth,\n preventFocus,\n firstDayOfWeek = 'monday',\n value,\n onChange,\n onDayMouseEnter,\n range,\n nextDecadeLabel,\n nextMonthLabel,\n nextYearLabel,\n previousDecadeLabel,\n previousMonthLabel,\n previousYearLabel,\n labelFormat = 'MMMM YYYY',\n hideOutsideDates,\n isDateInRange,\n isDateFirstInRange,\n isDateLastInRange,\n ...others\n }: CalendarBaseProps,\n ref\n ) => {\n const [selectionState, setSelectionState] = useState(initialLevel);\n const { classes, cx, theme } = useStyles(\n { size, fullWidth, amountOfMonths: selectionState === 'date' ? amountOfMonths : 1 },\n { name: __staticSelector, styles, classNames }\n );\n const finalLocale = locale || theme.datesLocale;\n\n const daysRefs = useRef<HTMLButtonElement[][][]>(\n Array(amountOfMonths)\n .fill(0)\n .map(() => [])\n );\n\n const [_month, setMonth] = useUncontrolled({\n value: month,\n defaultValue: initialMonth,\n finalValue: new Date(),\n onChange: onMonthChange,\n rule: (val) => val instanceof Date,\n });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 0;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.code) {\n case 'ArrowDown': {\n event.preventDefault();\n\n if (payload.rowIndex + 1 < daysRefs.current[monthIndex].length) {\n daysRefs.current[monthIndex][payload.rowIndex + 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n if (payload.rowIndex > 0) {\n daysRefs.current[monthIndex][payload.rowIndex - 1][payload.cellIndex].focus();\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n if (payload.cellIndex !== 6) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex + 1].focus();\n } else if (monthIndex + 1 < amountOfMonths) {\n if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {\n daysRefs.current[monthIndex + 1][payload.rowIndex][0]?.focus();\n }\n }\n\n break;\n }\n\n case 'ArrowLeft': {\n event.preventDefault();\n\n if (payload.cellIndex !== 0) {\n daysRefs.current[monthIndex][payload.rowIndex][payload.cellIndex - 1].focus();\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][6].focus();\n }\n }\n }\n }\n };\n\n return (\n <Box className={cx(classes.calendarBase, className)} ref={ref} {...others}>\n {selectionState === 'year' && (\n <YearPicker\n size={size}\n value={yearSelection}\n minYear={minYear}\n maxYear={maxYear}\n onChange={(year) => {\n setYearSelection(year);\n setSelectionState('month');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextDecadeLabel={nextDecadeLabel}\n previousDecadeLabel={previousDecadeLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'month' && (\n <MonthPicker\n size={size}\n value={{ month: _month.getMonth(), year: _month.getFullYear() }}\n year={yearSelection}\n onYearChange={setYearSelection}\n onNextLevel={() => setSelectionState('year')}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n onChange={(monthValue) => {\n setMonth(new Date(yearSelection, monthValue, 1));\n setSelectionState('date');\n }}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextYearLabel={nextYearLabel}\n previousYearLabel={previousYearLabel}\n preventFocus={preventFocus}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n month={_month}\n locale={finalLocale}\n minDate={minDate}\n maxDate={maxDate}\n allowLevelChange={allowLevelChange}\n size={size}\n daysRefs={daysRefs}\n onMonthChange={setMonth}\n onNextLevel={() => setSelectionState('month')}\n onDayKeyDown={handleDayKeyDown}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n excludeDate={excludeDate}\n hideWeekdays={hideWeekdays}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n firstDayOfWeek={firstDayOfWeek}\n value={value}\n range={range}\n onChange={onChange}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n labelFormat={labelFormat}\n onDayMouseEnter={onDayMouseEnter}\n hideOutsideDates={hideOutsideDates}\n isDateInRange={isDateInRange}\n isDateFirstInRange={isDateFirstInRange}\n isDateLastInRange={isDateLastInRange}\n />\n )}\n </Box>\n );\n }\n);\n\nCalendarBase.displayName = '@mantine/dates/CalendarBase';\n"],"names":[],"mappings":"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"}
|
|
@@ -37,8 +37,7 @@ var __objRest = (source, exclude) => {
|
|
|
37
37
|
}
|
|
38
38
|
return target;
|
|
39
39
|
};
|
|
40
|
-
const
|
|
41
|
-
};
|
|
40
|
+
const no = () => false;
|
|
42
41
|
const Month = forwardRef((_a, ref) => {
|
|
43
42
|
var _b = _a, {
|
|
44
43
|
className,
|
|
@@ -65,7 +64,10 @@ const Month = forwardRef((_a, ref) => {
|
|
|
65
64
|
firstDayOfWeek = "monday",
|
|
66
65
|
onDayKeyDown,
|
|
67
66
|
daysRefs,
|
|
68
|
-
hideOutsideDates = false
|
|
67
|
+
hideOutsideDates = false,
|
|
68
|
+
isDateInRange = no,
|
|
69
|
+
isDateFirstInRange = no,
|
|
70
|
+
isDateLastInRange = no
|
|
69
71
|
} = _b, others = __objRest(_b, [
|
|
70
72
|
"className",
|
|
71
73
|
"month",
|
|
@@ -91,7 +93,10 @@ const Month = forwardRef((_a, ref) => {
|
|
|
91
93
|
"firstDayOfWeek",
|
|
92
94
|
"onDayKeyDown",
|
|
93
95
|
"daysRefs",
|
|
94
|
-
"hideOutsideDates"
|
|
96
|
+
"hideOutsideDates",
|
|
97
|
+
"isDateInRange",
|
|
98
|
+
"isDateFirstInRange",
|
|
99
|
+
"isDateLastInRange"
|
|
95
100
|
]);
|
|
96
101
|
const { classes, cx, theme } = useStyles({ fullWidth }, { classNames, styles, name: __staticSelector });
|
|
97
102
|
const finalLocale = locale || theme.datesLocale;
|
|
@@ -136,9 +141,9 @@ const Month = forwardRef((_a, ref) => {
|
|
|
136
141
|
value: date,
|
|
137
142
|
outside: dayProps.outside,
|
|
138
143
|
weekend: dayProps.weekend,
|
|
139
|
-
inRange: dayProps.inRange,
|
|
140
|
-
firstInRange: dayProps.firstInRange,
|
|
141
|
-
lastInRange: dayProps.lastInRange,
|
|
144
|
+
inRange: dayProps.inRange || isDateInRange(date, dayProps),
|
|
145
|
+
firstInRange: dayProps.firstInRange || isDateFirstInRange(date, dayProps),
|
|
146
|
+
lastInRange: dayProps.lastInRange || isDateLastInRange(date, dayProps),
|
|
142
147
|
firstInMonth: hideOutsideDates ? isSameDate(date, dayjs(month).startOf("month").toDate()) : cellIndex === 0 && rowIndex === 0,
|
|
143
148
|
selected: dayProps.selected || dayProps.selectedInRange,
|
|
144
149
|
hasValue: hasValueInMonthRange,
|
|
@@ -146,7 +151,7 @@ const Month = forwardRef((_a, ref) => {
|
|
|
146
151
|
className: typeof dayClassName === "function" ? dayClassName(date, dayProps) : null,
|
|
147
152
|
style: typeof dayStyle === "function" ? dayStyle(date, dayProps) : null,
|
|
148
153
|
disabled: dayProps.disabled,
|
|
149
|
-
onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter :
|
|
154
|
+
onMouseEnter: typeof onDayMouseEnter === "function" ? onDayMouseEnter : no,
|
|
150
155
|
size,
|
|
151
156
|
fullWidth,
|
|
152
157
|
focusable,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst noop = () => {};\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange}\n firstInRange={dayProps.firstInRange}\n lastInRange={dayProps.lastInRange}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : noop}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Month.js","sources":["../../../src/components/Month/Month.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { DefaultProps, Text, Box, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport { FirstDayOfWeek } from '../../types';\nimport { getMonthDays, getWeekdaysNames, isSameDate } from '../../utils';\nimport { Day, DayStylesNames } from './Day/Day';\nimport { getDayProps } from './get-day-props/get-day-props';\nimport { DayKeydownPayload, DayModifiers } from './types';\nimport useStyles from './Month.styles';\n\nexport interface MonthSettings {\n /** Adds className to day button based on date and modifiers */\n dayClassName?(date: Date, modifiers: DayModifiers): string;\n\n /** Adds style to day button based on date and modifiers */\n dayStyle?(date: Date, modifiers: DayModifiers): React.CSSProperties;\n\n /** When true dates that are outside of given month cannot be clicked or focused */\n disableOutsideEvents?: boolean;\n\n /** Minimum possible date */\n minDate?: Date;\n\n /** Maximum possible date */\n maxDate?: Date;\n\n /** Callback function to determine if day should be disabled */\n excludeDate?(date: Date): boolean;\n\n /** Set to false to remove weekdays row */\n hideWeekdays?: boolean;\n\n /** Controls month days font-size and height */\n size?: MantineSize;\n\n /** Set to true to make calendar take 100% of container width */\n fullWidth?: boolean;\n\n /** Prevent focusing upon clicking */\n preventFocus?: boolean;\n\n /** Should focusable days have tabIndex={0}? */\n focusable?: boolean;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Remove outside dates */\n hideOutsideDates?: boolean;\n\n /** Should date be displayed as in range */\n isDateInRange?(date: Date, modifiers: DayModifiers): boolean;\n\n /** Should date be displayed as first in range */\n isDateFirstInRange?(date: Date, modifiers: DayModifiers): boolean;\n\n /** Should date be displayed as last in range */\n isDateLastInRange?(date: Date, modifiers: DayModifiers): boolean;\n}\n\nexport type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;\n\nexport interface MonthProps\n extends DefaultProps<MonthStylesNames>,\n MonthSettings,\n Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {\n /** Date at which month should be shown */\n month: Date;\n\n /** Locale is used to get weekdays names with dayjs format */\n locale?: string;\n\n /** Selected date */\n value?: Date;\n\n /** Selected range */\n range?: [Date, Date];\n\n /** Called when day is selected */\n onChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Called when onMouseEnter event fired on day button */\n onDayMouseEnter?(date: Date, event: React.MouseEvent): void;\n\n /** Get days buttons refs */\n daysRefs?: HTMLButtonElement[][];\n\n /** Called when keydown event is registered on day */\n onDayKeyDown?(payload: DayKeydownPayload, event: React.KeyboardEvent<HTMLButtonElement>): void;\n}\n\nconst no = () => false;\n\nexport const Month = forwardRef<HTMLTableElement, MonthProps>(\n (\n {\n className,\n month,\n value,\n onChange,\n disableOutsideEvents = false,\n locale,\n dayClassName,\n dayStyle,\n classNames,\n styles,\n minDate,\n maxDate,\n excludeDate,\n onDayMouseEnter,\n range,\n hideWeekdays = false,\n __staticSelector = 'Month',\n size = 'sm',\n fullWidth = false,\n preventFocus = false,\n focusable = true,\n firstDayOfWeek = 'monday',\n onDayKeyDown,\n daysRefs,\n hideOutsideDates = false,\n isDateInRange = no,\n isDateFirstInRange = no,\n isDateLastInRange = no,\n ...others\n }: MonthProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { fullWidth },\n { classNames, styles, name: __staticSelector }\n );\n const finalLocale = locale || theme.datesLocale;\n const days = getMonthDays(month, firstDayOfWeek);\n\n const weekdays = getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => (\n <th className={classes.weekdayCell} key={weekday}>\n <Text size={size} className={classes.weekday}>\n {upperFirst(weekday)}\n </Text>\n </th>\n ));\n\n const hasValue = value instanceof Date;\n const hasValueInMonthRange =\n hasValue &&\n dayjs(value).isAfter(dayjs(month).startOf('month')) &&\n dayjs(value).isBefore(dayjs(month).endOf('month'));\n\n const rows = days.map((row, rowIndex) => {\n const cells = row.map((date, cellIndex) => {\n const dayProps = getDayProps({\n date,\n month,\n hasValue,\n minDate,\n maxDate,\n value,\n excludeDate,\n disableOutsideEvents,\n range,\n });\n\n const onKeyDownPayload = { rowIndex, cellIndex, date };\n\n return (\n <td className={classes.cell} key={cellIndex}>\n <Day\n ref={(button) => {\n if (daysRefs) {\n if (!Array.isArray(daysRefs[rowIndex])) {\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex] = [];\n }\n\n // eslint-disable-next-line no-param-reassign\n daysRefs[rowIndex][cellIndex] = button;\n }\n }}\n onClick={() => typeof onChange === 'function' && onChange(date)}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n value={date}\n outside={dayProps.outside}\n weekend={dayProps.weekend}\n inRange={dayProps.inRange || isDateInRange(date, dayProps)}\n firstInRange={dayProps.firstInRange || isDateFirstInRange(date, dayProps)}\n lastInRange={dayProps.lastInRange || isDateLastInRange(date, dayProps)}\n firstInMonth={\n hideOutsideDates\n ? isSameDate(date, dayjs(month).startOf('month').toDate())\n : cellIndex === 0 && rowIndex === 0\n }\n selected={dayProps.selected || dayProps.selectedInRange}\n hasValue={hasValueInMonthRange}\n onKeyDown={(event) =>\n typeof onDayKeyDown === 'function' && onDayKeyDown(onKeyDownPayload, event)\n }\n className={typeof dayClassName === 'function' ? dayClassName(date, dayProps) : null}\n style={typeof dayStyle === 'function' ? dayStyle(date, dayProps) : null}\n disabled={dayProps.disabled}\n onMouseEnter={typeof onDayMouseEnter === 'function' ? onDayMouseEnter : no}\n size={size}\n fullWidth={fullWidth}\n focusable={focusable}\n hideOutsideDates={hideOutsideDates}\n __staticSelector={__staticSelector}\n styles={styles}\n classNames={classNames}\n />\n </td>\n );\n });\n\n return <tr key={rowIndex}>{cells}</tr>;\n });\n\n return (\n <Box component=\"table\" className={cx(classes.month, className)} ref={ref} {...others}>\n {!hideWeekdays && (\n <thead>\n <tr>{weekdays}</tr>\n </thead>\n )}\n <tbody>{rows}</tbody>\n </Box>\n );\n }\n);\n\nMonth.displayName = '@mantine/dates/Month';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import React, { forwardRef, useState } from 'react';
|
|
2
|
-
import { useMantineTheme } from '@mantine/core';
|
|
3
2
|
import dayjs from 'dayjs';
|
|
4
3
|
import { isSameDate } from '../../utils/is-same-date/is-same-date.js';
|
|
5
4
|
import { CalendarBase } from '../CalendarBase/CalendarBase.js';
|
|
6
5
|
|
|
7
6
|
var __defProp = Object.defineProperty;
|
|
8
|
-
var __defProps = Object.defineProperties;
|
|
9
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
10
7
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
11
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
9
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
@@ -22,7 +19,6 @@ var __spreadValues = (a, b) => {
|
|
|
22
19
|
}
|
|
23
20
|
return a;
|
|
24
21
|
};
|
|
25
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
26
22
|
var __objRest = (source, exclude) => {
|
|
27
23
|
var target = {};
|
|
28
24
|
for (var prop in source)
|
|
@@ -53,7 +49,6 @@ const RangeCalendar = forwardRef((_a, ref) => {
|
|
|
53
49
|
"allowSingleDateInRange",
|
|
54
50
|
"amountOfMonths"
|
|
55
51
|
]);
|
|
56
|
-
const theme = useMantineTheme();
|
|
57
52
|
const [hoveredDay, setHoveredDay] = useState(null);
|
|
58
53
|
const [pickedDate, setPickedDate] = useState(null);
|
|
59
54
|
const setRangeDate = (date) => {
|
|
@@ -85,18 +80,24 @@ const RangeCalendar = forwardRef((_a, ref) => {
|
|
|
85
80
|
}
|
|
86
81
|
return false;
|
|
87
82
|
};
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
borderRadius: 0
|
|
94
|
-
});
|
|
83
|
+
const isPickedDateFirstInRange = (date, modifiers) => {
|
|
84
|
+
if (pickedDate instanceof Date && hoveredDay instanceof Date) {
|
|
85
|
+
const result = [hoveredDay, pickedDate];
|
|
86
|
+
result.sort((a, b) => a.getTime() - b.getTime());
|
|
87
|
+
return modifiers.selected && dayjs(date).isBefore(result[1]);
|
|
95
88
|
}
|
|
96
|
-
return
|
|
89
|
+
return false;
|
|
90
|
+
};
|
|
91
|
+
const isPickedDateLastInRange = (date, modifiers) => {
|
|
92
|
+
if (pickedDate instanceof Date && hoveredDay instanceof Date) {
|
|
93
|
+
const result = [hoveredDay, pickedDate];
|
|
94
|
+
result.sort((a, b) => a.getTime() - b.getTime());
|
|
95
|
+
return modifiers.selected && dayjs(date).isAfter(result[0]);
|
|
96
|
+
}
|
|
97
|
+
return false;
|
|
97
98
|
};
|
|
98
99
|
return /* @__PURE__ */ React.createElement(CalendarBase, __spreadValues({
|
|
99
|
-
dayStyle
|
|
100
|
+
dayStyle,
|
|
100
101
|
onMouseLeave: handleMouseLeave,
|
|
101
102
|
onDayMouseEnter: (date) => setHoveredDay(date),
|
|
102
103
|
onChange: setRangeDate,
|
|
@@ -105,7 +106,10 @@ const RangeCalendar = forwardRef((_a, ref) => {
|
|
|
105
106
|
ref,
|
|
106
107
|
__staticSelector,
|
|
107
108
|
amountOfMonths,
|
|
108
|
-
hideOutsideDates: amountOfMonths > 1
|
|
109
|
+
hideOutsideDates: amountOfMonths > 1,
|
|
110
|
+
isDateInRange: shouldHighlightDate,
|
|
111
|
+
isDateFirstInRange: isPickedDateFirstInRange,
|
|
112
|
+
isDateLastInRange: isPickedDateLastInRange
|
|
109
113
|
}, others));
|
|
110
114
|
});
|
|
111
115
|
RangeCalendar.displayName = "@mantine/dates/RangeCalendar";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport
|
|
1
|
+
{"version":3,"file":"RangeCalendar.js","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"sourcesContent":["import React, { useState, forwardRef } from 'react';\nimport dayjs from 'dayjs';\nimport { isSameDate } from '../../utils';\nimport { DayModifiers } from '../Month';\nimport { CalendarBase, CalendarBaseProps } from '../CalendarBase/CalendarBase';\n\nexport interface RangeCalendarProps extends Omit<CalendarBaseProps, 'value' | 'onChange'> {\n /** Selected dates */\n value: [Date | null, Date | null];\n\n /** Called when selected date changes */\n onChange(value: [Date, Date]): void;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n}\n\nexport const RangeCalendar = forwardRef<HTMLDivElement, RangeCalendarProps>(\n (\n {\n value,\n onChange,\n dayStyle,\n onMouseLeave,\n __staticSelector = 'RangeCalendar',\n allowSingleDateInRange = false,\n amountOfMonths = 1,\n ...others\n }: RangeCalendarProps,\n ref\n ) => {\n const [hoveredDay, setHoveredDay] = useState<Date>(null);\n const [pickedDate, setPickedDate] = useState<Date>(null);\n\n const setRangeDate = (date: Date) => {\n if (pickedDate instanceof Date) {\n if (isSameDate(date, pickedDate) && !allowSingleDateInRange) {\n setPickedDate(null);\n setHoveredDay(null);\n return null;\n }\n\n const result: [Date, Date] = [date, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n onChange(result);\n setPickedDate(null);\n return null;\n }\n\n onChange([null, null]);\n setPickedDate(date);\n return null;\n };\n\n const handleMouseLeave = (event: React.MouseEvent<HTMLDivElement>) => {\n typeof onMouseLeave === 'function' && onMouseLeave(event);\n setHoveredDay(null);\n };\n\n const shouldHighlightDate = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return (\n !modifiers.selected &&\n dayjs(date).subtract(1, 'day').isBefore(result[1]) &&\n dayjs(date).add(1, 'day').isAfter(result[0])\n );\n }\n\n return false;\n };\n\n const isPickedDateFirstInRange = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return modifiers.selected && dayjs(date).isBefore(result[1]);\n }\n\n return false;\n };\n\n const isPickedDateLastInRange = (date: Date, modifiers: DayModifiers) => {\n if (pickedDate instanceof Date && hoveredDay instanceof Date) {\n const result: [Date, Date] = [hoveredDay, pickedDate];\n result.sort((a, b) => a.getTime() - b.getTime());\n return modifiers.selected && dayjs(date).isAfter(result[0]);\n }\n\n return false;\n };\n\n return (\n <CalendarBase\n dayStyle={dayStyle}\n onMouseLeave={handleMouseLeave}\n onDayMouseEnter={(date) => setHoveredDay(date)}\n onChange={setRangeDate}\n value={pickedDate}\n range={value}\n ref={ref}\n __staticSelector={__staticSelector}\n amountOfMonths={amountOfMonths}\n hideOutsideDates={amountOfMonths > 1}\n isDateInRange={shouldHighlightDate}\n isDateFirstInRange={isPickedDateFirstInRange}\n isDateLastInRange={isPickedDateLastInRange}\n {...others}\n />\n );\n }\n);\n\nRangeCalendar.displayName = '@mantine/dates/RangeCalendar';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAO,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAe,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAE9C,oBAAY,uBAAuB,GAC/B,UAAU,CAAC,OAAO,SAAS,CAAC,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,uBAAuB,CAAC,EAAE,aAAa;IAC/F,oCAAoC;IACpC,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,8CAA8C;IAC9C,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,gCAAgC;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAElC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qBAAqB;IACrB,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEpB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,oBAAoB;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAErB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,yDAAyD;IACzD,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAE5D,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBACf,SAAQ,mBAAmB,EACzB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAAG;AAExE,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"CalendarBase.d.ts","sourceRoot":"","sources":["../../../src/components/CalendarBase/CalendarBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAO,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAqB,MAAM,UAAU,CAAC;AAC5D,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EAAe,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAc,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC5E,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAE9C,oBAAY,uBAAuB,GAC/B,UAAU,CAAC,OAAO,SAAS,CAAC,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,CAAC;AAE1B,MAAM,WAAW,mBAAoB,SAAQ,YAAY,CAAC,uBAAuB,CAAC,EAAE,aAAa;IAC/F,oCAAoC;IACpC,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,8CAA8C;IAC9C,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB,gCAAgC;IAChC,aAAa,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAElC,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,qBAAqB;IACrB,KAAK,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAEpB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,oBAAoB;IACpB,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAEzC,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,qBAAqB;IACrB,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAErB,kCAAkC;IAClC,QAAQ,CAAC,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IAE7B,yDAAyD;IACzD,eAAe,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC;IAE5D,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,uCAAuC;IACvC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,qCAAqC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,yCAAyC;IACzC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBACf,SAAQ,mBAAmB,EACzB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAAG;AAExE,eAAO,MAAM,YAAY,0FA6MxB,CAAC"}
|
|
@@ -31,6 +31,12 @@ export interface MonthSettings {
|
|
|
31
31
|
firstDayOfWeek?: FirstDayOfWeek;
|
|
32
32
|
/** Remove outside dates */
|
|
33
33
|
hideOutsideDates?: boolean;
|
|
34
|
+
/** Should date be displayed as in range */
|
|
35
|
+
isDateInRange?(date: Date, modifiers: DayModifiers): boolean;
|
|
36
|
+
/** Should date be displayed as first in range */
|
|
37
|
+
isDateFirstInRange?(date: Date, modifiers: DayModifiers): boolean;
|
|
38
|
+
/** Should date be displayed as last in range */
|
|
39
|
+
isDateLastInRange?(date: Date, modifiers: DayModifiers): boolean;
|
|
34
40
|
}
|
|
35
41
|
export declare type MonthStylesNames = ClassNames<typeof useStyles> | DayStylesNames;
|
|
36
42
|
export interface MonthProps extends DefaultProps<MonthStylesNames>, MonthSettings, Omit<React.ComponentPropsWithoutRef<'table'>, 'onChange' | 'value'> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Month.d.ts","sourceRoot":"","sources":["../../../src/components/Month/Month.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAa,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGjF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAO,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,MAAM,CAAC;IAE3D,2DAA2D;IAC3D,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IAEpE,mFAAmF;IACnF,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAE/B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,IAAI,CAAC;IAEf,+DAA+D;IAC/D,WAAW,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC;IAElC,0CAA0C;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB,gEAAgE;IAChE,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,qCAAqC;IACrC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,gCAAgC;IAChC,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,2BAA2B;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Month.d.ts","sourceRoot":"","sources":["../../../src/components/Month/Month.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangeCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RangeCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/RangeCalendar/RangeCalendar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAC;AAIpD,OAAO,EAAgB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAE/E,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,UAAU,CAAC;IACvF,qBAAqB;IACrB,KAAK,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;IAElC,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;IAEpC,6CAA6C;IAC7C,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,aAAa,2FA+FzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mantine/dates",
|
|
3
3
|
"description": "Calendars, date and time pickers based on Mantine components",
|
|
4
|
-
"version": "3.5.
|
|
4
|
+
"version": "3.5.5",
|
|
5
5
|
"main": "cjs/index.js",
|
|
6
6
|
"module": "esm/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"author": "Vitaly Rtishchev <rtivital@gmail.com>",
|
|
10
10
|
"homepage": "https://mantine.dev/dates/getting-started/",
|
|
11
11
|
"peerDependencies": {
|
|
12
|
-
"@mantine/core": "3.5.
|
|
13
|
-
"@mantine/hooks": "3.5.
|
|
12
|
+
"@mantine/core": "3.5.5",
|
|
13
|
+
"@mantine/hooks": "3.5.5",
|
|
14
14
|
"dayjs": "^1.10.5",
|
|
15
15
|
"react": ">=16.8.0"
|
|
16
16
|
},
|