@mantine/dates 3.2.1 → 3.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/Calendar/Calendar.js +5 -3
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.js +12 -8
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePickerBase/DatePickerBase.js +15 -9
- package/cjs/components/DatePickerBase/DatePickerBase.js.map +1 -1
- package/cjs/components/DatePickerBase/DatePickerBase.styles.js +0 -1
- package/cjs/components/DatePickerBase/DatePickerBase.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +16 -10
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/Month/Month.js +4 -2
- package/cjs/components/Month/Month.js.map +1 -1
- package/cjs/components/RangeCalendar/RangeCalendar.js +3 -2
- package/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/esm/components/Calendar/Calendar.js +6 -4
- package/esm/components/Calendar/Calendar.js.map +1 -1
- package/esm/components/DatePicker/DatePicker.js +12 -8
- package/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/esm/components/DatePickerBase/DatePickerBase.js +16 -10
- package/esm/components/DatePickerBase/DatePickerBase.js.map +1 -1
- package/esm/components/DatePickerBase/DatePickerBase.styles.js +0 -1
- package/esm/components/DatePickerBase/DatePickerBase.styles.js.map +1 -1
- package/esm/components/DateRangePicker/DateRangePicker.js +16 -10
- package/esm/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/esm/components/Month/Month.js +5 -3
- package/esm/components/Month/Month.js.map +1 -1
- package/esm/components/RangeCalendar/RangeCalendar.js +3 -2
- package/esm/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/lib/components/Calendar/Calendar.d.ts +1 -1
- package/lib/components/Calendar/Calendar.d.ts.map +1 -1
- package/lib/components/Calendar/CalendarLabel/CalendarLabel.styles.d.ts +1 -1
- package/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/lib/components/DatePickerBase/DatePickerBase.d.ts +2 -0
- package/lib/components/DatePickerBase/DatePickerBase.d.ts.map +1 -1
- package/lib/components/DatePickerBase/DatePickerBase.styles.d.ts +1 -1
- package/lib/components/DatePickerBase/DatePickerBase.styles.d.ts.map +1 -1
- package/lib/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/lib/components/Month/Day/Day.styles.d.ts +1 -1
- package/lib/components/Month/Month.d.ts.map +1 -1
- package/lib/components/Month/Month.styles.d.ts +1 -1
- package/lib/components/RangeCalendar/RangeCalendar.d.ts.map +1 -1
- package/lib/components/TimeInput/TimeInput.styles.d.ts +1 -1
- package/lib/components/TimeRangeInput/TimeRangeInput.styles.d.ts +1 -1
- package/package.json +3 -3
|
@@ -48,7 +48,7 @@ const Calendar = React.forwardRef((_a, ref) => {
|
|
|
48
48
|
var _b = _a, {
|
|
49
49
|
classNames,
|
|
50
50
|
styles,
|
|
51
|
-
locale
|
|
51
|
+
locale,
|
|
52
52
|
nextMonthLabel,
|
|
53
53
|
previousMonthLabel,
|
|
54
54
|
initialMonth,
|
|
@@ -102,6 +102,8 @@ const Calendar = React.forwardRef((_a, ref) => {
|
|
|
102
102
|
"firstDayOfWeek",
|
|
103
103
|
"amountOfMonths"
|
|
104
104
|
]);
|
|
105
|
+
const theme = core.useMantineTheme();
|
|
106
|
+
const finalLocale = locale || theme.datesLocale;
|
|
105
107
|
const [_month, setMonth] = hooks.useUncontrolled({
|
|
106
108
|
value: month,
|
|
107
109
|
defaultValue: initialMonth,
|
|
@@ -141,7 +143,7 @@ const Calendar = React.forwardRef((_a, ref) => {
|
|
|
141
143
|
onNextMonth: () => setMonth(dayjs__default(_month).add(1, "month").toDate()),
|
|
142
144
|
classNames,
|
|
143
145
|
styles,
|
|
144
|
-
locale,
|
|
146
|
+
locale: finalLocale,
|
|
145
147
|
withSelect,
|
|
146
148
|
yearsRange,
|
|
147
149
|
month: monthToRender,
|
|
@@ -166,7 +168,7 @@ const Calendar = React.forwardRef((_a, ref) => {
|
|
|
166
168
|
fullWidth,
|
|
167
169
|
preventFocus,
|
|
168
170
|
size,
|
|
169
|
-
locale,
|
|
171
|
+
locale: finalLocale,
|
|
170
172
|
firstDayOfWeek,
|
|
171
173
|
__staticSelector,
|
|
172
174
|
dayStyle: dayStyles
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport dayjs from 'dayjs';\nimport { DefaultProps, Group } from '@mantine/core';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { FirstDayOfWeek } from '../../types';\nimport { Month, MonthSettings, MonthStylesNames } from '../Month/Month';\nimport { DayModifiers } from '../Month/get-day-props/get-day-props';\nimport { CalendarLabelStylesNames } from './CalendarLabel/CalendarLabel';\nimport { CalendarHeader } from './CalendarHeader/CalendarHeader';\nimport { CalendarWrapper } from './CalendarWrapper/CalendarWrapper';\nimport { getDisabledState } from './get-disabled-state/get-disabled-state';\n\nexport interface CalendarSettings extends MonthSettings {\n /** aria-label for next month arrow button */\n nextMonthLabel?: string;\n\n /** aria-label for previous month arrow button */\n previousMonthLabel?: string;\n\n /** aria-label for month select */\n monthLabel?: string;\n\n /** aria-label for year select */\n yearLabel?: string;\n\n /** Locale used for all labels formatting */\n locale?: string;\n\n /** Initial selected month */\n initialMonth?: Date | null;\n\n /** dayjs label format */\n labelFormat?: string;\n\n /** Replace calendar label with month and year selects */\n withSelect?: boolean;\n\n /** Years range for year select */\n yearsRange?: { from: number; to: number };\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Amount of displayed months */\n amountOfMonths?: number;\n}\n\nexport type CalendarStylesNames = Exclude<MonthStylesNames, 'root'> | CalendarLabelStylesNames;\n\nexport interface CalendarProps\n extends DefaultProps<CalendarStylesNames>,\n CalendarSettings,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {\n /** Current month */\n month?: Date;\n\n /** Selected date */\n value?: Date;\n\n /** Called when selected date changes */\n onChange?(value: Date): void;\n\n /** Called when month changes */\n onMonthChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n}\n\nexport const Calendar = forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n classNames,\n styles,\n locale = 'en',\n nextMonthLabel,\n previousMonthLabel,\n initialMonth,\n month,\n onMonthChange,\n value,\n onChange,\n labelFormat = 'MMMM YYYY',\n withSelect = false,\n yearsRange = { from: 2020, to: 2030 },\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n fullWidth = false,\n size = 'sm',\n __staticSelector = 'Calendar',\n monthLabel,\n yearLabel,\n preventFocus,\n firstDayOfWeek = 'monday',\n amountOfMonths = 1,\n ...others\n }: CalendarProps,\n ref\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 disabledState = getDisabledState({ month: _month, minDate, maxDate });\n const hasMultipleMonths = amountOfMonths > 1;\n\n const dayStyles = (date: Date, modifiers: DayModifiers) => {\n const initialStyles = typeof dayStyle === 'function' ? dayStyle(date, modifiers) : null;\n const outsideStyles = modifiers.outside && amountOfMonths > 1 ? { display: 'none' } : null;\n return { ...initialStyles, ...outsideStyles };\n };\n\n return (\n <CalendarWrapper\n size={size}\n fullWidth={fullWidth}\n ref={ref}\n amountOfMonths={amountOfMonths}\n {...others}\n >\n <Group noWrap style={{ alignItems: 'flex-start' }}>\n {Array(amountOfMonths)\n .fill(0)\n .map((_, monthIndex) => {\n const isFirstMonth = monthIndex === 0;\n const isLastMonth = monthIndex === amountOfMonths - 1;\n const monthToRender = isFirstMonth\n ? _month\n : dayjs(_month).add(monthIndex, 'month').toDate();\n const hiddenMonth = isFirstMonth ? 'next' : isLastMonth ? 'prev' : 'both';\n\n return (\n <div key={`month-${monthIndex}`}>\n <CalendarHeader\n size={size}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n previousMonthDisabled={disabledState.previousDisabled}\n nextMonthDisabled={disabledState.nextDisabled}\n onPreviousMonth={() => setMonth(dayjs(_month).subtract(1, 'month').toDate())}\n onNextMonth={() => setMonth(dayjs(_month).add(1, 'month').toDate())}\n classNames={classNames}\n styles={styles}\n locale={locale}\n withSelect={withSelect}\n yearsRange={yearsRange}\n month={monthToRender}\n setMonth={setMonth}\n labelFormat={labelFormat}\n hiddenMonth={hasMultipleMonths ? hiddenMonth : undefined}\n __staticSelector={\n isFirstMonth ? __staticSelector : `${__staticSelector}-month-${monthIndex}`\n }\n monthLabel={monthLabel}\n yearLabel={yearLabel}\n preventFocus={preventFocus}\n />\n\n <Month\n month={monthToRender}\n value={value}\n onChange={onChange}\n dayClassName={dayClassName}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n classNames={classNames}\n styles={styles}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n size={size}\n locale={locale}\n firstDayOfWeek={firstDayOfWeek}\n __staticSelector={__staticSelector}\n dayStyle={dayStyles}\n />\n </div>\n );\n })}\n </Group>\n </CalendarWrapper>\n );\n }\n);\n\nCalendar.displayName = '@mantine/dates/Calendar';\n"],"names":["forwardRef","useUncontrolled","getDisabledState","React","CalendarWrapper","Group","dayjs","CalendarHeader","Month"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Calendar.js","sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport dayjs from 'dayjs';\nimport { DefaultProps, Group, useMantineTheme } from '@mantine/core';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { FirstDayOfWeek } from '../../types';\nimport { Month, MonthSettings, MonthStylesNames } from '../Month';\nimport { DayModifiers } from '../Month/get-day-props/get-day-props';\nimport { CalendarLabelStylesNames } from './CalendarLabel/CalendarLabel';\nimport { CalendarHeader } from './CalendarHeader/CalendarHeader';\nimport { CalendarWrapper } from './CalendarWrapper/CalendarWrapper';\nimport { getDisabledState } from './get-disabled-state/get-disabled-state';\n\nexport interface CalendarSettings extends MonthSettings {\n /** aria-label for next month arrow button */\n nextMonthLabel?: string;\n\n /** aria-label for previous month arrow button */\n previousMonthLabel?: string;\n\n /** aria-label for month select */\n monthLabel?: string;\n\n /** aria-label for year select */\n yearLabel?: string;\n\n /** Locale used for all labels formatting */\n locale?: string;\n\n /** Initial selected month */\n initialMonth?: Date | null;\n\n /** dayjs label format */\n labelFormat?: string;\n\n /** Replace calendar label with month and year selects */\n withSelect?: boolean;\n\n /** Years range for year select */\n yearsRange?: { from: number; to: number };\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Amount of displayed months */\n amountOfMonths?: number;\n}\n\nexport type CalendarStylesNames = Exclude<MonthStylesNames, 'root'> | CalendarLabelStylesNames;\n\nexport interface CalendarProps\n extends DefaultProps<CalendarStylesNames>,\n CalendarSettings,\n Omit<React.ComponentPropsWithoutRef<'div'>, 'value' | 'onChange'> {\n /** Current month */\n month?: Date;\n\n /** Selected date */\n value?: Date;\n\n /** Called when selected date changes */\n onChange?(value: Date): void;\n\n /** Called when month changes */\n onMonthChange?(value: Date): void;\n\n /** Static css selector base */\n __staticSelector?: string;\n}\n\nexport const Calendar = forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n classNames,\n styles,\n locale,\n nextMonthLabel,\n previousMonthLabel,\n initialMonth,\n month,\n onMonthChange,\n value,\n onChange,\n labelFormat = 'MMMM YYYY',\n withSelect = false,\n yearsRange = { from: 2020, to: 2030 },\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n fullWidth = false,\n size = 'sm',\n __staticSelector = 'Calendar',\n monthLabel,\n yearLabel,\n preventFocus,\n firstDayOfWeek = 'monday',\n amountOfMonths = 1,\n ...others\n }: CalendarProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const finalLocale = locale || theme.datesLocale;\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 disabledState = getDisabledState({ month: _month, minDate, maxDate });\n const hasMultipleMonths = amountOfMonths > 1;\n\n const dayStyles = (date: Date, modifiers: DayModifiers) => {\n const initialStyles = typeof dayStyle === 'function' ? dayStyle(date, modifiers) : null;\n const outsideStyles = modifiers.outside && amountOfMonths > 1 ? { display: 'none' } : null;\n return { ...initialStyles, ...outsideStyles };\n };\n\n return (\n <CalendarWrapper\n size={size}\n fullWidth={fullWidth}\n ref={ref}\n amountOfMonths={amountOfMonths}\n {...others}\n >\n <Group noWrap style={{ alignItems: 'flex-start' }}>\n {Array(amountOfMonths)\n .fill(0)\n .map((_, monthIndex) => {\n const isFirstMonth = monthIndex === 0;\n const isLastMonth = monthIndex === amountOfMonths - 1;\n const monthToRender = isFirstMonth\n ? _month\n : dayjs(_month).add(monthIndex, 'month').toDate();\n const hiddenMonth = isFirstMonth ? 'next' : isLastMonth ? 'prev' : 'both';\n\n return (\n <div key={`month-${monthIndex}`}>\n <CalendarHeader\n size={size}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n previousMonthDisabled={disabledState.previousDisabled}\n nextMonthDisabled={disabledState.nextDisabled}\n onPreviousMonth={() => setMonth(dayjs(_month).subtract(1, 'month').toDate())}\n onNextMonth={() => setMonth(dayjs(_month).add(1, 'month').toDate())}\n classNames={classNames}\n styles={styles}\n locale={finalLocale}\n withSelect={withSelect}\n yearsRange={yearsRange}\n month={monthToRender}\n setMonth={setMonth}\n labelFormat={labelFormat}\n hiddenMonth={hasMultipleMonths ? hiddenMonth : undefined}\n __staticSelector={\n isFirstMonth ? __staticSelector : `${__staticSelector}-month-${monthIndex}`\n }\n monthLabel={monthLabel}\n yearLabel={yearLabel}\n preventFocus={preventFocus}\n />\n\n <Month\n month={monthToRender}\n value={value}\n onChange={onChange}\n dayClassName={dayClassName}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n classNames={classNames}\n styles={styles}\n fullWidth={fullWidth}\n preventFocus={preventFocus}\n size={size}\n locale={finalLocale}\n firstDayOfWeek={firstDayOfWeek}\n __staticSelector={__staticSelector}\n dayStyle={dayStyles}\n />\n </div>\n );\n })}\n </Group>\n </CalendarWrapper>\n );\n }\n);\n\nCalendar.displayName = '@mantine/dates/Calendar';\n"],"names":["forwardRef","useMantineTheme","useUncontrolled","getDisabledState","React","CalendarWrapper","Group","dayjs","CalendarHeader","Month"],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
50
50
|
classNames,
|
|
51
51
|
styles,
|
|
52
52
|
shadow = "sm",
|
|
53
|
-
locale
|
|
53
|
+
locale,
|
|
54
54
|
inputFormat,
|
|
55
55
|
transitionDuration = 200,
|
|
56
56
|
transitionTimingFunction,
|
|
@@ -76,6 +76,7 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
76
76
|
clearButtonLabel,
|
|
77
77
|
fixOnBlur = true,
|
|
78
78
|
allowFreeInput,
|
|
79
|
+
withinPortal = true,
|
|
79
80
|
dateParser,
|
|
80
81
|
firstDayOfWeek = "monday",
|
|
81
82
|
onFocus,
|
|
@@ -114,6 +115,7 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
114
115
|
"clearButtonLabel",
|
|
115
116
|
"fixOnBlur",
|
|
116
117
|
"allowFreeInput",
|
|
118
|
+
"withinPortal",
|
|
117
119
|
"dateParser",
|
|
118
120
|
"firstDayOfWeek",
|
|
119
121
|
"onFocus",
|
|
@@ -121,6 +123,7 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
121
123
|
"amountOfMonths"
|
|
122
124
|
]);
|
|
123
125
|
const theme = core.useMantineTheme();
|
|
126
|
+
const finalLocale = locale || theme.datesLocale;
|
|
124
127
|
const dateFormat = inputFormat || theme.dateFormat;
|
|
125
128
|
const [dropdownOpened, setDropdownOpened] = React.useState(initiallyOpened);
|
|
126
129
|
const [calendarMonth, setCalendarMonth] = React.useState(initialMonth || new Date());
|
|
@@ -135,18 +138,18 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
135
138
|
rule: (val) => val === null || val instanceof Date
|
|
136
139
|
});
|
|
137
140
|
const [focused, setFocused] = React.useState(false);
|
|
138
|
-
const [inputState, setInputState] = React.useState(_value instanceof Date ? hooks.upperFirst(dayjs__default(_value).locale(
|
|
141
|
+
const [inputState, setInputState] = React.useState(_value instanceof Date ? hooks.upperFirst(dayjs__default(_value).locale(finalLocale).format(dateFormat)) : "");
|
|
139
142
|
React.useEffect(() => {
|
|
140
143
|
if (value === null && !focused) {
|
|
141
144
|
setInputState("");
|
|
142
145
|
}
|
|
143
146
|
if (value instanceof Date && !focused) {
|
|
144
|
-
setInputState(dayjs__default(value).locale(
|
|
147
|
+
setInputState(dayjs__default(value).locale(finalLocale).format(dateFormat));
|
|
145
148
|
}
|
|
146
149
|
}, [value, focused]);
|
|
147
150
|
const handleValueChange = (date) => {
|
|
148
151
|
setValue(date);
|
|
149
|
-
setInputState(hooks.upperFirst(dayjs__default(date).locale(
|
|
152
|
+
setInputState(hooks.upperFirst(dayjs__default(date).locale(finalLocale).format(dateFormat)));
|
|
150
153
|
closeCalendarOnChange && setDropdownOpened(false);
|
|
151
154
|
window.setTimeout(() => {
|
|
152
155
|
var _a2;
|
|
@@ -161,7 +164,7 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
161
164
|
setDropdownOpened(true);
|
|
162
165
|
(_a2 = inputRef.current) == null ? void 0 : _a2.focus();
|
|
163
166
|
};
|
|
164
|
-
const parseDate = (date) => dateParser ? dateParser(date) : dayjs__default(date, dateFormat,
|
|
167
|
+
const parseDate = (date) => dateParser ? dateParser(date) : dayjs__default(date, dateFormat, finalLocale).toDate();
|
|
165
168
|
const handleInputBlur = (event) => {
|
|
166
169
|
typeof onBlur === "function" && onBlur(event);
|
|
167
170
|
setFocused(false);
|
|
@@ -169,7 +172,7 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
169
172
|
if (dayjs__default(date).isValid()) {
|
|
170
173
|
setValue(date);
|
|
171
174
|
setLastValidValue(date);
|
|
172
|
-
setInputState(hooks.upperFirst(dayjs__default(date).locale(
|
|
175
|
+
setInputState(hooks.upperFirst(dayjs__default(date).locale(finalLocale).format(dateFormat)));
|
|
173
176
|
} else if (fixOnBlur) {
|
|
174
177
|
setValue(lastValidValue);
|
|
175
178
|
}
|
|
@@ -210,11 +213,12 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
210
213
|
clearable: clearable && !!_value && !disabled,
|
|
211
214
|
clearButtonLabel,
|
|
212
215
|
onClear: handleClear,
|
|
213
|
-
disabled
|
|
216
|
+
disabled,
|
|
217
|
+
withinPortal
|
|
214
218
|
}, others), /* @__PURE__ */ React__default.createElement(Calendar.Calendar, {
|
|
215
219
|
classNames,
|
|
216
220
|
styles,
|
|
217
|
-
locale,
|
|
221
|
+
locale: finalLocale,
|
|
218
222
|
nextMonthLabel,
|
|
219
223
|
previousMonthLabel,
|
|
220
224
|
month: allowFreeInput ? calendarMonth : void 0,
|
|
@@ -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 } from '@mantine/core';\nimport { FirstDayOfWeek } from '../../types';\nimport { Calendar, CalendarSettings } from '../Calendar/Calendar';\nimport { DatePickerBase, DatePickerBaseSharedProps } from '../DatePickerBase/DatePickerBase';\n\nexport interface DatePickerProps\n extends Omit<DatePickerBaseSharedProps, 'onChange'>,\n Omit<CalendarSettings, 'size'> {\n /** Selected date, required with controlled input */\n value?: Date;\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 /** 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\nexport const DatePicker = forwardRef<HTMLButtonElement, DatePickerProps>(\n (\n {\n value,\n onChange,\n defaultValue,\n classNames,\n styles,\n shadow = 'sm',\n locale = 'en',\n inputFormat,\n transitionDuration = 200,\n transitionTimingFunction,\n nextMonthLabel,\n previousMonthLabel,\n closeCalendarOnChange = true,\n labelFormat = 'MMMM YYYY',\n withSelect = false,\n yearsRange,\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n initialMonth,\n initiallyOpened = false,\n name = 'date',\n size = 'sm',\n dropdownType = 'popover',\n clearable = true,\n disabled = false,\n clearButtonLabel,\n fixOnBlur = true,\n allowFreeInput,\n dateParser,\n firstDayOfWeek = 'monday',\n onFocus,\n onBlur,\n amountOfMonths,\n ...others\n }: DatePickerProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const dateFormat = inputFormat || theme.dateFormat;\n const [dropdownOpened, setDropdownOpened] = useState(initiallyOpened);\n const [calendarMonth, setCalendarMonth] = useState(initialMonth || new Date());\n const calendarSize = size === 'lg' || size === 'xl' ? 'md' : 'sm';\n const inputRef = useRef<HTMLInputElement>();\n\n const [lastValidValue, setLastValidValue] = useState(defaultValue ?? null);\n const [_value, setValue] = useUncontrolled<Date | string>({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n rule: (val) => val === null || val instanceof Date,\n });\n\n const [focused, setFocused] = useState(false);\n const [inputState, setInputState] = useState(\n _value instanceof Date ? upperFirst(dayjs(_value).locale(locale).format(dateFormat)) : ''\n );\n\n useEffect(() => {\n if (value === null && !focused) {\n setInputState('');\n }\n\n if (value instanceof Date && !focused) {\n setInputState(dayjs(value).locale(locale).format(dateFormat));\n }\n }, [value, focused]);\n\n const handleValueChange = (date: Date) => {\n setValue(date);\n setInputState(upperFirst(dayjs(date).locale(locale).format(dateFormat)));\n closeCalendarOnChange && setDropdownOpened(false);\n window.setTimeout(() => inputRef.current?.focus(), 0);\n };\n\n const handleClear = () => {\n setValue(null);\n setLastValidValue(null);\n setInputState('');\n setDropdownOpened(true);\n inputRef.current?.focus();\n };\n\n const parseDate = (date: string) =>\n dateParser ? dateParser(date) : dayjs(date, dateFormat, locale).toDate();\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setFocused(false);\n const date = typeof _value === 'string' ? parseDate(_value) : _value;\n\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(upperFirst(dayjs(date).locale(locale).format(dateFormat)));\n } else if (fixOnBlur) {\n setValue(lastValidValue);\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 setDropdownOpened(true);\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 name={name}\n inputLabel={inputState}\n __staticSelector=\"DatePicker\"\n dropdownType={dropdownType}\n clearable={clearable && !!_value && !disabled}\n clearButtonLabel={clearButtonLabel}\n onClear={handleClear}\n disabled={disabled}\n {...others}\n >\n <Calendar\n classNames={classNames}\n styles={styles}\n locale={locale}\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 withSelect={withSelect && !allowFreeInput}\n yearsRange={yearsRange}\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 />\n </DatePickerBase>\n );\n }\n);\n\nDatePicker.displayName = '@mantine/dates/DatePicker';\n"],"names":["forwardRef","useMantineTheme","useState","useRef","useUncontrolled","upperFirst","dayjs","useEffect","React","DatePickerBase","useMergedRef","Calendar"],"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;AAOU,MAAC,UAAU,GAAGA,gBAAU,CAAC,CAAC,EAAE,EAAE,GAAG,KAAK;AAClD,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;AACf,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,MAAM,GAAG,IAAI;AACjB,IAAI,WAAW;AACf,IAAI,kBAAkB,GAAG,GAAG;AAC5B,IAAI,wBAAwB;AAC5B,IAAI,cAAc;AAClB,IAAI,kBAAkB;AACtB,IAAI,qBAAqB,GAAG,IAAI;AAChC,IAAI,WAAW,GAAG,WAAW;AAC7B,IAAI,UAAU,GAAG,KAAK;AACtB,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,oBAAoB;AACxB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,WAAW;AACf,IAAI,YAAY;AAChB,IAAI,eAAe,GAAG,KAAK;AAC3B,IAAI,IAAI,GAAG,MAAM;AACjB,IAAI,IAAI,GAAG,IAAI;AACf,IAAI,YAAY,GAAG,SAAS;AAC5B,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,QAAQ,GAAG,KAAK;AACpB,IAAI,gBAAgB;AACpB,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,cAAc,GAAG,QAAQ;AAC7B,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE;AACjC,IAAI,OAAO;AACX,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,aAAa;AACjB,IAAI,oBAAoB;AACxB,IAAI,0BAA0B;AAC9B,IAAI,gBAAgB;AACpB,IAAI,oBAAoB;AACxB,IAAI,uBAAuB;AAC3B,IAAI,aAAa;AACjB,IAAI,YAAY;AAChB,IAAI,YAAY;AAChB,IAAI,cAAc;AAClB,IAAI,UAAU;AACd,IAAI,sBAAsB;AAC1B,IAAI,SAAS;AACb,IAAI,SAAS;AACb,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,iBAAiB;AACrB,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,UAAU;AACd,IAAI,kBAAkB;AACtB,IAAI,WAAW;AACf,IAAI,gBAAgB;AACpB,IAAI,YAAY;AAChB,IAAI,gBAAgB;AACpB,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,gBAAgB;AACpB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,KAAK,GAAGC,oBAAe,EAAE,CAAC;AAClC,EAAE,MAAM,UAAU,GAAG,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC;AACrD,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGC,cAAQ,CAAC,eAAe,CAAC,CAAC;AACxE,EAAE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAGA,cAAQ,CAAC,YAAY,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AACjF,EAAE,MAAM,YAAY,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACpE,EAAE,MAAM,QAAQ,GAAGC,YAAM,EAAE,CAAC;AAC5B,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAGD,cAAQ,CAAC,YAAY,IAAI,IAAI,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC;AACnG,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAGE,qBAAe,CAAC;AAC7C,IAAI,KAAK;AACT,IAAI,YAAY;AAChB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,QAAQ;AACZ,IAAI,IAAI,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,IAAI,GAAG,YAAY,IAAI;AACtD,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGF,cAAQ,CAAC,KAAK,CAAC,CAAC;AAChD,EAAE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,MAAM,YAAY,IAAI,GAAGG,gBAAU,CAACC,cAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1I,EAAEC,eAAS,CAAC,MAAM;AAClB,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE;AACpC,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,OAAO,EAAE;AAC3C,MAAM,aAAa,CAACD,cAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACpE,KAAK;AACL,GAAG,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACvB,EAAE,MAAM,iBAAiB,GAAG,CAAC,IAAI,KAAK;AACtC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnB,IAAI,aAAa,CAACD,gBAAU,CAACC,cAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7E,IAAI,qBAAqB,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACtD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM;AAC5B,MAAM,IAAI,GAAG,CAAC;AACd,MAAM,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AACrE,KAAK,EAAE,CAAC,CAAC,CAAC;AACV,GAAG,CAAC;AACJ,EAAE,MAAM,WAAW,GAAG,MAAM;AAC5B,IAAI,IAAI,GAAG,CAAC;AACZ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;AACtB,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;AAC5D,GAAG,CAAC;AACJ,EAAE,MAAM,SAAS,GAAG,CAAC,IAAI,KAAK,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,GAAGA,cAAK,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;AACvG,EAAE,MAAM,eAAe,GAAG,CAAC,KAAK,KAAK;AACrC,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAClD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;AACtB,IAAI,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AACzE,IAAI,IAAIA,cAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;AAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9B,MAAM,aAAa,CAACD,gBAAU,CAACC,cAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC/E,KAAK,MAAM,IAAI,SAAS,EAAE;AAC1B,MAAM,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC/B,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,MAAM,gBAAgB,GAAG,CAAC,KAAK,KAAK;AACtC,IAAI,OAAO,OAAO,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACpD,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;AACrB,GAAG,CAAC;AACJ,EAAE,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK;AAClC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC5B,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/C,IAAI,IAAIA,cAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;AAC/B,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAC9B,MAAM,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxC,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC7B,KAAK,MAAM;AACX,MAAM,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxC,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,uBAAuBE,cAAK,CAAC,aAAa,CAACC,6BAAc,EAAE,cAAc,CAAC;AAC5E,IAAI,cAAc;AAClB,IAAI,cAAc;AAClB,IAAI,iBAAiB;AACrB,IAAI,MAAM;AACV,IAAI,kBAAkB;AACtB,IAAI,GAAG,EAAEC,kBAAY,CAAC,GAAG,EAAE,QAAQ,CAAC;AACpC,IAAI,IAAI;AACR,IAAI,MAAM;AACV,IAAI,UAAU;AACd,IAAI,QAAQ,EAAE,YAAY;AAC1B,IAAI,MAAM,EAAE,eAAe;AAC3B,IAAI,OAAO,EAAE,gBAAgB;AAC7B,IAAI,IAAI;AACR,IAAI,UAAU,EAAE,UAAU;AAC1B,IAAI,gBAAgB,EAAE,YAAY;AAClC,IAAI,YAAY;AAChB,IAAI,SAAS,EAAE,SAAS,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ;AACjD,IAAI,gBAAgB;AACpB,IAAI,OAAO,EAAE,WAAW;AACxB,IAAI,QAAQ;AACZ,GAAG,EAAE,MAAM,CAAC,kBAAkBF,cAAK,CAAC,aAAa,CAACG,iBAAQ,EAAE;AAC5D,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI,MAAM;AACV,IAAI,cAAc;AAClB,IAAI,kBAAkB;AACtB,IAAI,KAAK,EAAE,cAAc,GAAG,aAAa,GAAG,KAAK,CAAC;AAClD,IAAI,YAAY,EAAE,YAAY,KAAK,MAAM,YAAY,IAAI,GAAG,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAChF,IAAI,aAAa,EAAE,gBAAgB;AACnC,IAAI,KAAK,EAAE,MAAM,YAAY,IAAI,GAAG,MAAM,GAAGL,cAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE;AACnE,IAAI,QAAQ,EAAE,iBAAiB;AAC/B,IAAI,WAAW;AACf,IAAI,UAAU,EAAE,UAAU,IAAI,CAAC,cAAc;AAC7C,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,QAAQ;AACZ,IAAI,oBAAoB;AACxB,IAAI,OAAO;AACX,IAAI,OAAO;AACX,IAAI,WAAW;AACf,IAAI,gBAAgB,EAAE,YAAY;AAClC,IAAI,SAAS,EAAE,YAAY,KAAK,OAAO;AACvC,IAAI,IAAI,EAAE,YAAY,KAAK,OAAO,GAAG,IAAI,GAAG,YAAY;AACxD,IAAI,cAAc;AAClB,IAAI,YAAY,EAAE,cAAc;AAChC,IAAI,cAAc;AAClB,GAAG,CAAC,CAAC,CAAC;AACN,CAAC,EAAE;AACH,UAAU,CAAC,WAAW,GAAG,2BAA2B;;;;"}
|
|
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 } from '@mantine/core';\nimport { FirstDayOfWeek } from '../../types';\nimport { Calendar, CalendarSettings } from '../Calendar/Calendar';\nimport { DatePickerBase, DatePickerBaseSharedProps } from '../DatePickerBase/DatePickerBase';\n\nexport interface DatePickerProps\n extends Omit<DatePickerBaseSharedProps, 'onChange'>,\n Omit<CalendarSettings, 'size'> {\n /** Selected date, required with controlled input */\n value?: Date;\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 /** 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\nexport const DatePicker = forwardRef<HTMLButtonElement, DatePickerProps>(\n (\n {\n value,\n onChange,\n defaultValue,\n classNames,\n styles,\n shadow = 'sm',\n locale,\n inputFormat,\n transitionDuration = 200,\n transitionTimingFunction,\n nextMonthLabel,\n previousMonthLabel,\n closeCalendarOnChange = true,\n labelFormat = 'MMMM YYYY',\n withSelect = false,\n yearsRange,\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n initialMonth,\n initiallyOpened = false,\n name = 'date',\n size = 'sm',\n dropdownType = 'popover',\n clearable = true,\n disabled = false,\n clearButtonLabel,\n fixOnBlur = true,\n allowFreeInput,\n withinPortal = true,\n dateParser,\n firstDayOfWeek = 'monday',\n onFocus,\n onBlur,\n amountOfMonths,\n ...others\n }: DatePickerProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const finalLocale = locale || theme.datesLocale;\n const dateFormat = inputFormat || theme.dateFormat;\n const [dropdownOpened, setDropdownOpened] = useState(initiallyOpened);\n const [calendarMonth, setCalendarMonth] = useState(initialMonth || new Date());\n const calendarSize = size === 'lg' || size === 'xl' ? 'md' : 'sm';\n const inputRef = useRef<HTMLInputElement>();\n\n const [lastValidValue, setLastValidValue] = useState(defaultValue ?? null);\n const [_value, setValue] = useUncontrolled<Date | string>({\n value,\n defaultValue,\n finalValue: null,\n onChange,\n rule: (val) => val === null || val instanceof Date,\n });\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 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 && setDropdownOpened(false);\n window.setTimeout(() => inputRef.current?.focus(), 0);\n };\n\n const handleClear = () => {\n setValue(null);\n setLastValidValue(null);\n setInputState('');\n setDropdownOpened(true);\n inputRef.current?.focus();\n };\n\n const parseDate = (date: string) =>\n dateParser ? dateParser(date) : dayjs(date, dateFormat, finalLocale).toDate();\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n setFocused(false);\n const date = typeof _value === 'string' ? parseDate(_value) : _value;\n\n if (dayjs(date).isValid()) {\n setValue(date);\n setLastValidValue(date);\n setInputState(upperFirst(dayjs(date).locale(finalLocale).format(dateFormat)));\n } else if (fixOnBlur) {\n setValue(lastValidValue);\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 setDropdownOpened(true);\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 name={name}\n inputLabel={inputState}\n __staticSelector=\"DatePicker\"\n dropdownType={dropdownType}\n clearable={clearable && !!_value && !disabled}\n clearButtonLabel={clearButtonLabel}\n onClear={handleClear}\n disabled={disabled}\n withinPortal={withinPortal}\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 withSelect={withSelect && !allowFreeInput}\n yearsRange={yearsRange}\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 />\n </DatePickerBase>\n );\n }\n);\n\nDatePicker.displayName = '@mantine/dates/DatePicker';\n"],"names":["forwardRef","useMantineTheme","useState","useRef","useUncontrolled","upperFirst","dayjs","useEffect","React","DatePickerBase","useMergedRef","Calendar"],"mappings":"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"}
|
|
@@ -79,7 +79,8 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
79
79
|
clearButtonLabel,
|
|
80
80
|
onClear,
|
|
81
81
|
positionDependencies = [],
|
|
82
|
-
zIndex =
|
|
82
|
+
zIndex = core.getDefaultZIndex("popover"),
|
|
83
|
+
withinPortal = true,
|
|
83
84
|
onBlur,
|
|
84
85
|
onFocus,
|
|
85
86
|
onChange,
|
|
@@ -116,6 +117,7 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
116
117
|
"onClear",
|
|
117
118
|
"positionDependencies",
|
|
118
119
|
"zIndex",
|
|
120
|
+
"withinPortal",
|
|
119
121
|
"onBlur",
|
|
120
122
|
"onFocus",
|
|
121
123
|
"onChange",
|
|
@@ -135,11 +137,13 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
135
137
|
setDropdownOpened(false);
|
|
136
138
|
};
|
|
137
139
|
const closeOnEscape = (event) => {
|
|
138
|
-
event.nativeEvent.code === "Escape"
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
140
|
+
if (event.nativeEvent.code === "Escape") {
|
|
141
|
+
closeDropdown();
|
|
142
|
+
window.setTimeout(() => {
|
|
143
|
+
var _a2;
|
|
144
|
+
return (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
|
|
145
|
+
}, 0);
|
|
146
|
+
}
|
|
143
147
|
};
|
|
144
148
|
hooks.useClickOutside(() => dropdownType === "popover" && !allowFreeInput && closeDropdown(), null, [
|
|
145
149
|
dropdownElement,
|
|
@@ -166,7 +170,7 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
166
170
|
};
|
|
167
171
|
const handleKeyDown = (event) => {
|
|
168
172
|
typeof onKeyDown === "function" && onKeyDown(event);
|
|
169
|
-
if (event.code === "Space" && !allowFreeInput) {
|
|
173
|
+
if ((event.code === "Space" || event.code === "Enter") && !allowFreeInput) {
|
|
170
174
|
event.preventDefault();
|
|
171
175
|
setDropdownOpened(true);
|
|
172
176
|
}
|
|
@@ -222,19 +226,21 @@ const DatePickerBase = React.forwardRef((_a, ref) => {
|
|
|
222
226
|
position: "bottom",
|
|
223
227
|
placement: "start",
|
|
224
228
|
gutter: 10,
|
|
229
|
+
withinPortal,
|
|
225
230
|
withArrow: true,
|
|
226
231
|
arrowSize: 3,
|
|
227
232
|
zIndex,
|
|
228
233
|
arrowClassName: classes.arrow
|
|
229
234
|
}, /* @__PURE__ */ React__default.createElement("div", {
|
|
230
235
|
className: classes.dropdownWrapper,
|
|
231
|
-
ref:
|
|
236
|
+
ref: setDropdownElement,
|
|
232
237
|
"data-mantine-stop-propagation": dropdownOpened,
|
|
233
238
|
onKeyDownCapture: closeOnEscape,
|
|
234
239
|
"aria-hidden": allowFreeInput || void 0
|
|
235
240
|
}, /* @__PURE__ */ React__default.createElement(core.Paper, {
|
|
236
241
|
className: classes.dropdown,
|
|
237
|
-
shadow
|
|
242
|
+
shadow,
|
|
243
|
+
ref: focusTrapRef
|
|
238
244
|
}, children))) : /* @__PURE__ */ React__default.createElement(core.Modal, {
|
|
239
245
|
opened: dropdownOpened,
|
|
240
246
|
onClose: closeDropdown,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerBase.js","sources":["../../../src/components/DatePickerBase/DatePickerBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport {\n DefaultProps,\n Input,\n InputWrapper,\n InputBaseProps,\n InputWrapperBaseProps,\n Paper,\n Popper,\n MantineTransition,\n InputStylesNames,\n InputWrapperStylesNames,\n MantineSize,\n Modal,\n CloseButton,\n MantineShadow,\n ClassNames,\n useExtractedMargins,\n} from '@mantine/core';\nimport {\n useClickOutside,\n useFocusTrap,\n useMergedRef,\n useWindowEvent,\n useUuid,\n} from '@mantine/hooks';\nimport { CalendarStylesNames } from '../Calendar/Calendar';\nimport useStyles from './DatePickerBase.styles';\n\nexport type DatePickerStylesNames =\n | ClassNames<typeof useStyles>\n | CalendarStylesNames\n | InputStylesNames\n | InputWrapperStylesNames;\n\nexport interface DatePickerBaseSharedProps\n extends InputBaseProps,\n InputWrapperBaseProps,\n DefaultProps<DatePickerStylesNames>,\n Omit<\n React.ComponentPropsWithoutRef<'input'>,\n 'value' | 'defaultValue' | 'placeholder' | 'size'\n > {\n /** Props spread to root element (InputWrapper) */\n wrapperProps?: React.ComponentPropsWithoutRef<'div'>;\n\n /** Placeholder, displayed when date is not selected */\n placeholder?: string;\n\n /** Dropdown appear/disappear transition */\n transition?: MantineTransition;\n\n /** Dropdown appear/disappear transition duration */\n transitionDuration?: number;\n\n /** Dropdown appear/disappear transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Dropdown shadow from theme or css value for custom box-shadow */\n shadow?: MantineShadow;\n\n /** Input name, useful fon uncontrolled variant to capture data with native form */\n name?: string;\n\n /** Set to true to disable dropdown closing on scroll */\n closeDropdownOnScroll?: boolean;\n\n /** Input size */\n size?: MantineSize;\n\n /** Where to show calendar in modal or popover */\n dropdownType?: 'popover' | 'modal';\n\n /** Allow to clear value */\n clearable?: boolean;\n\n /** aria-label for clear button */\n clearButtonLabel?: string;\n\n /** useEffect dependencies to force update tooltip position */\n positionDependencies?: any[];\n\n /** Popper zIndex */\n zIndex?: number;\n\n /** call onChange with last valid value onBlur */\n fixOnBlur?: boolean;\n}\n\nexport interface DatePickerBaseProps extends DatePickerBaseSharedProps {\n /** Internal prop to set input label */\n inputLabel?: string;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Controls dropdown opened state */\n dropdownOpened: boolean;\n\n /** Called when dropdown opened state changes */\n setDropdownOpened(opened: boolean): void;\n\n /** Called when clear button in clicked */\n onClear(): void;\n\n /** Allow free input */\n allowFreeInput?: boolean;\n}\n\nconst RIGHT_SECTION_WIDTH = {\n xs: 24,\n sm: 30,\n md: 34,\n lg: 40,\n xl: 44,\n};\n\nexport const DatePickerBase = forwardRef<HTMLInputElement, DatePickerBaseProps>(\n (\n {\n classNames,\n className,\n style,\n styles,\n wrapperProps,\n required,\n allowFreeInput = false,\n label,\n error,\n id,\n description,\n placeholder,\n shadow = 'sm',\n transition = 'pop-top-left',\n transitionDuration = 200,\n transitionTimingFunction,\n closeDropdownOnScroll = false,\n size = 'sm',\n children,\n inputLabel,\n __staticSelector = 'date-picker',\n dropdownOpened,\n setDropdownOpened,\n dropdownType = 'popover',\n clearable = true,\n clearButtonLabel,\n onClear,\n positionDependencies = [],\n zIndex = 3,\n onBlur,\n onFocus,\n onChange,\n onKeyDown,\n name = 'date',\n sx,\n ...others\n }: DatePickerBaseProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { size, invalid: !!error },\n { classNames, styles, name: __staticSelector }\n );\n const { mergedStyles, rest } = useExtractedMargins({ others, style });\n const [dropdownElement, setDropdownElement] = useState<HTMLDivElement>(null);\n const [rootElement, setRootElement] = useState<HTMLDivElement>(null);\n const [referenceElement, setReferenceElement] = useState<HTMLDivElement>(null);\n const uuid = useUuid(id);\n\n const focusTrapRef = useFocusTrap(!allowFreeInput && dropdownOpened);\n const inputRef = useRef<HTMLButtonElement>();\n\n const closeDropdown = () => {\n setDropdownOpened(false);\n };\n\n const closeOnEscape = (event: React.KeyboardEvent<HTMLDivElement>) => {\n event.nativeEvent.code === 'Escape' && closeDropdown();\n window.setTimeout(() => inputRef.current?.focus(), 0);\n };\n\n useClickOutside(() => dropdownType === 'popover' && !allowFreeInput && closeDropdown(), null, [\n dropdownElement,\n rootElement,\n ]);\n\n useWindowEvent('scroll', () => closeDropdownOnScroll && closeDropdown());\n\n const rightSection = clearable ? (\n <CloseButton\n variant=\"transparent\"\n aria-label={clearButtonLabel}\n onClick={onClear}\n size={size}\n />\n ) : null;\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n\n if (allowFreeInput) {\n closeDropdown();\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n if (allowFreeInput) {\n setDropdownOpened(true);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n if (event.code === 'Space' && !allowFreeInput) {\n event.preventDefault();\n setDropdownOpened(true);\n }\n };\n\n return (\n <InputWrapper\n required={required}\n id={uuid}\n label={label}\n error={error}\n description={description}\n className={className}\n style={mergedStyles}\n classNames={classNames}\n styles={styles}\n size={size}\n __staticSelector={__staticSelector}\n sx={sx}\n ref={setReferenceElement}\n {...wrapperProps}\n >\n <div ref={setRootElement}>\n <div className={classes.wrapper}>\n <Input<'input'>\n classNames={{\n ...classNames,\n input: cx(\n classes.input,\n { [classes.freeInput]: allowFreeInput },\n classNames?.input\n ),\n }}\n styles={styles}\n onClick={() =>\n !allowFreeInput ? setDropdownOpened(!dropdownOpened) : setDropdownOpened(true)\n }\n onKeyDown={handleKeyDown}\n id={uuid}\n ref={useMergedRef(ref, inputRef)}\n __staticSelector={__staticSelector}\n size={size}\n name={name}\n placeholder={placeholder}\n value={inputLabel}\n required={required}\n invalid={!!error}\n readOnly={!allowFreeInput}\n rightSection={rightSection}\n rightSectionWidth={theme.fn.size({ size, sizes: RIGHT_SECTION_WIDTH })}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onChange={onChange}\n autoComplete=\"off\"\n {...rest}\n />\n </div>\n\n {dropdownType === 'popover' ? (\n <Popper\n referenceElement={referenceElement}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n forceUpdateDependencies={positionDependencies}\n transition={transition}\n mounted={dropdownOpened}\n position=\"bottom\"\n placement=\"start\"\n gutter={10}\n withArrow\n arrowSize={3}\n zIndex={zIndex}\n arrowClassName={classes.arrow}\n >\n <div\n className={classes.dropdownWrapper}\n ref={useMergedRef(focusTrapRef, setDropdownElement)}\n data-mantine-stop-propagation={dropdownOpened}\n onKeyDownCapture={closeOnEscape}\n aria-hidden={allowFreeInput || undefined}\n >\n <Paper className={classes.dropdown} shadow={shadow}>\n {children}\n </Paper>\n </div>\n </Popper>\n ) : (\n <Modal opened={dropdownOpened} onClose={closeDropdown} hideCloseButton>\n {children}\n </Modal>\n )}\n </div>\n </InputWrapper>\n );\n }\n);\n\nDatePickerBase.displayName = '@mantine/dates/DatePickerBase';\n"],"names":["forwardRef","useStyles","useExtractedMargins","useState","useUuid","useFocusTrap","useRef","useClickOutside","useWindowEvent","React","CloseButton","InputWrapper","Input","useMergedRef","Popper","Paper","Modal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePickerBase.js","sources":["../../../src/components/DatePickerBase/DatePickerBase.tsx"],"sourcesContent":["import React, { useRef, useState, forwardRef } from 'react';\nimport {\n DefaultProps,\n Input,\n InputWrapper,\n InputBaseProps,\n InputWrapperBaseProps,\n Paper,\n Popper,\n MantineTransition,\n InputStylesNames,\n InputWrapperStylesNames,\n MantineSize,\n Modal,\n CloseButton,\n MantineShadow,\n ClassNames,\n useExtractedMargins,\n getDefaultZIndex,\n} from '@mantine/core';\nimport {\n useClickOutside,\n useFocusTrap,\n useMergedRef,\n useWindowEvent,\n useUuid,\n} from '@mantine/hooks';\nimport { CalendarStylesNames } from '../Calendar/Calendar';\nimport useStyles from './DatePickerBase.styles';\n\nexport type DatePickerStylesNames =\n | ClassNames<typeof useStyles>\n | CalendarStylesNames\n | InputStylesNames\n | InputWrapperStylesNames;\n\nexport interface DatePickerBaseSharedProps\n extends InputBaseProps,\n InputWrapperBaseProps,\n DefaultProps<DatePickerStylesNames>,\n Omit<\n React.ComponentPropsWithoutRef<'input'>,\n 'value' | 'defaultValue' | 'placeholder' | 'size'\n > {\n /** Props spread to root element (InputWrapper) */\n wrapperProps?: React.ComponentPropsWithoutRef<'div'>;\n\n /** Placeholder, displayed when date is not selected */\n placeholder?: string;\n\n /** Dropdown appear/disappear transition */\n transition?: MantineTransition;\n\n /** Dropdown appear/disappear transition duration */\n transitionDuration?: number;\n\n /** Dropdown appear/disappear transition timing function, defaults to theme.transitionTimingFunction */\n transitionTimingFunction?: string;\n\n /** Dropdown shadow from theme or css value for custom box-shadow */\n shadow?: MantineShadow;\n\n /** Input name, useful fon uncontrolled variant to capture data with native form */\n name?: string;\n\n /** Set to true to disable dropdown closing on scroll */\n closeDropdownOnScroll?: boolean;\n\n /** Input size */\n size?: MantineSize;\n\n /** Where to show calendar in modal or popover */\n dropdownType?: 'popover' | 'modal';\n\n /** Allow to clear value */\n clearable?: boolean;\n\n /** aria-label for clear button */\n clearButtonLabel?: string;\n\n /** useEffect dependencies to force update tooltip position */\n positionDependencies?: any[];\n\n /** Popper zIndex */\n zIndex?: number;\n\n /** call onChange with last valid value onBlur */\n fixOnBlur?: boolean;\n\n /** Whether to render the dropdown in a Portal */\n withinPortal?: boolean;\n}\n\nexport interface DatePickerBaseProps extends DatePickerBaseSharedProps {\n /** Internal prop to set input label */\n inputLabel?: string;\n\n /** Static css selector base */\n __staticSelector?: string;\n\n /** Controls dropdown opened state */\n dropdownOpened: boolean;\n\n /** Called when dropdown opened state changes */\n setDropdownOpened(opened: boolean): void;\n\n /** Called when clear button in clicked */\n onClear(): void;\n\n /** Allow free input */\n allowFreeInput?: boolean;\n}\n\nconst RIGHT_SECTION_WIDTH = {\n xs: 24,\n sm: 30,\n md: 34,\n lg: 40,\n xl: 44,\n};\n\nexport const DatePickerBase = forwardRef<HTMLInputElement, DatePickerBaseProps>(\n (\n {\n classNames,\n className,\n style,\n styles,\n wrapperProps,\n required,\n allowFreeInput = false,\n label,\n error,\n id,\n description,\n placeholder,\n shadow = 'sm',\n transition = 'pop-top-left',\n transitionDuration = 200,\n transitionTimingFunction,\n closeDropdownOnScroll = false,\n size = 'sm',\n children,\n inputLabel,\n __staticSelector = 'date-picker',\n dropdownOpened,\n setDropdownOpened,\n dropdownType = 'popover',\n clearable = true,\n clearButtonLabel,\n onClear,\n positionDependencies = [],\n zIndex = getDefaultZIndex('popover'),\n withinPortal = true,\n onBlur,\n onFocus,\n onChange,\n onKeyDown,\n name = 'date',\n sx,\n ...others\n }: DatePickerBaseProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles(\n { size, invalid: !!error },\n { classNames, styles, name: __staticSelector }\n );\n const { mergedStyles, rest } = useExtractedMargins({ others, style });\n const [dropdownElement, setDropdownElement] = useState<HTMLDivElement>(null);\n const [rootElement, setRootElement] = useState<HTMLDivElement>(null);\n const [referenceElement, setReferenceElement] = useState<HTMLDivElement>(null);\n const uuid = useUuid(id);\n\n const focusTrapRef = useFocusTrap(!allowFreeInput && dropdownOpened);\n const inputRef = useRef<HTMLButtonElement>();\n\n const closeDropdown = () => {\n setDropdownOpened(false);\n };\n\n const closeOnEscape = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.nativeEvent.code === 'Escape') {\n closeDropdown();\n window.setTimeout(() => inputRef.current?.focus(), 0);\n }\n };\n\n useClickOutside(() => dropdownType === 'popover' && !allowFreeInput && closeDropdown(), null, [\n dropdownElement,\n rootElement,\n ]);\n\n useWindowEvent('scroll', () => closeDropdownOnScroll && closeDropdown());\n\n const rightSection = clearable ? (\n <CloseButton\n variant=\"transparent\"\n aria-label={clearButtonLabel}\n onClick={onClear}\n size={size}\n />\n ) : null;\n\n const handleInputBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onBlur === 'function' && onBlur(event);\n if (allowFreeInput) {\n closeDropdown();\n }\n };\n\n const handleInputFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n if (allowFreeInput) {\n setDropdownOpened(true);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n typeof onKeyDown === 'function' && onKeyDown(event);\n if ((event.code === 'Space' || event.code === 'Enter') && !allowFreeInput) {\n event.preventDefault();\n setDropdownOpened(true);\n }\n };\n\n return (\n <InputWrapper\n required={required}\n id={uuid}\n label={label}\n error={error}\n description={description}\n className={className}\n style={mergedStyles}\n classNames={classNames}\n styles={styles}\n size={size}\n __staticSelector={__staticSelector}\n sx={sx}\n ref={setReferenceElement}\n {...wrapperProps}\n >\n <div ref={setRootElement}>\n <div className={classes.wrapper}>\n <Input<'input'>\n classNames={{\n ...classNames,\n input: cx(\n classes.input,\n { [classes.freeInput]: allowFreeInput },\n classNames?.input\n ),\n }}\n styles={styles}\n onClick={() =>\n !allowFreeInput ? setDropdownOpened(!dropdownOpened) : setDropdownOpened(true)\n }\n onKeyDown={handleKeyDown}\n id={uuid}\n ref={useMergedRef(ref, inputRef)}\n __staticSelector={__staticSelector}\n size={size}\n name={name}\n placeholder={placeholder}\n value={inputLabel}\n required={required}\n invalid={!!error}\n readOnly={!allowFreeInput}\n rightSection={rightSection}\n rightSectionWidth={theme.fn.size({ size, sizes: RIGHT_SECTION_WIDTH })}\n onBlur={handleInputBlur}\n onFocus={handleInputFocus}\n onChange={onChange}\n autoComplete=\"off\"\n {...rest}\n />\n </div>\n\n {dropdownType === 'popover' ? (\n <Popper\n referenceElement={referenceElement}\n transitionDuration={transitionDuration}\n transitionTimingFunction={transitionTimingFunction}\n forceUpdateDependencies={positionDependencies}\n transition={transition}\n mounted={dropdownOpened}\n position=\"bottom\"\n placement=\"start\"\n gutter={10}\n withinPortal={withinPortal}\n withArrow\n arrowSize={3}\n zIndex={zIndex}\n arrowClassName={classes.arrow}\n >\n <div\n className={classes.dropdownWrapper}\n ref={setDropdownElement}\n data-mantine-stop-propagation={dropdownOpened}\n onKeyDownCapture={closeOnEscape}\n aria-hidden={allowFreeInput || undefined}\n >\n <Paper className={classes.dropdown} shadow={shadow} ref={focusTrapRef}>\n {children}\n </Paper>\n </div>\n </Popper>\n ) : (\n <Modal opened={dropdownOpened} onClose={closeDropdown} hideCloseButton>\n {children}\n </Modal>\n )}\n </div>\n </InputWrapper>\n );\n }\n);\n\nDatePickerBase.displayName = '@mantine/dates/DatePickerBase';\n"],"names":["forwardRef","getDefaultZIndex","useStyles","useExtractedMargins","useState","useUuid","useFocusTrap","useRef","useClickOutside","useWindowEvent","React","CloseButton","InputWrapper","Input","useMergedRef","Popper","Paper","Modal"],"mappings":"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"}
|
|
@@ -53,7 +53,6 @@ var useStyles = core.createStyles((theme, { size, invalid }) => ({
|
|
|
53
53
|
dropdown: {
|
|
54
54
|
backgroundColor: theme.colorScheme === "dark" ? theme.colors.dark[6] : theme.white,
|
|
55
55
|
border: `1px solid ${theme.colorScheme === "dark" ? theme.colors.dark[6] : theme.colors.gray[2]}`,
|
|
56
|
-
zIndex: 4,
|
|
57
56
|
padding: `${theme.spacing.md}px ${theme.spacing.xs}px`
|
|
58
57
|
},
|
|
59
58
|
arrow: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePickerBase.styles.js","sources":["../../../src/components/DatePickerBase/DatePickerBase.styles.ts"],"sourcesContent":["import { createStyles, MantineSize, INPUT_SIZES } from '@mantine/core';\n\ninterface DatePickerBaseStyles {\n size: MantineSize;\n invalid: boolean;\n}\n\nexport default createStyles((theme, { size, invalid }: DatePickerBaseStyles) => ({\n wrapper: {\n ...theme.fn.fontStyles(),\n position: 'relative',\n cursor: 'pointer',\n },\n\n placeholder: {\n lineHeight: `${theme.fn.size({ size, sizes: INPUT_SIZES }) - 2}px`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n color: invalid\n ? theme.colors.red[theme.colorScheme === 'dark' ? 6 : 7]\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[3]\n : theme.colors.gray[5],\n },\n\n value: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n\n dropdownWrapper: {\n position: 'relative',\n pointerEvents: 'all',\n },\n\n input: {\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n },\n\n freeInput: {\n cursor: 'text',\n },\n\n dropdown: {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.white,\n border: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[2]\n }`,\n
|
|
1
|
+
{"version":3,"file":"DatePickerBase.styles.js","sources":["../../../src/components/DatePickerBase/DatePickerBase.styles.ts"],"sourcesContent":["import { createStyles, MantineSize, INPUT_SIZES } from '@mantine/core';\n\ninterface DatePickerBaseStyles {\n size: MantineSize;\n invalid: boolean;\n}\n\nexport default createStyles((theme, { size, invalid }: DatePickerBaseStyles) => ({\n wrapper: {\n ...theme.fn.fontStyles(),\n position: 'relative',\n cursor: 'pointer',\n },\n\n placeholder: {\n lineHeight: `${theme.fn.size({ size, sizes: INPUT_SIZES }) - 2}px`,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n color: invalid\n ? theme.colors.red[theme.colorScheme === 'dark' ? 6 : 7]\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[3]\n : theme.colors.gray[5],\n },\n\n value: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n\n dropdownWrapper: {\n position: 'relative',\n pointerEvents: 'all',\n },\n\n input: {\n cursor: 'pointer',\n whiteSpace: 'nowrap',\n },\n\n freeInput: {\n cursor: 'text',\n },\n\n dropdown: {\n backgroundColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.white,\n border: `1px solid ${\n theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[2]\n }`,\n padding: `${theme.spacing.md}px ${theme.spacing.xs}px`,\n },\n\n arrow: {\n borderColor: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.colors.gray[2],\n background: theme.colorScheme === 'dark' ? theme.colors.dark[6] : theme.white,\n },\n}));\n"],"names":["createStyles","INPUT_SIZES"],"mappings":"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"}
|
|
@@ -77,7 +77,8 @@ const DateRangePicker = React.forwardRef((_a, ref) => {
|
|
|
77
77
|
clearButtonLabel,
|
|
78
78
|
firstDayOfWeek = "monday",
|
|
79
79
|
allowSingleDateInRange = false,
|
|
80
|
-
amountOfMonths = 1
|
|
80
|
+
amountOfMonths = 1,
|
|
81
|
+
withinPortal = true
|
|
81
82
|
} = _b, others = __objRest(_b, [
|
|
82
83
|
"value",
|
|
83
84
|
"onChange",
|
|
@@ -111,9 +112,11 @@ const DateRangePicker = React.forwardRef((_a, ref) => {
|
|
|
111
112
|
"clearButtonLabel",
|
|
112
113
|
"firstDayOfWeek",
|
|
113
114
|
"allowSingleDateInRange",
|
|
114
|
-
"amountOfMonths"
|
|
115
|
+
"amountOfMonths",
|
|
116
|
+
"withinPortal"
|
|
115
117
|
]);
|
|
116
118
|
const theme = core.useMantineTheme();
|
|
119
|
+
const finalLocale = locale || theme.datesLocale;
|
|
117
120
|
const dateFormat = inputFormat || theme.dateFormat;
|
|
118
121
|
const [dropdownOpened, setDropdownOpened] = React.useState(initiallyOpened);
|
|
119
122
|
const calendarSize = size === "lg" || size === "xl" ? "md" : "sm";
|
|
@@ -127,11 +130,13 @@ const DateRangePicker = React.forwardRef((_a, ref) => {
|
|
|
127
130
|
});
|
|
128
131
|
const handleValueChange = (range) => {
|
|
129
132
|
setValue(range);
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
if (closeCalendarOnChange && validationRule(range)) {
|
|
134
|
+
setDropdownOpened(false);
|
|
135
|
+
window.setTimeout(() => {
|
|
136
|
+
var _a2;
|
|
137
|
+
return (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
|
|
138
|
+
}, 0);
|
|
139
|
+
}
|
|
135
140
|
};
|
|
136
141
|
const valueValid = validationRule(_value);
|
|
137
142
|
const handleClear = () => {
|
|
@@ -149,16 +154,17 @@ const DateRangePicker = React.forwardRef((_a, ref) => {
|
|
|
149
154
|
size,
|
|
150
155
|
styles,
|
|
151
156
|
classNames,
|
|
152
|
-
inputLabel: valueValid ? `${hooks.upperFirst(dayjs__default(_value[0]).locale(
|
|
157
|
+
inputLabel: valueValid ? `${hooks.upperFirst(dayjs__default(_value[0]).locale(finalLocale).format(dateFormat))} ${labelSeparator} ${hooks.upperFirst(dayjs__default(_value[1]).locale(finalLocale).format(dateFormat))}` : "",
|
|
153
158
|
__staticSelector: "DateRangePicker",
|
|
154
159
|
dropdownType,
|
|
155
160
|
clearable: clearable && valueValid,
|
|
156
161
|
clearButtonLabel,
|
|
157
|
-
onClear: handleClear
|
|
162
|
+
onClear: handleClear,
|
|
163
|
+
withinPortal
|
|
158
164
|
}, others), /* @__PURE__ */ React__default.createElement(RangeCalendar.RangeCalendar, {
|
|
159
165
|
classNames,
|
|
160
166
|
styles,
|
|
161
|
-
locale,
|
|
167
|
+
locale: finalLocale,
|
|
162
168
|
nextMonthLabel,
|
|
163
169
|
previousMonthLabel,
|
|
164
170
|
initialMonth: valueValid ? _value[0] : initialMonth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.js","sources":["../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { useState, useRef, forwardRef } from 'react';\nimport { useUncontrolled, useMergedRef, upperFirst } from '@mantine/hooks';\nimport { useMantineTheme } from '@mantine/core';\nimport { FirstDayOfWeek } from '../../types';\nimport { CalendarSettings } from '../Calendar/Calendar';\nimport { RangeCalendar } from '../RangeCalendar/RangeCalendar';\nimport { DatePickerBase, DatePickerBaseSharedProps } from '../DatePickerBase/DatePickerBase';\n\n// @ts-ignore\nexport interface DateRangePickerProps\n extends DatePickerBaseSharedProps,\n Omit<CalendarSettings, 'size'> {\n /** Selected date, required with controlled input */\n value?: [Date, Date];\n\n /** Called when date range changes */\n onChange?(value: [Date | null, Date | null]): void;\n\n /** Default value for uncontrolled input */\n defaultValue?: [Date, Date];\n\n /** Set to false to force dropdown to stay open after date was selected */\n closeCalendarOnChange?: boolean;\n\n /** dayjs input format */\n inputFormat?: string;\n\n /** Control initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Input name, useful fon uncontrolled variant to capture data with native form */\n name?: string;\n\n /** Separator between dates */\n labelSeparator?: string;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n\n /** Allows to show multiple months */\n amountOfMonths?: number;\n}\n\nconst validationRule = (val: any) =>\n Array.isArray(val) && val.length === 2 && val.every((v) => v instanceof Date);\n\nexport const DateRangePicker = forwardRef<HTMLButtonElement, DateRangePickerProps>(\n (\n {\n value,\n onChange,\n defaultValue,\n classNames,\n styles,\n shadow = 'sm',\n locale = 'en',\n inputFormat,\n transitionDuration = 200,\n transitionTimingFunction,\n nextMonthLabel,\n previousMonthLabel,\n closeCalendarOnChange = true,\n labelFormat = 'MMMM YYYY',\n withSelect = false,\n yearsRange,\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n initialMonth,\n initiallyOpened = false,\n name = 'date',\n size = 'sm',\n dropdownType = 'popover',\n labelSeparator = '–',\n clearable = true,\n clearButtonLabel,\n firstDayOfWeek = 'monday',\n allowSingleDateInRange = false,\n amountOfMonths = 1,\n ...others\n }: DateRangePickerProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const dateFormat = 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 [_value, setValue] = useUncontrolled<[Date, Date]>({\n value,\n defaultValue,\n finalValue: [null, null],\n onChange,\n rule: validationRule,\n });\n\n const handleValueChange = (range: [Date, Date]) => {\n setValue(range);\n window.setTimeout(() => inputRef.current?.focus(), 0);\n closeCalendarOnChange && validationRule(range) && setDropdownOpened(false);\n };\n\n const valueValid = validationRule(_value);\n\n const handleClear = () => {\n setValue([null, null]);\n setDropdownOpened(true);\n inputRef.current?.focus();\n };\n\n return (\n <>\n <DatePickerBase\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 inputLabel={\n valueValid\n ? `${upperFirst(\n dayjs(_value[0]).locale(locale).format(dateFormat)\n )} ${labelSeparator} ${upperFirst(\n dayjs(_value[1]).locale(locale).format(dateFormat)\n )}`\n : ''\n }\n __staticSelector=\"DateRangePicker\"\n dropdownType={dropdownType}\n clearable={clearable && valueValid}\n clearButtonLabel={clearButtonLabel}\n onClear={handleClear}\n {...others}\n >\n <RangeCalendar\n classNames={classNames}\n styles={styles}\n locale={locale}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n initialMonth={valueValid ? _value[0] : initialMonth}\n value={_value}\n onChange={handleValueChange}\n labelFormat={labelFormat}\n withSelect={withSelect}\n yearsRange={yearsRange}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n __staticSelector=\"DateRangePicker\"\n fullWidth={dropdownType === 'modal'}\n firstDayOfWeek={firstDayOfWeek}\n size={dropdownType === 'modal' ? 'lg' : calendarSize}\n allowSingleDateInRange={allowSingleDateInRange}\n amountOfMonths={amountOfMonths}\n />\n </DatePickerBase>\n\n <input\n type=\"hidden\"\n name={`${name}-from`}\n value={valueValid ? _value[0].toISOString() : ''}\n />\n\n <input\n type=\"hidden\"\n name={`${name}-to`}\n value={valueValid ? _value[1].toISOString() : ''}\n />\n </>\n );\n }\n);\n\nDateRangePicker.displayName = '@mantine/dates/DateRangePicker';\n"],"names":["forwardRef","useMantineTheme","useState","useRef","useUncontrolled","React","DatePickerBase","useMergedRef","upperFirst","dayjs","RangeCalendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateRangePicker.js","sources":["../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport React, { useState, useRef, forwardRef } from 'react';\nimport { useUncontrolled, useMergedRef, upperFirst } from '@mantine/hooks';\nimport { useMantineTheme } from '@mantine/core';\nimport { FirstDayOfWeek } from '../../types';\nimport { CalendarSettings } from '../Calendar/Calendar';\nimport { RangeCalendar } from '../RangeCalendar/RangeCalendar';\nimport { DatePickerBase, DatePickerBaseSharedProps } from '../DatePickerBase/DatePickerBase';\n\n// @ts-ignore\nexport interface DateRangePickerProps\n extends DatePickerBaseSharedProps,\n Omit<CalendarSettings, 'size'> {\n /** Selected date, required with controlled input */\n value?: [Date, Date];\n\n /** Called when date range changes */\n onChange?(value: [Date | null, Date | null]): void;\n\n /** Default value for uncontrolled input */\n defaultValue?: [Date, Date];\n\n /** Set to false to force dropdown to stay open after date was selected */\n closeCalendarOnChange?: boolean;\n\n /** dayjs input format */\n inputFormat?: string;\n\n /** Control initial dropdown opened state */\n initiallyOpened?: boolean;\n\n /** Input name, useful fon uncontrolled variant to capture data with native form */\n name?: string;\n\n /** Separator between dates */\n labelSeparator?: string;\n\n /** Set first day of the week */\n firstDayOfWeek?: FirstDayOfWeek;\n\n /** Allow one date to be selected as range */\n allowSingleDateInRange?: boolean;\n\n /** Allows to show multiple months */\n amountOfMonths?: number;\n}\n\nconst validationRule = (val: any) =>\n Array.isArray(val) && val.length === 2 && val.every((v) => v instanceof Date);\n\nexport const DateRangePicker = forwardRef<HTMLButtonElement, DateRangePickerProps>(\n (\n {\n value,\n onChange,\n defaultValue,\n classNames,\n styles,\n shadow = 'sm',\n locale = 'en',\n inputFormat,\n transitionDuration = 200,\n transitionTimingFunction,\n nextMonthLabel,\n previousMonthLabel,\n closeCalendarOnChange = true,\n labelFormat = 'MMMM YYYY',\n withSelect = false,\n yearsRange,\n dayClassName,\n dayStyle,\n disableOutsideEvents,\n minDate,\n maxDate,\n excludeDate,\n initialMonth,\n initiallyOpened = false,\n name = 'date',\n size = 'sm',\n dropdownType = 'popover',\n labelSeparator = '–',\n clearable = true,\n clearButtonLabel,\n firstDayOfWeek = 'monday',\n allowSingleDateInRange = false,\n amountOfMonths = 1,\n withinPortal = true,\n ...others\n }: DateRangePickerProps,\n ref\n ) => {\n const theme = useMantineTheme();\n const finalLocale = locale || theme.datesLocale;\n const dateFormat = 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 [_value, setValue] = useUncontrolled<[Date, Date]>({\n value,\n defaultValue,\n finalValue: [null, null],\n onChange,\n rule: validationRule,\n });\n\n const handleValueChange = (range: [Date, Date]) => {\n setValue(range);\n if (closeCalendarOnChange && validationRule(range)) {\n setDropdownOpened(false);\n window.setTimeout(() => inputRef.current?.focus(), 0);\n }\n };\n\n const valueValid = validationRule(_value);\n\n const handleClear = () => {\n setValue([null, null]);\n setDropdownOpened(true);\n inputRef.current?.focus();\n };\n\n return (\n <>\n <DatePickerBase\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 inputLabel={\n valueValid\n ? `${upperFirst(\n dayjs(_value[0]).locale(finalLocale).format(dateFormat)\n )} ${labelSeparator} ${upperFirst(\n dayjs(_value[1]).locale(finalLocale).format(dateFormat)\n )}`\n : ''\n }\n __staticSelector=\"DateRangePicker\"\n dropdownType={dropdownType}\n clearable={clearable && valueValid}\n clearButtonLabel={clearButtonLabel}\n onClear={handleClear}\n withinPortal={withinPortal}\n {...others}\n >\n <RangeCalendar\n classNames={classNames}\n styles={styles}\n locale={finalLocale}\n nextMonthLabel={nextMonthLabel}\n previousMonthLabel={previousMonthLabel}\n initialMonth={valueValid ? _value[0] : initialMonth}\n value={_value}\n onChange={handleValueChange}\n labelFormat={labelFormat}\n withSelect={withSelect}\n yearsRange={yearsRange}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n __staticSelector=\"DateRangePicker\"\n fullWidth={dropdownType === 'modal'}\n firstDayOfWeek={firstDayOfWeek}\n size={dropdownType === 'modal' ? 'lg' : calendarSize}\n allowSingleDateInRange={allowSingleDateInRange}\n amountOfMonths={amountOfMonths}\n />\n </DatePickerBase>\n\n <input\n type=\"hidden\"\n name={`${name}-from`}\n value={valueValid ? _value[0].toISOString() : ''}\n />\n\n <input\n type=\"hidden\"\n name={`${name}-to`}\n value={valueValid ? _value[1].toISOString() : ''}\n />\n </>\n );\n }\n);\n\nDateRangePicker.displayName = '@mantine/dates/DateRangePicker';\n"],"names":["forwardRef","useMantineTheme","useState","useRef","useUncontrolled","React","DatePickerBase","useMergedRef","upperFirst","dayjs","RangeCalendar"],"mappings":"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"}
|
|
@@ -57,7 +57,7 @@ function Month(_a) {
|
|
|
57
57
|
onChange,
|
|
58
58
|
autoFocus = false,
|
|
59
59
|
disableOutsideEvents = false,
|
|
60
|
-
locale
|
|
60
|
+
locale,
|
|
61
61
|
dayClassName,
|
|
62
62
|
dayStyle,
|
|
63
63
|
disableOutsideDayStyle = false,
|
|
@@ -104,6 +104,8 @@ function Month(_a) {
|
|
|
104
104
|
]);
|
|
105
105
|
const { classes, cx } = Month_styles['default']({ fullWidth }, { sx, classNames, styles, name: __staticSelector });
|
|
106
106
|
const { mergedStyles, rest } = core.useExtractedMargins({ others, style });
|
|
107
|
+
const theme = core.useMantineTheme();
|
|
108
|
+
const finalLocale = locale || theme.datesLocale;
|
|
107
109
|
const daysRefs = React.useRef({});
|
|
108
110
|
const days = getMonthDays.getMonthDays(month, firstDayOfWeek);
|
|
109
111
|
const focusDay = (date, diff) => {
|
|
@@ -142,7 +144,7 @@ function Month(_a) {
|
|
|
142
144
|
}
|
|
143
145
|
}
|
|
144
146
|
}, []);
|
|
145
|
-
const weekdays = getWeekdaysNames.getWeekdaysNames(
|
|
147
|
+
const weekdays = getWeekdaysNames.getWeekdaysNames(finalLocale, firstDayOfWeek).map((weekday) => /* @__PURE__ */ React__default.createElement("th", {
|
|
146
148
|
className: classes.weekdayCell,
|
|
147
149
|
key: weekday
|
|
148
150
|
}, /* @__PURE__ */ React__default.createElement(core.Text, {
|