@mui/x-date-pickers 6.3.1 → 6.5.0
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/AdapterDateFns/AdapterDateFns.d.ts +3 -7
- package/AdapterDateFns/AdapterDateFns.js +2 -8
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.d.ts +3 -7
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -8
- package/AdapterDayjs/AdapterDayjs.d.ts +3 -9
- package/AdapterDayjs/AdapterDayjs.js +2 -3
- package/AdapterLuxon/AdapterLuxon.d.ts +3 -8
- package/AdapterLuxon/AdapterLuxon.js +6 -5
- package/AdapterMoment/AdapterMoment.d.ts +3 -9
- package/AdapterMoment/AdapterMoment.js +2 -2
- package/AdapterMomentHijri/AdapterMomentHijri.d.ts +5 -14
- package/AdapterMomentHijri/AdapterMomentHijri.js +4 -10
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +6 -16
- package/AdapterMomentJalaali/AdapterMomentJalaali.js +15 -12
- package/CHANGELOG.md +113 -0
- package/DateCalendar/DateCalendar.js +2 -2
- package/DateCalendar/DayCalendar.js +11 -10
- package/DateCalendar/PickersCalendarHeader.js +2 -2
- package/DateCalendar/useCalendarState.d.ts +1 -1
- package/DateField/DateField.types.d.ts +1 -1
- package/DateField/index.d.ts +1 -1
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +9 -46
- package/DatePicker/shared.d.ts +1 -1
- package/DateTimeField/DateTimeField.types.d.ts +1 -1
- package/DateTimeField/index.d.ts +1 -1
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +9 -60
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -2
- package/DesktopTimePicker/DesktopTimePicker.js +1 -2
- package/LocalizationProvider/LocalizationProvider.d.ts +10 -8
- package/LocalizationProvider/LocalizationProvider.js +3 -3
- package/MobileDateTimePicker/MobileDateTimePicker.js +1 -2
- package/MobileTimePicker/MobileTimePicker.js +1 -2
- package/MonthCalendar/MonthCalendar.js +2 -2
- package/TimeField/index.d.ts +1 -1
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +9 -50
- package/index.js +1 -1
- package/internals/hooks/useField/useField.js +10 -2
- package/internals/hooks/useField/useField.utils.d.ts +13 -13
- package/internals/hooks/useField/useField.utils.js +3 -2
- package/internals/hooks/useUtils.d.ts +1 -1
- package/internals/hooks/useViews.js +2 -0
- package/internals/index.d.ts +2 -1
- package/internals/index.js +2 -1
- package/internals/utils/date-utils.d.ts +6 -4
- package/internals/utils/date-utils.js +16 -0
- package/internals/utils/fields.d.ts +5 -0
- package/internals/utils/fields.js +28 -0
- package/internals/utils/time-utils.d.ts +4 -4
- package/internals/utils/validation/extractValidationProps.d.ts +5 -1
- package/internals/utils/validation/extractValidationProps.js +4 -1
- package/legacy/AdapterDateFns/AdapterDateFns.js +2 -8
- package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -8
- package/legacy/AdapterDayjs/AdapterDayjs.js +2 -3
- package/legacy/AdapterLuxon/AdapterLuxon.js +6 -5
- package/legacy/AdapterMoment/AdapterMoment.js +2 -2
- package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +4 -10
- package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +15 -12
- package/legacy/DateCalendar/DateCalendar.js +2 -2
- package/legacy/DateCalendar/DayCalendar.js +11 -10
- package/legacy/DateCalendar/PickersCalendarHeader.js +2 -2
- package/legacy/DateField/useDateField.js +8 -44
- package/legacy/DateTimeField/useDateTimeField.js +8 -60
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -2
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +1 -2
- package/legacy/LocalizationProvider/LocalizationProvider.js +3 -3
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +1 -2
- package/legacy/MobileTimePicker/MobileTimePicker.js +1 -2
- package/legacy/MonthCalendar/MonthCalendar.js +2 -2
- package/legacy/TimeField/useTimeField.js +8 -48
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/useField/useField.js +12 -4
- package/legacy/internals/hooks/useField/useField.utils.js +5 -4
- package/legacy/internals/hooks/useViews.js +2 -0
- package/legacy/internals/index.js +2 -1
- package/legacy/internals/utils/date-utils.js +16 -0
- package/legacy/internals/utils/fields.js +28 -0
- package/legacy/internals/utils/validation/extractValidationProps.js +4 -1
- package/legacy/locales/csCZ.js +3 -3
- package/legacy/locales/index.js +1 -0
- package/legacy/locales/skSK.js +93 -0
- package/legacy/locales/ukUA.js +3 -1
- package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.js +2 -7
- package/legacy/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +2 -0
- package/legacy/tests/describeGregorianAdapter/index.js +2 -1
- package/legacy/tests/describeGregorianAdapter/testCalculations.js +272 -200
- package/legacy/tests/describeGregorianAdapter/testLocalization.js +34 -0
- package/legacy/tests/describeHijriAdapter/describeHijriAdapter.js +1 -3
- package/legacy/tests/describeHijriAdapter/testCalculations.js +101 -28
- package/legacy/tests/describeHijriAdapter/testLocalization.js +8 -0
- package/legacy/tests/describeJalaliAdapter/describeJalaliAdapter.js +2 -6
- package/legacy/tests/describeJalaliAdapter/testCalculations.js +157 -24
- package/legacy/tests/describeJalaliAdapter/testLocalization.js +8 -0
- package/legacy/tests/describeValue/describeValue.js +30 -3
- package/legacy/tests/describeValue/testControlledUnControlled.js +27 -21
- package/legacy/tests/describeValue/testPickerActionBar.js +40 -36
- package/legacy/tests/describeValue/testPickerOpenCloseLifeCycle.js +92 -71
- package/locales/beBY.d.ts +3 -3
- package/locales/caES.d.ts +3 -3
- package/locales/csCZ.d.ts +3 -3
- package/locales/csCZ.js +3 -3
- package/locales/daDK.d.ts +3 -3
- package/locales/deDE.d.ts +3 -3
- package/locales/enUS.d.ts +3 -3
- package/locales/esES.d.ts +3 -3
- package/locales/faIR.d.ts +3 -3
- package/locales/fiFI.d.ts +3 -3
- package/locales/frFR.d.ts +3 -3
- package/locales/heIL.d.ts +3 -3
- package/locales/huHU.d.ts +3 -3
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/isIS.d.ts +3 -3
- package/locales/itIT.d.ts +3 -3
- package/locales/jaJP.d.ts +3 -3
- package/locales/koKR.d.ts +3 -3
- package/locales/kzKZ.d.ts +3 -3
- package/locales/nbNO.d.ts +3 -3
- package/locales/nlNL.d.ts +3 -3
- package/locales/plPL.d.ts +3 -3
- package/locales/ptBR.d.ts +3 -3
- package/locales/ruRU.d.ts +3 -3
- package/locales/skSK.d.ts +53 -0
- package/locales/skSK.js +61 -0
- package/locales/svSE.d.ts +3 -3
- package/locales/trTR.d.ts +3 -3
- package/locales/ukUA.d.ts +3 -3
- package/locales/ukUA.js +1 -1
- package/locales/urPK.d.ts +3 -3
- package/locales/utils/getPickersLocalization.d.ts +3 -3
- package/locales/zhCN.d.ts +3 -3
- package/models/adapters.d.ts +43 -35
- package/modern/AdapterDateFns/AdapterDateFns.js +2 -8
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -8
- package/modern/AdapterDayjs/AdapterDayjs.js +2 -2
- package/modern/AdapterLuxon/AdapterLuxon.js +6 -5
- package/modern/AdapterMoment/AdapterMoment.js +2 -2
- package/modern/AdapterMomentHijri/AdapterMomentHijri.js +4 -10
- package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +15 -12
- package/modern/DateCalendar/DateCalendar.js +2 -2
- package/modern/DateCalendar/DayCalendar.js +11 -10
- package/modern/DateCalendar/PickersCalendarHeader.js +2 -2
- package/modern/DateField/useDateField.js +9 -46
- package/modern/DateTimeField/useDateTimeField.js +9 -60
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -2
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -2
- package/modern/LocalizationProvider/LocalizationProvider.js +3 -3
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -2
- package/modern/MobileTimePicker/MobileTimePicker.js +1 -2
- package/modern/MonthCalendar/MonthCalendar.js +2 -2
- package/modern/TimeField/useTimeField.js +9 -50
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useField/useField.js +10 -2
- package/modern/internals/hooks/useField/useField.utils.js +3 -2
- package/modern/internals/hooks/useViews.js +2 -0
- package/modern/internals/index.js +2 -1
- package/modern/internals/utils/date-utils.js +16 -0
- package/modern/internals/utils/fields.js +28 -0
- package/modern/internals/utils/validation/extractValidationProps.js +4 -1
- package/modern/locales/csCZ.js +3 -3
- package/modern/locales/index.js +1 -0
- package/modern/locales/skSK.js +58 -0
- package/modern/locales/ukUA.js +1 -1
- package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.js +2 -7
- package/modern/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +2 -0
- package/modern/tests/describeGregorianAdapter/index.js +2 -1
- package/modern/tests/describeGregorianAdapter/testCalculations.js +272 -198
- package/modern/tests/describeGregorianAdapter/testLocalization.js +34 -0
- package/modern/tests/describeHijriAdapter/describeHijriAdapter.js +1 -3
- package/modern/tests/describeHijriAdapter/testCalculations.js +101 -28
- package/modern/tests/describeHijriAdapter/testLocalization.js +8 -0
- package/modern/tests/describeJalaliAdapter/describeJalaliAdapter.js +2 -6
- package/modern/tests/describeJalaliAdapter/testCalculations.js +157 -24
- package/modern/tests/describeJalaliAdapter/testLocalization.js +8 -0
- package/modern/tests/describeValue/describeValue.js +29 -3
- package/modern/tests/describeValue/testControlledUnControlled.js +23 -15
- package/modern/tests/describeValue/testPickerActionBar.js +21 -14
- package/modern/tests/describeValue/testPickerOpenCloseLifeCycle.js +79 -51
- package/node/AdapterDateFns/AdapterDateFns.js +2 -8
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +2 -8
- package/node/AdapterDayjs/AdapterDayjs.js +2 -2
- package/node/AdapterLuxon/AdapterLuxon.js +6 -5
- package/node/AdapterMoment/AdapterMoment.js +2 -2
- package/node/AdapterMomentHijri/AdapterMomentHijri.js +4 -10
- package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +15 -12
- package/node/DateCalendar/DateCalendar.js +1 -1
- package/node/DateCalendar/DayCalendar.js +11 -10
- package/node/DateCalendar/PickersCalendarHeader.js +2 -2
- package/node/DateField/useDateField.js +9 -46
- package/node/DateTimeField/useDateTimeField.js +9 -60
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -2
- package/node/DesktopTimePicker/DesktopTimePicker.js +1 -2
- package/node/LocalizationProvider/LocalizationProvider.js +5 -5
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -2
- package/node/MobileTimePicker/MobileTimePicker.js +1 -2
- package/node/MonthCalendar/MonthCalendar.js +1 -1
- package/node/TimeField/useTimeField.js +9 -50
- package/node/index.js +1 -1
- package/node/internals/hooks/useField/useField.js +10 -2
- package/node/internals/hooks/useField/useField.utils.js +3 -2
- package/node/internals/hooks/useViews.js +2 -0
- package/node/internals/index.js +13 -0
- package/node/internals/utils/date-utils.js +20 -2
- package/node/internals/utils/fields.js +36 -0
- package/node/internals/utils/validation/extractValidationProps.js +8 -2
- package/node/locales/csCZ.js +3 -3
- package/node/locales/index.js +11 -0
- package/node/locales/skSK.js +65 -0
- package/node/locales/ukUA.js +1 -1
- package/node/tests/describeGregorianAdapter/describeGregorianAdapter.js +3 -9
- package/node/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +10 -0
- package/node/tests/describeGregorianAdapter/index.js +4 -3
- package/node/tests/describeGregorianAdapter/testCalculations.js +272 -198
- package/node/tests/describeGregorianAdapter/testLocalization.js +35 -0
- package/node/tests/describeHijriAdapter/describeHijriAdapter.js +1 -3
- package/node/tests/describeHijriAdapter/testCalculations.js +100 -27
- package/node/tests/describeHijriAdapter/testLocalization.js +8 -0
- package/node/tests/describeJalaliAdapter/describeJalaliAdapter.js +2 -6
- package/node/tests/describeJalaliAdapter/testCalculations.js +156 -23
- package/node/tests/describeJalaliAdapter/testLocalization.js +8 -0
- package/node/tests/describeValue/describeValue.js +29 -3
- package/node/tests/describeValue/testControlledUnControlled.js +23 -15
- package/node/tests/describeValue/testPickerActionBar.js +21 -14
- package/node/tests/describeValue/testPickerOpenCloseLifeCycle.js +79 -51
- package/package.json +2 -2
- package/tests/describeGregorianAdapter/describeGregorianAdapter.js +2 -7
- package/tests/describeGregorianAdapter/describeGregorianAdapter.utils.js +2 -0
- package/tests/describeGregorianAdapter/index.js +2 -1
- package/tests/describeGregorianAdapter/testCalculations.js +272 -198
- package/tests/describeGregorianAdapter/testLocalization.js +34 -0
- package/tests/describeHijriAdapter/describeHijriAdapter.js +1 -3
- package/tests/describeHijriAdapter/testCalculations.js +101 -28
- package/tests/describeHijriAdapter/testLocalization.js +8 -0
- package/tests/describeJalaliAdapter/describeJalaliAdapter.js +2 -6
- package/tests/describeJalaliAdapter/testCalculations.js +157 -24
- package/tests/describeJalaliAdapter/testLocalization.js +8 -0
- package/tests/describeValue/describeValue.js +29 -3
- package/tests/describeValue/testControlledUnControlled.js +23 -15
- package/tests/describeValue/testPickerActionBar.js +21 -14
- package/tests/describeValue/testPickerOpenCloseLifeCycle.js +79 -51
- package/themeAugmentation/props.d.ts +1 -1
|
@@ -216,6 +216,7 @@ export function DayCalendar(inProps) {
|
|
|
216
216
|
});
|
|
217
217
|
const classes = useUtilityClasses(props);
|
|
218
218
|
const theme = useTheme();
|
|
219
|
+
const isRTL = theme.direction === 'rtl';
|
|
219
220
|
const {
|
|
220
221
|
onFocusedDayChange,
|
|
221
222
|
className,
|
|
@@ -290,13 +291,13 @@ export function DayCalendar(inProps) {
|
|
|
290
291
|
break;
|
|
291
292
|
case 'ArrowLeft':
|
|
292
293
|
{
|
|
293
|
-
const newFocusedDayDefault = utils.addDays(day,
|
|
294
|
-
const nextAvailableMonth =
|
|
294
|
+
const newFocusedDayDefault = utils.addDays(day, isRTL ? 1 : -1);
|
|
295
|
+
const nextAvailableMonth = utils.addMonths(day, isRTL ? 1 : -1);
|
|
295
296
|
const closestDayToFocus = findClosestEnabledDate({
|
|
296
297
|
utils,
|
|
297
298
|
date: newFocusedDayDefault,
|
|
298
|
-
minDate:
|
|
299
|
-
maxDate:
|
|
299
|
+
minDate: isRTL ? newFocusedDayDefault : utils.startOfMonth(nextAvailableMonth),
|
|
300
|
+
maxDate: isRTL ? utils.endOfMonth(nextAvailableMonth) : newFocusedDayDefault,
|
|
300
301
|
isDateDisabled
|
|
301
302
|
});
|
|
302
303
|
focusDay(closestDayToFocus || newFocusedDayDefault);
|
|
@@ -305,13 +306,13 @@ export function DayCalendar(inProps) {
|
|
|
305
306
|
}
|
|
306
307
|
case 'ArrowRight':
|
|
307
308
|
{
|
|
308
|
-
const newFocusedDayDefault = utils.addDays(day,
|
|
309
|
-
const nextAvailableMonth =
|
|
309
|
+
const newFocusedDayDefault = utils.addDays(day, isRTL ? -1 : 1);
|
|
310
|
+
const nextAvailableMonth = utils.addMonths(day, isRTL ? -1 : 1);
|
|
310
311
|
const closestDayToFocus = findClosestEnabledDate({
|
|
311
312
|
utils,
|
|
312
313
|
date: newFocusedDayDefault,
|
|
313
|
-
minDate:
|
|
314
|
-
maxDate:
|
|
314
|
+
minDate: isRTL ? utils.startOfMonth(nextAvailableMonth) : newFocusedDayDefault,
|
|
315
|
+
maxDate: isRTL ? newFocusedDayDefault : utils.endOfMonth(nextAvailableMonth),
|
|
315
316
|
isDateDisabled
|
|
316
317
|
});
|
|
317
318
|
focusDay(closestDayToFocus || newFocusedDayDefault);
|
|
@@ -327,11 +328,11 @@ export function DayCalendar(inProps) {
|
|
|
327
328
|
event.preventDefault();
|
|
328
329
|
break;
|
|
329
330
|
case 'PageUp':
|
|
330
|
-
focusDay(utils.
|
|
331
|
+
focusDay(utils.addMonths(day, 1));
|
|
331
332
|
event.preventDefault();
|
|
332
333
|
break;
|
|
333
334
|
case 'PageDown':
|
|
334
|
-
focusDay(utils.
|
|
335
|
+
focusDay(utils.addMonths(day, -1));
|
|
335
336
|
event.preventDefault();
|
|
336
337
|
break;
|
|
337
338
|
default:
|
|
@@ -141,8 +141,8 @@ export function PickersCalendarHeader(inProps) {
|
|
|
141
141
|
className: classes.switchViewIcon
|
|
142
142
|
}),
|
|
143
143
|
switchViewIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded);
|
|
144
|
-
const selectNextMonth = () => onMonthChange(utils.
|
|
145
|
-
const selectPreviousMonth = () => onMonthChange(utils.
|
|
144
|
+
const selectNextMonth = () => onMonthChange(utils.addMonths(month, 1), 'left');
|
|
145
|
+
const selectPreviousMonth = () => onMonthChange(utils.addMonths(month, -1), 'right');
|
|
146
146
|
const isNextMonthDisabled = useNextMonthDisabled(month, {
|
|
147
147
|
disableFuture,
|
|
148
148
|
maxDate
|
|
@@ -22,7 +22,7 @@ interface ChangeFocusedDayPayload<TDate> {
|
|
|
22
22
|
*/
|
|
23
23
|
withoutMonthSwitchingAnimation?: boolean;
|
|
24
24
|
}
|
|
25
|
-
export declare const createCalendarStateReducer: <TDate extends unknown>(reduceAnimations: boolean, disableSwitchToMonthOnDayFocus: boolean, utils: MuiPickersAdapter<TDate>) => (state: CalendarState<TDate>, action: {
|
|
25
|
+
export declare const createCalendarStateReducer: <TDate extends unknown>(reduceAnimations: boolean, disableSwitchToMonthOnDayFocus: boolean, utils: MuiPickersAdapter<TDate, any>) => (state: CalendarState<TDate>, action: {
|
|
26
26
|
type: "finishMonthSwitchingAnimation";
|
|
27
27
|
} | ReducerAction<"changeMonth", ChangeMonthPayload<TDate>> | ReducerAction<"changeFocusedDay", ChangeFocusedDayPayload<TDate>>) => CalendarState<TDate>;
|
|
28
28
|
interface CalendarStateInput<TDate> extends Pick<DateCalendarDefaultizedProps<TDate>, 'value' | 'defaultCalendarMonth' | 'disableFuture' | 'disablePast' | 'minDate' | 'maxDate' | 'onMonthChange' | 'reduceAnimations' | 'shouldDisableDate'> {
|
|
@@ -13,7 +13,7 @@ export interface UseDateFieldParams<TDate, TChildProps extends {}> {
|
|
|
13
13
|
}
|
|
14
14
|
export interface UseDateFieldProps<TDate> extends MakeOptional<UseFieldInternalProps<TDate | null, FieldSection, DateValidationError>, 'format'>, DayValidationProps<TDate>, MonthValidationProps<TDate>, YearValidationProps<TDate>, BaseDateValidationProps<TDate> {
|
|
15
15
|
}
|
|
16
|
-
export type UseDateFieldDefaultizedProps<TDate> = DefaultizedProps<UseDateFieldProps<TDate>, keyof BaseDateValidationProps<
|
|
16
|
+
export type UseDateFieldDefaultizedProps<TDate> = DefaultizedProps<UseDateFieldProps<TDate>, keyof BaseDateValidationProps<any> | 'format'>;
|
|
17
17
|
export type UseDateFieldComponentProps<TDate, TChildProps extends {}> = Omit<TChildProps, keyof UseDateFieldProps<TDate>> & UseDateFieldProps<TDate>;
|
|
18
18
|
export interface DateFieldProps<TDate> extends UseDateFieldComponentProps<TDate, FieldsTextFieldProps>, SlotsAndSlotProps<DateFieldSlotsComponent, DateFieldSlotsComponentsProps<TDate>> {
|
|
19
19
|
}
|
package/DateField/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { DateField } from './DateField';
|
|
2
2
|
export { useDateField as unstable_useDateField } from './useDateField';
|
|
3
|
-
export type { UseDateFieldProps, UseDateFieldComponentProps, DateFieldProps, } from './DateField.types';
|
|
3
|
+
export type { UseDateFieldProps, UseDateFieldComponentProps, DateFieldProps, UseDateFieldDefaultizedProps, } from './DateField.types';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseDateFieldProps, UseDateFieldParams } from './DateField.types';
|
|
2
|
-
export declare const useDateField: <TDate, TChildProps extends {}>({ props, inputRef, }: UseDateFieldParams<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps
|
|
2
|
+
export declare const useDateField: <TDate, TChildProps extends {}>({ props: inProps, inputRef, }: UseDateFieldParams<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps & Omit<UseDateFieldProps<TDate>, "format" | keyof import("../internals").BaseDateValidationProps<any>> & Required<Pick<UseDateFieldProps<TDate>, "format" | keyof import("../internals").BaseDateValidationProps<any>>>, keyof UseDateFieldProps<TDate>>>;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["value", "defaultValue", "format", "formatDensity", "shouldRespectLeadingZeros", "onChange", "readOnly", "onError", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "minDate", "maxDate", "disableFuture", "disablePast", "selectedSections", "onSelectedSectionsChange", "unstableFieldRef"];
|
|
4
2
|
import { singleItemFieldValueManager, singleItemValueManager } from '../internals/utils/valueManagers';
|
|
5
3
|
import { useField } from '../internals/hooks/useField';
|
|
6
4
|
import { validateDate } from '../internals/utils/validation/validateDate';
|
|
7
5
|
import { applyDefaultDate } from '../internals/utils/date-utils';
|
|
8
6
|
import { useUtils, useDefaultDates } from '../internals/hooks/useUtils';
|
|
7
|
+
import { splitFieldInternalAndForwardedProps } from '../internals/utils/fields';
|
|
9
8
|
const useDefaultizedDateField = props => {
|
|
10
9
|
var _props$disablePast, _props$disableFuture, _props$format;
|
|
11
10
|
const utils = useUtils();
|
|
@@ -19,54 +18,18 @@ const useDefaultizedDateField = props => {
|
|
|
19
18
|
});
|
|
20
19
|
};
|
|
21
20
|
export const useDateField = ({
|
|
22
|
-
props,
|
|
21
|
+
props: inProps,
|
|
23
22
|
inputRef
|
|
24
23
|
}) => {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
formatDensity,
|
|
31
|
-
shouldRespectLeadingZeros,
|
|
32
|
-
onChange,
|
|
33
|
-
readOnly,
|
|
34
|
-
onError,
|
|
35
|
-
shouldDisableDate,
|
|
36
|
-
shouldDisableMonth,
|
|
37
|
-
shouldDisableYear,
|
|
38
|
-
minDate,
|
|
39
|
-
maxDate,
|
|
40
|
-
disableFuture,
|
|
41
|
-
disablePast,
|
|
42
|
-
selectedSections,
|
|
43
|
-
onSelectedSectionsChange,
|
|
44
|
-
unstableFieldRef
|
|
45
|
-
} = _useDefaultizedDateFi,
|
|
46
|
-
other = _objectWithoutPropertiesLoose(_useDefaultizedDateFi, _excluded);
|
|
24
|
+
const props = useDefaultizedDateField(inProps);
|
|
25
|
+
const {
|
|
26
|
+
forwardedProps,
|
|
27
|
+
internalProps
|
|
28
|
+
} = splitFieldInternalAndForwardedProps(props, 'date');
|
|
47
29
|
return useField({
|
|
48
30
|
inputRef,
|
|
49
|
-
forwardedProps
|
|
50
|
-
internalProps
|
|
51
|
-
value,
|
|
52
|
-
defaultValue,
|
|
53
|
-
format,
|
|
54
|
-
formatDensity,
|
|
55
|
-
shouldRespectLeadingZeros,
|
|
56
|
-
onChange,
|
|
57
|
-
readOnly,
|
|
58
|
-
onError,
|
|
59
|
-
shouldDisableDate,
|
|
60
|
-
shouldDisableMonth,
|
|
61
|
-
shouldDisableYear,
|
|
62
|
-
minDate,
|
|
63
|
-
maxDate,
|
|
64
|
-
disableFuture,
|
|
65
|
-
disablePast,
|
|
66
|
-
selectedSections,
|
|
67
|
-
onSelectedSectionsChange,
|
|
68
|
-
unstableFieldRef
|
|
69
|
-
},
|
|
31
|
+
forwardedProps,
|
|
32
|
+
internalProps,
|
|
70
33
|
valueManager: singleItemValueManager,
|
|
71
34
|
fieldValueManager: singleItemFieldValueManager,
|
|
72
35
|
validator: validateDate,
|
package/DatePicker/shared.d.ts
CHANGED
|
@@ -52,6 +52,6 @@ type UseDatePickerDefaultizedProps<TDate, Props extends BaseDatePickerProps<TDat
|
|
|
52
52
|
export declare const getDatePickerFieldFormat: (utils: MuiPickersAdapter<any>, { format, views }: {
|
|
53
53
|
format?: string | undefined;
|
|
54
54
|
views: readonly DateView[];
|
|
55
|
-
}) =>
|
|
55
|
+
}) => string | undefined;
|
|
56
56
|
export declare function useDatePickerDefaultizedProps<TDate, Props extends BaseDatePickerProps<TDate>>(props: Props, name: string): UseDatePickerDefaultizedProps<TDate, Props>;
|
|
57
57
|
export {};
|
|
@@ -18,7 +18,7 @@ export interface UseDateTimeFieldProps<TDate> extends MakeOptional<UseFieldInter
|
|
|
18
18
|
*/
|
|
19
19
|
ampm?: boolean;
|
|
20
20
|
}
|
|
21
|
-
export type UseDateTimeFieldDefaultizedProps<TDate> = DefaultizedProps<UseDateTimeFieldProps<TDate>, keyof BaseDateValidationProps<
|
|
21
|
+
export type UseDateTimeFieldDefaultizedProps<TDate> = DefaultizedProps<UseDateTimeFieldProps<TDate>, keyof BaseDateValidationProps<any> | keyof BaseTimeValidationProps | 'format'>;
|
|
22
22
|
export type UseDateTimeFieldComponentProps<TDate, TChildProps extends {}> = Omit<TChildProps, keyof UseDateTimeFieldProps<TDate>> & UseDateTimeFieldProps<TDate>;
|
|
23
23
|
export interface DateTimeFieldProps<TDate> extends UseDateTimeFieldComponentProps<TDate, FieldsTextFieldProps> {
|
|
24
24
|
/**
|
package/DateTimeField/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { DateTimeField } from './DateTimeField';
|
|
2
2
|
export { useDateTimeField as unstable_useDateTimeField } from './useDateTimeField';
|
|
3
|
-
export type { UseDateTimeFieldProps, UseDateTimeFieldComponentProps, DateTimeFieldProps, } from './DateTimeField.types';
|
|
3
|
+
export type { UseDateTimeFieldProps, UseDateTimeFieldComponentProps, DateTimeFieldProps, UseDateTimeFieldDefaultizedProps, } from './DateTimeField.types';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseDateTimeFieldProps, UseDateTimeFieldParams } from './DateTimeField.types';
|
|
2
|
-
export declare const useDateTimeField: <TDate, TChildProps extends {}>({ props, inputRef, }: UseDateTimeFieldParams<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps
|
|
2
|
+
export declare const useDateTimeField: <TDate, TChildProps extends {}>({ props: inProps, inputRef, }: UseDateTimeFieldParams<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps & Omit<UseDateTimeFieldProps<TDate>, "format" | "disableFuture" | "disablePast" | "maxDate" | "minDate"> & Required<Pick<UseDateTimeFieldProps<TDate>, "format" | "disableFuture" | "disablePast" | "maxDate" | "minDate">>, keyof UseDateTimeFieldProps<any>>>;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["value", "defaultValue", "format", "formatDensity", "shouldRespectLeadingZeros", "onChange", "readOnly", "onError", "shouldDisableDate", "shouldDisableMonth", "shouldDisableYear", "minDate", "maxDate", "disableFuture", "disablePast", "minTime", "maxTime", "minDateTime", "maxDateTime", "minutesStep", "disableIgnoringDatePartForTimeValidation", "shouldDisableClock", "shouldDisableTime", "selectedSections", "onSelectedSectionsChange", "ampm", "unstableFieldRef"];
|
|
4
2
|
import { singleItemFieldValueManager, singleItemValueManager } from '../internals/utils/valueManagers';
|
|
5
3
|
import { useField } from '../internals/hooks/useField';
|
|
6
4
|
import { validateDateTime } from '../internals/utils/validation/validateDateTime';
|
|
7
5
|
import { applyDefaultDate } from '../internals/utils/date-utils';
|
|
8
6
|
import { useUtils, useDefaultDates } from '../internals/hooks/useUtils';
|
|
7
|
+
import { splitFieldInternalAndForwardedProps } from '../internals/utils/fields';
|
|
9
8
|
const useDefaultizedDateTimeField = props => {
|
|
10
9
|
var _props$ampm, _props$disablePast, _props$disableFuture, _props$format, _props$minDateTime, _props$maxDateTime, _props$minDateTime2, _props$maxDateTime2;
|
|
11
10
|
const utils = useUtils();
|
|
@@ -24,68 +23,18 @@ const useDefaultizedDateTimeField = props => {
|
|
|
24
23
|
});
|
|
25
24
|
};
|
|
26
25
|
export const useDateTimeField = ({
|
|
27
|
-
props,
|
|
26
|
+
props: inProps,
|
|
28
27
|
inputRef
|
|
29
28
|
}) => {
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
formatDensity,
|
|
36
|
-
shouldRespectLeadingZeros,
|
|
37
|
-
onChange,
|
|
38
|
-
readOnly,
|
|
39
|
-
onError,
|
|
40
|
-
shouldDisableDate,
|
|
41
|
-
shouldDisableMonth,
|
|
42
|
-
shouldDisableYear,
|
|
43
|
-
minDate,
|
|
44
|
-
maxDate,
|
|
45
|
-
disableFuture,
|
|
46
|
-
disablePast,
|
|
47
|
-
minTime,
|
|
48
|
-
maxTime,
|
|
49
|
-
minutesStep,
|
|
50
|
-
disableIgnoringDatePartForTimeValidation,
|
|
51
|
-
shouldDisableClock,
|
|
52
|
-
shouldDisableTime,
|
|
53
|
-
selectedSections,
|
|
54
|
-
onSelectedSectionsChange,
|
|
55
|
-
ampm,
|
|
56
|
-
unstableFieldRef
|
|
57
|
-
} = _useDefaultizedDateTi,
|
|
58
|
-
other = _objectWithoutPropertiesLoose(_useDefaultizedDateTi, _excluded);
|
|
29
|
+
const props = useDefaultizedDateTimeField(inProps);
|
|
30
|
+
const {
|
|
31
|
+
forwardedProps,
|
|
32
|
+
internalProps
|
|
33
|
+
} = splitFieldInternalAndForwardedProps(props, 'date-time');
|
|
59
34
|
return useField({
|
|
60
35
|
inputRef,
|
|
61
|
-
forwardedProps
|
|
62
|
-
internalProps
|
|
63
|
-
value,
|
|
64
|
-
defaultValue,
|
|
65
|
-
format,
|
|
66
|
-
formatDensity,
|
|
67
|
-
shouldRespectLeadingZeros,
|
|
68
|
-
onChange,
|
|
69
|
-
readOnly,
|
|
70
|
-
onError,
|
|
71
|
-
shouldDisableDate,
|
|
72
|
-
shouldDisableMonth,
|
|
73
|
-
shouldDisableYear,
|
|
74
|
-
minDate,
|
|
75
|
-
maxDate,
|
|
76
|
-
disableFuture,
|
|
77
|
-
disablePast,
|
|
78
|
-
minTime,
|
|
79
|
-
maxTime,
|
|
80
|
-
minutesStep,
|
|
81
|
-
shouldDisableClock,
|
|
82
|
-
shouldDisableTime,
|
|
83
|
-
disableIgnoringDatePartForTimeValidation,
|
|
84
|
-
selectedSections,
|
|
85
|
-
onSelectedSectionsChange,
|
|
86
|
-
ampm,
|
|
87
|
-
unstableFieldRef
|
|
88
|
-
},
|
|
36
|
+
forwardedProps,
|
|
37
|
+
internalProps,
|
|
89
38
|
valueManager: singleItemValueManager,
|
|
90
39
|
fieldValueManager: singleItemFieldValueManager,
|
|
91
40
|
validator: validateDateTime,
|
|
@@ -39,8 +39,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
39
39
|
field: ownerState => {
|
|
40
40
|
var _defaultizedProps$slo;
|
|
41
41
|
return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
42
|
-
ref
|
|
43
|
-
ampm: defaultizedProps.ampm
|
|
42
|
+
ref
|
|
44
43
|
});
|
|
45
44
|
},
|
|
46
45
|
toolbar: _extends({
|
|
@@ -52,8 +52,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
52
52
|
field: ownerState => {
|
|
53
53
|
var _defaultizedProps$slo;
|
|
54
54
|
return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
55
|
-
ref
|
|
56
|
-
ampm: defaultizedProps.ampm
|
|
55
|
+
ref
|
|
57
56
|
});
|
|
58
57
|
},
|
|
59
58
|
toolbar: _extends({
|
|
@@ -13,13 +13,13 @@ export type MuiPickersAdapterContextNullableValue<TDate> = {
|
|
|
13
13
|
[K in keyof MuiPickersAdapterContextValue<TDate>]: MuiPickersAdapterContextValue<TDate>[K] | null;
|
|
14
14
|
};
|
|
15
15
|
export declare const MuiPickersAdapterContext: React.Context<MuiPickersAdapterContextNullableValue<any> | null>;
|
|
16
|
-
export interface LocalizationProviderProps<TDate> {
|
|
16
|
+
export interface LocalizationProviderProps<TDate, TLocale> {
|
|
17
17
|
children?: React.ReactNode;
|
|
18
18
|
/**
|
|
19
19
|
* Date library adapter class function.
|
|
20
20
|
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
|
|
21
21
|
*/
|
|
22
|
-
dateAdapter?: new (...args: any) => MuiPickersAdapter<TDate>;
|
|
22
|
+
dateAdapter?: new (...args: any) => MuiPickersAdapter<TDate, TLocale>;
|
|
23
23
|
/** Formats that are used for any child pickers */
|
|
24
24
|
dateFormats?: Partial<AdapterFormats>;
|
|
25
25
|
/**
|
|
@@ -29,18 +29,20 @@ export interface LocalizationProviderProps<TDate> {
|
|
|
29
29
|
* ```
|
|
30
30
|
*/
|
|
31
31
|
dateLibInstance?: any;
|
|
32
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* Locale for the date library you are using
|
|
33
34
|
*/
|
|
34
|
-
adapterLocale?:
|
|
35
|
+
adapterLocale?: TLocale;
|
|
35
36
|
/**
|
|
36
37
|
* Locale for components texts
|
|
37
38
|
*/
|
|
38
39
|
localeText?: PickersInputLocaleText<TDate>;
|
|
39
40
|
}
|
|
41
|
+
type LocalizationProviderComponent = (<TDate, TLocale>(props: LocalizationProviderProps<TDate, TLocale>) => JSX.Element) & {
|
|
42
|
+
propTypes?: any;
|
|
43
|
+
};
|
|
40
44
|
/**
|
|
41
45
|
* @ignore - do not document.
|
|
42
46
|
*/
|
|
43
|
-
export declare
|
|
44
|
-
export
|
|
45
|
-
var propTypes: any;
|
|
46
|
-
}
|
|
47
|
+
export declare const LocalizationProvider: LocalizationProviderComponent;
|
|
48
|
+
export {};
|
|
@@ -12,7 +12,7 @@ if (process.env.NODE_ENV !== 'production') {
|
|
|
12
12
|
/**
|
|
13
13
|
* @ignore - do not document.
|
|
14
14
|
*/
|
|
15
|
-
export function LocalizationProvider(inProps) {
|
|
15
|
+
export const LocalizationProvider = function LocalizationProvider(inProps) {
|
|
16
16
|
var _React$useContext;
|
|
17
17
|
const {
|
|
18
18
|
localeText: inLocaleText
|
|
@@ -77,7 +77,7 @@ export function LocalizationProvider(inProps) {
|
|
|
77
77
|
value: contextValue,
|
|
78
78
|
children: children
|
|
79
79
|
});
|
|
80
|
-
}
|
|
80
|
+
};
|
|
81
81
|
process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
|
|
82
82
|
// ----------------------------- Warning --------------------------------
|
|
83
83
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
@@ -86,7 +86,7 @@ process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
|
|
|
86
86
|
/**
|
|
87
87
|
* Locale for the date library you are using
|
|
88
88
|
*/
|
|
89
|
-
adapterLocale: PropTypes.
|
|
89
|
+
adapterLocale: PropTypes.any,
|
|
90
90
|
children: PropTypes.node,
|
|
91
91
|
/**
|
|
92
92
|
* Date library adapter class function.
|
|
@@ -37,8 +37,7 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
|
|
|
37
37
|
field: ownerState => {
|
|
38
38
|
var _defaultizedProps$slo;
|
|
39
39
|
return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
40
|
-
ref
|
|
41
|
-
ampm: defaultizedProps.ampm
|
|
40
|
+
ref
|
|
42
41
|
});
|
|
43
42
|
},
|
|
44
43
|
toolbar: _extends({
|
|
@@ -33,8 +33,7 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
|
|
|
33
33
|
field: ownerState => {
|
|
34
34
|
var _defaultizedProps$slo;
|
|
35
35
|
return _extends({}, resolveComponentProps((_defaultizedProps$slo = defaultizedProps.slotProps) == null ? void 0 : _defaultizedProps$slo.field, ownerState), extractValidationProps(defaultizedProps), {
|
|
36
|
-
ref
|
|
37
|
-
ampm: defaultizedProps.ampm
|
|
36
|
+
ref
|
|
38
37
|
});
|
|
39
38
|
},
|
|
40
39
|
toolbar: _extends({
|
|
@@ -10,7 +10,7 @@ import { unstable_useControlled as useControlled, unstable_composeClasses as com
|
|
|
10
10
|
import { PickersMonth } from './PickersMonth';
|
|
11
11
|
import { useUtils, useNow, useDefaultDates } from '../internals/hooks/useUtils';
|
|
12
12
|
import { getMonthCalendarUtilityClass } from './monthCalendarClasses';
|
|
13
|
-
import { applyDefaultDate } from '../internals/utils/date-utils';
|
|
13
|
+
import { applyDefaultDate, getMonthsInYear } from '../internals/utils/date-utils';
|
|
14
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
15
|
const useUtilityClasses = ownerState => {
|
|
16
16
|
const {
|
|
@@ -175,7 +175,7 @@ export const MonthCalendar = /*#__PURE__*/React.forwardRef(function MonthCalenda
|
|
|
175
175
|
className: clsx(classes.root, className),
|
|
176
176
|
ownerState: ownerState
|
|
177
177
|
}, other, {
|
|
178
|
-
children: utils
|
|
178
|
+
children: getMonthsInYear(utils, selectedDateOrStartOfMonth).map(month => {
|
|
179
179
|
const monthNumber = utils.getMonth(month);
|
|
180
180
|
const monthText = utils.format(month, 'monthShort');
|
|
181
181
|
const isSelected = monthNumber === selectedMonth;
|
package/TimeField/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { TimeField } from './TimeField';
|
|
2
2
|
export { useTimeField as unstable_useTimeField } from './useTimeField';
|
|
3
|
-
export type { UseTimeFieldProps, UseTimeFieldComponentProps, TimeFieldProps, } from './TimeField.types';
|
|
3
|
+
export type { UseTimeFieldProps, UseTimeFieldComponentProps, TimeFieldProps, UseTimeFieldDefaultizedProps, } from './TimeField.types';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { UseTimeFieldProps, UseTimeFieldParams } from './TimeField.types';
|
|
2
|
-
export declare const useTimeField: <TDate, TChildProps extends {}>({ props, inputRef, }: UseTimeFieldParams<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps
|
|
2
|
+
export declare const useTimeField: <TDate, TChildProps extends {}>({ props: inProps, inputRef, }: UseTimeFieldParams<TDate, TChildProps>) => import("../internals/hooks/useField").UseFieldResponse<Omit<TChildProps & Omit<UseTimeFieldProps<TDate>, "format" | keyof import("../internals").BaseTimeValidationProps> & Required<Pick<UseTimeFieldProps<TDate>, "format" | keyof import("../internals").BaseTimeValidationProps>>, keyof UseTimeFieldProps<any>>>;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["value", "defaultValue", "format", "formatDensity", "shouldRespectLeadingZeros", "onChange", "readOnly", "onError", "disableFuture", "disablePast", "minTime", "maxTime", "minutesStep", "shouldDisableClock", "shouldDisableTime", "disableIgnoringDatePartForTimeValidation", "selectedSections", "onSelectedSectionsChange", "ampm", "unstableFieldRef"];
|
|
4
2
|
import { singleItemFieldValueManager, singleItemValueManager } from '../internals/utils/valueManagers';
|
|
5
3
|
import { useField } from '../internals/hooks/useField';
|
|
6
4
|
import { validateTime } from '../internals/utils/validation/validateTime';
|
|
7
5
|
import { useUtils } from '../internals/hooks/useUtils';
|
|
6
|
+
import { splitFieldInternalAndForwardedProps } from '../internals/utils/fields';
|
|
8
7
|
const useDefaultizedTimeField = props => {
|
|
9
8
|
var _props$ampm, _props$disablePast, _props$disableFuture, _props$format;
|
|
10
9
|
const utils = useUtils();
|
|
@@ -17,58 +16,18 @@ const useDefaultizedTimeField = props => {
|
|
|
17
16
|
});
|
|
18
17
|
};
|
|
19
18
|
export const useTimeField = ({
|
|
20
|
-
props,
|
|
19
|
+
props: inProps,
|
|
21
20
|
inputRef
|
|
22
21
|
}) => {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
formatDensity,
|
|
29
|
-
shouldRespectLeadingZeros,
|
|
30
|
-
onChange,
|
|
31
|
-
readOnly,
|
|
32
|
-
onError,
|
|
33
|
-
disableFuture,
|
|
34
|
-
disablePast,
|
|
35
|
-
minTime,
|
|
36
|
-
maxTime,
|
|
37
|
-
minutesStep,
|
|
38
|
-
shouldDisableClock,
|
|
39
|
-
shouldDisableTime,
|
|
40
|
-
disableIgnoringDatePartForTimeValidation,
|
|
41
|
-
selectedSections,
|
|
42
|
-
onSelectedSectionsChange,
|
|
43
|
-
ampm,
|
|
44
|
-
unstableFieldRef
|
|
45
|
-
} = _useDefaultizedTimeFi,
|
|
46
|
-
other = _objectWithoutPropertiesLoose(_useDefaultizedTimeFi, _excluded);
|
|
22
|
+
const props = useDefaultizedTimeField(inProps);
|
|
23
|
+
const {
|
|
24
|
+
forwardedProps,
|
|
25
|
+
internalProps
|
|
26
|
+
} = splitFieldInternalAndForwardedProps(props, 'time');
|
|
47
27
|
return useField({
|
|
48
28
|
inputRef,
|
|
49
|
-
forwardedProps
|
|
50
|
-
internalProps
|
|
51
|
-
value,
|
|
52
|
-
defaultValue,
|
|
53
|
-
format,
|
|
54
|
-
formatDensity,
|
|
55
|
-
shouldRespectLeadingZeros,
|
|
56
|
-
onChange,
|
|
57
|
-
readOnly,
|
|
58
|
-
onError,
|
|
59
|
-
disableFuture,
|
|
60
|
-
disablePast,
|
|
61
|
-
minTime,
|
|
62
|
-
maxTime,
|
|
63
|
-
minutesStep,
|
|
64
|
-
shouldDisableClock,
|
|
65
|
-
shouldDisableTime,
|
|
66
|
-
disableIgnoringDatePartForTimeValidation,
|
|
67
|
-
selectedSections,
|
|
68
|
-
onSelectedSectionsChange,
|
|
69
|
-
ampm,
|
|
70
|
-
unstableFieldRef
|
|
71
|
-
},
|
|
29
|
+
forwardedProps,
|
|
30
|
+
internalProps,
|
|
72
31
|
valueManager: singleItemValueManager,
|
|
73
32
|
fieldValueManager: singleItemFieldValueManager,
|
|
74
33
|
validator: validateTime,
|
package/index.js
CHANGED
|
@@ -69,8 +69,16 @@ export const useField = params => {
|
|
|
69
69
|
return;
|
|
70
70
|
}
|
|
71
71
|
const browserStartIndex = (_selectionStart = inputRef.current.selectionStart) != null ? _selectionStart : 0;
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
let nextSectionIndex;
|
|
73
|
+
if (browserStartIndex <= state.sections[0].startInInput) {
|
|
74
|
+
// Special case if browser index is in invisible characters at the beginning
|
|
75
|
+
nextSectionIndex = 1;
|
|
76
|
+
} else if (browserStartIndex >= state.sections[state.sections.length - 1].endInInput) {
|
|
77
|
+
// If the click is after the last character of the input, then we want to select the 1st section.
|
|
78
|
+
nextSectionIndex = 1;
|
|
79
|
+
} else {
|
|
80
|
+
nextSectionIndex = state.sections.findIndex(section => section.startInInput - section.startSeparator.length > browserStartIndex);
|
|
81
|
+
}
|
|
74
82
|
const sectionIndex = nextSectionIndex === -1 ? state.sections.length - 1 : nextSectionIndex - 1;
|
|
75
83
|
setSelectedSections(sectionIndex);
|
|
76
84
|
};
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { AvailableAdjustKeyCode, FieldSectionsValueBoundaries, SectionOrdering, FieldSectionWithoutPosition, FieldSectionValueBoundaries } from './useField.types';
|
|
2
2
|
import { FieldSectionType, FieldValueType, FieldSection, MuiPickersAdapter, FieldSectionContentType } from '../../../models';
|
|
3
3
|
import { PickersLocaleText } from '../../../locales/utils/pickersLocaleTextApi';
|
|
4
|
-
export declare const getDateSectionConfigFromFormatToken: <TDate>(utils: MuiPickersAdapter<TDate>, formatToken: string) => Pick<FieldSection, 'type' | 'contentType'> & {
|
|
4
|
+
export declare const getDateSectionConfigFromFormatToken: <TDate>(utils: MuiPickersAdapter<TDate, any>, formatToken: string) => Pick<FieldSection, 'type' | 'contentType'> & {
|
|
5
5
|
maxLength: number | undefined;
|
|
6
6
|
};
|
|
7
|
-
export declare const getDaysInWeekStr: <TDate>(utils: MuiPickersAdapter<TDate>, format: string) => string[];
|
|
8
|
-
export declare const getLetterEditingOptions: <TDate>(utils: MuiPickersAdapter<TDate>, sectionType: FieldSectionType, format: string) => string[];
|
|
9
|
-
export declare const cleanLeadingZeros: <TDate>(utils: MuiPickersAdapter<TDate>, valueStr: string, size: number) => string;
|
|
10
|
-
export declare const cleanDigitSectionValue: <TDate>(utils: MuiPickersAdapter<TDate>, value: number, sectionBoundaries: FieldSectionValueBoundaries<TDate, any>, section: Pick<FieldSection, 'format' | 'type' | 'contentType' | 'hasLeadingZerosInFormat' | 'hasLeadingZerosInInput' | 'maxLength'>) => string;
|
|
11
|
-
export declare const adjustSectionValue: <TDate, TSection extends FieldSection>(utils: MuiPickersAdapter<TDate>, section: TSection, keyCode: AvailableAdjustKeyCode, sectionsValueBoundaries: FieldSectionsValueBoundaries<TDate>, activeDate: TDate | null) => string;
|
|
7
|
+
export declare const getDaysInWeekStr: <TDate>(utils: MuiPickersAdapter<TDate, any>, format: string) => string[];
|
|
8
|
+
export declare const getLetterEditingOptions: <TDate>(utils: MuiPickersAdapter<TDate, any>, sectionType: FieldSectionType, format: string) => string[];
|
|
9
|
+
export declare const cleanLeadingZeros: <TDate>(utils: MuiPickersAdapter<TDate, any>, valueStr: string, size: number) => string;
|
|
10
|
+
export declare const cleanDigitSectionValue: <TDate>(utils: MuiPickersAdapter<TDate, any>, value: number, sectionBoundaries: FieldSectionValueBoundaries<TDate, any>, section: Pick<FieldSection, 'format' | 'type' | 'contentType' | 'hasLeadingZerosInFormat' | 'hasLeadingZerosInInput' | 'maxLength'>) => string;
|
|
11
|
+
export declare const adjustSectionValue: <TDate, TSection extends FieldSection>(utils: MuiPickersAdapter<TDate, any>, section: TSection, keyCode: AvailableAdjustKeyCode, sectionsValueBoundaries: FieldSectionsValueBoundaries<TDate>, activeDate: TDate | null) => string;
|
|
12
12
|
export declare const getSectionVisibleValue: (section: FieldSectionWithoutPosition, target: 'input-rtl' | 'input-ltr' | 'non-input') => string;
|
|
13
13
|
export declare const cleanString: (dirtyString: string) => string;
|
|
14
14
|
export declare const addPositionPropertiesToSections: <TSection extends FieldSection>(sections: FieldSectionWithoutPosition<TSection>[], isRTL: boolean) => TSection[];
|
|
15
|
-
export declare const changeSectionValueFormat: <TDate>(utils: MuiPickersAdapter<TDate>, valueStr: string, currentFormat: string, newFormat: string) => string;
|
|
16
|
-
export declare const doesSectionFormatHaveLeadingZeros: <TDate>(utils: MuiPickersAdapter<TDate>, contentType: FieldSectionContentType, sectionType: FieldSectionType, format: string) => boolean;
|
|
17
|
-
export declare const splitFormatIntoSections: <TDate>(utils: MuiPickersAdapter<TDate>, localeText: PickersLocaleText<TDate>, format: string, date: TDate | null, formatDensity: 'dense' | 'spacious', shouldRespectLeadingZeros: boolean, isRTL: boolean) => FieldSectionWithoutPosition[];
|
|
15
|
+
export declare const changeSectionValueFormat: <TDate>(utils: MuiPickersAdapter<TDate, any>, valueStr: string, currentFormat: string, newFormat: string) => string;
|
|
16
|
+
export declare const doesSectionFormatHaveLeadingZeros: <TDate>(utils: MuiPickersAdapter<TDate, any>, contentType: FieldSectionContentType, sectionType: FieldSectionType, format: string) => boolean;
|
|
17
|
+
export declare const splitFormatIntoSections: <TDate>(utils: MuiPickersAdapter<TDate, any>, localeText: PickersLocaleText<TDate>, format: string, date: TDate | null, formatDensity: 'dense' | 'spacious', shouldRespectLeadingZeros: boolean, isRTL: boolean) => FieldSectionWithoutPosition[];
|
|
18
18
|
/**
|
|
19
19
|
* Some date libraries like `dayjs` don't support parsing from date with escaped characters.
|
|
20
20
|
* To make sure that the parsing works, we are building a format and a date without any separator.
|
|
21
21
|
*/
|
|
22
|
-
export declare const getDateFromDateSections: <TDate>(utils: MuiPickersAdapter<TDate>, sections: FieldSection[]) => TDate | null;
|
|
22
|
+
export declare const getDateFromDateSections: <TDate>(utils: MuiPickersAdapter<TDate, any>, sections: FieldSection[]) => TDate | null;
|
|
23
23
|
export declare const createDateStrForInputFromSections: (sections: FieldSection[], isRTL: boolean) => string;
|
|
24
|
-
export declare const getSectionsBoundaries: <TDate>(utils: MuiPickersAdapter<TDate>) => FieldSectionsValueBoundaries<TDate>;
|
|
24
|
+
export declare const getSectionsBoundaries: <TDate>(utils: MuiPickersAdapter<TDate, any>) => FieldSectionsValueBoundaries<TDate>;
|
|
25
25
|
export declare const validateSections: <TSection extends FieldSection>(sections: TSection[], valueType: FieldValueType) => void;
|
|
26
|
-
export declare const mergeDateIntoReferenceDate: <TDate>(utils: MuiPickersAdapter<TDate>, dateToTransferFrom: TDate, sections: FieldSectionWithoutPosition[], referenceDate: TDate, shouldLimitToEditedSections: boolean) => TDate;
|
|
26
|
+
export declare const mergeDateIntoReferenceDate: <TDate>(utils: MuiPickersAdapter<TDate, any>, dateToTransferFrom: TDate, sections: FieldSectionWithoutPosition[], referenceDate: TDate, shouldLimitToEditedSections: boolean) => TDate;
|
|
27
27
|
export declare const isAndroid: () => boolean;
|
|
28
|
-
export declare const clampDaySectionIfPossible: <TDate, TSection extends FieldSection>(utils: MuiPickersAdapter<TDate>, sections: TSection[], sectionsValueBoundaries: FieldSectionsValueBoundaries<TDate>) => TSection[] | null;
|
|
28
|
+
export declare const clampDaySectionIfPossible: <TDate, TSection extends FieldSection>(utils: MuiPickersAdapter<TDate, any>, sections: TSection[], sectionsValueBoundaries: FieldSectionsValueBoundaries<TDate>) => TSection[] | null;
|
|
29
29
|
export declare const getSectionOrder: (sections: FieldSectionWithoutPosition[], isRTL: boolean) => SectionOrdering;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import { getMonthsInYear } from '../../utils/date-utils';
|
|
2
3
|
export const getDateSectionConfigFromFormatToken = (utils, formatToken) => {
|
|
3
4
|
const config = utils.formatTokenMap[formatToken];
|
|
4
5
|
if (config == null) {
|
|
@@ -47,7 +48,7 @@ export const getLetterEditingOptions = (utils, sectionType, format) => {
|
|
|
47
48
|
switch (sectionType) {
|
|
48
49
|
case 'month':
|
|
49
50
|
{
|
|
50
|
-
return
|
|
51
|
+
return getMonthsInYear(utils, utils.date()).map(month => utils.formatByString(month, format));
|
|
51
52
|
}
|
|
52
53
|
case 'weekDay':
|
|
53
54
|
{
|
|
@@ -460,7 +461,7 @@ export const getSectionsBoundaries = utils => {
|
|
|
460
461
|
const {
|
|
461
462
|
maxDaysInMonth,
|
|
462
463
|
longestMonth
|
|
463
|
-
} = utils
|
|
464
|
+
} = getMonthsInYear(utils, today).reduce((acc, month) => {
|
|
464
465
|
const daysInMonth = utils.getDaysInMonth(month);
|
|
465
466
|
if (daysInMonth > acc.maxDaysInMonth) {
|
|
466
467
|
return {
|