@mantine/dates 3.1.9 → 3.2.3
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 +2 -2
- package/cjs/components/Calendar/Calendar.js +68 -39
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/CalendarHeader/CalendarHeader.js +24 -6
- package/cjs/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
- package/cjs/components/Calendar/CalendarLabel/CalendarLabel.js +4 -1
- package/cjs/components/Calendar/CalendarLabel/CalendarLabel.js.map +1 -1
- package/cjs/components/Calendar/CalendarWrapper/CalendarWrapper.js +5 -3
- package/cjs/components/Calendar/CalendarWrapper/CalendarWrapper.js.map +1 -1
- package/cjs/components/Calendar/get-disabled-state/get-disabled-state.js +2 -2
- package/cjs/components/Calendar/get-disabled-state/get-disabled-state.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.js +89 -17
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePickerBase/DatePickerBase.js +67 -24
- package/cjs/components/DatePickerBase/DatePickerBase.js.map +1 -1
- package/cjs/components/DatePickerBase/DatePickerBase.styles.js +5 -2
- package/cjs/components/DatePickerBase/DatePickerBase.styles.js.map +1 -1
- package/cjs/components/DateRangePicker/DateRangePicker.js +23 -9
- package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/cjs/components/Month/Day/Day.styles.js +6 -6
- package/cjs/components/Month/Day/Day.styles.js.map +1 -1
- package/cjs/components/Month/Month.js +14 -6
- package/cjs/components/Month/Month.js.map +1 -1
- package/cjs/components/Month/Month.styles.js +1 -1
- package/cjs/components/Month/Month.styles.js.map +1 -1
- package/cjs/components/RangeCalendar/RangeCalendar.js +78 -49
- package/cjs/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/cjs/components/TimeInput/TimeInput.styles.js +3 -3
- package/cjs/components/TimeInput/TimeInput.styles.js.map +1 -1
- package/cjs/components/TimeRangeInput/TimeRangeInput.styles.js +5 -5
- package/cjs/components/TimeRangeInput/TimeRangeInput.styles.js.map +1 -1
- package/cjs/utils/get-end-of-week/get-end-of-week.js +5 -3
- package/cjs/utils/get-end-of-week/get-end-of-week.js.map +1 -1
- package/cjs/utils/get-month-days/get-month-days.js +3 -3
- package/cjs/utils/get-month-days/get-month-days.js.map +1 -1
- package/cjs/utils/get-start-of-week/get-start-of-week.js +5 -3
- package/cjs/utils/get-start-of-week/get-start-of-week.js.map +1 -1
- package/cjs/utils/get-weekdays-names/get-weekdays-names.js +2 -2
- package/cjs/utils/get-weekdays-names/get-weekdays-names.js.map +1 -1
- package/esm/components/Calendar/Calendar.js +68 -39
- package/esm/components/Calendar/Calendar.js.map +1 -1
- package/esm/components/Calendar/CalendarHeader/CalendarHeader.js +25 -7
- package/esm/components/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
- package/esm/components/Calendar/CalendarLabel/CalendarLabel.js +4 -1
- package/esm/components/Calendar/CalendarLabel/CalendarLabel.js.map +1 -1
- package/esm/components/Calendar/CalendarWrapper/CalendarWrapper.js +6 -4
- package/esm/components/Calendar/CalendarWrapper/CalendarWrapper.js.map +1 -1
- package/esm/components/Calendar/get-disabled-state/get-disabled-state.js +2 -2
- package/esm/components/Calendar/get-disabled-state/get-disabled-state.js.map +1 -1
- package/esm/components/DatePicker/DatePicker.js +89 -17
- package/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/esm/components/DatePickerBase/DatePickerBase.js +68 -25
- package/esm/components/DatePickerBase/DatePickerBase.js.map +1 -1
- package/esm/components/DatePickerBase/DatePickerBase.styles.js +6 -3
- package/esm/components/DatePickerBase/DatePickerBase.styles.js.map +1 -1
- package/esm/components/DateRangePicker/DateRangePicker.js +22 -8
- package/esm/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/esm/components/Month/Day/Day.styles.js +7 -7
- package/esm/components/Month/Day/Day.styles.js.map +1 -1
- package/esm/components/Month/Month.js +14 -6
- package/esm/components/Month/Month.js.map +1 -1
- package/esm/components/Month/Month.styles.js +2 -2
- package/esm/components/Month/Month.styles.js.map +1 -1
- package/esm/components/RangeCalendar/RangeCalendar.js +79 -50
- package/esm/components/RangeCalendar/RangeCalendar.js.map +1 -1
- package/esm/components/TimeInput/TimeInput.styles.js +4 -4
- package/esm/components/TimeInput/TimeInput.styles.js.map +1 -1
- package/esm/components/TimeRangeInput/TimeRangeInput.styles.js +6 -6
- package/esm/components/TimeRangeInput/TimeRangeInput.styles.js.map +1 -1
- package/esm/utils/get-end-of-week/get-end-of-week.js +5 -3
- package/esm/utils/get-end-of-week/get-end-of-week.js.map +1 -1
- package/esm/utils/get-month-days/get-month-days.js +3 -3
- package/esm/utils/get-month-days/get-month-days.js.map +1 -1
- package/esm/utils/get-start-of-week/get-start-of-week.js +5 -3
- package/esm/utils/get-start-of-week/get-start-of-week.js.map +1 -1
- package/esm/utils/get-weekdays-names/get-weekdays-names.js +2 -2
- package/esm/utils/get-weekdays-names/get-weekdays-names.js.map +1 -1
- package/lib/components/Calendar/Calendar.d.ts +5 -0
- package/lib/components/Calendar/Calendar.d.ts.map +1 -1
- package/lib/components/Calendar/CalendarHeader/CalendarHeader.d.ts +3 -1
- package/lib/components/Calendar/CalendarHeader/CalendarHeader.d.ts.map +1 -1
- package/lib/components/Calendar/CalendarLabel/CalendarLabel.d.ts +2 -1
- package/lib/components/Calendar/CalendarLabel/CalendarLabel.d.ts.map +1 -1
- package/lib/components/Calendar/CalendarLabel/CalendarLabel.styles.d.ts +1 -0
- package/lib/components/Calendar/CalendarLabel/CalendarLabel.styles.d.ts.map +1 -1
- package/lib/components/Calendar/CalendarWrapper/CalendarWrapper.d.ts +1 -0
- package/lib/components/Calendar/CalendarWrapper/CalendarWrapper.d.ts.map +1 -1
- package/lib/components/Calendar/get-disabled-state/get-disabled-state.d.ts +3 -1
- package/lib/components/Calendar/get-disabled-state/get-disabled-state.d.ts.map +1 -1
- package/lib/components/DatePicker/DatePicker.d.ts +8 -1
- package/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/lib/components/DatePickerBase/DatePickerBase.d.ts +7 -3
- package/lib/components/DatePickerBase/DatePickerBase.d.ts.map +1 -1
- package/lib/components/DatePickerBase/DatePickerBase.styles.d.ts +3 -2
- package/lib/components/DatePickerBase/DatePickerBase.styles.d.ts.map +1 -1
- package/lib/components/DateRangePicker/DateRangePicker.d.ts +5 -0
- package/lib/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/lib/components/Month/Day/Day.styles.d.ts +1 -0
- package/lib/components/Month/Day/Day.styles.d.ts.map +1 -1
- package/lib/components/Month/Month.d.ts +8 -1
- package/lib/components/Month/Month.d.ts.map +1 -1
- package/lib/components/Month/Month.styles.d.ts +1 -0
- package/lib/components/Month/Month.styles.d.ts.map +1 -1
- package/lib/components/RangeCalendar/RangeCalendar.d.ts +3 -0
- package/lib/components/RangeCalendar/RangeCalendar.d.ts.map +1 -1
- package/lib/components/TimeInput/TimeInput.styles.d.ts +1 -0
- package/lib/components/TimeInput/TimeInput.styles.d.ts.map +1 -1
- package/lib/components/TimeRangeInput/TimeRangeInput.styles.d.ts +3 -2
- package/lib/components/TimeRangeInput/TimeRangeInput.styles.d.ts.map +1 -1
- package/lib/types.d.ts +2 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/utils/get-end-of-week/get-end-of-week.d.ts +2 -1
- package/lib/utils/get-end-of-week/get-end-of-week.d.ts.map +1 -1
- package/lib/utils/get-month-days/get-month-days.d.ts +2 -1
- package/lib/utils/get-month-days/get-month-days.d.ts.map +1 -1
- package/lib/utils/get-start-of-week/get-start-of-week.d.ts +2 -1
- package/lib/utils/get-start-of-week/get-start-of-week.d.ts.map +1 -1
- package/lib/utils/get-weekdays-names/get-weekdays-names.d.ts +2 -1
- package/lib/utils/get-weekdays-names/get-weekdays-names.d.ts.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var dayjs = require('dayjs');
|
|
7
|
+
var core = require('@mantine/core');
|
|
7
8
|
var hooks = require('@mantine/hooks');
|
|
8
9
|
var Month = require('../Month/Month.js');
|
|
9
10
|
var CalendarHeader = require('./CalendarHeader/CalendarHeader.js');
|
|
@@ -68,7 +69,10 @@ const Calendar = React.forwardRef((_a, ref) => {
|
|
|
68
69
|
size = "sm",
|
|
69
70
|
__staticSelector = "Calendar",
|
|
70
71
|
monthLabel,
|
|
71
|
-
yearLabel
|
|
72
|
+
yearLabel,
|
|
73
|
+
preventFocus,
|
|
74
|
+
firstDayOfWeek = "monday",
|
|
75
|
+
amountOfMonths = 1
|
|
72
76
|
} = _b, others = __objRest(_b, [
|
|
73
77
|
"classNames",
|
|
74
78
|
"styles",
|
|
@@ -93,7 +97,10 @@ const Calendar = React.forwardRef((_a, ref) => {
|
|
|
93
97
|
"size",
|
|
94
98
|
"__staticSelector",
|
|
95
99
|
"monthLabel",
|
|
96
|
-
"yearLabel"
|
|
100
|
+
"yearLabel",
|
|
101
|
+
"preventFocus",
|
|
102
|
+
"firstDayOfWeek",
|
|
103
|
+
"amountOfMonths"
|
|
97
104
|
]);
|
|
98
105
|
const [_month, setMonth] = hooks.useUncontrolled({
|
|
99
106
|
value: month,
|
|
@@ -103,46 +110,68 @@ const Calendar = React.forwardRef((_a, ref) => {
|
|
|
103
110
|
rule: (val) => val instanceof Date
|
|
104
111
|
});
|
|
105
112
|
const disabledState = getDisabledState.getDisabledState({ month: _month, minDate, maxDate });
|
|
113
|
+
const hasMultipleMonths = amountOfMonths > 1;
|
|
114
|
+
const dayStyles = (date, modifiers) => {
|
|
115
|
+
const initialStyles = typeof dayStyle === "function" ? dayStyle(date, modifiers) : null;
|
|
116
|
+
const outsideStyles = modifiers.outside && amountOfMonths > 1 ? { display: "none" } : null;
|
|
117
|
+
return __spreadValues(__spreadValues({}, initialStyles), outsideStyles);
|
|
118
|
+
};
|
|
106
119
|
return /* @__PURE__ */ React__default.createElement(CalendarWrapper.CalendarWrapper, __spreadValues({
|
|
107
120
|
size,
|
|
108
121
|
fullWidth,
|
|
109
|
-
ref
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
122
|
+
ref,
|
|
123
|
+
amountOfMonths
|
|
124
|
+
}, others), /* @__PURE__ */ React__default.createElement(core.Group, {
|
|
125
|
+
noWrap: true,
|
|
126
|
+
style: { alignItems: "flex-start" }
|
|
127
|
+
}, Array(amountOfMonths).fill(0).map((_, monthIndex) => {
|
|
128
|
+
const isFirstMonth = monthIndex === 0;
|
|
129
|
+
const isLastMonth = monthIndex === amountOfMonths - 1;
|
|
130
|
+
const monthToRender = isFirstMonth ? _month : dayjs__default(_month).add(monthIndex, "month").toDate();
|
|
131
|
+
const hiddenMonth = isFirstMonth ? "next" : isLastMonth ? "prev" : "both";
|
|
132
|
+
return /* @__PURE__ */ React__default.createElement("div", {
|
|
133
|
+
key: `month-${monthIndex}`
|
|
134
|
+
}, /* @__PURE__ */ React__default.createElement(CalendarHeader.CalendarHeader, {
|
|
135
|
+
size,
|
|
136
|
+
nextMonthLabel,
|
|
137
|
+
previousMonthLabel,
|
|
138
|
+
previousMonthDisabled: disabledState.previousDisabled,
|
|
139
|
+
nextMonthDisabled: disabledState.nextDisabled,
|
|
140
|
+
onPreviousMonth: () => setMonth(dayjs__default(_month).subtract(1, "month").toDate()),
|
|
141
|
+
onNextMonth: () => setMonth(dayjs__default(_month).add(1, "month").toDate()),
|
|
142
|
+
classNames,
|
|
143
|
+
styles,
|
|
144
|
+
locale,
|
|
145
|
+
withSelect,
|
|
146
|
+
yearsRange,
|
|
147
|
+
month: monthToRender,
|
|
148
|
+
setMonth,
|
|
149
|
+
labelFormat,
|
|
150
|
+
hiddenMonth: hasMultipleMonths ? hiddenMonth : void 0,
|
|
151
|
+
__staticSelector: isFirstMonth ? __staticSelector : `${__staticSelector}-month-${monthIndex}`,
|
|
152
|
+
monthLabel,
|
|
153
|
+
yearLabel,
|
|
154
|
+
preventFocus
|
|
155
|
+
}), /* @__PURE__ */ React__default.createElement(Month.Month, {
|
|
156
|
+
month: monthToRender,
|
|
157
|
+
value,
|
|
158
|
+
onChange,
|
|
159
|
+
dayClassName,
|
|
160
|
+
disableOutsideEvents,
|
|
161
|
+
minDate,
|
|
162
|
+
maxDate,
|
|
163
|
+
excludeDate,
|
|
164
|
+
classNames,
|
|
165
|
+
styles,
|
|
166
|
+
fullWidth,
|
|
167
|
+
preventFocus,
|
|
168
|
+
size,
|
|
169
|
+
locale,
|
|
170
|
+
firstDayOfWeek,
|
|
171
|
+
__staticSelector,
|
|
172
|
+
dayStyle: dayStyles
|
|
173
|
+
}));
|
|
174
|
+
})));
|
|
146
175
|
});
|
|
147
176
|
Calendar.displayName = "@mantine/dates/Calendar";
|
|
148
177
|
|
|
@@ -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 } from '@mantine/core';\nimport { useUncontrolled } from '@mantine/hooks';\nimport { Month, MonthSettings, MonthStylesNames } from '../Month/Month';\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\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 ...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\n return (\n <CalendarWrapper size={size} fullWidth={fullWidth} ref={ref} {...others}>\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={_month}\n setMonth={setMonth}\n labelFormat={labelFormat}\n __staticSelector={__staticSelector}\n monthLabel={monthLabel}\n yearLabel={yearLabel}\n />\n\n <Month\n month={_month}\n value={value}\n onChange={onChange}\n dayClassName={dayClassName}\n dayStyle={dayStyle}\n disableOutsideEvents={disableOutsideEvents}\n minDate={minDate}\n maxDate={maxDate}\n excludeDate={excludeDate}\n classNames={classNames}\n styles={styles}\n fullWidth={fullWidth}\n size={size}\n locale={locale}\n __staticSelector={__staticSelector}\n />\n </CalendarWrapper>\n );\n }\n);\n\nCalendar.displayName = '@mantine/dates/Calendar';\n"],"names":["forwardRef","useUncontrolled","getDisabledState","React","CalendarWrapper","CalendarHeader","dayjs","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 } 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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"}
|
|
@@ -37,11 +37,20 @@ function CalendarHeader({
|
|
|
37
37
|
labelFormat,
|
|
38
38
|
__staticSelector,
|
|
39
39
|
monthLabel,
|
|
40
|
-
yearLabel
|
|
40
|
+
yearLabel,
|
|
41
|
+
preventFocus = false,
|
|
42
|
+
hiddenMonth
|
|
41
43
|
}) {
|
|
42
44
|
const theme = core.useMantineTheme();
|
|
43
|
-
const iconSize =
|
|
44
|
-
const iconButtonSize =
|
|
45
|
+
const iconSize = theme.fn.size({ size, sizes: iconSizes });
|
|
46
|
+
const iconButtonSize = theme.fn.size({ size, sizes: Day_styles.sizes });
|
|
47
|
+
const controlStyles = {
|
|
48
|
+
"&:disabled": {
|
|
49
|
+
backgroundColor: "transparent",
|
|
50
|
+
borderColor: "transparent",
|
|
51
|
+
opacity: 0.4
|
|
52
|
+
}
|
|
53
|
+
};
|
|
45
54
|
return /* @__PURE__ */ React__default.createElement(core.Group, {
|
|
46
55
|
position: "apart",
|
|
47
56
|
noWrap: true,
|
|
@@ -49,9 +58,13 @@ function CalendarHeader({
|
|
|
49
58
|
}, /* @__PURE__ */ React__default.createElement(core.ActionIcon, {
|
|
50
59
|
"aria-label": previousMonthLabel,
|
|
51
60
|
onClick: onPreviousMonth,
|
|
61
|
+
onMouseDown: (event) => preventFocus && event.preventDefault(),
|
|
62
|
+
tabIndex: preventFocus ? -1 : 0,
|
|
52
63
|
disabled: previousMonthDisabled,
|
|
53
64
|
size: iconButtonSize,
|
|
54
|
-
"
|
|
65
|
+
style: { visibility: ["prev", "both"].includes(hiddenMonth) ? "hidden" : "visible" },
|
|
66
|
+
"data-mantine-stop-propagation": true,
|
|
67
|
+
sx: controlStyles
|
|
55
68
|
}, /* @__PURE__ */ React__default.createElement(ArrowIcon.ArrowIcon, {
|
|
56
69
|
direction: "left",
|
|
57
70
|
width: iconSize,
|
|
@@ -68,13 +81,18 @@ function CalendarHeader({
|
|
|
68
81
|
size,
|
|
69
82
|
__staticSelector,
|
|
70
83
|
monthLabel,
|
|
71
|
-
yearLabel
|
|
84
|
+
yearLabel,
|
|
85
|
+
preventFocus
|
|
72
86
|
}), /* @__PURE__ */ React__default.createElement(core.ActionIcon, {
|
|
73
87
|
"aria-label": nextMonthLabel,
|
|
74
88
|
onClick: onNextMonth,
|
|
89
|
+
tabIndex: preventFocus ? -1 : 0,
|
|
90
|
+
onMouseDown: (event) => preventFocus && event.preventDefault(),
|
|
75
91
|
disabled: nextMonthDisabled,
|
|
76
92
|
size: iconButtonSize,
|
|
77
|
-
"
|
|
93
|
+
style: { visibility: ["next", "both"].includes(hiddenMonth) ? "hidden" : "visible" },
|
|
94
|
+
"data-mantine-stop-propagation": true,
|
|
95
|
+
sx: controlStyles
|
|
78
96
|
}, /* @__PURE__ */ React__default.createElement(ArrowIcon.ArrowIcon, {
|
|
79
97
|
direction: "right",
|
|
80
98
|
width: iconSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarHeader.js","sources":["../../../../src/components/Calendar/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["import React from 'react';\nimport {
|
|
1
|
+
{"version":3,"file":"CalendarHeader.js","sources":["../../../../src/components/Calendar/CalendarHeader/CalendarHeader.tsx"],"sourcesContent":["import React from 'react';\nimport { Group, ActionIcon, DefaultProps, MantineSize, useMantineTheme } from '@mantine/core';\nimport { ArrowIcon } from '../ArrowIcon';\nimport { CalendarLabel } from '../CalendarLabel/CalendarLabel';\nimport { sizes as DAY_SIZES } from '../../Month/Day/Day.styles';\n\nconst iconSizes = {\n xs: 10,\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n};\n\ninterface CalendarHeaderProps extends DefaultProps {\n classNames: Record<string, any>;\n styles: Record<string, any>;\n size: MantineSize;\n nextMonthLabel: string;\n previousMonthLabel: string;\n previousMonthDisabled: boolean;\n nextMonthDisabled: boolean;\n onPreviousMonth(): void;\n onNextMonth(): void;\n locale: string;\n withSelect: boolean;\n yearsRange: { from: number; to: number };\n month: Date;\n setMonth(date: Date): void;\n labelFormat: string;\n __staticSelector: string;\n monthLabel?: string;\n yearLabel?: string;\n preventFocus?: boolean;\n hiddenMonth?: 'next' | 'prev' | 'both';\n}\n\nexport function CalendarHeader({\n size,\n nextMonthLabel,\n previousMonthLabel,\n previousMonthDisabled,\n nextMonthDisabled,\n onPreviousMonth,\n onNextMonth,\n classNames,\n styles,\n locale,\n withSelect,\n yearsRange,\n month,\n setMonth,\n labelFormat,\n __staticSelector,\n monthLabel,\n yearLabel,\n preventFocus = false,\n hiddenMonth,\n}: CalendarHeaderProps) {\n const theme = useMantineTheme();\n const iconSize = theme.fn.size({ size, sizes: iconSizes });\n const iconButtonSize = theme.fn.size({ size, sizes: DAY_SIZES });\n const controlStyles = {\n '&:disabled': {\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n opacity: 0.4,\n },\n };\n\n return (\n <Group position=\"apart\" noWrap style={{ marginBottom: theme.spacing.xs / 2 }}>\n <ActionIcon<'button'>\n aria-label={previousMonthLabel}\n onClick={onPreviousMonth}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n tabIndex={preventFocus ? -1 : 0}\n disabled={previousMonthDisabled}\n size={iconButtonSize}\n style={{ visibility: ['prev', 'both'].includes(hiddenMonth) ? 'hidden' : 'visible' }}\n data-mantine-stop-propagation\n sx={controlStyles}\n >\n <ArrowIcon direction=\"left\" width={iconSize} height={iconSize} />\n </ActionIcon>\n\n <CalendarLabel\n locale={locale}\n classNames={classNames}\n styles={styles}\n withSelect={withSelect}\n yearsRange={yearsRange}\n value={month}\n onChange={setMonth}\n labelFormat={labelFormat}\n size={size}\n __staticSelector={__staticSelector}\n monthLabel={monthLabel}\n yearLabel={yearLabel}\n preventFocus={preventFocus}\n />\n\n <ActionIcon<'button'>\n aria-label={nextMonthLabel}\n onClick={onNextMonth}\n tabIndex={preventFocus ? -1 : 0}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n disabled={nextMonthDisabled}\n size={iconButtonSize}\n style={{ visibility: ['next', 'both'].includes(hiddenMonth) ? 'hidden' : 'visible' }}\n data-mantine-stop-propagation\n sx={controlStyles}\n >\n <ArrowIcon direction=\"right\" width={iconSize} height={iconSize} />\n </ActionIcon>\n </Group>\n );\n}\n\nCalendarHeader.displayName = '@mantine/dates/CalendarHeader';\n"],"names":["useMantineTheme","DAY_SIZES","React","Group","ActionIcon","ArrowIcon","CalendarLabel"],"mappings":"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"}
|
|
@@ -27,7 +27,8 @@ function CalendarLabel({
|
|
|
27
27
|
size,
|
|
28
28
|
__staticSelector,
|
|
29
29
|
monthLabel,
|
|
30
|
-
yearLabel
|
|
30
|
+
yearLabel,
|
|
31
|
+
preventFocus
|
|
31
32
|
}) {
|
|
32
33
|
const selectSize = size === "lg" || size === "xl" ? "md" : "xs";
|
|
33
34
|
const { classes } = CalendarLabel_styles['default'](null, { classNames, styles, name: __staticSelector });
|
|
@@ -40,6 +41,7 @@ function CalendarLabel({
|
|
|
40
41
|
className: classes.calendarSelect,
|
|
41
42
|
size: selectSize,
|
|
42
43
|
value: value.getMonth(),
|
|
44
|
+
onMouseDown: (event) => preventFocus && event.preventDefault(),
|
|
43
45
|
onChange: (event) => onChange(dayjs__default(value).set("month", parseInt(event.currentTarget.value, 10)).toDate()),
|
|
44
46
|
data: getMonthsNames.getMonthsNames(locale).map((month, index) => ({
|
|
45
47
|
label: hooks.upperFirst(month),
|
|
@@ -50,6 +52,7 @@ function CalendarLabel({
|
|
|
50
52
|
className: classes.calendarSelect,
|
|
51
53
|
size: selectSize,
|
|
52
54
|
value: value.getFullYear(),
|
|
55
|
+
onMouseDown: (event) => preventFocus && event.preventDefault(),
|
|
53
56
|
onChange: (event) => onChange(dayjs__default(value).set("year", parseInt(event.currentTarget.value, 10)).toDate()),
|
|
54
57
|
data: getYearsRange.getYearsRange(yearsRange).map((year) => ({
|
|
55
58
|
label: year.toString(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarLabel.js","sources":["../../../../src/components/Calendar/CalendarLabel/CalendarLabel.tsx"],"sourcesContent":["import React from 'react';\nimport dayjs from 'dayjs';\nimport { DefaultProps, NativeSelect, Group, Text, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport { getMonthsNames, getYearsRange } from '../../../utils';\nimport useStyles from './CalendarLabel.styles';\n\nexport type CalendarLabelStylesNames = ClassNames<typeof useStyles>;\n\ninterface CalendarLabelProps extends DefaultProps<CalendarLabelStylesNames> {\n locale: string;\n withSelect: boolean;\n yearsRange: { from: number; to: number };\n value: Date;\n onChange(value: Date): void;\n labelFormat: string;\n __staticSelector: string;\n size: MantineSize;\n monthLabel?: string;\n yearLabel?: string;\n}\n\nexport function CalendarLabel({\n locale,\n classNames,\n styles,\n withSelect,\n yearsRange,\n value,\n labelFormat,\n onChange,\n size,\n __staticSelector,\n monthLabel,\n yearLabel,\n}: CalendarLabelProps) {\n const selectSize = size === 'lg' || size === 'xl' ? 'md' : 'xs';\n const { classes } = useStyles(null, { classNames, styles, name: __staticSelector });\n\n return withSelect ? (\n <Group spacing={5} noWrap className={classes.calendarSelectGroup}>\n <NativeSelect\n aria-label={monthLabel}\n className={classes.calendarSelect}\n size={selectSize}\n value={value.getMonth()}\n onChange={(event) =>\n onChange(dayjs(value).set('month', parseInt(event.currentTarget.value, 10)).toDate())\n }\n data={getMonthsNames(locale).map((month, index) => ({\n label: upperFirst(month),\n value: index.toString(),\n }))}\n />\n\n <NativeSelect\n aria-label={yearLabel}\n className={classes.calendarSelect}\n size={selectSize}\n value={value.getFullYear()}\n onChange={(event) =>\n onChange(dayjs(value).set('year', parseInt(event.currentTarget.value, 10)).toDate())\n }\n data={getYearsRange(yearsRange).map((year) => ({\n label: year.toString(),\n value: year.toString(),\n }))}\n />\n </Group>\n ) : (\n <Text className={classes.calendarLabel} size={size}>\n {upperFirst(dayjs(value).locale(locale).format(labelFormat))}\n </Text>\n );\n}\n\nCalendarLabel.displayName = '@mantine/dates/CalendarLabel';\n"],"names":["useStyles","React","Group","NativeSelect","dayjs","getMonthsNames","upperFirst","getYearsRange","Text"],"mappings":";;;;;;;;;;;;;;;;;AAMO,SAAS,aAAa,CAAC;AAC9B,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,MAAM;AACR,EAAE,UAAU;AACZ,EAAE,UAAU;AACZ,EAAE,KAAK;AACP,EAAE,WAAW;AACb,EAAE,QAAQ;AACV,EAAE,IAAI;AACN,EAAE,gBAAgB;AAClB,EAAE,UAAU;AACZ,EAAE,SAAS;AACX,CAAC,EAAE;AACH,EAAE,MAAM,UAAU,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAClE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAGA,+BAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACtF,EAAE,OAAO,UAAU,mBAAmBC,cAAK,CAAC,aAAa,CAACC,UAAK,EAAE;AACjE,IAAI,OAAO,EAAE,CAAC;AACd,IAAI,MAAM,EAAE,IAAI;AAChB,IAAI,SAAS,EAAE,OAAO,CAAC,mBAAmB;AAC1C,GAAG,kBAAkBD,cAAK,CAAC,aAAa,CAACE,iBAAY,EAAE;AACvD,IAAI,YAAY,EAAE,UAAU;AAC5B,IAAI,SAAS,EAAE,OAAO,CAAC,cAAc;AACrC,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;AAC3B,IAAI,QAAQ,EAAE,CAAC,KAAK,KAAK,QAAQ,CAACC,cAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9G,IAAI,IAAI,EAAEC,6BAAc,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,MAAM;AACxD,MAAM,KAAK,EAAEC,gBAAU,CAAC,KAAK,CAAC;AAC9B,MAAM,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;AAC7B,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,kBAAkBL,cAAK,CAAC,aAAa,CAACE,iBAAY,EAAE;AACxD,IAAI,YAAY,EAAE,SAAS;AAC3B,IAAI,SAAS,EAAE,OAAO,CAAC,cAAc;AACrC,IAAI,IAAI,EAAE,UAAU;AACpB,IAAI,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE;AAC9B,IAAI,QAAQ,EAAE,CAAC,KAAK,KAAK,QAAQ,CAACC,cAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7G,IAAI,IAAI,EAAEG,2BAAa,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM;AACnD,MAAM,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC5B,MAAM,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC5B,KAAK,CAAC,CAAC;AACP,GAAG,CAAC,CAAC,mBAAmBN,cAAK,CAAC,aAAa,CAACO,SAAI,EAAE;AAClD,IAAI,SAAS,EAAE,OAAO,CAAC,aAAa;AACpC,IAAI,IAAI;AACR,GAAG,EAAEF,gBAAU,CAACF,cAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AACD,aAAa,CAAC,WAAW,GAAG,8BAA8B;;;;"}
|
|
1
|
+
{"version":3,"file":"CalendarLabel.js","sources":["../../../../src/components/Calendar/CalendarLabel/CalendarLabel.tsx"],"sourcesContent":["import React from 'react';\nimport dayjs from 'dayjs';\nimport { DefaultProps, NativeSelect, Group, Text, MantineSize, ClassNames } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport { getMonthsNames, getYearsRange } from '../../../utils';\nimport useStyles from './CalendarLabel.styles';\n\nexport type CalendarLabelStylesNames = ClassNames<typeof useStyles>;\n\ninterface CalendarLabelProps extends DefaultProps<CalendarLabelStylesNames> {\n locale: string;\n withSelect: boolean;\n yearsRange: { from: number; to: number };\n value: Date;\n onChange(value: Date): void;\n labelFormat: string;\n __staticSelector: string;\n size: MantineSize;\n monthLabel?: string;\n yearLabel?: string;\n preventFocus?: boolean;\n}\n\nexport function CalendarLabel({\n locale,\n classNames,\n styles,\n withSelect,\n yearsRange,\n value,\n labelFormat,\n onChange,\n size,\n __staticSelector,\n monthLabel,\n yearLabel,\n preventFocus,\n}: CalendarLabelProps) {\n const selectSize = size === 'lg' || size === 'xl' ? 'md' : 'xs';\n const { classes } = useStyles(null, { classNames, styles, name: __staticSelector });\n\n return withSelect ? (\n <Group spacing={5} noWrap className={classes.calendarSelectGroup}>\n <NativeSelect\n aria-label={monthLabel}\n className={classes.calendarSelect}\n size={selectSize}\n value={value.getMonth()}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n onChange={(event) =>\n onChange(dayjs(value).set('month', parseInt(event.currentTarget.value, 10)).toDate())\n }\n data={getMonthsNames(locale).map((month, index) => ({\n label: upperFirst(month),\n value: index.toString(),\n }))}\n />\n\n <NativeSelect\n aria-label={yearLabel}\n className={classes.calendarSelect}\n size={selectSize}\n value={value.getFullYear()}\n onMouseDown={(event) => preventFocus && event.preventDefault()}\n onChange={(event) =>\n onChange(dayjs(value).set('year', parseInt(event.currentTarget.value, 10)).toDate())\n }\n data={getYearsRange(yearsRange).map((year) => ({\n label: year.toString(),\n value: year.toString(),\n }))}\n />\n </Group>\n ) : (\n <Text className={classes.calendarLabel} size={size}>\n {upperFirst(dayjs(value).locale(locale).format(labelFormat))}\n </Text>\n );\n}\n\nCalendarLabel.displayName = '@mantine/dates/CalendarLabel';\n"],"names":["useStyles","React","Group","NativeSelect","dayjs","getMonthsNames","upperFirst","getYearsRange","Text"],"mappings":"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"}
|
|
@@ -39,14 +39,16 @@ var __objRest = (source, exclude) => {
|
|
|
39
39
|
return target;
|
|
40
40
|
};
|
|
41
41
|
const CalendarWrapper = React.forwardRef((_a, ref) => {
|
|
42
|
-
var _b = _a, { size, fullWidth, style, sx, className } = _b, others = __objRest(_b, ["size", "fullWidth", "style", "sx", "className"]);
|
|
42
|
+
var _b = _a, { size, fullWidth, amountOfMonths = 1, style, sx, className } = _b, others = __objRest(_b, ["size", "fullWidth", "amountOfMonths", "style", "sx", "className"]);
|
|
43
43
|
const { mergedStyles, rest } = core.useExtractedMargins({ others, style });
|
|
44
|
-
const { sxClassName } = core.useSx({ sx, className });
|
|
44
|
+
const { sxClassName, theme } = core.useSx({ sx, className });
|
|
45
|
+
const _maxWidth = theme.fn.size({ size, sizes: Day_styles.sizes }) * 7;
|
|
46
|
+
const maxWidth = amountOfMonths > 1 ? _maxWidth * amountOfMonths + (amountOfMonths - 1) * 16 : _maxWidth;
|
|
45
47
|
return /* @__PURE__ */ React__default.createElement("div", __spreadValues({
|
|
46
48
|
ref,
|
|
47
49
|
className: sxClassName,
|
|
48
50
|
style: __spreadValues({
|
|
49
|
-
maxWidth: fullWidth ? "100%" :
|
|
51
|
+
maxWidth: fullWidth ? "100%" : maxWidth
|
|
50
52
|
}, mergedStyles)
|
|
51
53
|
}, rest));
|
|
52
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarWrapper.js","sources":["../../../../src/components/Calendar/CalendarWrapper/CalendarWrapper.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { MantineSize,
|
|
1
|
+
{"version":3,"file":"CalendarWrapper.js","sources":["../../../../src/components/Calendar/CalendarWrapper/CalendarWrapper.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { MantineSize, useExtractedMargins, useSx, DefaultProps } from '@mantine/core';\nimport { sizes as DAY_SIZES } from '../../Month/Day/Day.styles';\n\ninterface CalendarWrapperProps extends DefaultProps, React.ComponentPropsWithoutRef<'div'> {\n size: MantineSize;\n fullWidth: boolean;\n amountOfMonths?: number;\n}\n\nexport const CalendarWrapper = forwardRef<HTMLDivElement, CalendarWrapperProps>(\n (\n { size, fullWidth, amountOfMonths = 1, style, sx, className, ...others }: CalendarWrapperProps,\n ref\n ) => {\n const { mergedStyles, rest } = useExtractedMargins({ others, style });\n const { sxClassName, theme } = useSx({ sx, className });\n const _maxWidth = theme.fn.size({ size, sizes: DAY_SIZES }) * 7;\n const maxWidth =\n amountOfMonths > 1 ? _maxWidth * amountOfMonths + (amountOfMonths - 1) * 16 : _maxWidth;\n\n return (\n <div\n ref={ref}\n className={sxClassName}\n style={{\n maxWidth: fullWidth ? '100%' : maxWidth,\n ...mergedStyles,\n }}\n {...rest}\n />\n );\n }\n);\n\nCalendarWrapper.displayName = '@mantine/dates/CalendarWrapper';\n"],"names":["forwardRef","useExtractedMargins","useSx","DAY_SIZES","React"],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
8
8
|
|
|
9
9
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
10
10
|
|
|
11
|
-
function getDisabledState({ maxDate, minDate, month }) {
|
|
12
|
-
const nextDisabled = maxDate instanceof Date && dayjs__default(month).endOf("month").isAfter(dayjs__default(maxDate).endOf("day").subtract(1, "minute"));
|
|
11
|
+
function getDisabledState({ maxDate, minDate, month, amountOfMonths }) {
|
|
12
|
+
const nextDisabled = maxDate instanceof Date && dayjs__default(month).add(amountOfMonths - 1, "month").endOf("month").isAfter(dayjs__default(maxDate).endOf("day").subtract(1, "minute"));
|
|
13
13
|
const previousDisabled = minDate instanceof Date && dayjs__default(month).startOf("month").isBefore(dayjs__default(minDate).startOf("day").add(1, "minute"));
|
|
14
14
|
return { nextDisabled, previousDisabled };
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-disabled-state.js","sources":["../../../../src/components/Calendar/get-disabled-state/get-disabled-state.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\ninterface GetDisabledState {\n /** Current selected month */\n month: Date;\n\n /** Min and max possible dates */\n minDate: Date;\n maxDate: Date;\n}\n\nexport function getDisabledState({ maxDate, minDate, month }: GetDisabledState) {\n const nextDisabled =\n maxDate instanceof Date &&\n dayjs(month).endOf('month').isAfter(dayjs(maxDate).endOf('day').subtract(1, 'minute'));\n const previousDisabled =\n minDate instanceof Date &&\n dayjs(month).startOf('month').isBefore(dayjs(minDate).startOf('day').add(1, 'minute'));\n\n return { nextDisabled, previousDisabled };\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;AACO,SAAS,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"get-disabled-state.js","sources":["../../../../src/components/Calendar/get-disabled-state/get-disabled-state.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\ninterface GetDisabledState {\n /** Current selected month */\n month: Date;\n\n /** Min and max possible dates */\n minDate: Date;\n maxDate: Date;\n\n /** Amount of rendered months */\n amountOfMonths?: number;\n}\n\nexport function getDisabledState({ maxDate, minDate, month, amountOfMonths }: GetDisabledState) {\n const nextDisabled =\n maxDate instanceof Date &&\n dayjs(month)\n .add(amountOfMonths - 1, 'month')\n .endOf('month')\n .isAfter(dayjs(maxDate).endOf('day').subtract(1, 'minute'));\n const previousDisabled =\n minDate instanceof Date &&\n dayjs(month).startOf('month').isBefore(dayjs(minDate).startOf('day').add(1, 'minute'));\n\n return { nextDisabled, previousDisabled };\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;AACO,SAAS,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;AAC9E,EAAE,MAAM,YAAY,GAAG,OAAO,YAAY,IAAI,IAAIA,cAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,cAAc,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAACA,cAAK,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC1K,EAAE,MAAM,gBAAgB,GAAG,OAAO,YAAY,IAAI,IAAIA,cAAK,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAACA,cAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AAC7I,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAC5C;;;;"}
|
|
@@ -2,16 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var dayjs = require('dayjs');
|
|
5
6
|
var React = require('react');
|
|
6
7
|
var hooks = require('@mantine/hooks');
|
|
7
|
-
var
|
|
8
|
+
var core = require('@mantine/core');
|
|
8
9
|
var Calendar = require('../Calendar/Calendar.js');
|
|
9
10
|
var DatePickerBase = require('../DatePickerBase/DatePickerBase.js');
|
|
10
11
|
|
|
11
12
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
|
|
12
13
|
|
|
13
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
14
14
|
var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
|
|
15
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
15
16
|
|
|
16
17
|
var __defProp = Object.defineProperty;
|
|
17
18
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
@@ -50,7 +51,7 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
50
51
|
styles,
|
|
51
52
|
shadow = "sm",
|
|
52
53
|
locale = "en",
|
|
53
|
-
inputFormat
|
|
54
|
+
inputFormat,
|
|
54
55
|
transitionDuration = 200,
|
|
55
56
|
transitionTimingFunction,
|
|
56
57
|
nextMonthLabel,
|
|
@@ -72,7 +73,14 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
72
73
|
dropdownType = "popover",
|
|
73
74
|
clearable = true,
|
|
74
75
|
disabled = false,
|
|
75
|
-
clearButtonLabel
|
|
76
|
+
clearButtonLabel,
|
|
77
|
+
fixOnBlur = true,
|
|
78
|
+
allowFreeInput,
|
|
79
|
+
dateParser,
|
|
80
|
+
firstDayOfWeek = "monday",
|
|
81
|
+
onFocus,
|
|
82
|
+
onBlur,
|
|
83
|
+
amountOfMonths
|
|
76
84
|
} = _b, others = __objRest(_b, [
|
|
77
85
|
"value",
|
|
78
86
|
"onChange",
|
|
@@ -103,11 +111,22 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
103
111
|
"dropdownType",
|
|
104
112
|
"clearable",
|
|
105
113
|
"disabled",
|
|
106
|
-
"clearButtonLabel"
|
|
114
|
+
"clearButtonLabel",
|
|
115
|
+
"fixOnBlur",
|
|
116
|
+
"allowFreeInput",
|
|
117
|
+
"dateParser",
|
|
118
|
+
"firstDayOfWeek",
|
|
119
|
+
"onFocus",
|
|
120
|
+
"onBlur",
|
|
121
|
+
"amountOfMonths"
|
|
107
122
|
]);
|
|
123
|
+
const theme = core.useMantineTheme();
|
|
124
|
+
const dateFormat = inputFormat || theme.dateFormat;
|
|
108
125
|
const [dropdownOpened, setDropdownOpened] = React.useState(initiallyOpened);
|
|
126
|
+
const [calendarMonth, setCalendarMonth] = React.useState(initialMonth || new Date());
|
|
109
127
|
const calendarSize = size === "lg" || size === "xl" ? "md" : "sm";
|
|
110
128
|
const inputRef = React.useRef();
|
|
129
|
+
const [lastValidValue, setLastValidValue] = React.useState(defaultValue != null ? defaultValue : null);
|
|
111
130
|
const [_value, setValue] = hooks.useUncontrolled({
|
|
112
131
|
value,
|
|
113
132
|
defaultValue,
|
|
@@ -115,16 +134,64 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
115
134
|
onChange,
|
|
116
135
|
rule: (val) => val === null || val instanceof Date
|
|
117
136
|
});
|
|
137
|
+
const [focused, setFocused] = React.useState(false);
|
|
138
|
+
const [inputState, setInputState] = React.useState(_value instanceof Date ? hooks.upperFirst(dayjs__default(_value).locale(locale).format(dateFormat)) : "");
|
|
139
|
+
React.useEffect(() => {
|
|
140
|
+
if (value === null && !focused) {
|
|
141
|
+
setInputState("");
|
|
142
|
+
}
|
|
143
|
+
if (value instanceof Date && !focused) {
|
|
144
|
+
setInputState(dayjs__default(value).locale(locale).format(dateFormat));
|
|
145
|
+
}
|
|
146
|
+
}, [value, focused]);
|
|
118
147
|
const handleValueChange = (date) => {
|
|
119
148
|
setValue(date);
|
|
149
|
+
setInputState(hooks.upperFirst(dayjs__default(date).locale(locale).format(dateFormat)));
|
|
120
150
|
closeCalendarOnChange && setDropdownOpened(false);
|
|
151
|
+
window.setTimeout(() => {
|
|
152
|
+
var _a2;
|
|
153
|
+
return (_a2 = inputRef.current) == null ? void 0 : _a2.focus();
|
|
154
|
+
}, 0);
|
|
121
155
|
};
|
|
122
156
|
const handleClear = () => {
|
|
123
157
|
var _a2;
|
|
124
158
|
setValue(null);
|
|
159
|
+
setLastValidValue(null);
|
|
160
|
+
setInputState("");
|
|
161
|
+
setDropdownOpened(true);
|
|
125
162
|
(_a2 = inputRef.current) == null ? void 0 : _a2.focus();
|
|
126
163
|
};
|
|
127
|
-
|
|
164
|
+
const parseDate = (date) => dateParser ? dateParser(date) : dayjs__default(date, dateFormat, locale).toDate();
|
|
165
|
+
const handleInputBlur = (event) => {
|
|
166
|
+
typeof onBlur === "function" && onBlur(event);
|
|
167
|
+
setFocused(false);
|
|
168
|
+
const date = typeof _value === "string" ? parseDate(_value) : _value;
|
|
169
|
+
if (dayjs__default(date).isValid()) {
|
|
170
|
+
setValue(date);
|
|
171
|
+
setLastValidValue(date);
|
|
172
|
+
setInputState(hooks.upperFirst(dayjs__default(date).locale(locale).format(dateFormat)));
|
|
173
|
+
} else if (fixOnBlur) {
|
|
174
|
+
setValue(lastValidValue);
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
const handleInputFocus = (event) => {
|
|
178
|
+
typeof onFocus === "function" && onFocus(event);
|
|
179
|
+
setFocused(true);
|
|
180
|
+
};
|
|
181
|
+
const handleChange = (event) => {
|
|
182
|
+
setDropdownOpened(true);
|
|
183
|
+
const date = parseDate(event.target.value);
|
|
184
|
+
if (dayjs__default(date).isValid()) {
|
|
185
|
+
setValue(date);
|
|
186
|
+
setLastValidValue(date);
|
|
187
|
+
setInputState(event.target.value);
|
|
188
|
+
setCalendarMonth(date);
|
|
189
|
+
} else {
|
|
190
|
+
setInputState(event.target.value);
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
return /* @__PURE__ */ React__default.createElement(DatePickerBase.DatePickerBase, __spreadValues({
|
|
194
|
+
allowFreeInput,
|
|
128
195
|
dropdownOpened,
|
|
129
196
|
setDropdownOpened,
|
|
130
197
|
shadow,
|
|
@@ -133,8 +200,12 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
133
200
|
size,
|
|
134
201
|
styles,
|
|
135
202
|
classNames,
|
|
136
|
-
|
|
137
|
-
|
|
203
|
+
onChange: handleChange,
|
|
204
|
+
onBlur: handleInputBlur,
|
|
205
|
+
onFocus: handleInputFocus,
|
|
206
|
+
name,
|
|
207
|
+
inputLabel: inputState,
|
|
208
|
+
__staticSelector: "DatePicker",
|
|
138
209
|
dropdownType,
|
|
139
210
|
clearable: clearable && !!_value && !disabled,
|
|
140
211
|
clearButtonLabel,
|
|
@@ -146,11 +217,13 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
146
217
|
locale,
|
|
147
218
|
nextMonthLabel,
|
|
148
219
|
previousMonthLabel,
|
|
149
|
-
|
|
150
|
-
|
|
220
|
+
month: allowFreeInput ? calendarMonth : void 0,
|
|
221
|
+
initialMonth: initialMonth || (_value instanceof Date ? _value : new Date()),
|
|
222
|
+
onMonthChange: setCalendarMonth,
|
|
223
|
+
value: _value instanceof Date ? _value : dayjs__default(_value).toDate(),
|
|
151
224
|
onChange: handleValueChange,
|
|
152
225
|
labelFormat,
|
|
153
|
-
withSelect,
|
|
226
|
+
withSelect: withSelect && !allowFreeInput,
|
|
154
227
|
yearsRange,
|
|
155
228
|
dayClassName,
|
|
156
229
|
dayStyle,
|
|
@@ -158,13 +231,12 @@ const DatePicker = React.forwardRef((_a, ref) => {
|
|
|
158
231
|
minDate,
|
|
159
232
|
maxDate,
|
|
160
233
|
excludeDate,
|
|
161
|
-
__staticSelector: "
|
|
234
|
+
__staticSelector: "DatePicker",
|
|
162
235
|
fullWidth: dropdownType === "modal",
|
|
163
|
-
size: dropdownType === "modal" ? "lg" : calendarSize
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
value: _value instanceof Date ? _value.toISOString() : ""
|
|
236
|
+
size: dropdownType === "modal" ? "lg" : calendarSize,
|
|
237
|
+
firstDayOfWeek,
|
|
238
|
+
preventFocus: allowFreeInput,
|
|
239
|
+
amountOfMonths
|
|
168
240
|
}));
|
|
169
241
|
});
|
|
170
242
|
DatePicker.displayName = "@mantine/dates/DatePicker";
|