@mantine/dates 5.0.0-alpha.9 → 5.0.2
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/README.md +1 -1
- package/cjs/components/CalendarBase/CalendarBase.js +39 -12
- package/cjs/components/CalendarBase/CalendarBase.js.map +1 -1
- package/cjs/components/CalendarBase/MonthsList/MonthsList.js +4 -2
- package/cjs/components/CalendarBase/MonthsList/MonthsList.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.js +12 -4
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePickerBase/DatePickerBase.js +12 -6
- package/cjs/components/DatePickerBase/DatePickerBase.js.map +1 -1
- package/cjs/components/DatePickerBase/DatePickerBase.styles.js +5 -6
- package/cjs/components/DatePickerBase/DatePickerBase.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +6 -3
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/Month/Day/Day.js +5 -3
- package/cjs/components/Month/Day/Day.js.map +1 -1
- package/cjs/components/Month/Month.js +24 -5
- package/cjs/components/Month/Month.js.map +1 -1
- package/cjs/components/RangeCalendar/RangeCalendar.js +5 -2
- package/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/cjs/components/TimeInput/TimeInput.styles.js +0 -1
- package/cjs/components/TimeInput/TimeInput.styles.js.map +1 -1
- package/cjs/components/TimeInputBase/TimeField/TimeField.js +2 -2
- package/cjs/components/TimeInputBase/TimeField/TimeField.js.map +1 -1
- package/esm/components/CalendarBase/CalendarBase.js +39 -12
- package/esm/components/CalendarBase/CalendarBase.js.map +1 -1
- package/esm/components/CalendarBase/MonthsList/MonthsList.js +4 -2
- package/esm/components/CalendarBase/MonthsList/MonthsList.js.map +1 -1
- package/esm/components/DatePicker/DatePicker.js +12 -4
- package/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/esm/components/DatePickerBase/DatePickerBase.js +12 -6
- package/esm/components/DatePickerBase/DatePickerBase.js.map +1 -1
- package/esm/components/DatePickerBase/DatePickerBase.styles.js +5 -6
- package/esm/components/DatePickerBase/DatePickerBase.styles.js.map +1 -1
- package/esm/components/DateRangePicker/DateRangePicker.js +6 -3
- package/esm/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/esm/components/Month/Day/Day.js +5 -3
- package/esm/components/Month/Day/Day.js.map +1 -1
- package/esm/components/Month/Month.js +25 -6
- package/esm/components/Month/Month.js.map +1 -1
- package/esm/components/RangeCalendar/RangeCalendar.js +5 -2
- package/esm/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/esm/components/TimeInput/TimeInput.styles.js +0 -1
- package/esm/components/TimeInput/TimeInput.styles.js.map +1 -1
- package/esm/components/TimeInputBase/TimeField/TimeField.js +2 -2
- package/esm/components/TimeInputBase/TimeField/TimeField.js.map +1 -1
- package/lib/components/CalendarBase/CalendarBase.d.ts +2 -0
- package/lib/components/CalendarBase/CalendarBase.d.ts.map +1 -1
- package/lib/components/CalendarBase/MonthsList/MonthsList.d.ts +2 -1
- package/lib/components/CalendarBase/MonthsList/MonthsList.d.ts.map +1 -1
- package/lib/components/DatePicker/DatePicker.d.ts +1 -1
- package/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/lib/components/DatePickerBase/DatePickerBase.d.ts +5 -1
- package/lib/components/DatePickerBase/DatePickerBase.d.ts.map +1 -1
- package/lib/components/DatePickerBase/DatePickerBase.styles.d.ts +2 -2
- package/lib/components/DatePickerBase/DatePickerBase.styles.d.ts.map +1 -1
- package/lib/components/DateRangePicker/DateRangePicker.d.ts +4 -3
- package/lib/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/lib/components/DateRangePicker/index.d.ts +1 -1
- package/lib/components/DateRangePicker/index.d.ts.map +1 -1
- package/lib/components/Month/Day/Day.d.ts +1 -0
- package/lib/components/Month/Day/Day.d.ts.map +1 -1
- package/lib/components/Month/Month.d.ts +4 -2
- package/lib/components/Month/Month.d.ts.map +1 -1
- package/lib/components/RangeCalendar/RangeCalendar.d.ts.map +1 -1
- package/lib/components/TimeInput/TimeInput.styles.d.ts +2 -2
- package/lib/components/TimeInput/TimeInput.styles.d.ts.map +1 -1
- package/lib/components/TimeRangeInput/TimeRangeInput.styles.d.ts +2 -2
- package/package.json +7 -6
package/README.md
CHANGED
|
@@ -52,6 +52,7 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
52
52
|
onMonthChange,
|
|
53
53
|
locale,
|
|
54
54
|
amountOfMonths = 1,
|
|
55
|
+
paginateBy = amountOfMonths,
|
|
55
56
|
size = "sm",
|
|
56
57
|
allowLevelChange = true,
|
|
57
58
|
initialLevel = "date",
|
|
@@ -83,7 +84,9 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
83
84
|
isDateFirstInRange,
|
|
84
85
|
isDateLastInRange,
|
|
85
86
|
renderDay,
|
|
86
|
-
unstyled
|
|
87
|
+
unstyled,
|
|
88
|
+
weekendDays,
|
|
89
|
+
__stopPropagation
|
|
87
90
|
} = _b, others = __objRest(_b, [
|
|
88
91
|
"className",
|
|
89
92
|
"classNames",
|
|
@@ -93,6 +96,7 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
93
96
|
"onMonthChange",
|
|
94
97
|
"locale",
|
|
95
98
|
"amountOfMonths",
|
|
99
|
+
"paginateBy",
|
|
96
100
|
"size",
|
|
97
101
|
"allowLevelChange",
|
|
98
102
|
"initialLevel",
|
|
@@ -124,7 +128,9 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
124
128
|
"isDateFirstInRange",
|
|
125
129
|
"isDateLastInRange",
|
|
126
130
|
"renderDay",
|
|
127
|
-
"unstyled"
|
|
131
|
+
"unstyled",
|
|
132
|
+
"weekendDays",
|
|
133
|
+
"__stopPropagation"
|
|
128
134
|
]);
|
|
129
135
|
const [selectionState, setSelectionState] = React.useState(initialLevel);
|
|
130
136
|
const { classes, cx, theme } = CalendarBase_styles['default']({ size, fullWidth, amountOfMonths: selectionState === "date" ? amountOfMonths : 1 }, { name: __staticSelector, styles, classNames, unstyled });
|
|
@@ -137,29 +143,47 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
137
143
|
onChange: onMonthChange
|
|
138
144
|
});
|
|
139
145
|
const [yearSelection, setYearSelection] = React.useState(_month.getFullYear());
|
|
140
|
-
const minYear = minDate instanceof Date ? minDate.getFullYear() :
|
|
146
|
+
const minYear = minDate instanceof Date ? minDate.getFullYear() : 100;
|
|
141
147
|
const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 1e4;
|
|
148
|
+
const daysPerRow = 6;
|
|
149
|
+
const focusOnNextFocusableDay = (direction, monthIndex, payload, n = 1) => {
|
|
150
|
+
const changeRow = ["down", "up"].includes(direction);
|
|
151
|
+
const rowIndex = changeRow ? payload.rowIndex + (direction === "down" ? n : -n) : payload.rowIndex;
|
|
152
|
+
const cellIndex = changeRow ? payload.cellIndex : payload.cellIndex + (direction === "right" ? n : -n);
|
|
153
|
+
const dayToFocus = daysRefs.current[monthIndex][rowIndex][cellIndex];
|
|
154
|
+
if (!dayToFocus) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
if (dayToFocus.disabled) {
|
|
158
|
+
focusOnNextFocusableDay(direction, monthIndex, payload, n + 1);
|
|
159
|
+
} else {
|
|
160
|
+
dayToFocus.focus();
|
|
161
|
+
}
|
|
162
|
+
};
|
|
142
163
|
const handleDayKeyDown = (monthIndex, payload, event) => {
|
|
143
164
|
var _a2;
|
|
144
165
|
switch (event.key) {
|
|
145
166
|
case "ArrowDown": {
|
|
146
167
|
event.preventDefault();
|
|
147
|
-
|
|
148
|
-
|
|
168
|
+
const hasRowBelow = payload.rowIndex + 1 < daysRefs.current[monthIndex].length;
|
|
169
|
+
if (hasRowBelow) {
|
|
170
|
+
focusOnNextFocusableDay("down", monthIndex, payload);
|
|
149
171
|
}
|
|
150
172
|
break;
|
|
151
173
|
}
|
|
152
174
|
case "ArrowUp": {
|
|
153
175
|
event.preventDefault();
|
|
154
|
-
|
|
155
|
-
|
|
176
|
+
const hasRowAbove = payload.rowIndex > 0;
|
|
177
|
+
if (hasRowAbove) {
|
|
178
|
+
focusOnNextFocusableDay("up", monthIndex, payload);
|
|
156
179
|
}
|
|
157
180
|
break;
|
|
158
181
|
}
|
|
159
182
|
case "ArrowRight": {
|
|
160
183
|
event.preventDefault();
|
|
161
|
-
|
|
162
|
-
|
|
184
|
+
const isNotLastCell = payload.cellIndex !== daysPerRow;
|
|
185
|
+
if (isNotLastCell) {
|
|
186
|
+
focusOnNextFocusableDay("right", monthIndex, payload);
|
|
163
187
|
} else if (monthIndex + 1 < amountOfMonths) {
|
|
164
188
|
if (daysRefs.current[monthIndex + 1][payload.rowIndex]) {
|
|
165
189
|
(_a2 = daysRefs.current[monthIndex + 1][payload.rowIndex][0]) == null ? void 0 : _a2.focus();
|
|
@@ -170,10 +194,10 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
170
194
|
case "ArrowLeft": {
|
|
171
195
|
event.preventDefault();
|
|
172
196
|
if (payload.cellIndex !== 0) {
|
|
173
|
-
|
|
197
|
+
focusOnNextFocusableDay("left", monthIndex, payload);
|
|
174
198
|
} else if (monthIndex > 0) {
|
|
175
199
|
if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {
|
|
176
|
-
daysRefs.current[monthIndex - 1][payload.rowIndex][
|
|
200
|
+
daysRefs.current[monthIndex - 1][payload.rowIndex][daysPerRow].focus();
|
|
177
201
|
}
|
|
178
202
|
}
|
|
179
203
|
}
|
|
@@ -220,6 +244,7 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
220
244
|
unstyled
|
|
221
245
|
}), selectionState === "date" && /* @__PURE__ */ React__default.createElement(MonthsList.MonthsList, {
|
|
222
246
|
amountOfMonths,
|
|
247
|
+
paginateBy,
|
|
223
248
|
month: _month,
|
|
224
249
|
locale: finalLocale,
|
|
225
250
|
minDate,
|
|
@@ -254,7 +279,9 @@ const CalendarBase = React.forwardRef((_a, ref) => {
|
|
|
254
279
|
isDateInRange,
|
|
255
280
|
isDateFirstInRange,
|
|
256
281
|
isDateLastInRange,
|
|
257
|
-
unstyled
|
|
282
|
+
unstyled,
|
|
283
|
+
weekendDays,
|
|
284
|
+
__stopPropagation
|
|
258
285
|
}));
|
|
259
286
|
});
|
|
260
287
|
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, Selectors, 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 | Selectors<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 | Date[] | null;\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 /** Render day based on the date */\n renderDay?(date: Date): React.ReactNode;\n\n /** Called when day is selected */\n onChange?(value: Date | 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 /** dayjs label format for weekday heading */\n weekdayLabelFormat?: 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 weekdayLabelFormat,\n hideOutsideDates,\n isDateInRange,\n isDateFirstInRange,\n isDateLastInRange,\n renderDay,\n unstyled,\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, unstyled }\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 });\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.key) {\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 unstyled={unstyled}\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 unstyled={unstyled}\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 weekdayLabelFormat={weekdayLabelFormat}\n onDayMouseEnter={onDayMouseEnter}\n renderDay={renderDay}\n hideOutsideDates={hideOutsideDates}\n isDateInRange={isDateInRange}\n isDateFirstInRange={isDateFirstInRange}\n isDateLastInRange={isDateLastInRange}\n unstyled={unstyled}\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, Selectors, 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 | Selectors<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 /** Paginate by amount of months */\n paginateBy?: number;\n\n /** Selected value */\n value?: Date | Date[] | null;\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 /** Render day based on the date */\n renderDay?(date: Date): React.ReactNode;\n\n /** Called when day is selected */\n onChange?(value: Date | 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 /** dayjs label format for weekday heading */\n weekdayLabelFormat?: 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 paginateBy = amountOfMonths,\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 weekdayLabelFormat,\n hideOutsideDates,\n isDateInRange,\n isDateFirstInRange,\n isDateLastInRange,\n renderDay,\n unstyled,\n weekendDays,\n __stopPropagation,\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, unstyled }\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 });\n\n const [yearSelection, setYearSelection] = useState(_month.getFullYear());\n const minYear = minDate instanceof Date ? minDate.getFullYear() : 100;\n const maxYear = maxDate instanceof Date ? maxDate.getFullYear() : 10000;\n\n const daysPerRow = 6;\n\n const focusOnNextFocusableDay = (\n direction: 'down' | 'up' | 'left' | 'right',\n monthIndex: number,\n payload: DayKeydownPayload,\n n = 1\n ) => {\n const changeRow = ['down', 'up'].includes(direction);\n\n const rowIndex = changeRow\n ? payload.rowIndex + (direction === 'down' ? n : -n)\n : payload.rowIndex;\n\n const cellIndex = changeRow\n ? payload.cellIndex\n : payload.cellIndex + (direction === 'right' ? n : -n);\n\n const dayToFocus = daysRefs.current[monthIndex][rowIndex][cellIndex];\n\n if (!dayToFocus) {\n return;\n }\n\n if (dayToFocus.disabled) {\n // Day is disabled, call this function recursively until\n // we find a non-disabled day or there are no more days\n focusOnNextFocusableDay(direction, monthIndex, payload, n + 1);\n } else {\n dayToFocus.focus();\n }\n };\n\n const handleDayKeyDown = (\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ) => {\n switch (event.key) {\n case 'ArrowDown': {\n event.preventDefault();\n\n const hasRowBelow = payload.rowIndex + 1 < daysRefs.current[monthIndex].length;\n if (hasRowBelow) {\n focusOnNextFocusableDay('down', monthIndex, payload);\n }\n break;\n }\n\n case 'ArrowUp': {\n event.preventDefault();\n\n const hasRowAbove = payload.rowIndex > 0;\n if (hasRowAbove) {\n focusOnNextFocusableDay('up', monthIndex, payload);\n }\n break;\n }\n\n case 'ArrowRight': {\n event.preventDefault();\n\n const isNotLastCell = payload.cellIndex !== daysPerRow;\n if (isNotLastCell) {\n focusOnNextFocusableDay('right', monthIndex, payload);\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 focusOnNextFocusableDay('left', monthIndex, payload);\n } else if (monthIndex > 0) {\n if (daysRefs.current[monthIndex - 1][payload.rowIndex]) {\n daysRefs.current[monthIndex - 1][payload.rowIndex][daysPerRow].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 unstyled={unstyled}\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 unstyled={unstyled}\n />\n )}\n\n {selectionState === 'date' && (\n <MonthsList\n amountOfMonths={amountOfMonths}\n paginateBy={paginateBy}\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 weekdayLabelFormat={weekdayLabelFormat}\n onDayMouseEnter={onDayMouseEnter}\n renderDay={renderDay}\n hideOutsideDates={hideOutsideDates}\n isDateInRange={isDateInRange}\n isDateFirstInRange={isDateFirstInRange}\n isDateLastInRange={isDateLastInRange}\n unstyled={unstyled}\n weekendDays={weekendDays}\n __stopPropagation={__stopPropagation}\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":";;;;;;;;;;;;;;;;AAAA,IAAI,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAI,mBAAmB,GAAG,MAAM,CAAC,qBAAqB,CAAC;AACvD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC;AACnD,IAAI,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;AACzD,IAAI,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,KAAK,GAAG,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAChK,IAAI,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;AAC/B,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;AAChC,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AAClC,MAAM,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACxC,EAAE,IAAI,mBAAmB;AACzB,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAC7C,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;AACpC,QAAQ,eAAe,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,KAAK;AACL,EAAE,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAI,SAAS,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK;AACrC,EAAE,IAAI,MAAM,GAAG,EAAE,CAAC;AAClB,EAAE,KAAK,IAAI,IAAI,IAAI,MAAM;AACzB,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;AACpE,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AAClC,EAAE,IAAI,MAAM,IAAI,IAAI,IAAI,mBAAmB;AAC3C,IAAI,KAAK,IAAI,IAAI,IAAI,mBAAmB,CAAC,MAAM,CAAC,EAAE;AAClD,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;AACtE,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;AACpC,KAAK;AACL,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAQU,MAAC,YAAY,GAAGA,gBAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK;AACpD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,SAAS;AACb,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,aAAa;AACjB,IAAI,MAAM;AACV,IAAI,cAAc,GAAG,CAAC;AACtB,IAAI,UAAU,GAAG,cAAc;AAC/B,IAAI,IAAI,GAAG,IAAI;AACf,IAAI,gBAAgB,GAAG,IAAI;AAC3B,IAAI,YAAY,GAAG,MAAM;AACzB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,gBAAgB,GAAG,cAAc;AACrC,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,oBAAoB;AACxB,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,IAAI,cAAc,GAAG,QAAQ;AAC7B,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,eAAe;AACnB,IAAI,KAAK;AACT,IAAI,eAAe;AACnB,IAAI,cAAc;AAClB,IAAI,aAAa;AACjB,IAAI,mBAAmB;AACvB,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,WAAW,GAAG,WAAW;AAC7B,IAAI,kBAAkB;AACtB,IAAI,gBAAgB;AACpB,IAAI,aAAa;AACjB,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,iBAAiB;AACrB,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX,IAAI,cAAc;AAClB,IAAI,eAAe;AACnB,IAAI,QAAQ;AACZ,IAAI,gBAAgB;AACpB,IAAI,YAAY;AAChB,IAAI,MAAM;AACV,IAAI,kBAAkB;AACtB,IAAI,cAAc;AAClB,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,kBAAkB;AACtB,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,sBAAsB;AAC1B,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,cAAc;AAClB,IAAI,gBAAgB;AACpB,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,iBAAiB;AACrB,IAAI,OAAO;AACX,IAAI,iBAAiB;AACrB,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,qBAAqB;AACzB,IAAI,oBAAoB;AACxB,IAAI,mBAAmB;AACvB,IAAI,aAAa;AACjB,IAAI,oBAAoB;AACxB,IAAI,kBAAkB;AACtB,IAAI,eAAe;AACnB,IAAI,oBAAoB;AACxB,IAAI,mBAAmB;AACvB,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,aAAa;AACjB,IAAI,mBAAmB;AACvB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGC,cAAQ,CAAC,YAAY,CAAC,CAAC;AACrE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,GAAGC,8BAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,cAAc,KAAK,MAAM,GAAG,cAAc,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC1L,EAAE,MAAM,WAAW,GAAG,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC;AAClD,EAAE,MAAM,QAAQ,GAAGC,YAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACvE,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAGC,qBAAe,CAAC;AAC7C,IAAI,KAAK,EAAE,KAAK;AAChB,IAAI,YAAY,EAAE,YAAY;AAC9B,IAAI,UAAU,EAAE,IAAI,IAAI,EAAE;AAC1B,IAAI,QAAQ,EAAE,aAAa;AAC3B,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGH,cAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3E,EAAE,MAAM,OAAO,GAAG,OAAO,YAAY,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;AACxE,EAAE,MAAM,OAAO,GAAG,OAAO,YAAY,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;AACxE,EAAE,MAAM,UAAU,GAAG,CAAC,CAAC;AACvB,EAAE,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,KAAK;AAC7E,IAAI,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzD,IAAI,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,IAAI,SAAS,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;AACvG,IAAI,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,SAAS,KAAK,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3G,IAAI,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,UAAU,EAAE;AACrB,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE;AAC7B,MAAM,uBAAuB,CAAC,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;AACrE,KAAK,MAAM;AACX,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AACzB,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,KAAK;AAC3D,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,QAAQ,KAAK,CAAC,GAAG;AACrB,MAAM,KAAK,WAAW,EAAE;AACxB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;AACvF,QAAQ,IAAI,WAAW,EAAE;AACzB,UAAU,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC/D,SAAS;AACT,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,SAAS,EAAE;AACtB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACjD,QAAQ,IAAI,WAAW,EAAE;AACzB,UAAU,uBAAuB,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC7D,SAAS;AACT,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,YAAY,EAAE;AACzB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,MAAM,aAAa,GAAG,OAAO,CAAC,SAAS,KAAK,UAAU,CAAC;AAC/D,QAAQ,IAAI,aAAa,EAAE;AAC3B,UAAU,uBAAuB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAChE,SAAS,MAAM,IAAI,UAAU,GAAG,CAAC,GAAG,cAAc,EAAE;AACpD,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAClE,YAAY,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AACzG,WAAW;AACX,SAAS;AACT,QAAQ,MAAM;AACd,OAAO;AACP,MAAM,KAAK,WAAW,EAAE;AACxB,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/B,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,CAAC,EAAE;AACrC,UAAU,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC/D,SAAS,MAAM,IAAI,UAAU,GAAG,CAAC,EAAE;AACnC,UAAU,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAClE,YAAY,QAAQ,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;AACnF,WAAW;AACX,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,uBAAuBI,cAAK,CAAC,aAAa,CAACC,QAAG,EAAE,cAAc,CAAC;AACjE,IAAI,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC;AAClD,IAAI,GAAG;AACP,GAAG,EAAE,MAAM,CAAC,EAAE,cAAc,KAAK,MAAM,oBAAoBD,cAAK,CAAC,aAAa,CAACE,qBAAU,EAAE;AAC3F,IAAI,IAAI;AACR,IAAI,KAAK,EAAE,aAAa;AACxB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,QAAQ,EAAE,CAAC,IAAI,KAAK;AACxB,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC7B,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACjC,KAAK;AACL,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,gBAAgB;AACpB,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,GAAG,CAAC,EAAE,cAAc,KAAK,OAAO,oBAAoBF,cAAK,CAAC,aAAa,CAACG,uBAAW,EAAE;AACrF,IAAI,IAAI;AACR,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE;AACnE,IAAI,IAAI,EAAE,aAAa;AACvB,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC,MAAM,CAAC;AAChD,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,QAAQ,EAAE,CAAC,UAAU,KAAK;AAC9B,MAAM,QAAQ,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AACvD,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,gBAAgB;AACpB,IAAI,aAAa;AACjB,IAAI,iBAAiB;AACrB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,GAAG,CAAC,EAAE,cAAc,KAAK,MAAM,oBAAoBH,cAAK,CAAC,aAAa,CAACI,qBAAU,EAAE;AACnF,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,KAAK,EAAE,MAAM;AACjB,IAAI,MAAM,EAAE,WAAW;AACvB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,gBAAgB;AACpB,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,aAAa,EAAE,QAAQ;AAC3B,IAAI,WAAW,EAAE,MAAM,iBAAiB,CAAC,OAAO,CAAC;AACjD,IAAI,YAAY,EAAE,gBAAgB;AAClC,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,gBAAgB;AACpB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,oBAAoB;AACxB,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,IAAI,YAAY;AAChB,IAAI,cAAc;AAClB,IAAI,KAAK;AACT,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,cAAc;AAClB,IAAI,kBAAkB;AACtB,IAAI,WAAW;AACf,IAAI,kBAAkB;AACtB,IAAI,eAAe;AACnB,IAAI,SAAS;AACb,IAAI,gBAAgB;AACpB,IAAI,aAAa;AACjB,IAAI,kBAAkB;AACtB,IAAI,iBAAiB;AACrB,IAAI,QAAQ;AACZ,IAAI,WAAW;AACf,IAAI,iBAAiB;AACrB,GAAG,CAAC,CAAC,CAAC;AACN,CAAC,EAAE;AACH,YAAY,CAAC,WAAW,GAAG,6BAA6B;;;;"}
|
|
@@ -45,6 +45,7 @@ var __objRest = (source, exclude) => {
|
|
|
45
45
|
function MonthsList(_a) {
|
|
46
46
|
var _b = _a, {
|
|
47
47
|
amountOfMonths,
|
|
48
|
+
paginateBy,
|
|
48
49
|
month,
|
|
49
50
|
locale,
|
|
50
51
|
minDate,
|
|
@@ -67,6 +68,7 @@ function MonthsList(_a) {
|
|
|
67
68
|
unstyled
|
|
68
69
|
} = _b, others = __objRest(_b, [
|
|
69
70
|
"amountOfMonths",
|
|
71
|
+
"paginateBy",
|
|
70
72
|
"month",
|
|
71
73
|
"locale",
|
|
72
74
|
"minDate",
|
|
@@ -98,8 +100,8 @@ function MonthsList(_a) {
|
|
|
98
100
|
hasNext: index + 1 === amountOfMonths && isMonthInRange.isMonthInRange({ date: nextMonth, minDate, maxDate }),
|
|
99
101
|
hasPrevious: index === 0 && isMonthInRange.isMonthInRange({ date: previousMonth, minDate, maxDate }),
|
|
100
102
|
label: formatMonthLabel.formatMonthLabel({ month: monthDate, locale, format: labelFormat }),
|
|
101
|
-
onNext: () => onMonthChange(dayjs__default(month).add(
|
|
102
|
-
onPrevious: () => onMonthChange(dayjs__default(month).subtract(
|
|
103
|
+
onNext: () => onMonthChange(dayjs__default(month).add(paginateBy, "months").toDate()),
|
|
104
|
+
onPrevious: () => onMonthChange(dayjs__default(month).subtract(paginateBy, "months").toDate()),
|
|
103
105
|
onNextLevel,
|
|
104
106
|
nextLevelDisabled: !allowLevelChange,
|
|
105
107
|
size,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthsList.js","sources":["../../../../src/components/CalendarBase/MonthsList/MonthsList.tsx"],"sourcesContent":["import React from 'react';\nimport dayjs from 'dayjs';\nimport { DefaultProps } from '@mantine/core';\nimport { formatMonthLabel } from './format-month-label/format-month-label';\nimport { isMonthInRange } from '../MonthPicker/is-month-in-range/is-month-in-range';\nimport { CalendarHeader, CalendarHeaderStylesNames } from '../CalendarHeader/CalendarHeader';\nimport { Month, MonthProps, DayKeydownPayload, MonthStylesNames } from '../../Month';\n\nexport type MonthsListStylesNames = CalendarHeaderStylesNames | MonthStylesNames;\n\nexport interface MonthsListProps\n extends DefaultProps<MonthsListStylesNames>,\n Omit<MonthProps, 'styles' | 'classNames' | 'daysRefs' | 'onDayKeyDown'> {\n amountOfMonths: number;\n month: Date;\n locale: string;\n allowLevelChange: boolean;\n daysRefs: React.RefObject<HTMLButtonElement[][][]>;\n onMonthChange(month: Date): void;\n onNextLevel(): void;\n onDayKeyDown(\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ): void;\n __staticSelector?: string;\n nextMonthLabel?: string;\n previousMonthLabel?: string;\n labelFormat?: string;\n weekdayLabelFormat?: string;\n renderDay?(date: Date): React.ReactNode;\n}\n\nexport function MonthsList({\n amountOfMonths,\n month,\n locale,\n minDate,\n maxDate,\n allowLevelChange,\n size,\n daysRefs,\n onMonthChange,\n onNextLevel,\n onDayKeyDown,\n classNames,\n styles,\n __staticSelector = 'MonthsList',\n nextMonthLabel,\n previousMonthLabel,\n labelFormat,\n weekdayLabelFormat,\n preventFocus,\n renderDay,\n unstyled,\n ...others\n}: MonthsListProps) {\n const nextMonth = dayjs(month).add(amountOfMonths, 'months').toDate();\n const previousMonth = dayjs(month).subtract(1, 'months').toDate();\n\n const months = Array(amountOfMonths)\n .fill(0)\n .map((_, index) => {\n const monthDate = dayjs(month).add(index, 'months').toDate();\n return (\n <div key={index}>\n <CalendarHeader\n hasNext={\n index + 1 === amountOfMonths && isMonthInRange({ date: nextMonth, minDate, maxDate })\n }\n hasPrevious={index === 0 && isMonthInRange({ date: previousMonth, minDate, maxDate })}\n label={formatMonthLabel({ month: monthDate, locale, format: labelFormat })}\n onNext={() => onMonthChange(dayjs(month).add(
|
|
1
|
+
{"version":3,"file":"MonthsList.js","sources":["../../../../src/components/CalendarBase/MonthsList/MonthsList.tsx"],"sourcesContent":["import React from 'react';\nimport dayjs from 'dayjs';\nimport { DefaultProps } from '@mantine/core';\nimport { formatMonthLabel } from './format-month-label/format-month-label';\nimport { isMonthInRange } from '../MonthPicker/is-month-in-range/is-month-in-range';\nimport { CalendarHeader, CalendarHeaderStylesNames } from '../CalendarHeader/CalendarHeader';\nimport { Month, MonthProps, DayKeydownPayload, MonthStylesNames } from '../../Month';\n\nexport type MonthsListStylesNames = CalendarHeaderStylesNames | MonthStylesNames;\n\nexport interface MonthsListProps\n extends DefaultProps<MonthsListStylesNames>,\n Omit<MonthProps, 'styles' | 'classNames' | 'daysRefs' | 'onDayKeyDown'> {\n amountOfMonths: number;\n paginateBy: number;\n month: Date;\n locale: string;\n allowLevelChange: boolean;\n daysRefs: React.RefObject<HTMLButtonElement[][][]>;\n onMonthChange(month: Date): void;\n onNextLevel(): void;\n onDayKeyDown(\n monthIndex: number,\n payload: DayKeydownPayload,\n event: React.KeyboardEvent<HTMLButtonElement>\n ): void;\n __staticSelector?: string;\n nextMonthLabel?: string;\n previousMonthLabel?: string;\n labelFormat?: string;\n weekdayLabelFormat?: string;\n renderDay?(date: Date): React.ReactNode;\n}\n\nexport function MonthsList({\n amountOfMonths,\n paginateBy,\n month,\n locale,\n minDate,\n maxDate,\n allowLevelChange,\n size,\n daysRefs,\n onMonthChange,\n onNextLevel,\n onDayKeyDown,\n classNames,\n styles,\n __staticSelector = 'MonthsList',\n nextMonthLabel,\n previousMonthLabel,\n labelFormat,\n weekdayLabelFormat,\n preventFocus,\n renderDay,\n unstyled,\n ...others\n}: MonthsListProps) {\n const nextMonth = dayjs(month).add(amountOfMonths, 'months').toDate();\n const previousMonth = dayjs(month).subtract(1, 'months').toDate();\n\n const months = Array(amountOfMonths)\n .fill(0)\n .map((_, index) => {\n const monthDate = dayjs(month).add(index, 'months').toDate();\n return (\n <div key={index}>\n <CalendarHeader\n hasNext={\n index + 1 === amountOfMonths && isMonthInRange({ date: nextMonth, minDate, maxDate })\n }\n hasPrevious={index === 0 && isMonthInRange({ date: previousMonth, minDate, maxDate })}\n label={formatMonthLabel({ month: monthDate, locale, format: labelFormat })}\n onNext={() => onMonthChange(dayjs(month).add(paginateBy, 'months').toDate())}\n onPrevious={() => onMonthChange(dayjs(month).subtract(paginateBy, 'months').toDate())}\n onNextLevel={onNextLevel}\n nextLevelDisabled={!allowLevelChange}\n size={size}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n nextLabel={nextMonthLabel}\n previousLabel={previousMonthLabel}\n preventLevelFocus={index > 0}\n preventFocus={preventFocus}\n unstyled={unstyled}\n />\n\n <Month\n month={monthDate}\n daysRefs={daysRefs.current[index]}\n onDayKeyDown={(...args) => onDayKeyDown(index, ...args)}\n size={size}\n minDate={minDate}\n maxDate={maxDate}\n classNames={classNames}\n styles={styles}\n __staticSelector={__staticSelector}\n locale={locale}\n focusable={index === 0}\n preventFocus={preventFocus}\n renderDay={renderDay}\n weekdayLabelFormat={weekdayLabelFormat}\n unstyled={unstyled}\n {...others}\n />\n </div>\n );\n });\n\n return <>{months}</>;\n}\n\nMonthsList.displayName = '@mantine/dates/MonthsList';\n"],"names":["dayjs","React","CalendarHeader","isMonthInRange","formatMonthLabel","Month"],"mappings":"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"}
|
|
@@ -51,6 +51,7 @@ const defaultProps = {
|
|
|
51
51
|
name: "date",
|
|
52
52
|
size: "sm",
|
|
53
53
|
dropdownType: "popover",
|
|
54
|
+
dropdownPosition: "flip",
|
|
54
55
|
clearable: true,
|
|
55
56
|
disabled: false,
|
|
56
57
|
fixOnBlur: true,
|
|
@@ -85,6 +86,7 @@ const DatePicker = React.forwardRef((props, ref) => {
|
|
|
85
86
|
name,
|
|
86
87
|
size,
|
|
87
88
|
dropdownType,
|
|
89
|
+
dropdownPosition,
|
|
88
90
|
clearable,
|
|
89
91
|
disabled,
|
|
90
92
|
clearButtonLabel,
|
|
@@ -105,7 +107,8 @@ const DatePicker = React.forwardRef((props, ref) => {
|
|
|
105
107
|
renderDay,
|
|
106
108
|
type,
|
|
107
109
|
openDropdownOnClear,
|
|
108
|
-
unstyled
|
|
110
|
+
unstyled,
|
|
111
|
+
weekendDays
|
|
109
112
|
} = _a, others = __objRest(_a, [
|
|
110
113
|
"value",
|
|
111
114
|
"onChange",
|
|
@@ -132,6 +135,7 @@ const DatePicker = React.forwardRef((props, ref) => {
|
|
|
132
135
|
"name",
|
|
133
136
|
"size",
|
|
134
137
|
"dropdownType",
|
|
138
|
+
"dropdownPosition",
|
|
135
139
|
"clearable",
|
|
136
140
|
"disabled",
|
|
137
141
|
"clearButtonLabel",
|
|
@@ -152,7 +156,8 @@ const DatePicker = React.forwardRef((props, ref) => {
|
|
|
152
156
|
"renderDay",
|
|
153
157
|
"type",
|
|
154
158
|
"openDropdownOnClear",
|
|
155
|
-
"unstyled"
|
|
159
|
+
"unstyled",
|
|
160
|
+
"weekendDays"
|
|
156
161
|
]);
|
|
157
162
|
const theme = core.useMantineTheme();
|
|
158
163
|
const finalLocale = locale || theme.datesLocale;
|
|
@@ -183,7 +188,7 @@ const DatePicker = React.forwardRef((props, ref) => {
|
|
|
183
188
|
setInputState("");
|
|
184
189
|
}
|
|
185
190
|
if (value instanceof Date && !focused) {
|
|
186
|
-
setInputState(dayjs__default(value).locale(finalLocale).format(dateFormat));
|
|
191
|
+
setInputState(hooks.upperFirst(dayjs__default(value).locale(finalLocale).format(dateFormat)));
|
|
187
192
|
}
|
|
188
193
|
}, [value, focused]);
|
|
189
194
|
const handleValueChange = (date) => {
|
|
@@ -268,6 +273,7 @@ const DatePicker = React.forwardRef((props, ref) => {
|
|
|
268
273
|
inputLabel: inputState,
|
|
269
274
|
__staticSelector: "DatePicker",
|
|
270
275
|
dropdownType,
|
|
276
|
+
dropdownPosition,
|
|
271
277
|
clearable: type === "date" ? false : clearable && !!_value && !disabled,
|
|
272
278
|
clearButtonLabel,
|
|
273
279
|
onClear: handleClear,
|
|
@@ -298,6 +304,7 @@ const DatePicker = React.forwardRef((props, ref) => {
|
|
|
298
304
|
excludeDate,
|
|
299
305
|
__staticSelector: "DatePicker",
|
|
300
306
|
fullWidth: dropdownType === "modal",
|
|
307
|
+
__stopPropagation: dropdownType !== "modal",
|
|
301
308
|
size: dropdownType === "modal" ? "lg" : calendarSize,
|
|
302
309
|
firstDayOfWeek,
|
|
303
310
|
preventFocus: allowFreeInput,
|
|
@@ -307,7 +314,8 @@ const DatePicker = React.forwardRef((props, ref) => {
|
|
|
307
314
|
hideOutsideDates,
|
|
308
315
|
hideWeekdays,
|
|
309
316
|
renderDay,
|
|
310
|
-
unstyled
|
|
317
|
+
unstyled,
|
|
318
|
+
weekendDays
|
|
311
319
|
}));
|
|
312
320
|
});
|
|
313
321
|
DatePicker.displayName = "@mantine/dates/DatePicker";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { useState, useRef, forwardRef, useEffect } from 'react';\nimport { useUncontrolled, useMergedRef, upperFirst } from '@mantine/hooks';\nimport { useMantineTheme, useComponentDefaultProps } from '@mantine/core';\nimport { FirstDayOfWeek } from '../../types';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarSharedProps } from '../CalendarBase/CalendarBase';\nimport { DatePickerBase, DatePickerBaseSharedProps } from '../DatePickerBase/DatePickerBase';\n\nexport interface DatePickerProps\n extends Omit<DatePickerBaseSharedProps, 'onChange'>,\n Omit<CalendarSharedProps, 'size' | 'classNames' | 'styles' | 'onMonthChange'> {\n /** Selected date, required with controlled input */\n value?: Date | null;\n\n /** Called when date changes */\n onChange?(value: Date | null): void;\n\n /** Default value for uncontrolled input */\n defaultValue?: Date | null;\n\n /** Set to false to force dropdown to stay open after date was selected */\n closeCalendarOnChange?: boolean;\n\n /** Set to true to open dropdown on clear */\n openDropdownOnClear?: boolean;\n\n /** dayjs input format */\n inputFormat?: string;\n\n /** Control initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Parser function for date provided by input typing */\n dateParser?: (value: string) => Date;\n\n /** Input name, useful for uncontrolled variant to capture data with native form */\n name?: string;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Allow free input */\n allowFreeInput?: boolean;\n\n /** Render day based on the date */\n renderDay?(date: Date): React.ReactNode;\n}\n\nconst defaultProps: Partial<DatePickerProps> = {\n shadow: 'sm',\n transitionDuration: 200,\n closeCalendarOnChange: true,\n labelFormat: 'MMMM YYYY',\n initiallyOpened: false,\n name: 'date',\n size: 'sm',\n dropdownType: 'popover',\n clearable: true,\n disabled: false,\n fixOnBlur: true,\n withinPortal: true,\n firstDayOfWeek: 'monday',\n openDropdownOnClear: true,\n};\n\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(\n (props: DatePickerProps, ref) => {\n const {\n value,\n onChange,\n defaultValue,\n classNames,\n styles,\n shadow,\n locale,\n inputFormat,\n transitionDuration,\n transitionTimingFunction,\n nextMonthLabel,\n previousMonthLabel,\n closeCalendarOnChange,\n labelFormat,\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n initialMonth,\n initiallyOpened,\n name,\n size,\n dropdownType,\n clearable,\n disabled,\n clearButtonLabel,\n fixOnBlur,\n allowFreeInput,\n withinPortal,\n dateParser,\n firstDayOfWeek,\n onFocus,\n onBlur,\n amountOfMonths,\n allowLevelChange,\n initialLevel,\n onDropdownClose,\n onDropdownOpen,\n hideOutsideDates,\n hideWeekdays,\n renderDay,\n type,\n openDropdownOnClear,\n unstyled,\n ...others\n } = useComponentDefaultProps('DatePicker', defaultProps, props);\n\n const theme = useMantineTheme();\n const finalLocale = locale || theme.datesLocale;\n const dateFormat = type === 'date' ? 'YYYY-MM-DD' : inputFormat || theme.dateFormat;\n const [dropdownOpened, setDropdownOpened] = useState(initiallyOpened);\n const calendarSize = size === 'lg' || size === 'xl' ? 'md' : 'sm';\n const inputRef = useRef<HTMLInputElement>();\n const [lastValidValue, setLastValidValue] = useState(defaultValue ?? null);\n const [_value, setValue] = useUncontrolled<Date>({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n const [calendarMonth, setCalendarMonth] = useState(_value || initialMonth || new Date());\n\n const [focused, setFocused] = useState(false);\n const [inputState, setInputState] = useState(\n _value instanceof Date ? upperFirst(dayjs(_value).locale(finalLocale).format(dateFormat)) : ''\n );\n\n const closeDropdown = () => {\n setDropdownOpened(false);\n onDropdownClose?.();\n };\n\n const openDropdown = () => {\n setDropdownOpened(true);\n onDropdownOpen?.();\n };\n\n useEffect(() => {\n if (value === null && !focused) {\n setInputState('');\n }\n\n if (value instanceof Date && !focused) {\n setInputState(dayjs(value).locale(finalLocale).format(dateFormat));\n }\n }, [value, focused]);\n\n const handleValueChange = (date: Date) => {\n setValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n closeCalendarOnChange && closeDropdown();\n window.setTimeout(() => inputRef.current?.focus(), 0);\n };\n\n const handleClear = () => {\n setValue(null);\n setLastValidValue(null);\n setInputState('');\n openDropdownOnClear && openDropdown();\n inputRef.current?.focus();\n };\n\n const parseDate = (date: string) =>\n dateParser ? dateParser(date) : dayjs(date, dateFormat, finalLocale).toDate();\n\n const setDateFromInput = () => {\n let date = typeof _value === 'string' ? parseDate(_value) : _value;\n\n if (maxDate && dayjs(date).isAfter(maxDate)) {\n date = maxDate;\n }\n\n if (minDate && dayjs(date).isBefore(minDate)) {\n date = minDate;\n }\n\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n setCalendarMonth(date);\n } else if (fixOnBlur) {\n setValue(lastValidValue);\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setFocused(false);\n\n if (allowFreeInput) {\n setDateFromInput();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' && allowFreeInput) {\n closeDropdown();\n setDateFromInput();\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setFocused(true);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n openDropdown();\n\n const date = parseDate(event.target.value);\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(event.target.value);\n setCalendarMonth(date);\n } else {\n setInputState(event.target.value);\n }\n };\n\n return (\n <DatePickerBase\n allowFreeInput={allowFreeInput}\n dropdownOpened={dropdownOpened}\n setDropdownOpened={setDropdownOpened}\n shadow={shadow}\n transitionDuration={transitionDuration}\n ref={useMergedRef(ref, inputRef)}\n size={size}\n styles={styles}\n classNames={classNames}\n onChange={handleChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onKeyDown={handleKeyDown}\n name={name}\n inputLabel={inputState}\n __staticSelector=\"DatePicker\"\n dropdownType={dropdownType}\n clearable={type === 'date' ? false : clearable && !!_value && !disabled}\n clearButtonLabel={clearButtonLabel}\n onClear={handleClear}\n disabled={disabled}\n withinPortal={withinPortal}\n amountOfMonths={amountOfMonths}\n onDropdownClose={onDropdownClose}\n onDropdownOpen={onDropdownOpen}\n type={type}\n unstyled={unstyled}\n {...others}\n >\n <Calendar\n classNames={classNames}\n styles={styles}\n locale={finalLocale}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n month={allowFreeInput ? calendarMonth : undefined}\n initialMonth={initialMonth || (_value instanceof Date ? _value : new Date())}\n onMonthChange={setCalendarMonth}\n value={_value instanceof Date ? _value : dayjs(_value).toDate()}\n onChange={handleValueChange}\n labelFormat={labelFormat}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n __staticSelector=\"DatePicker\"\n fullWidth={dropdownType === 'modal'}\n size={dropdownType === 'modal' ? 'lg' : calendarSize}\n firstDayOfWeek={firstDayOfWeek}\n preventFocus={allowFreeInput}\n amountOfMonths={amountOfMonths}\n allowLevelChange={allowLevelChange}\n initialLevel={initialLevel}\n hideOutsideDates={hideOutsideDates}\n hideWeekdays={hideWeekdays}\n renderDay={renderDay}\n unstyled={unstyled}\n />\n </DatePickerBase>\n );\n }\n);\n\nDatePicker.displayName = '@mantine/dates/DatePicker';\n"],"names":["forwardRef","useComponentDefaultProps","useMantineTheme","useState","useRef","useUncontrolled","upperFirst","dayjs","useEffect","React","DatePickerBase","useMergedRef","Calendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sources":["../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { useState, useRef, forwardRef, useEffect } from 'react';\nimport { useUncontrolled, useMergedRef, upperFirst } from '@mantine/hooks';\nimport { useMantineTheme, useComponentDefaultProps } from '@mantine/core';\nimport { FirstDayOfWeek } from '../../types';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarSharedProps } from '../CalendarBase/CalendarBase';\nimport { DatePickerBase, DatePickerBaseSharedProps } from '../DatePickerBase/DatePickerBase';\n\nexport interface DatePickerProps\n extends Omit<DatePickerBaseSharedProps, 'onChange'>,\n Omit<CalendarSharedProps, 'size' | 'classNames' | 'styles' | 'onMonthChange' | 'onChange'> {\n /** Selected date, required with controlled input */\n value?: Date | null;\n\n /** Called when date changes */\n onChange?(value: Date | null): void;\n\n /** Default value for uncontrolled input */\n defaultValue?: Date | null;\n\n /** Set to false to force dropdown to stay open after date was selected */\n closeCalendarOnChange?: boolean;\n\n /** Set to true to open dropdown on clear */\n openDropdownOnClear?: boolean;\n\n /** dayjs input format */\n inputFormat?: string;\n\n /** Control initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Parser function for date provided by input typing */\n dateParser?: (value: string) => Date;\n\n /** Input name, useful for uncontrolled variant to capture data with native form */\n name?: string;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Allow free input */\n allowFreeInput?: boolean;\n\n /** Render day based on the date */\n renderDay?(date: Date): React.ReactNode;\n}\n\nconst defaultProps: Partial<DatePickerProps> = {\n shadow: 'sm',\n transitionDuration: 200,\n closeCalendarOnChange: true,\n labelFormat: 'MMMM YYYY',\n initiallyOpened: false,\n name: 'date',\n size: 'sm',\n dropdownType: 'popover',\n dropdownPosition: 'flip',\n clearable: true,\n disabled: false,\n fixOnBlur: true,\n withinPortal: true,\n firstDayOfWeek: 'monday',\n openDropdownOnClear: true,\n};\n\nexport const DatePicker = forwardRef<HTMLInputElement, DatePickerProps>(\n (props: DatePickerProps, ref) => {\n const {\n value,\n onChange,\n defaultValue,\n classNames,\n styles,\n shadow,\n locale,\n inputFormat,\n transitionDuration,\n transitionTimingFunction,\n nextMonthLabel,\n previousMonthLabel,\n closeCalendarOnChange,\n labelFormat,\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n initialMonth,\n initiallyOpened,\n name,\n size,\n dropdownType,\n dropdownPosition,\n clearable,\n disabled,\n clearButtonLabel,\n fixOnBlur,\n allowFreeInput,\n withinPortal,\n dateParser,\n firstDayOfWeek,\n onFocus,\n onBlur,\n amountOfMonths,\n allowLevelChange,\n initialLevel,\n onDropdownClose,\n onDropdownOpen,\n hideOutsideDates,\n hideWeekdays,\n renderDay,\n type,\n openDropdownOnClear,\n unstyled,\n weekendDays,\n ...others\n } = useComponentDefaultProps('DatePicker', defaultProps, props);\n\n const theme = useMantineTheme();\n const finalLocale = locale || theme.datesLocale;\n const dateFormat = type === 'date' ? 'YYYY-MM-DD' : inputFormat || theme.dateFormat;\n const [dropdownOpened, setDropdownOpened] = useState(initiallyOpened);\n const calendarSize = size === 'lg' || size === 'xl' ? 'md' : 'sm';\n const inputRef = useRef<HTMLInputElement>();\n const [lastValidValue, setLastValidValue] = useState(defaultValue ?? null);\n const [_value, setValue] = useUncontrolled<Date>({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n });\n const [calendarMonth, setCalendarMonth] = useState(_value || initialMonth || new Date());\n\n const [focused, setFocused] = useState(false);\n const [inputState, setInputState] = useState(\n _value instanceof Date ? upperFirst(dayjs(_value).locale(finalLocale).format(dateFormat)) : ''\n );\n\n const closeDropdown = () => {\n setDropdownOpened(false);\n onDropdownClose?.();\n };\n\n const openDropdown = () => {\n setDropdownOpened(true);\n onDropdownOpen?.();\n };\n\n useEffect(() => {\n if (value === null && !focused) {\n setInputState('');\n }\n\n if (value instanceof Date && !focused) {\n setInputState(upperFirst(dayjs(value).locale(finalLocale).format(dateFormat)));\n }\n }, [value, focused]);\n\n const handleValueChange = (date: Date) => {\n setValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n closeCalendarOnChange && closeDropdown();\n window.setTimeout(() => inputRef.current?.focus(), 0);\n };\n\n const handleClear = () => {\n setValue(null);\n setLastValidValue(null);\n setInputState('');\n openDropdownOnClear && openDropdown();\n inputRef.current?.focus();\n };\n\n const parseDate = (date: string) =>\n dateParser ? dateParser(date) : dayjs(date, dateFormat, finalLocale).toDate();\n\n const setDateFromInput = () => {\n let date = typeof _value === 'string' ? parseDate(_value) : _value;\n\n if (maxDate && dayjs(date).isAfter(maxDate)) {\n date = maxDate;\n }\n\n if (minDate && dayjs(date).isBefore(minDate)) {\n date = minDate;\n }\n\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n setCalendarMonth(date);\n } else if (fixOnBlur) {\n setValue(lastValidValue);\n }\n };\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setFocused(false);\n\n if (allowFreeInput) {\n setDateFromInput();\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter' && allowFreeInput) {\n closeDropdown();\n setDateFromInput();\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n setFocused(true);\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n openDropdown();\n\n const date = parseDate(event.target.value);\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(event.target.value);\n setCalendarMonth(date);\n } else {\n setInputState(event.target.value);\n }\n };\n\n return (\n <DatePickerBase\n allowFreeInput={allowFreeInput}\n dropdownOpened={dropdownOpened}\n setDropdownOpened={setDropdownOpened}\n shadow={shadow}\n transitionDuration={transitionDuration}\n ref={useMergedRef(ref, inputRef)}\n size={size}\n styles={styles}\n classNames={classNames}\n onChange={handleChange}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onKeyDown={handleKeyDown}\n name={name}\n inputLabel={inputState}\n __staticSelector=\"DatePicker\"\n dropdownType={dropdownType}\n dropdownPosition={dropdownPosition}\n clearable={type === 'date' ? false : clearable && !!_value && !disabled}\n clearButtonLabel={clearButtonLabel}\n onClear={handleClear}\n disabled={disabled}\n withinPortal={withinPortal}\n amountOfMonths={amountOfMonths}\n onDropdownClose={onDropdownClose}\n onDropdownOpen={onDropdownOpen}\n type={type}\n unstyled={unstyled}\n {...others}\n >\n <Calendar\n classNames={classNames}\n styles={styles}\n locale={finalLocale}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n month={allowFreeInput ? calendarMonth : undefined}\n initialMonth={initialMonth || (_value instanceof Date ? _value : new Date())}\n onMonthChange={setCalendarMonth}\n value={_value instanceof Date ? _value : dayjs(_value).toDate()}\n onChange={handleValueChange}\n labelFormat={labelFormat}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n __staticSelector=\"DatePicker\"\n fullWidth={dropdownType === 'modal'}\n __stopPropagation={dropdownType !== 'modal'}\n size={dropdownType === 'modal' ? 'lg' : calendarSize}\n firstDayOfWeek={firstDayOfWeek}\n preventFocus={allowFreeInput}\n amountOfMonths={amountOfMonths}\n allowLevelChange={allowLevelChange}\n initialLevel={initialLevel}\n hideOutsideDates={hideOutsideDates}\n hideWeekdays={hideWeekdays}\n renderDay={renderDay}\n unstyled={unstyled}\n weekendDays={weekendDays}\n />\n </DatePickerBase>\n );\n }\n);\n\nDatePicker.displayName = '@mantine/dates/DatePicker';\n"],"names":["forwardRef","useComponentDefaultProps","useMantineTheme","useState","useRef","useUncontrolled","upperFirst","dayjs","useEffect","React","DatePickerBase","useMergedRef","Calendar"],"mappings":"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"}
|
|
@@ -80,6 +80,7 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
80
80
|
dropdownOpened,
|
|
81
81
|
setDropdownOpened,
|
|
82
82
|
dropdownType = "popover",
|
|
83
|
+
dropdownPosition = "flip",
|
|
83
84
|
clearable = true,
|
|
84
85
|
clearButtonLabel,
|
|
85
86
|
onClear,
|
|
@@ -103,7 +104,8 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
103
104
|
clearButtonTabIndex = 0,
|
|
104
105
|
unstyled,
|
|
105
106
|
inputContainer,
|
|
106
|
-
inputWrapperOrder
|
|
107
|
+
inputWrapperOrder,
|
|
108
|
+
modalProps
|
|
107
109
|
} = _b, others = __objRest(_b, [
|
|
108
110
|
"classNames",
|
|
109
111
|
"className",
|
|
@@ -128,6 +130,7 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
128
130
|
"dropdownOpened",
|
|
129
131
|
"setDropdownOpened",
|
|
130
132
|
"dropdownType",
|
|
133
|
+
"dropdownPosition",
|
|
131
134
|
"clearable",
|
|
132
135
|
"clearButtonLabel",
|
|
133
136
|
"onClear",
|
|
@@ -151,7 +154,8 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
151
154
|
"clearButtonTabIndex",
|
|
152
155
|
"unstyled",
|
|
153
156
|
"inputContainer",
|
|
154
|
-
"inputWrapperOrder"
|
|
157
|
+
"inputWrapperOrder",
|
|
158
|
+
"modalProps"
|
|
155
159
|
]);
|
|
156
160
|
const { classes, cx, theme } = DatePickerBase_styles['default'](null, {
|
|
157
161
|
classNames,
|
|
@@ -230,7 +234,6 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
230
234
|
inputWrapperOrder,
|
|
231
235
|
unstyled
|
|
232
236
|
}, systemStyles), wrapperProps), /* @__PURE__ */ React__default.createElement(core.Popover, {
|
|
233
|
-
position: "bottom-start",
|
|
234
237
|
__staticSelector,
|
|
235
238
|
withinPortal,
|
|
236
239
|
offset: 10,
|
|
@@ -238,6 +241,8 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
238
241
|
transitionDuration,
|
|
239
242
|
transition,
|
|
240
243
|
positionDependencies,
|
|
244
|
+
middlewares: { flip: dropdownPosition === "flip", shift: false },
|
|
245
|
+
position: dropdownPosition === "flip" ? "bottom-start" : dropdownPosition,
|
|
241
246
|
shadow,
|
|
242
247
|
onClose: closeDropdown,
|
|
243
248
|
trapFocus: !allowFreeInput,
|
|
@@ -251,8 +256,9 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
251
256
|
className: classes.wrapper
|
|
252
257
|
}, /* @__PURE__ */ React__default.createElement(core.Input, __spreadValues({
|
|
253
258
|
classNames: __spreadProps(__spreadValues({}, classNames), {
|
|
254
|
-
input: cx(classes.input,
|
|
259
|
+
input: cx(classes.input, classNames == null ? void 0 : classNames.input)
|
|
255
260
|
}),
|
|
261
|
+
"data-free-input": allowFreeInput || void 0,
|
|
256
262
|
styles,
|
|
257
263
|
onClick: () => !allowFreeInput ? toggleDropdown() : openDropdown(),
|
|
258
264
|
onKeyDown: handleKeyDown,
|
|
@@ -277,14 +283,14 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
277
283
|
"data-mantine-stop-propagation": dropdownOpened,
|
|
278
284
|
onKeyDownCapture: closeOnEscape,
|
|
279
285
|
"aria-hidden": allowFreeInput || void 0
|
|
280
|
-
}, children)) : /* @__PURE__ */ React__default.createElement(core.Modal, {
|
|
286
|
+
}, children)) : /* @__PURE__ */ React__default.createElement(core.Modal, __spreadProps(__spreadValues({}, modalProps), {
|
|
281
287
|
opened: dropdownOpened,
|
|
282
288
|
onClose: closeDropdown,
|
|
283
289
|
withCloseButton: false,
|
|
284
290
|
size: amountOfMonths * 400,
|
|
285
291
|
zIndex: modalZIndex,
|
|
286
292
|
unstyled
|
|
287
|
-
}, children)));
|
|
293
|
+
}), children)));
|
|
288
294
|
});
|
|
289
295
|
DatePickerBase.displayName = "@mantine/dates/DatePickerBase";
|
|
290
296
|
|