@mui/x-date-pickers 8.0.0-alpha.7 → 8.0.0-alpha.8
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/CHANGELOG.md +115 -0
- package/DateField/DateField.js +26 -31
- package/DateField/DateField.types.d.ts +6 -15
- package/DateField/useDateField.d.ts +1 -1
- package/DateField/useDateField.js +2 -1
- package/DateTimeField/DateTimeField.js +26 -31
- package/DateTimeField/DateTimeField.types.d.ts +6 -15
- package/DateTimeField/useDateTimeField.d.ts +1 -1
- package/DateTimeField/useDateTimeField.js +2 -1
- package/DesktopDatePicker/DesktopDatePicker.js +0 -11
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
- package/DesktopTimePicker/DesktopTimePicker.js +1 -12
- package/MobileDatePicker/MobileDatePicker.js +0 -9
- package/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
- package/MobileTimePicker/MobileTimePicker.js +0 -9
- package/TimeField/TimeField.js +25 -30
- package/TimeField/TimeField.types.d.ts +6 -15
- package/TimeField/useTimeField.d.ts +1 -1
- package/TimeField/useTimeField.js +2 -1
- package/hooks/useParsedFormat.d.ts +8 -6
- package/hooks/useParsedFormat.js +10 -12
- package/hooks/usePickerActionsContext.d.ts +1 -1
- package/hooks/usePickerContext.d.ts +4 -2
- package/hooks/usePickerContext.js +2 -1
- package/hooks/useSplitFieldProps.d.ts +12 -3
- package/hooks/useSplitFieldProps.js +8 -3
- package/index.js +1 -1
- package/internals/components/PickerFieldUI.d.ts +132 -0
- package/internals/components/PickerFieldUI.js +306 -0
- package/internals/components/PickerProvider.d.ts +25 -4
- package/internals/components/PickerProvider.js +11 -6
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -94
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +8 -31
- package/internals/hooks/useField/index.d.ts +3 -1
- package/internals/hooks/useField/index.js +3 -2
- package/internals/hooks/useField/useField.d.ts +1 -10
- package/internals/hooks/useField/useField.js +11 -19
- package/internals/hooks/useField/useField.types.d.ts +11 -4
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.d.ts +15 -0
- package/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
- package/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/internals/hooks/useFieldOwnerState.d.ts +1 -2
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +6 -14
- package/internals/hooks/useNullablePickerContext.d.ts +5 -0
- package/internals/hooks/useNullablePickerContext.js +10 -0
- package/internals/hooks/usePicker/usePicker.d.ts +1 -2
- package/internals/hooks/usePicker/usePicker.js +0 -3
- package/internals/hooks/usePicker/usePicker.types.d.ts +2 -3
- package/internals/hooks/usePicker/usePickerProvider.d.ts +8 -2
- package/internals/hooks/usePicker/usePickerProvider.js +22 -2
- package/internals/hooks/usePicker/usePickerValue.js +5 -11
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +5 -2
- package/internals/hooks/useUtils.d.ts +4 -3
- package/internals/index.d.ts +6 -3
- package/internals/index.js +1 -1
- package/internals/models/fields.d.ts +3 -16
- package/internals/models/manager.d.ts +3 -0
- package/internals/models/props/basePickerProps.d.ts +0 -12
- package/locales/utils/getPickersLocalization.d.ts +0 -7
- package/locales/utils/getPickersLocalization.js +0 -13
- package/managers/index.d.ts +3 -3
- package/managers/useDateManager.d.ts +1 -1
- package/managers/useDateManager.js +9 -1
- package/managers/useDateTimeManager.d.ts +1 -1
- package/managers/useDateTimeManager.js +9 -1
- package/managers/useTimeManager.d.ts +1 -1
- package/managers/useTimeManager.js +9 -1
- package/models/fields.d.ts +4 -4
- package/models/manager.d.ts +12 -3
- package/modern/DateField/DateField.js +26 -31
- package/modern/DateField/useDateField.js +2 -1
- package/modern/DateTimeField/DateTimeField.js +26 -31
- package/modern/DateTimeField/useDateTimeField.js +2 -1
- package/modern/DesktopDatePicker/DesktopDatePicker.js +0 -11
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -12
- package/modern/MobileDatePicker/MobileDatePicker.js +0 -9
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
- package/modern/MobileTimePicker/MobileTimePicker.js +0 -9
- package/modern/TimeField/TimeField.js +25 -30
- package/modern/TimeField/useTimeField.js +2 -1
- package/modern/hooks/useParsedFormat.js +10 -12
- package/modern/hooks/usePickerContext.js +2 -1
- package/modern/hooks/useSplitFieldProps.js +8 -3
- package/modern/index.js +1 -1
- package/modern/internals/components/PickerFieldUI.js +306 -0
- package/modern/internals/components/PickerProvider.js +11 -6
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +21 -94
- package/modern/internals/hooks/useField/index.js +3 -2
- package/modern/internals/hooks/useField/useField.js +11 -19
- package/modern/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +46 -0
- package/modern/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
- package/modern/internals/hooks/useNullablePickerContext.js +10 -0
- package/modern/internals/hooks/usePicker/usePicker.js +0 -3
- package/modern/internals/hooks/usePicker/usePickerProvider.js +22 -2
- package/modern/internals/hooks/usePicker/usePickerValue.js +5 -11
- package/modern/internals/index.js +1 -1
- package/modern/locales/utils/getPickersLocalization.js +0 -13
- package/modern/managers/useDateManager.js +9 -1
- package/modern/managers/useDateTimeManager.js +9 -1
- package/modern/managers/useTimeManager.js +9 -1
- package/node/DateField/DateField.js +26 -31
- package/node/DateField/useDateField.js +2 -1
- package/node/DateTimeField/DateTimeField.js +26 -31
- package/node/DateTimeField/useDateTimeField.js +2 -1
- package/node/DesktopDatePicker/DesktopDatePicker.js +0 -11
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -12
- package/node/DesktopTimePicker/DesktopTimePicker.js +1 -12
- package/node/MobileDatePicker/MobileDatePicker.js +0 -9
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +0 -9
- package/node/MobileTimePicker/MobileTimePicker.js +0 -9
- package/node/TimeField/TimeField.js +25 -30
- package/node/TimeField/useTimeField.js +2 -1
- package/node/hooks/useParsedFormat.js +10 -12
- package/node/hooks/usePickerContext.js +4 -3
- package/node/hooks/useSplitFieldProps.js +7 -2
- package/node/index.js +1 -1
- package/node/internals/components/PickerFieldUI.js +318 -0
- package/node/internals/components/PickerProvider.js +13 -8
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +23 -96
- package/node/internals/hooks/useField/index.js +3 -2
- package/node/internals/hooks/useField/useField.js +12 -21
- package/node/internals/hooks/useField/useFieldInternalPropsWithDefaults.js +55 -0
- package/node/internals/hooks/useField/useFieldV7TextField.js +3 -3
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +20 -49
- package/node/internals/hooks/useNullablePickerContext.js +16 -0
- package/node/internals/hooks/usePicker/usePicker.js +0 -3
- package/node/internals/hooks/usePicker/usePickerProvider.js +22 -2
- package/node/internals/hooks/usePicker/usePickerValue.js +5 -11
- package/node/internals/index.js +21 -3
- package/node/locales/utils/getPickersLocalization.js +2 -16
- package/node/managers/useDateManager.js +9 -1
- package/node/managers/useDateTimeManager.js +9 -1
- package/node/managers/useTimeManager.js +9 -1
- package/package.json +2 -2
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.d.ts +0 -3
- package/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/modern/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -44
- package/node/internals/utils/convertFieldResponseIntoMuiTextFieldProps.js +0 -52
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { MuiPickersAdapterContextValue } from '../../LocalizationProvider/LocalizationProvider';
|
|
2
2
|
import { PickersLocaleText } from '../../locales/utils/pickersLocaleTextApi';
|
|
3
3
|
import { PickersTimezone, PickerValidDate } from '../../models';
|
|
4
|
-
export declare const useLocalizationContext: () =>
|
|
5
|
-
localeText: PickersLocaleText;
|
|
6
|
-
};
|
|
4
|
+
export declare const useLocalizationContext: () => UseLocalizationContextReturnValue;
|
|
7
5
|
export declare const useUtils: () => import("@mui/x-date-pickers/models").MuiPickersAdapter<any>;
|
|
8
6
|
export declare const useDefaultDates: () => {
|
|
9
7
|
minDate: PickerValidDate;
|
|
10
8
|
maxDate: PickerValidDate;
|
|
11
9
|
};
|
|
12
10
|
export declare const useNow: (timezone: PickersTimezone) => PickerValidDate;
|
|
11
|
+
export interface UseLocalizationContextReturnValue extends Omit<MuiPickersAdapterContextValue, 'localeText'> {
|
|
12
|
+
localeText: PickersLocaleText;
|
|
13
|
+
}
|
package/internals/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export { PickersArrowSwitcher } from './components/PickersArrowSwitcher/PickersArrowSwitcher';
|
|
2
2
|
export type { ExportedPickersArrowSwitcherProps, PickersArrowSwitcherSlots, PickersArrowSwitcherSlotProps, } from './components/PickersArrowSwitcher';
|
|
3
|
+
export { PickerFieldUI, PickerFieldUIContextProvider, cleanFieldResponse, useFieldTextFieldProps, } from './components/PickerFieldUI';
|
|
4
|
+
export type { ExportedPickerFieldUIProps, PickerFieldUISlots, PickerFieldUISlotProps, } from './components/PickerFieldUI';
|
|
3
5
|
export { PickerProvider } from './components/PickerProvider';
|
|
6
|
+
export type { PickerContextValue } from './components/PickerProvider';
|
|
4
7
|
export { PickersModalDialog } from './components/PickersModalDialog';
|
|
5
8
|
export type { PickersModalDialogSlots, PickersModalDialogSlotProps, } from './components/PickersModalDialog';
|
|
6
9
|
export { PickersPopper } from './components/PickersPopper';
|
|
@@ -25,7 +28,7 @@ export { DAY_MARGIN, DIALOG_WIDTH, VIEW_HEIGHT } from './constants/dimensions';
|
|
|
25
28
|
export { useControlledValueWithTimezone } from './hooks/useValueWithTimezone';
|
|
26
29
|
export type { DesktopOnlyPickerProps } from './hooks/useDesktopPicker';
|
|
27
30
|
export { useField, useFieldInternalPropsWithDefaults, createDateStrForV7HiddenInputFromSections, createDateStrForV6InputFromSections, } from './hooks/useField';
|
|
28
|
-
export type { UseFieldInternalProps, UseFieldParams, UseFieldResponse, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext, } from './hooks/useField';
|
|
31
|
+
export type { UseFieldInternalProps, UseFieldParams, UseFieldResponse, FieldValueManager, FieldChangeHandler, FieldChangeHandlerContext, PickerFieldPrivateContextValue, } from './hooks/useField';
|
|
29
32
|
export { useFieldOwnerState } from './hooks/useFieldOwnerState';
|
|
30
33
|
export type { MobileOnlyPickerProps } from './hooks/useMobilePicker';
|
|
31
34
|
export { usePicker } from './hooks/usePicker';
|
|
@@ -42,9 +45,10 @@ export { useLocalizationContext, useDefaultDates, useUtils, useNow } from './hoo
|
|
|
42
45
|
export type { ExportedUseViewsOptions, UseViewsOptions } from './hooks/useViews';
|
|
43
46
|
export { useViews } from './hooks/useViews';
|
|
44
47
|
export { usePreviousMonthDisabled, useNextMonthDisabled } from './hooks/date-helpers-hooks';
|
|
48
|
+
export type { PickerAnyManager, PickerManagerFieldInternalProps, PickerManagerEnableAccessibleFieldDOMStructure, PickerManagerError, } from './models/manager';
|
|
45
49
|
export type { RangePosition } from './models/pickers';
|
|
46
50
|
export type { BaseSingleInputFieldProps, FieldRangeSection } from './models/fields';
|
|
47
|
-
export type { BasePickerProps, BasePickerInputProps
|
|
51
|
+
export type { BasePickerProps, BasePickerInputProps } from './models/props/basePickerProps';
|
|
48
52
|
export type { BaseClockProps, DesktopOnlyTimePickerProps, AmPmProps } from './models/props/time';
|
|
49
53
|
export type { ExportedBaseTabsProps } from './models/props/tabs';
|
|
50
54
|
export type { BaseToolbarProps, ExportedBaseToolbarProps } from './models/props/toolbar';
|
|
@@ -52,7 +56,6 @@ export type { FormProps } from './models/formProps';
|
|
|
52
56
|
export type { PickerVariant, TimeViewWithMeridiem, DateOrTimeViewWithMeridiem, } from './models/common';
|
|
53
57
|
export type { BaseDateValidationProps, BaseTimeValidationProps, TimeValidationProps, MonthValidationProps, YearValidationProps, DayValidationProps, DateTimeValidationProps, } from './models/validation';
|
|
54
58
|
export type { PickerValue, PickerRangeValue, PickerNonNullableRangeValue, InferNonNullablePickerValue, PickerValidValue, } from './models/value';
|
|
55
|
-
export { convertFieldResponseIntoMuiTextFieldProps } from './utils/convertFieldResponseIntoMuiTextFieldProps';
|
|
56
59
|
export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate, isDatePickerView, mergeDateAndTime, formatMeridiem, } from './utils/date-utils';
|
|
57
60
|
export { resolveTimeViewsResponse, resolveDateTimeFormat } from './utils/date-time-utils';
|
|
58
61
|
export { getDefaultReferenceDate } from './utils/getDefaultReferenceDate';
|
package/internals/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { PickersArrowSwitcher } from "./components/PickersArrowSwitcher/PickersArrowSwitcher.js";
|
|
2
|
+
export { PickerFieldUI, PickerFieldUIContextProvider, cleanFieldResponse, useFieldTextFieldProps } from "./components/PickerFieldUI.js";
|
|
2
3
|
export { PickerProvider } from "./components/PickerProvider.js";
|
|
3
4
|
export { PickersModalDialog } from "./components/PickersModalDialog.js";
|
|
4
5
|
export { PickersPopper } from "./components/PickersPopper.js";
|
|
@@ -20,7 +21,6 @@ export { useToolbarOwnerState } from "./hooks/useToolbarOwnerState.js";
|
|
|
20
21
|
export { useLocalizationContext, useDefaultDates, useUtils, useNow } from "./hooks/useUtils.js";
|
|
21
22
|
export { useViews } from "./hooks/useViews.js";
|
|
22
23
|
export { usePreviousMonthDisabled, useNextMonthDisabled } from "./hooks/date-helpers-hooks.js";
|
|
23
|
-
export { convertFieldResponseIntoMuiTextFieldProps } from "./utils/convertFieldResponseIntoMuiTextFieldProps.js";
|
|
24
24
|
export { applyDefaultDate, replaceInvalidDateByNull, areDatesEqual, getTodayDate, isDatePickerView, mergeDateAndTime, formatMeridiem } from "./utils/date-utils.js";
|
|
25
25
|
export { resolveTimeViewsResponse, resolveDateTimeFormat } from "./utils/date-time-utils.js";
|
|
26
26
|
export { getDefaultReferenceDate } from "./utils/getDefaultReferenceDate.js";
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { SxProps } from '@mui/material/styles';
|
|
2
|
-
import { MakeRequired } from '@mui/x-internals/types';
|
|
3
|
-
import type { ExportedUseClearableFieldProps, UseClearableFieldSlotProps, UseClearableFieldSlots } from '../../hooks/useClearableField';
|
|
4
2
|
import type { FieldSection, PickerOwnerState } from '../../models';
|
|
5
3
|
import type { UseFieldInternalProps } from '../hooks/useField';
|
|
6
4
|
import { RangePosition } from './pickers';
|
|
7
5
|
import { PickerValidValue } from './value';
|
|
6
|
+
import type { ExportedPickerFieldUIProps } from '../components/PickerFieldUI';
|
|
8
7
|
export interface FieldRangeSection extends FieldSection {
|
|
9
8
|
dateName: RangePosition;
|
|
10
9
|
}
|
|
11
|
-
export interface BaseForwardedSingleInputFieldProps extends
|
|
10
|
+
export interface BaseForwardedSingleInputFieldProps extends Pick<ExportedPickerFieldUIProps, 'clearable' | 'onClear'> {
|
|
12
11
|
className: string | undefined;
|
|
13
12
|
sx: SxProps<any> | undefined;
|
|
14
13
|
label: React.ReactNode | undefined;
|
|
@@ -19,22 +18,10 @@ export interface BaseForwardedSingleInputFieldProps extends ExportedUseClearable
|
|
|
19
18
|
onBlur?: React.FocusEventHandler;
|
|
20
19
|
ref?: React.Ref<HTMLDivElement>;
|
|
21
20
|
inputRef?: React.Ref<HTMLInputElement>;
|
|
22
|
-
InputProps?: {
|
|
23
|
-
ref?: React.Ref<any>;
|
|
24
|
-
endAdornment?: React.ReactNode;
|
|
25
|
-
startAdornment?: React.ReactNode;
|
|
26
|
-
};
|
|
27
|
-
inputProps?: {
|
|
28
|
-
'aria-label'?: string;
|
|
29
|
-
};
|
|
30
|
-
slots?: UseClearableFieldSlots;
|
|
31
|
-
slotProps?: UseClearableFieldSlotProps & {
|
|
32
|
-
textField?: {};
|
|
33
|
-
};
|
|
34
21
|
ownerState: PickerOwnerState;
|
|
35
22
|
}
|
|
36
23
|
/**
|
|
37
24
|
* Props the single input field can receive when used inside a picker.
|
|
38
25
|
* Only contains what the MUI components are passing to the field, not what users can pass using the `props.slotProps.field`.
|
|
39
26
|
*/
|
|
40
|
-
export type BaseSingleInputFieldProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TError> =
|
|
27
|
+
export type BaseSingleInputFieldProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean, TError> = Pick<UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, TError>, 'readOnly' | 'unstableFieldRef' | 'autoFocus'> & BaseForwardedSingleInputFieldProps;
|
|
@@ -7,6 +7,9 @@ type PickerManagerProperties<TManager extends PickerAnyManager> = TManager exten
|
|
|
7
7
|
fieldInternalProps: TFieldInternalProps;
|
|
8
8
|
fieldInternalPropsWithDefaults: TFieldInternalPropsWithDefaults;
|
|
9
9
|
} : never;
|
|
10
|
+
export type PickerManagerValue<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['value'];
|
|
11
|
+
export type PickerManagerError<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['error'];
|
|
10
12
|
export type PickerManagerFieldInternalProps<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['fieldInternalProps'];
|
|
11
13
|
export type PickerManagerFieldInternalPropsWithDefaults<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['fieldInternalPropsWithDefaults'];
|
|
14
|
+
export type PickerManagerEnableAccessibleFieldDOMStructure<TManager extends PickerAnyManager> = PickerManagerProperties<TManager>['enableAccessibleFieldDOMStructure'];
|
|
12
15
|
export {};
|
|
@@ -6,7 +6,6 @@ import { UsePickerBaseProps } from '../../hooks/usePicker';
|
|
|
6
6
|
import { PickersInputComponentLocaleText } from '../../../locales/utils/pickersLocaleTextApi';
|
|
7
7
|
import type { UsePickerViewsProps } from '../../hooks/usePicker/usePickerViews';
|
|
8
8
|
import { DateOrTimeViewWithMeridiem } from '../common';
|
|
9
|
-
import { UseFieldInternalProps } from '../../hooks/useField';
|
|
10
9
|
import { PickerValidValue } from '../value';
|
|
11
10
|
/**
|
|
12
11
|
* Props common to all pickers after applying the default props on each picker.
|
|
@@ -28,17 +27,6 @@ export interface BasePickerProps<TValue extends PickerValidValue, TView extends
|
|
|
28
27
|
*/
|
|
29
28
|
export interface BasePickerInputProps<TValue extends PickerValidValue, TView extends DateOrTimeViewWithMeridiem, TError> extends Omit<MakeOptional<BasePickerProps<TValue, TView, TError, any>, 'openTo' | 'views'>, 'viewRenderers'> {
|
|
30
29
|
}
|
|
31
|
-
/**
|
|
32
|
-
* Props common to all non-static pickers.
|
|
33
|
-
* These props are handled by the headless wrappers.
|
|
34
|
-
*/
|
|
35
|
-
export interface BaseNonStaticPickerProps extends Pick<UseFieldInternalProps<any, any, any>, 'formatDensity' | 'enableAccessibleFieldDOMStructure' | 'selectedSections' | 'onSelectedSectionsChange'> {
|
|
36
|
-
/**
|
|
37
|
-
* Format of the date when rendered in the input(s).
|
|
38
|
-
* Defaults to localized format based on the used `views`.
|
|
39
|
-
*/
|
|
40
|
-
format?: string;
|
|
41
|
-
}
|
|
42
30
|
/**
|
|
43
31
|
* Props common to all non-range non-static pickers.
|
|
44
32
|
* These props are handled by the headless wrappers.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AdapterFormats, MuiPickersAdapter, PickerValidDate } from '../../models';
|
|
2
1
|
import { PickersLocaleText } from './pickersLocaleTextApi';
|
|
3
2
|
export declare const getPickersLocalization: (pickersTranslations: Partial<PickersLocaleText>) => {
|
|
4
3
|
components: {
|
|
@@ -79,9 +78,3 @@ export declare const getPickersLocalization: (pickersTranslations: Partial<Picke
|
|
|
79
78
|
};
|
|
80
79
|
};
|
|
81
80
|
};
|
|
82
|
-
export declare const buildGetOpenDialogAriaText: (params: {
|
|
83
|
-
utils: MuiPickersAdapter;
|
|
84
|
-
formatKey: keyof AdapterFormats;
|
|
85
|
-
contextTranslation: (formattedValue: string | null) => string;
|
|
86
|
-
propsTranslation: ((formattedValue: string | null) => string) | undefined;
|
|
87
|
-
}) => (value: PickerValidDate | null) => string;
|
|
@@ -9,17 +9,4 @@ export const getPickersLocalization = pickersTranslations => {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
};
|
|
12
|
-
};
|
|
13
|
-
export const buildGetOpenDialogAriaText = params => {
|
|
14
|
-
const {
|
|
15
|
-
utils,
|
|
16
|
-
formatKey,
|
|
17
|
-
contextTranslation,
|
|
18
|
-
propsTranslation
|
|
19
|
-
} = params;
|
|
20
|
-
return value => {
|
|
21
|
-
const formattedValue = utils.isValid(value) ? utils.format(value, formatKey) : null;
|
|
22
|
-
const translation = propsTranslation ?? contextTranslation;
|
|
23
|
-
return translation(formattedValue);
|
|
24
|
-
};
|
|
25
12
|
};
|
package/managers/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { useDateManager } from './useDateManager';
|
|
2
|
-
export type { UseDateManagerReturnValue, UseDateManagerParameters } from './useDateManager';
|
|
2
|
+
export type { UseDateManagerReturnValue, UseDateManagerParameters, DateManagerFieldInternalProps, } from './useDateManager';
|
|
3
3
|
export { useTimeManager } from './useTimeManager';
|
|
4
|
-
export type { UseTimeManagerReturnValue, UseTimeManagerParameters } from './useTimeManager';
|
|
4
|
+
export type { UseTimeManagerReturnValue, UseTimeManagerParameters, TimeManagerFieldInternalProps, } from './useTimeManager';
|
|
5
5
|
export { useDateTimeManager } from './useDateTimeManager';
|
|
6
|
-
export type { UseDateTimeManagerReturnValue, UseDateTimeManagerParameters, } from './useDateTimeManager';
|
|
6
|
+
export type { UseDateTimeManagerReturnValue, UseDateTimeManagerParameters, DateTimeManagerFieldInternalProps, } from './useDateTimeManager';
|
|
@@ -14,7 +14,7 @@ export interface UseDateManagerParameters<TEnableAccessibleFieldDOMStructure ext
|
|
|
14
14
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
15
15
|
}
|
|
16
16
|
export type UseDateManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError, DateManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, DateManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure>>;
|
|
17
|
-
interface DateManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError>, 'format'>, ExportedValidateDateProps {
|
|
17
|
+
export interface DateManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError>, 'format'>, ExportedValidateDateProps {
|
|
18
18
|
}
|
|
19
19
|
interface DateManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateValidationError>, ValidateDateProps {
|
|
20
20
|
}
|
|
@@ -23,7 +23,15 @@ export function useDateManager(parameters = {}) {
|
|
|
23
23
|
defaultDates,
|
|
24
24
|
utils,
|
|
25
25
|
internalProps
|
|
26
|
-
}))
|
|
26
|
+
})),
|
|
27
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
28
|
+
value,
|
|
29
|
+
utils,
|
|
30
|
+
localeText
|
|
31
|
+
}) => {
|
|
32
|
+
const formattedValue = utils.isValid(value) ? utils.format(value, 'fullDate') : null;
|
|
33
|
+
return localeText.openDatePickerDialogue(formattedValue);
|
|
34
|
+
}
|
|
27
35
|
}), [enableAccessibleFieldDOMStructure]);
|
|
28
36
|
}
|
|
29
37
|
|
|
@@ -15,7 +15,7 @@ export interface UseDateTimeManagerParameters<TEnableAccessibleFieldDOMStructure
|
|
|
15
15
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
16
16
|
}
|
|
17
17
|
export type UseDateTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError, DateTimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, DateTimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure>>;
|
|
18
|
-
interface DateTimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError>, 'format'>, ExportedValidateDateTimeProps, AmPmProps {
|
|
18
|
+
export interface DateTimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError>, 'format'>, ExportedValidateDateTimeProps, AmPmProps {
|
|
19
19
|
}
|
|
20
20
|
interface DateTimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, DateTimeValidationError>, ValidateDateTimeProps {
|
|
21
21
|
}
|
|
@@ -23,7 +23,15 @@ export function useDateTimeManager(parameters = {}) {
|
|
|
23
23
|
internalProps,
|
|
24
24
|
utils,
|
|
25
25
|
defaultDates
|
|
26
|
-
}))
|
|
26
|
+
})),
|
|
27
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
28
|
+
value,
|
|
29
|
+
utils,
|
|
30
|
+
localeText
|
|
31
|
+
}) => {
|
|
32
|
+
const formattedValue = utils.isValid(value) ? utils.format(value, 'fullDate') : null;
|
|
33
|
+
return localeText.openDatePickerDialogue(formattedValue);
|
|
34
|
+
}
|
|
27
35
|
}), [enableAccessibleFieldDOMStructure]);
|
|
28
36
|
}
|
|
29
37
|
|
|
@@ -15,7 +15,7 @@ export interface UseTimeManagerParameters<TEnableAccessibleFieldDOMStructure ext
|
|
|
15
15
|
enableAccessibleFieldDOMStructure?: TEnableAccessibleFieldDOMStructure;
|
|
16
16
|
}
|
|
17
17
|
export type UseTimeManagerReturnValue<TEnableAccessibleFieldDOMStructure extends boolean> = PickerManager<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError, TimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure>, TimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure>>;
|
|
18
|
-
interface TimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError>, 'format'>, ExportedValidateTimeProps, AmPmProps {
|
|
18
|
+
export interface TimeManagerFieldInternalProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError>, 'format'>, ExportedValidateTimeProps, AmPmProps {
|
|
19
19
|
}
|
|
20
20
|
interface TimeManagerFieldInternalPropsWithDefaults<TEnableAccessibleFieldDOMStructure extends boolean> extends UseFieldInternalProps<PickerValue, TEnableAccessibleFieldDOMStructure, TimeValidationError>, ValidateTimeProps {
|
|
21
21
|
}
|
|
@@ -20,7 +20,15 @@ export function useTimeManager(parameters = {}) {
|
|
|
20
20
|
}) => _extends({}, internalProps, getTimeFieldInternalPropsDefaults({
|
|
21
21
|
utils,
|
|
22
22
|
internalProps
|
|
23
|
-
}))
|
|
23
|
+
})),
|
|
24
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
25
|
+
value,
|
|
26
|
+
utils,
|
|
27
|
+
localeText
|
|
28
|
+
}) => {
|
|
29
|
+
const formattedValue = utils.isValid(value) ? utils.format(value, 'fullTime') : null;
|
|
30
|
+
return localeText.openTimePickerDialogue(formattedValue);
|
|
31
|
+
}
|
|
24
32
|
}), [enableAccessibleFieldDOMStructure]);
|
|
25
33
|
}
|
|
26
34
|
|
package/models/fields.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { TextFieldProps } from '@mui/material/TextField';
|
|
3
|
-
import type { ExportedUseClearableFieldProps, UseClearableFieldResponse } from '../hooks/useClearableField';
|
|
4
3
|
import type { ExportedPickersSectionListProps } from '../PickersSectionList';
|
|
5
4
|
import type { UseFieldInternalProps, UseFieldResponse } from '../internals/hooks/useField';
|
|
6
5
|
import type { PickersTextFieldProps } from '../PickersTextField';
|
|
7
6
|
import { BaseForwardedSingleInputFieldProps, FieldRangeSection, PickerRangeValue, PickerValidValue } from '../internals/models';
|
|
8
7
|
import { PickerOwnerState } from './pickers';
|
|
8
|
+
import type { ExportedPickerFieldUIProps } from '../internals/components/PickerFieldUI';
|
|
9
9
|
export type FieldSectionType = 'year' | 'month' | 'day' | 'weekDay' | 'hours' | 'minutes' | 'seconds' | 'meridiem' | 'empty';
|
|
10
10
|
export type FieldSectionContentType = 'digit' | 'digit-with-letter' | 'letter';
|
|
11
11
|
export interface FieldSection {
|
|
@@ -124,14 +124,14 @@ export interface FieldOwnerState extends PickerOwnerState {
|
|
|
124
124
|
/**
|
|
125
125
|
* Props the prop `slotProps.field` of a picker can receive.
|
|
126
126
|
*/
|
|
127
|
-
export type PickerFieldSlotProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean> =
|
|
127
|
+
export type PickerFieldSlotProps<TValue extends PickerValidValue, TEnableAccessibleFieldDOMStructure extends boolean> = ExportedPickerFieldUIProps & Pick<UseFieldInternalProps<TValue, TEnableAccessibleFieldDOMStructure, unknown>, 'shouldRespectLeadingZeros' | 'readOnly'> & React.HTMLAttributes<HTMLDivElement> & {
|
|
128
128
|
ref?: React.Ref<HTMLDivElement>;
|
|
129
129
|
};
|
|
130
130
|
/**
|
|
131
|
-
* Props the text field receives when used
|
|
131
|
+
* Props the text field receives when used inside a single input picker.
|
|
132
132
|
* Only contains what the MUI components are passing to the text field, not what users can pass using the `props.slotProps.field` and `props.slotProps.textField`.
|
|
133
133
|
*/
|
|
134
|
-
export type BaseSingleInputPickersTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> =
|
|
134
|
+
export type BaseSingleInputPickersTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> = Omit<UseFieldResponse<TEnableAccessibleFieldDOMStructure, BaseForwardedSingleInputFieldProps>, 'slots' | 'slotProps' | 'clearable' | 'onClear' | 'openPickerButtonPosition' | 'clearButtonPosition' | 'openPickerAriaLabel'>;
|
|
135
135
|
/**
|
|
136
136
|
* Props the built-in text field component can receive.
|
|
137
137
|
*/
|
package/models/manager.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FieldValueManager, UseFieldInternalProps } from '../internals/hooks/useField';
|
|
2
2
|
import type { PickerValueManager } from '../internals/hooks/usePicker';
|
|
3
|
+
import type { UseLocalizationContextReturnValue } from '../internals/hooks/useUtils';
|
|
3
4
|
import type { PickerValidValue } from '../internals/models';
|
|
4
|
-
import type { MuiPickersAdapterContextValue } from '../LocalizationProvider/LocalizationProvider';
|
|
5
5
|
import type { Validator } from '../validation';
|
|
6
6
|
import type { PickerValueType } from './common';
|
|
7
7
|
/**
|
|
@@ -67,12 +67,21 @@ export interface PickerManager<TValue extends PickerValidValue, TEnableAccessibl
|
|
|
67
67
|
* - a default format to display the value in the field
|
|
68
68
|
* - some default validation props that are needed to validate the value (e.g: minDate, maxDate)
|
|
69
69
|
* This property is not part of the public API and should not be used directly.
|
|
70
|
-
* @param {ApplyDefaultsToFieldInternalPropsParameters} parameters The parameters to apply the defaults.
|
|
70
|
+
* @param {ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>} parameters The parameters to apply the defaults.
|
|
71
71
|
* @returns {TFieldInternalPropsWithDefaults} The field internal props with the defaults applied.
|
|
72
72
|
*/
|
|
73
73
|
internal_applyDefaultsToFieldInternalProps: (parameters: ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps>) => TFieldInternalPropsWithDefaults;
|
|
74
|
+
/**
|
|
75
|
+
* Returns the aria-label to apply on the button that opens the picker.
|
|
76
|
+
* @param {GetOpenPickerButtonAriaLabelParameters<TValue>} params The parameters to get the aria-label.
|
|
77
|
+
* @returns {string} The aria-label to apply on the button that opens the picker.
|
|
78
|
+
*/
|
|
79
|
+
internal_getOpenPickerButtonAriaLabel: (params: GetOpenPickerButtonAriaLabelParameters<TValue>) => string;
|
|
74
80
|
}
|
|
75
|
-
interface ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps extends {}> extends
|
|
81
|
+
interface ApplyDefaultsToFieldInternalPropsParameters<TFieldInternalProps extends {}> extends UseLocalizationContextReturnValue {
|
|
76
82
|
internalProps: TFieldInternalProps;
|
|
77
83
|
}
|
|
84
|
+
interface GetOpenPickerButtonAriaLabelParameters<TValue extends PickerValidValue> extends UseLocalizationContextReturnValue {
|
|
85
|
+
value: TValue;
|
|
86
|
+
}
|
|
78
87
|
export {};
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["slots", "slotProps"
|
|
4
|
+
const _excluded = ["slots", "slotProps"];
|
|
6
5
|
import * as React from 'react';
|
|
7
6
|
import PropTypes from 'prop-types';
|
|
8
|
-
import MuiTextField from '@mui/material/TextField';
|
|
9
7
|
import { useThemeProps } from '@mui/material/styles';
|
|
10
|
-
import useSlotProps from '@mui/utils/useSlotProps';
|
|
11
8
|
import { refType } from '@mui/utils';
|
|
12
9
|
import { useDateField } from "./useDateField.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from "../internals/utils/convertFieldResponseIntoMuiTextFieldProps.js";
|
|
16
|
-
import { useFieldOwnerState } from "../internals/hooks/useFieldOwnerState.js";
|
|
10
|
+
import { PickerFieldUI, useFieldTextFieldProps } from "../internals/components/PickerFieldUI.js";
|
|
11
|
+
import { CalendarIcon } from "../icons/index.js";
|
|
17
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
13
|
/**
|
|
19
14
|
* Demos:
|
|
@@ -32,33 +27,21 @@ const DateField = /*#__PURE__*/React.forwardRef(function DateField(inProps, inRe
|
|
|
32
27
|
});
|
|
33
28
|
const {
|
|
34
29
|
slots,
|
|
35
|
-
slotProps
|
|
36
|
-
InputProps,
|
|
37
|
-
inputProps
|
|
30
|
+
slotProps
|
|
38
31
|
} = themeProps,
|
|
39
32
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
externalSlotProps: slotProps?.textField,
|
|
45
|
-
externalForwardedProps: other,
|
|
46
|
-
additionalProps: {
|
|
47
|
-
ref: inRef
|
|
48
|
-
},
|
|
49
|
-
ownerState
|
|
33
|
+
const textFieldProps = useFieldTextFieldProps({
|
|
34
|
+
slotProps,
|
|
35
|
+
ref: inRef,
|
|
36
|
+
externalForwardedProps: other
|
|
50
37
|
});
|
|
51
|
-
|
|
52
|
-
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
53
|
-
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
54
|
-
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
55
38
|
const fieldResponse = useDateField(textFieldProps);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
39
|
+
return /*#__PURE__*/_jsx(PickerFieldUI, {
|
|
40
|
+
slots: slots,
|
|
41
|
+
slotProps: slotProps,
|
|
42
|
+
fieldResponse: fieldResponse,
|
|
43
|
+
defaultOpenPickerIcon: CalendarIcon
|
|
44
|
+
});
|
|
62
45
|
});
|
|
63
46
|
process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
64
47
|
// ----------------------------- Warning --------------------------------
|
|
@@ -76,6 +59,12 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
76
59
|
* @default false
|
|
77
60
|
*/
|
|
78
61
|
clearable: PropTypes.bool,
|
|
62
|
+
/**
|
|
63
|
+
* The position at which the clear button is placed.
|
|
64
|
+
* If the field is not clearable, the button is not rendered.
|
|
65
|
+
* @default 'end'
|
|
66
|
+
*/
|
|
67
|
+
clearButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
79
68
|
/**
|
|
80
69
|
* The color of the component.
|
|
81
70
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
@@ -219,6 +208,12 @@ process.env.NODE_ENV !== "production" ? DateField.propTypes = {
|
|
|
219
208
|
* @param {FieldSelectedSections} newValue The new selected sections.
|
|
220
209
|
*/
|
|
221
210
|
onSelectedSectionsChange: PropTypes.func,
|
|
211
|
+
/**
|
|
212
|
+
* The position at which the opening button is placed.
|
|
213
|
+
* If there is no picker to open, the button is not rendered
|
|
214
|
+
* @default 'end'
|
|
215
|
+
*/
|
|
216
|
+
openPickerButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
222
217
|
/**
|
|
223
218
|
* If `true`, the component is read-only.
|
|
224
219
|
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
@@ -19,6 +19,7 @@ export const useDateField = props => {
|
|
|
19
19
|
valueManager: manager.internal_valueManager,
|
|
20
20
|
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
21
|
validator: manager.validator,
|
|
22
|
-
valueType: manager.valueType
|
|
22
|
+
valueType: manager.valueType,
|
|
23
|
+
getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
|
|
23
24
|
});
|
|
24
25
|
};
|
|
@@ -1,19 +1,14 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
5
|
-
const _excluded = ["slots", "slotProps"
|
|
4
|
+
const _excluded = ["slots", "slotProps"];
|
|
6
5
|
import * as React from 'react';
|
|
7
6
|
import PropTypes from 'prop-types';
|
|
8
|
-
import MuiTextField from '@mui/material/TextField';
|
|
9
7
|
import { useThemeProps } from '@mui/material/styles';
|
|
10
|
-
import useSlotProps from '@mui/utils/useSlotProps';
|
|
11
8
|
import { refType } from '@mui/utils';
|
|
12
9
|
import { useDateTimeField } from "./useDateTimeField.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from "../internals/utils/convertFieldResponseIntoMuiTextFieldProps.js";
|
|
16
|
-
import { useFieldOwnerState } from "../internals/hooks/useFieldOwnerState.js";
|
|
10
|
+
import { PickerFieldUI, useFieldTextFieldProps } from "../internals/components/PickerFieldUI.js";
|
|
11
|
+
import { CalendarIcon } from "../icons/index.js";
|
|
17
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
13
|
/**
|
|
19
14
|
* Demos:
|
|
@@ -32,33 +27,21 @@ const DateTimeField = /*#__PURE__*/React.forwardRef(function DateTimeField(inPro
|
|
|
32
27
|
});
|
|
33
28
|
const {
|
|
34
29
|
slots,
|
|
35
|
-
slotProps
|
|
36
|
-
InputProps,
|
|
37
|
-
inputProps
|
|
30
|
+
slotProps
|
|
38
31
|
} = themeProps,
|
|
39
32
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
externalSlotProps: slotProps?.textField,
|
|
45
|
-
externalForwardedProps: other,
|
|
46
|
-
ownerState,
|
|
47
|
-
additionalProps: {
|
|
48
|
-
ref: inRef
|
|
49
|
-
}
|
|
33
|
+
const textFieldProps = useFieldTextFieldProps({
|
|
34
|
+
slotProps,
|
|
35
|
+
ref: inRef,
|
|
36
|
+
externalForwardedProps: other
|
|
50
37
|
});
|
|
51
|
-
|
|
52
|
-
// TODO: Remove when mui/material-ui#35088 will be merged
|
|
53
|
-
textFieldProps.inputProps = _extends({}, inputProps, textFieldProps.inputProps);
|
|
54
|
-
textFieldProps.InputProps = _extends({}, InputProps, textFieldProps.InputProps);
|
|
55
38
|
const fieldResponse = useDateTimeField(textFieldProps);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
39
|
+
return /*#__PURE__*/_jsx(PickerFieldUI, {
|
|
40
|
+
slots: slots,
|
|
41
|
+
slotProps: slotProps,
|
|
42
|
+
fieldResponse: fieldResponse,
|
|
43
|
+
defaultOpenPickerIcon: CalendarIcon
|
|
44
|
+
});
|
|
62
45
|
});
|
|
63
46
|
process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
64
47
|
// ----------------------------- Warning --------------------------------
|
|
@@ -81,6 +64,12 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
81
64
|
* @default false
|
|
82
65
|
*/
|
|
83
66
|
clearable: PropTypes.bool,
|
|
67
|
+
/**
|
|
68
|
+
* The position at which the clear button is placed.
|
|
69
|
+
* If the field is not clearable, the button is not rendered.
|
|
70
|
+
* @default 'end'
|
|
71
|
+
*/
|
|
72
|
+
clearButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
84
73
|
/**
|
|
85
74
|
* The color of the component.
|
|
86
75
|
* It supports both default and custom theme colors, which can be added as shown in the
|
|
@@ -252,6 +241,12 @@ process.env.NODE_ENV !== "production" ? DateTimeField.propTypes = {
|
|
|
252
241
|
* @param {FieldSelectedSections} newValue The new selected sections.
|
|
253
242
|
*/
|
|
254
243
|
onSelectedSectionsChange: PropTypes.func,
|
|
244
|
+
/**
|
|
245
|
+
* The position at which the opening button is placed.
|
|
246
|
+
* If there is no picker to open, the button is not rendered
|
|
247
|
+
* @default 'end'
|
|
248
|
+
*/
|
|
249
|
+
openPickerButtonPosition: PropTypes.oneOf(['end', 'start']),
|
|
255
250
|
/**
|
|
256
251
|
* If `true`, the component is read-only.
|
|
257
252
|
* When read-only, the value cannot be changed but the user can interact with the interface.
|
|
@@ -19,6 +19,7 @@ export const useDateTimeField = props => {
|
|
|
19
19
|
valueManager: manager.internal_valueManager,
|
|
20
20
|
fieldValueManager: manager.internal_fieldValueManager,
|
|
21
21
|
validator: manager.validator,
|
|
22
|
-
valueType: manager.valueType
|
|
22
|
+
valueType: manager.valueType,
|
|
23
|
+
getOpenPickerButtonAriaLabel: manager.internal_getOpenPickerButtonAriaLabel
|
|
23
24
|
});
|
|
24
25
|
};
|
|
@@ -7,15 +7,12 @@ import resolveComponentProps from '@mui/utils/resolveComponentProps';
|
|
|
7
7
|
import { refType } from '@mui/utils';
|
|
8
8
|
import { singleItemValueManager } from "../internals/utils/valueManagers.js";
|
|
9
9
|
import { useDatePickerDefaultizedProps } from "../DatePicker/shared.js";
|
|
10
|
-
import { usePickerTranslations } from "../hooks/usePickerTranslations.js";
|
|
11
10
|
import { useUtils } from "../internals/hooks/useUtils.js";
|
|
12
11
|
import { validateDate, extractValidationProps } from "../validation/index.js";
|
|
13
12
|
import { useDesktopPicker } from "../internals/hooks/useDesktopPicker/index.js";
|
|
14
|
-
import { CalendarIcon } from "../icons/index.js";
|
|
15
13
|
import { DateField } from "../DateField/index.js";
|
|
16
14
|
import { renderDateViewCalendar } from "../dateViewRenderers/index.js";
|
|
17
15
|
import { resolveDateFormat } from "../internals/utils/date-utils.js";
|
|
18
|
-
import { buildGetOpenDialogAriaText } from "../locales/utils/getPickersLocalization.js";
|
|
19
16
|
const emptyActions = [];
|
|
20
17
|
|
|
21
18
|
/**
|
|
@@ -29,7 +26,6 @@ const emptyActions = [];
|
|
|
29
26
|
* - [DesktopDatePicker API](https://mui.com/x/api/date-pickers/desktop-date-picker/)
|
|
30
27
|
*/
|
|
31
28
|
const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker(inProps, ref) {
|
|
32
|
-
const translations = usePickerTranslations();
|
|
33
29
|
const utils = useUtils();
|
|
34
30
|
|
|
35
31
|
// Props with the default values common to all date pickers
|
|
@@ -47,7 +43,6 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
47
43
|
format: resolveDateFormat(utils, defaultizedProps, false),
|
|
48
44
|
yearsPerRow: defaultizedProps.yearsPerRow ?? 4,
|
|
49
45
|
slots: _extends({
|
|
50
|
-
openPickerIcon: CalendarIcon,
|
|
51
46
|
field: DateField
|
|
52
47
|
}, defaultizedProps.slots),
|
|
53
48
|
slotProps: _extends({}, defaultizedProps.slotProps, {
|
|
@@ -68,12 +63,6 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
68
63
|
props,
|
|
69
64
|
valueManager: singleItemValueManager,
|
|
70
65
|
valueType: 'date',
|
|
71
|
-
getOpenDialogAriaText: buildGetOpenDialogAriaText({
|
|
72
|
-
utils,
|
|
73
|
-
formatKey: 'fullDate',
|
|
74
|
-
contextTranslation: translations.openDatePickerDialogue,
|
|
75
|
-
propsTranslation: props.localeText?.openDatePickerDialogue
|
|
76
|
-
}),
|
|
77
66
|
validator: validateDate
|
|
78
67
|
});
|
|
79
68
|
return renderPicker();
|