@mui/x-date-pickers-pro 8.0.0-alpha.1 → 8.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +330 -7
- package/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/DateRangePicker/shared.d.ts +3 -2
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/DateTimeRangePicker/DateTimeRangePickerTabs.js +8 -7
- package/DateTimeRangePicker/shared.d.ts +4 -3
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +10 -12
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +12 -10
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +10 -12
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +11 -9
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +10 -12
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +11 -9
- package/README.md +7 -4
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +5 -5
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +11 -10
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +5 -5
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.types.d.ts +11 -10
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +5 -5
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.types.d.ts +10 -9
- package/index.js +1 -1
- package/internals/hooks/models/useRangePicker.d.ts +1 -2
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +12 -2
- package/internals/hooks/useEnrichedRangePickerFieldProps.d.ts +13 -12
- package/internals/hooks/useEnrichedRangePickerFieldProps.js +10 -11
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +13 -3
- package/internals/hooks/useMultiInputFieldSelectedSections.d.ts +6 -7
- package/internals/hooks/useRangePosition.d.ts +3 -2
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +1 -2
- package/internals/models/dateTimeRange.d.ts +2 -2
- package/internals/models/fields.d.ts +6 -6
- package/internals/models/timeRange.d.ts +2 -2
- package/internals/utils/date-fields-utils.d.ts +6 -6
- package/internals/utils/releaseInfo.js +1 -1
- package/internals/utils/valueManagers.d.ts +4 -3
- package/models/dateRange.d.ts +3 -3
- package/models/fields.d.ts +6 -9
- package/models/index.d.ts +1 -0
- package/models/index.js +2 -1
- package/models/range.d.ts +0 -1
- package/modern/DateTimeRangePicker/DateTimeRangePickerTabs.js +8 -7
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +10 -12
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +10 -12
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +10 -12
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +5 -5
- package/modern/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +5 -5
- package/modern/SingleInputTimeRangeField/SingleInputTimeRangeField.js +5 -5
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +12 -2
- package/modern/internals/hooks/useEnrichedRangePickerFieldProps.js +10 -11
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +13 -3
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/models/index.js +2 -1
- package/modern/validation/validateDateRange.js +8 -0
- package/modern/validation/validateDateTimeRange.js +4 -0
- package/modern/validation/validateTimeRange.js +8 -0
- package/node/DateTimeRangePicker/DateTimeRangePickerTabs.js +7 -6
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +9 -11
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +9 -11
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +9 -11
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +4 -4
- package/node/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +4 -4
- package/node/SingleInputTimeRangeField/SingleInputTimeRangeField.js +4 -4
- package/node/index.js +1 -1
- package/node/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +12 -2
- package/node/internals/hooks/useEnrichedRangePickerFieldProps.js +10 -11
- package/node/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +13 -3
- package/node/internals/utils/releaseInfo.js +1 -1
- package/node/validation/validateDateRange.js +8 -0
- package/node/validation/validateDateTimeRange.js +4 -0
- package/node/validation/validateTimeRange.js +8 -0
- package/package.json +4 -4
- package/validation/validateDateRange.d.ts +9 -1
- package/validation/validateDateRange.js +8 -0
- package/validation/validateDateTimeRange.d.ts +6 -2
- package/validation/validateDateTimeRange.js +4 -0
- package/validation/validateTimeRange.d.ts +9 -1
- package/validation/validateTimeRange.js +8 -0
|
@@ -40,13 +40,22 @@ export const useMobileRangePicker = _ref => {
|
|
|
40
40
|
} = props;
|
|
41
41
|
const startFieldRef = React.useRef(null);
|
|
42
42
|
const endFieldRef = React.useRef(null);
|
|
43
|
+
const singleInputFieldRef = React.useRef(null);
|
|
43
44
|
const fieldType = slots.field.fieldType ?? 'multi-input';
|
|
44
45
|
const {
|
|
45
46
|
rangePosition,
|
|
46
47
|
onRangePositionChange
|
|
47
|
-
} = useRangePosition(props, fieldType === 'single-input' ?
|
|
48
|
+
} = useRangePosition(props, fieldType === 'single-input' ? singleInputFieldRef : undefined);
|
|
48
49
|
const labelId = useId();
|
|
49
50
|
const contextTranslations = usePickerTranslations();
|
|
51
|
+
let fieldRef;
|
|
52
|
+
if (fieldType === 'single-input') {
|
|
53
|
+
fieldRef = singleInputFieldRef;
|
|
54
|
+
} else if (rangePosition === 'start') {
|
|
55
|
+
fieldRef = startFieldRef;
|
|
56
|
+
} else {
|
|
57
|
+
fieldRef = endFieldRef;
|
|
58
|
+
}
|
|
50
59
|
const {
|
|
51
60
|
open,
|
|
52
61
|
actions,
|
|
@@ -59,7 +68,7 @@ export const useMobileRangePicker = _ref => {
|
|
|
59
68
|
props,
|
|
60
69
|
variant: 'mobile',
|
|
61
70
|
autoFocusView: true,
|
|
62
|
-
fieldRef
|
|
71
|
+
fieldRef,
|
|
63
72
|
localeText,
|
|
64
73
|
additionalViewProps: {
|
|
65
74
|
rangePosition,
|
|
@@ -110,7 +119,8 @@ export const useMobileRangePicker = _ref => {
|
|
|
110
119
|
pickerSlotProps: innerSlotProps,
|
|
111
120
|
fieldProps,
|
|
112
121
|
startFieldRef,
|
|
113
|
-
endFieldRef
|
|
122
|
+
endFieldRef,
|
|
123
|
+
singleInputFieldRef
|
|
114
124
|
});
|
|
115
125
|
const slotPropsForLayout = _extends({}, innerSlotProps, {
|
|
116
126
|
tabs: _extends({}, innerSlotProps?.tabs, {
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
2
|
+
import { PickerRangeValue, PickerValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
3
3
|
import { FieldRef, FieldSelectedSections } from '@mui/x-date-pickers/models';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
unstableEndFieldRef?: React.Ref<FieldRef<RangeFieldSection>>;
|
|
4
|
+
interface UseMultiInputFieldSelectedSectionsParams extends Pick<UseFieldInternalProps<PickerRangeValue, any, any>, 'selectedSections' | 'onSelectedSectionsChange'> {
|
|
5
|
+
unstableStartFieldRef?: React.Ref<FieldRef<PickerValue>>;
|
|
6
|
+
unstableEndFieldRef?: React.Ref<FieldRef<PickerValue>>;
|
|
8
7
|
}
|
|
9
8
|
export declare const useMultiInputFieldSelectedSections: (params: UseMultiInputFieldSelectedSectionsParams) => {
|
|
10
9
|
start: {
|
|
11
|
-
unstableFieldRef: React.Ref<FieldRef<
|
|
10
|
+
unstableFieldRef: React.Ref<FieldRef<PickerValue>> | undefined;
|
|
12
11
|
selectedSections: FieldSelectedSections;
|
|
13
12
|
onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
|
|
14
13
|
};
|
|
15
14
|
end: {
|
|
16
|
-
unstableFieldRef: ((instance: FieldRef<
|
|
15
|
+
unstableFieldRef: ((instance: FieldRef<PickerValue> | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | null;
|
|
17
16
|
selectedSections: FieldSelectedSections;
|
|
18
17
|
onSelectedSectionsChange: (newSelectedSections: FieldSelectedSections) => void;
|
|
19
18
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { FieldRef } from '@mui/x-date-pickers/models';
|
|
3
|
-
import {
|
|
3
|
+
import { PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
4
|
+
import { RangePosition } from '../../models';
|
|
4
5
|
export interface UseRangePositionProps {
|
|
5
6
|
/**
|
|
6
7
|
* The position in the currently edited date range.
|
|
@@ -23,4 +24,4 @@ export interface UseRangePositionResponse {
|
|
|
23
24
|
rangePosition: RangePosition;
|
|
24
25
|
onRangePositionChange: (newPosition: RangePosition) => void;
|
|
25
26
|
}
|
|
26
|
-
export declare const useRangePosition: (props: UseRangePositionProps, singleInputFieldRef?: React.RefObject<FieldRef<
|
|
27
|
+
export declare const useRangePosition: (props: UseRangePositionProps, singleInputFieldRef?: React.RefObject<FieldRef<PickerRangeValue>>) => UseRangePositionResponse;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { BasePickerProps, UsePickerParams, ExportedBaseToolbarProps, StaticOnlyPickerProps, DateOrTimeViewWithMeridiem, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
3
|
import { ExportedPickersLayoutSlots, ExportedPickersLayoutSlotProps } from '@mui/x-date-pickers/PickersLayout';
|
|
4
|
-
import { RangeFieldSection } from '../../../models';
|
|
5
4
|
import { UseRangePositionProps } from '../useRangePosition';
|
|
6
5
|
export interface UseStaticRangePickerSlots<TView extends DateOrTimeViewWithMeridiem> extends ExportedPickersLayoutSlots<PickerRangeValue, TView> {
|
|
7
6
|
}
|
|
@@ -22,7 +21,7 @@ export interface UseStaticRangePickerProps<TView extends DateOrTimeViewWithMerid
|
|
|
22
21
|
*/
|
|
23
22
|
slotProps?: UseStaticRangePickerSlotProps<TView>;
|
|
24
23
|
}
|
|
25
|
-
export interface UseStaticRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParams<PickerRangeValue, TView,
|
|
24
|
+
export interface UseStaticRangePickerParams<TView extends DateOrTimeViewWithMeridiem, TExternalProps extends UseStaticRangePickerProps<TView, any, TExternalProps>> extends Pick<UsePickerParams<PickerRangeValue, TView, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
|
|
26
25
|
props: TExternalProps;
|
|
27
26
|
/**
|
|
28
27
|
* Ref to pass to the root element
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseFieldInternalProps, DateOrTimeViewWithMeridiem, AmPmProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
|
-
import { DateTimeRangeValidationError,
|
|
3
|
+
import { DateTimeRangeValidationError, RangeFieldSeparatorProps } from '../../models';
|
|
4
4
|
import { ExportedValidateDateTimeRangeProps } from '../../validation/validateDateTimeRange';
|
|
5
|
-
export interface UseDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<Omit<UseFieldInternalProps<PickerRangeValue,
|
|
5
|
+
export interface UseDateTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<Omit<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateTimeRangeValidationError>, 'unstableFieldRef'>, 'format'>, RangeFieldSeparatorProps, ExportedValidateDateTimeRangeProps, AmPmProps {
|
|
6
6
|
}
|
|
7
7
|
export type DateTimeRangePickerView = Exclude<DateOrTimeViewWithMeridiem, 'month' | 'year'>;
|
|
8
8
|
export type DateTimeRangePickerViewExternal = Exclude<DateTimeRangePickerView, 'meridiem'>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { SxProps } from '@mui/material/styles';
|
|
2
2
|
import { SlotComponentProps } from '@mui/utils';
|
|
3
3
|
import { MakeRequired } from '@mui/x-internals/types';
|
|
4
|
-
import { UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
5
|
-
import {
|
|
4
|
+
import { PickerRangeValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
5
|
+
import { FieldOwnerState } from '@mui/x-date-pickers/models';
|
|
6
6
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
7
7
|
import type { MultiInputFieldRefs, MultiInputFieldSlotRootProps, RangeFieldSeparatorProps, RangePosition } from '../../models';
|
|
8
8
|
/**
|
|
9
9
|
* Props the multi input field can receive when used inside a picker.
|
|
10
10
|
* Only contains what the MUI components are passing to the field, not what users can pass using the `props.slotProps.field`.
|
|
11
11
|
*/
|
|
12
|
-
export interface BaseMultiInputFieldProps<
|
|
12
|
+
export interface BaseMultiInputFieldProps<TEnableAccessibleFieldDOMStructure extends boolean, TError> extends MakeRequired<Pick<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TError>, 'readOnly' | 'disabled' | 'format' | 'formatDensity' | 'enableAccessibleFieldDOMStructure' | 'selectedSections' | 'onSelectedSectionsChange' | 'timezone' | 'autoFocus' | 'value' | 'onChange'>, 'format' | 'value' | 'onChange' | 'timezone'>, RangeFieldSeparatorProps, MultiInputFieldRefs {
|
|
13
13
|
className: string | undefined;
|
|
14
14
|
sx: SxProps<any> | undefined;
|
|
15
15
|
slots?: {
|
|
@@ -18,9 +18,9 @@ export interface BaseMultiInputFieldProps<TValue, TSection extends FieldSection,
|
|
|
18
18
|
textField?: React.ElementType;
|
|
19
19
|
};
|
|
20
20
|
slotProps?: {
|
|
21
|
-
root?: SlotComponentProps<React.ElementType<MultiInputFieldSlotRootProps>, {},
|
|
22
|
-
textField?: SlotComponentProps<typeof PickersTextField, {}, {
|
|
21
|
+
root?: SlotComponentProps<React.ElementType<MultiInputFieldSlotRootProps>, {}, FieldOwnerState>;
|
|
22
|
+
textField?: SlotComponentProps<typeof PickersTextField, {}, FieldOwnerState & {
|
|
23
23
|
position?: RangePosition;
|
|
24
|
-
}
|
|
24
|
+
}>;
|
|
25
25
|
};
|
|
26
26
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
2
|
import { UseFieldInternalProps, AmPmProps, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
|
-
import { TimeRangeValidationError,
|
|
3
|
+
import { TimeRangeValidationError, RangeFieldSeparatorProps } from '../../models';
|
|
4
4
|
import type { ExportedValidateTimeRangeProps } from '../../validation/validateTimeRange';
|
|
5
|
-
export interface UseTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<Omit<UseFieldInternalProps<PickerRangeValue,
|
|
5
|
+
export interface UseTimeRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<Omit<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, TimeRangeValidationError>, 'unstableFieldRef'>, 'format'>, RangeFieldSeparatorProps, ExportedValidateTimeRangeProps, AmPmProps {
|
|
6
6
|
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const splitDateRangeSections: (sections:
|
|
3
|
-
startDate:
|
|
4
|
-
endDate:
|
|
1
|
+
import { FieldRangeSection } from '@mui/x-date-pickers/internals';
|
|
2
|
+
export declare const splitDateRangeSections: (sections: FieldRangeSection[]) => {
|
|
3
|
+
startDate: FieldRangeSection[];
|
|
4
|
+
endDate: FieldRangeSection[];
|
|
5
5
|
};
|
|
6
|
-
export declare const removeLastSeparator: (dateSections:
|
|
6
|
+
export declare const removeLastSeparator: (dateSections: FieldRangeSection[]) => (FieldRangeSection | {
|
|
7
7
|
separator: null;
|
|
8
|
-
dateName: import("
|
|
8
|
+
dateName: import("@mui/x-date-pickers/internals").RangePosition;
|
|
9
9
|
value: string;
|
|
10
10
|
format: string;
|
|
11
11
|
maxLength: number | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTczMzM1MzIwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { PickerValueManager, FieldValueManager, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
2
|
-
import type { DateRangeValidationError, DateTimeRangeValidationError, TimeRangeValidationError
|
|
3
|
-
|
|
2
|
+
import type { DateRangeValidationError, DateTimeRangeValidationError, TimeRangeValidationError } from '../../models';
|
|
3
|
+
type RangePickerValueManager<TError extends DateRangeValidationError | TimeRangeValidationError | DateTimeRangeValidationError = any> = PickerValueManager<PickerRangeValue, TError>;
|
|
4
4
|
export declare const rangeValueManager: RangePickerValueManager;
|
|
5
5
|
export declare const getRangeFieldValueManager: ({ dateSeparator, }: {
|
|
6
6
|
dateSeparator: string | undefined;
|
|
7
|
-
}) => FieldValueManager<PickerRangeValue
|
|
7
|
+
}) => FieldValueManager<PickerRangeValue>;
|
|
8
|
+
export {};
|
package/models/dateRange.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MakeOptional } from '@mui/x-internals/types';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { PickerRangeValue, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
3
|
+
import { RangeFieldSeparatorProps } from './fields';
|
|
4
4
|
import { DateRangeValidationError } from './validation';
|
|
5
5
|
import type { ExportedValidateDateRangeProps } from '../validation/validateDateRange';
|
|
6
|
-
export interface UseDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<Omit<UseFieldInternalProps<PickerRangeValue,
|
|
6
|
+
export interface UseDateRangeFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> extends MakeOptional<Omit<UseFieldInternalProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure, DateRangeValidationError>, 'unstableFieldRef'>, 'format'>, RangeFieldSeparatorProps, ExportedValidateDateRangeProps {
|
|
7
7
|
}
|
package/models/fields.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { UseFieldResponse, FormProps } from '@mui/x-date-pickers/internals';
|
|
3
|
-
import { FieldRef,
|
|
2
|
+
import { UseFieldResponse, FormProps, PickerValue, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
|
+
import { FieldRef, PickerFieldSlotProps } from '@mui/x-date-pickers/models';
|
|
4
4
|
import { UseClearableFieldResponse } from '@mui/x-date-pickers/hooks';
|
|
5
|
-
|
|
6
|
-
export interface RangeFieldSection extends FieldSection {
|
|
7
|
-
dateName: RangePosition;
|
|
8
|
-
}
|
|
5
|
+
export type { FieldRangeSection } from '@mui/x-date-pickers/internals';
|
|
9
6
|
export type FieldType = 'single-input' | 'multi-input';
|
|
10
7
|
/**
|
|
11
8
|
* Props the `textField` slot of the multi input field can receive when used inside a picker.
|
|
@@ -30,8 +27,8 @@ export interface MultiInputFieldSlotRootProps {
|
|
|
30
27
|
onBlur?: React.FocusEventHandler;
|
|
31
28
|
}
|
|
32
29
|
export interface MultiInputFieldRefs {
|
|
33
|
-
unstableStartFieldRef?: React.Ref<FieldRef<
|
|
34
|
-
unstableEndFieldRef?: React.Ref<FieldRef<
|
|
30
|
+
unstableStartFieldRef?: React.Ref<FieldRef<PickerValue>>;
|
|
31
|
+
unstableEndFieldRef?: React.Ref<FieldRef<PickerValue>>;
|
|
35
32
|
}
|
|
36
33
|
export interface RangeFieldSeparatorProps {
|
|
37
34
|
/**
|
|
@@ -43,7 +40,7 @@ export interface RangeFieldSeparatorProps {
|
|
|
43
40
|
/**
|
|
44
41
|
* Props the `slotProps.field` of a range picker component can receive.
|
|
45
42
|
*/
|
|
46
|
-
export type PickerRangeFieldSlotProps<
|
|
43
|
+
export type PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> = PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & RangeFieldSeparatorProps;
|
|
47
44
|
/**
|
|
48
45
|
* Props the text field receives when used with a multi input picker.
|
|
49
46
|
* Only contains what the MUI components are passing to the text field, not what users can pass using the `props.slotProps.textField`.
|
package/models/index.d.ts
CHANGED
package/models/index.js
CHANGED
package/models/range.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { styled, useThemeProps } from '@mui/material/styles';
|
|
|
7
7
|
import composeClasses from '@mui/utils/composeClasses';
|
|
8
8
|
import useEventCallback from '@mui/utils/useEventCallback';
|
|
9
9
|
import { TimeIcon, DateRangeIcon, ArrowLeftIcon, ArrowRightIcon } from '@mui/x-date-pickers/icons';
|
|
10
|
-
import { isDatePickerView } from '@mui/x-date-pickers/internals';
|
|
10
|
+
import { isDatePickerView, usePickerPrivateContext } from '@mui/x-date-pickers/internals';
|
|
11
11
|
import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
|
|
12
12
|
import IconButton from '@mui/material/IconButton';
|
|
13
13
|
import Button from '@mui/material/Button';
|
|
@@ -25,10 +25,7 @@ const tabToView = tab => {
|
|
|
25
25
|
}
|
|
26
26
|
return 'hours';
|
|
27
27
|
};
|
|
28
|
-
const useUtilityClasses =
|
|
29
|
-
const {
|
|
30
|
-
classes
|
|
31
|
-
} = ownerState;
|
|
28
|
+
const useUtilityClasses = classes => {
|
|
32
29
|
const slots = {
|
|
33
30
|
root: ['root'],
|
|
34
31
|
tabButton: ['tabButton'],
|
|
@@ -79,10 +76,14 @@ const DateTimeRangePickerTabs = function DateTimeRangePickerTabs(inProps) {
|
|
|
79
76
|
rangePosition,
|
|
80
77
|
onRangePositionChange,
|
|
81
78
|
className,
|
|
79
|
+
classes: classesProp,
|
|
82
80
|
sx
|
|
83
81
|
} = props;
|
|
84
82
|
const translations = usePickerTranslations();
|
|
85
|
-
const
|
|
83
|
+
const {
|
|
84
|
+
ownerState
|
|
85
|
+
} = usePickerPrivateContext();
|
|
86
|
+
const classes = useUtilityClasses(classesProp);
|
|
86
87
|
const value = React.useMemo(() => viewToTab(view, rangePosition), [view, rangePosition]);
|
|
87
88
|
const isPreviousHidden = value === 'start-date';
|
|
88
89
|
const isNextHidden = value === 'end-time';
|
|
@@ -121,7 +122,7 @@ const DateTimeRangePickerTabs = function DateTimeRangePickerTabs(inProps) {
|
|
|
121
122
|
return null;
|
|
122
123
|
}
|
|
123
124
|
return /*#__PURE__*/_jsxs(DateTimeRangePickerTabsRoot, {
|
|
124
|
-
ownerState:
|
|
125
|
+
ownerState: ownerState,
|
|
125
126
|
className: clsx(classes.root, className),
|
|
126
127
|
sx: sx,
|
|
127
128
|
children: [!isPreviousHidden ? /*#__PURE__*/_jsx(IconButton, {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
-
const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
|
|
5
|
+
const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className", "classes"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clsx from 'clsx';
|
|
@@ -12,17 +12,14 @@ import Typography from '@mui/material/Typography';
|
|
|
12
12
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
13
13
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
14
14
|
import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
|
|
15
|
+
import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
|
|
16
16
|
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
17
17
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
18
18
|
import { useMultiInputDateRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js";
|
|
19
19
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
20
|
export const multiInputDateRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateRangeField', ['root', 'separator']);
|
|
21
21
|
export const getMultiInputDateRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateRangeField', slot);
|
|
22
|
-
const useUtilityClasses =
|
|
23
|
-
const {
|
|
24
|
-
classes
|
|
25
|
-
} = ownerState;
|
|
22
|
+
const useUtilityClasses = classes => {
|
|
26
23
|
const slots = {
|
|
27
24
|
root: ['root'],
|
|
28
25
|
separator: ['separator']
|
|
@@ -70,11 +67,12 @@ const MultiInputDateRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
|
|
|
70
67
|
slotProps,
|
|
71
68
|
unstableStartFieldRef,
|
|
72
69
|
unstableEndFieldRef,
|
|
73
|
-
className
|
|
70
|
+
className,
|
|
71
|
+
classes: classesProp
|
|
74
72
|
} = forwardedProps,
|
|
75
73
|
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
76
|
-
const ownerState =
|
|
77
|
-
const classes = useUtilityClasses(
|
|
74
|
+
const ownerState = useFieldOwnerState(internalProps);
|
|
75
|
+
const classes = useUtilityClasses(classesProp);
|
|
78
76
|
const Root = slots?.root ?? MultiInputDateRangeFieldRoot;
|
|
79
77
|
const rootProps = useSlotProps({
|
|
80
78
|
elementType: Root,
|
|
@@ -258,10 +256,10 @@ process.env.NODE_ENV !== "production" ? MultiInputDateRangeField.propTypes = {
|
|
|
258
256
|
*/
|
|
259
257
|
shouldDisableDate: PropTypes.func,
|
|
260
258
|
/**
|
|
261
|
-
* If `true`, the format will respect the leading zeroes (
|
|
262
|
-
* If `false`, the format will always add leading zeroes (
|
|
259
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
260
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
263
261
|
*
|
|
264
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
262
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
265
263
|
*
|
|
266
264
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
267
265
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
-
const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
|
|
5
|
+
const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className", "classes"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import clsx from 'clsx';
|
|
@@ -12,17 +12,14 @@ import Typography from '@mui/material/Typography';
|
|
|
12
12
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
13
13
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
14
14
|
import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
|
|
15
|
+
import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
|
|
16
16
|
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
17
17
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
18
18
|
import { useMultiInputDateTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js";
|
|
19
19
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
20
|
export const multiInputDateTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputDateTimeRangeField', ['root', 'separator']);
|
|
21
21
|
export const getMultiInputDateTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputDateTimeRangeField', slot);
|
|
22
|
-
const useUtilityClasses =
|
|
23
|
-
const {
|
|
24
|
-
classes
|
|
25
|
-
} = ownerState;
|
|
22
|
+
const useUtilityClasses = classes => {
|
|
26
23
|
const slots = {
|
|
27
24
|
root: ['root'],
|
|
28
25
|
separator: ['separator']
|
|
@@ -70,11 +67,12 @@ const MultiInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Mult
|
|
|
70
67
|
slotProps,
|
|
71
68
|
unstableStartFieldRef,
|
|
72
69
|
unstableEndFieldRef,
|
|
73
|
-
className
|
|
70
|
+
className,
|
|
71
|
+
classes: classesProp
|
|
74
72
|
} = forwardedProps,
|
|
75
73
|
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
76
|
-
const ownerState = themeProps;
|
|
77
|
-
const classes = useUtilityClasses(
|
|
74
|
+
const ownerState = useFieldOwnerState(themeProps);
|
|
75
|
+
const classes = useUtilityClasses(classesProp);
|
|
78
76
|
const Root = slots?.root ?? MultiInputDateTimeRangeFieldRoot;
|
|
79
77
|
const rootProps = useSlotProps({
|
|
80
78
|
elementType: Root,
|
|
@@ -298,10 +296,10 @@ process.env.NODE_ENV !== "production" ? MultiInputDateTimeRangeField.propTypes =
|
|
|
298
296
|
*/
|
|
299
297
|
shouldDisableTime: PropTypes.func,
|
|
300
298
|
/**
|
|
301
|
-
* If `true`, the format will respect the leading zeroes (
|
|
302
|
-
* If `false`, the format will always add leading zeroes (
|
|
299
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
300
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
303
301
|
*
|
|
304
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
302
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
305
303
|
*
|
|
306
304
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
307
305
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
4
4
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
5
|
-
const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className"];
|
|
5
|
+
const _excluded = ["slots", "slotProps", "unstableStartFieldRef", "unstableEndFieldRef", "className", "classes"];
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import { clsx } from 'clsx';
|
|
@@ -12,17 +12,14 @@ import Typography from '@mui/material/Typography';
|
|
|
12
12
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
13
13
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
14
14
|
import { unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
|
|
15
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
|
|
15
|
+
import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
|
|
16
16
|
import { useSplitFieldProps } from '@mui/x-date-pickers/hooks';
|
|
17
17
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
18
18
|
import { useMultiInputTimeRangeField } from "../internals/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js";
|
|
19
19
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
20
|
export const multiInputTimeRangeFieldClasses = generateUtilityClasses('MuiMultiInputTimeRangeField', ['root', 'separator']);
|
|
21
21
|
export const getMultiInputTimeRangeFieldUtilityClass = slot => generateUtilityClass('MuiMultiInputTimeRangeField', slot);
|
|
22
|
-
const useUtilityClasses =
|
|
23
|
-
const {
|
|
24
|
-
classes
|
|
25
|
-
} = ownerState;
|
|
22
|
+
const useUtilityClasses = classes => {
|
|
26
23
|
const slots = {
|
|
27
24
|
root: ['root'],
|
|
28
25
|
separator: ['separator']
|
|
@@ -70,11 +67,12 @@ const MultiInputTimeRangeField = /*#__PURE__*/React.forwardRef(function MultiInp
|
|
|
70
67
|
slotProps,
|
|
71
68
|
unstableStartFieldRef,
|
|
72
69
|
unstableEndFieldRef,
|
|
73
|
-
className
|
|
70
|
+
className,
|
|
71
|
+
classes: classesProp
|
|
74
72
|
} = forwardedProps,
|
|
75
73
|
otherForwardedProps = _objectWithoutPropertiesLoose(forwardedProps, _excluded);
|
|
76
|
-
const ownerState = themeProps;
|
|
77
|
-
const classes = useUtilityClasses(
|
|
74
|
+
const ownerState = useFieldOwnerState(themeProps);
|
|
75
|
+
const classes = useUtilityClasses(classesProp);
|
|
78
76
|
const Root = slots?.root ?? MultiInputTimeRangeFieldRoot;
|
|
79
77
|
const rootProps = useSlotProps({
|
|
80
78
|
elementType: Root,
|
|
@@ -270,10 +268,10 @@ process.env.NODE_ENV !== "production" ? MultiInputTimeRangeField.propTypes = {
|
|
|
270
268
|
*/
|
|
271
269
|
shouldDisableTime: PropTypes.func,
|
|
272
270
|
/**
|
|
273
|
-
* If `true`, the format will respect the leading zeroes (
|
|
274
|
-
* If `false`, the format will always add leading zeroes (
|
|
271
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
272
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
275
273
|
*
|
|
276
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
274
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
277
275
|
*
|
|
278
276
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
279
277
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
@@ -10,7 +10,7 @@ import { useThemeProps } from '@mui/material/styles';
|
|
|
10
10
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
11
11
|
import { refType } from '@mui/utils';
|
|
12
12
|
import { useClearableField } from '@mui/x-date-pickers/hooks';
|
|
13
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
|
|
13
|
+
import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
|
|
14
14
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
15
15
|
import { useSingleInputDateRangeField } from "./useSingleInputDateRangeField.js";
|
|
16
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -36,7 +36,7 @@ const SingleInputDateRangeField = /*#__PURE__*/React.forwardRef(function SingleI
|
|
|
36
36
|
inputProps
|
|
37
37
|
} = themeProps,
|
|
38
38
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
39
|
-
const ownerState = themeProps;
|
|
39
|
+
const ownerState = useFieldOwnerState(themeProps);
|
|
40
40
|
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
41
41
|
const textFieldProps = useSlotProps({
|
|
42
42
|
elementType: TextField,
|
|
@@ -262,10 +262,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateRangeField.propTypes = {
|
|
|
262
262
|
*/
|
|
263
263
|
shouldDisableDate: PropTypes.func,
|
|
264
264
|
/**
|
|
265
|
-
* If `true`, the format will respect the leading zeroes (
|
|
266
|
-
* If `false`, the format will always add leading zeroes (
|
|
265
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
266
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
267
267
|
*
|
|
268
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
268
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
269
269
|
*
|
|
270
270
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
271
271
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
@@ -6,7 +6,7 @@ const _excluded = ["slots", "slotProps", "InputProps", "inputProps"];
|
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import MuiTextField from '@mui/material/TextField';
|
|
9
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
|
|
9
|
+
import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
|
|
10
10
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
11
11
|
import { useThemeProps } from '@mui/material/styles';
|
|
12
12
|
import { refType } from '@mui/utils';
|
|
@@ -36,7 +36,7 @@ const SingleInputDateTimeRangeField = /*#__PURE__*/React.forwardRef(function Sin
|
|
|
36
36
|
inputProps
|
|
37
37
|
} = themeProps,
|
|
38
38
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
39
|
-
const ownerState = themeProps;
|
|
39
|
+
const ownerState = useFieldOwnerState(themeProps);
|
|
40
40
|
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
41
41
|
const textFieldProps = useSlotProps({
|
|
42
42
|
elementType: TextField,
|
|
@@ -302,10 +302,10 @@ process.env.NODE_ENV !== "production" ? SingleInputDateTimeRangeField.propTypes
|
|
|
302
302
|
*/
|
|
303
303
|
shouldDisableTime: PropTypes.func,
|
|
304
304
|
/**
|
|
305
|
-
* If `true`, the format will respect the leading zeroes (
|
|
306
|
-
* If `false`, the format will always add leading zeroes (
|
|
305
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
306
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
307
307
|
*
|
|
308
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
308
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
309
309
|
*
|
|
310
310
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
311
311
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
|
@@ -7,7 +7,7 @@ import * as React from 'react';
|
|
|
7
7
|
import PropTypes from 'prop-types';
|
|
8
8
|
import MuiTextField from '@mui/material/TextField';
|
|
9
9
|
import { useClearableField } from '@mui/x-date-pickers/hooks';
|
|
10
|
-
import { convertFieldResponseIntoMuiTextFieldProps } from '@mui/x-date-pickers/internals';
|
|
10
|
+
import { convertFieldResponseIntoMuiTextFieldProps, useFieldOwnerState } from '@mui/x-date-pickers/internals';
|
|
11
11
|
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
12
12
|
import { useThemeProps } from '@mui/material/styles';
|
|
13
13
|
import useSlotProps from '@mui/utils/useSlotProps';
|
|
@@ -36,7 +36,7 @@ const SingleInputTimeRangeField = /*#__PURE__*/React.forwardRef(function SingleI
|
|
|
36
36
|
inputProps
|
|
37
37
|
} = themeProps,
|
|
38
38
|
other = _objectWithoutPropertiesLoose(themeProps, _excluded);
|
|
39
|
-
const ownerState = themeProps;
|
|
39
|
+
const ownerState = useFieldOwnerState(themeProps);
|
|
40
40
|
const TextField = slots?.textField ?? (inProps.enableAccessibleFieldDOMStructure === false ? MuiTextField : PickersTextField);
|
|
41
41
|
const textFieldProps = useSlotProps({
|
|
42
42
|
elementType: TextField,
|
|
@@ -274,10 +274,10 @@ process.env.NODE_ENV !== "production" ? SingleInputTimeRangeField.propTypes = {
|
|
|
274
274
|
*/
|
|
275
275
|
shouldDisableTime: PropTypes.func,
|
|
276
276
|
/**
|
|
277
|
-
* If `true`, the format will respect the leading zeroes (
|
|
278
|
-
* If `false`, the format will always add leading zeroes (
|
|
277
|
+
* If `true`, the format will respect the leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `8/16/2018`)
|
|
278
|
+
* If `false`, the format will always add leading zeroes (for example on dayjs, the format `M/D/YYYY` will render `08/16/2018`)
|
|
279
279
|
*
|
|
280
|
-
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (
|
|
280
|
+
* Warning n°1: Luxon is not able to respect the leading zeroes when using macro tokens (for example "DD"), so `shouldRespectLeadingZeros={true}` might lead to inconsistencies when using `AdapterLuxon`.
|
|
281
281
|
*
|
|
282
282
|
* Warning n°2: When `shouldRespectLeadingZeros={true}`, the field will add an invisible character on the sections containing a single digit to make sure `onChange` is fired.
|
|
283
283
|
* If you need to get the clean value from the input, you can remove this character using `input.value.replace(/\u200e/g, '')`.
|
package/modern/index.js
CHANGED