@mui/x-date-pickers-pro 6.0.0-alpha.12 → 6.0.0-alpha.13
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 +132 -0
- package/DateRangeCalendar/DateRangeCalendar.js +7 -1
- package/DateRangeCalendar/DateRangeCalendar.types.d.ts +37 -37
- package/DateRangePicker/DateRangePicker.js +0 -5
- package/DateRangePicker/DateRangePickerView.d.ts +3 -3
- package/DateRangePicker/DateRangePickerView.js +6 -3
- package/DateRangePicker/DateRangePickerViewMobile.js +1 -1
- package/DateRangePickerDay/DateRangePickerDay.js +72 -1
- package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +5 -0
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
- package/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
- package/MobileDateRangePicker/MobileDateRangePicker.d.ts +5 -0
- package/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
- package/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +2 -2
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +3 -3
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +2 -2
- package/NextDateRangePicker/NextDateRangePicker.js +16 -2
- package/NextDateRangePicker/shared.d.ts +9 -2
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +3 -2
- package/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
- package/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +13 -0
- package/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
- package/dateRangeViewRenderers/index.d.ts +2 -0
- package/dateRangeViewRenderers/index.js +1 -0
- package/dateRangeViewRenderers/package.json +6 -0
- package/index.d.ts +1 -0
- package/index.js +5 -2
- package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +1 -1
- package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
- package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +4 -5
- package/internal/hooks/useMobileRangePicker/useMobileRangePicker.d.ts +1 -1
- package/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
- package/internal/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +4 -5
- package/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
- package/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
- package/internal/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +2 -0
- package/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
- package/internal/hooks/useRangePickerInputProps.d.ts +4 -6
- package/internal/hooks/useRangePickerInputProps.js +5 -6
- package/internal/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
- package/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
- package/internal/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- package/internal/models/dateRange.d.ts +11 -1
- package/internal/models/dateTimeRange.d.ts +2 -2
- package/internal/models/timeRange.d.ts +2 -1
- package/internal/utils/date-fields-utils.d.ts +17 -1
- package/internal/utils/releaseInfo.js +1 -1
- package/internal/utils/valueManagers.js +15 -21
- package/legacy/DateRangeCalendar/DateRangeCalendar.js +7 -1
- package/legacy/DateRangePicker/DateRangePicker.js +0 -5
- package/legacy/DateRangePicker/DateRangePickerView.js +7 -2
- package/legacy/DateRangePicker/DateRangePickerViewMobile.js +1 -1
- package/legacy/DateRangePickerDay/DateRangePickerDay.js +72 -1
- package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
- package/legacy/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
- package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
- package/legacy/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
- package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +44 -11
- package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +43 -8
- package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +43 -8
- package/legacy/NextDateRangePicker/NextDateRangePicker.js +16 -2
- package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +109 -4
- package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
- package/legacy/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
- package/legacy/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
- package/legacy/dateRangeViewRenderers/index.js +1 -0
- package/legacy/index.js +5 -2
- package/legacy/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
- package/legacy/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
- package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
- package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
- package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
- package/legacy/internal/hooks/useRangePickerInputProps.js +5 -6
- package/legacy/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
- package/legacy/internal/utils/releaseInfo.js +1 -1
- package/legacy/internal/utils/valueManagers.js +15 -23
- package/legacy/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +7 -1
- package/modern/DateRangePicker/DateRangePicker.js +0 -5
- package/modern/DateRangePicker/DateRangePickerView.js +6 -3
- package/modern/DateRangePicker/DateRangePickerViewMobile.js +1 -1
- package/modern/DateRangePickerDay/DateRangePickerDay.js +72 -1
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
- package/modern/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
- package/modern/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
- package/modern/NextDateRangePicker/NextDateRangePicker.js +16 -2
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
- package/modern/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
- package/modern/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
- package/modern/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
- package/modern/dateRangeViewRenderers/index.js +1 -0
- package/modern/index.js +5 -2
- package/modern/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
- package/modern/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
- package/modern/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
- package/modern/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
- package/modern/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
- package/modern/internal/hooks/useRangePickerInputProps.js +5 -6
- package/modern/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
- package/modern/internal/utils/releaseInfo.js +1 -1
- package/modern/internal/utils/valueManagers.js +15 -21
- package/modern/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +7 -1
- package/node/DateRangePicker/DateRangePicker.js +0 -5
- package/node/DateRangePicker/DateRangePickerView.js +6 -3
- package/node/DateRangePicker/DateRangePickerViewMobile.js +1 -1
- package/node/DateRangePickerDay/DateRangePickerDay.js +72 -1
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
- package/node/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
- package/node/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
- package/node/NextDateRangePicker/NextDateRangePicker.js +16 -2
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
- package/node/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
- package/node/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
- package/node/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +4 -4
- package/node/dateRangeViewRenderers/index.js +12 -0
- package/node/index.js +13 -1
- package/node/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
- package/node/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
- package/node/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
- package/node/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
- package/node/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
- package/node/internal/hooks/useRangePickerInputProps.js +5 -6
- package/node/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
- package/node/internal/utils/releaseInfo.js +1 -1
- package/node/internal/utils/valueManagers.js +14 -20
- package/node/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
- package/package.json +3 -3
- package/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
- package/internal/utils/viewRenderers.d.ts +0 -7
|
@@ -53,6 +53,7 @@ export const useRangePickerInputProps = ({
|
|
|
53
53
|
onRangePositionChange('end');
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
+
const readOnlyInput = readOnly != null ? readOnly : wrapperVariant === 'mobile';
|
|
56
57
|
const startInputProps = _extends({
|
|
57
58
|
inputRef: startRef,
|
|
58
59
|
label: (_inLocaleText$start = inLocaleText == null ? void 0 : inLocaleText.start) != null ? _inLocaleText$start : localeText.start,
|
|
@@ -62,9 +63,8 @@ export const useRangePickerInputProps = ({
|
|
|
62
63
|
}, !readOnly && !disabled && {
|
|
63
64
|
onClick: openRangeStartSelection
|
|
64
65
|
}, {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
}
|
|
66
|
+
readOnly: readOnlyInput,
|
|
67
|
+
disabled
|
|
68
68
|
});
|
|
69
69
|
const endInputProps = _extends({
|
|
70
70
|
inputRef: endRef,
|
|
@@ -75,9 +75,8 @@ export const useRangePickerInputProps = ({
|
|
|
75
75
|
}, !readOnly && !disabled && {
|
|
76
76
|
onClick: openRangeEndSelection
|
|
77
77
|
}, {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
78
|
+
readOnly: readOnlyInput,
|
|
79
|
+
disabled
|
|
81
80
|
});
|
|
82
81
|
const rootProps = {
|
|
83
82
|
onBlur
|
|
@@ -5,6 +5,6 @@ import { UseStaticRangePickerParams, UseStaticRangePickerProps } from './useStat
|
|
|
5
5
|
* Hook managing all the range static pickers:
|
|
6
6
|
* - StaticDateRangePicker
|
|
7
7
|
*/
|
|
8
|
-
export declare const useStaticRangePicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticRangePickerProps<TDate, TView, any>>({ props, valueManager,
|
|
8
|
+
export declare const useStaticRangePicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticRangePickerProps<TDate, TView, any, TExternalProps>>({ props, valueManager, validator, ref, }: UseStaticRangePickerParams<TDate, TView, TExternalProps>) => {
|
|
9
9
|
renderPicker: () => JSX.Element;
|
|
10
10
|
};
|
|
@@ -19,7 +19,6 @@ const PickerStaticViewLayout = styled(PickersViewLayout)(({
|
|
|
19
19
|
export const useStaticRangePicker = ({
|
|
20
20
|
props,
|
|
21
21
|
valueManager,
|
|
22
|
-
viewLookup,
|
|
23
22
|
validator,
|
|
24
23
|
ref
|
|
25
24
|
}) => {
|
|
@@ -36,7 +35,6 @@ export const useStaticRangePicker = ({
|
|
|
36
35
|
renderCurrentView
|
|
37
36
|
} = usePicker({
|
|
38
37
|
props,
|
|
39
|
-
viewLookup,
|
|
40
38
|
valueManager,
|
|
41
39
|
validator,
|
|
42
40
|
autoFocusView: autoFocus != null ? autoFocus : false,
|
|
@@ -8,7 +8,7 @@ export interface UseStaticRangePickerSlotsComponentsProps<TDate, TView extends D
|
|
|
8
8
|
}
|
|
9
9
|
export interface StaticRangeOnlyPickerProps extends StaticOnlyPickerProps {
|
|
10
10
|
}
|
|
11
|
-
export interface UseStaticRangePickerProps<TDate, TView extends DateOrTimeView, TError
|
|
11
|
+
export interface UseStaticRangePickerProps<TDate, TView extends DateOrTimeView, TError, TExternalProps extends UseStaticRangePickerProps<TDate, TView, any, TExternalProps>> extends BaseNextPickerProps<DateRange<TDate>, TDate, TView, TError, TExternalProps, {}>, StaticRangeOnlyPickerProps {
|
|
12
12
|
/**
|
|
13
13
|
* Overrideable components.
|
|
14
14
|
* @default {}
|
|
@@ -20,7 +20,7 @@ export interface UseStaticRangePickerProps<TDate, TView extends DateOrTimeView,
|
|
|
20
20
|
*/
|
|
21
21
|
componentsProps?: UseStaticRangePickerSlotsComponentsProps<TDate, TView>;
|
|
22
22
|
}
|
|
23
|
-
export interface UseStaticRangePickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticRangePickerProps<TDate, TView, any>> extends Pick<UsePickerParams<DateRange<TDate>, TDate, TView, TExternalProps, {}>, 'valueManager' | '
|
|
23
|
+
export interface UseStaticRangePickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticRangePickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<DateRange<TDate>, TDate, TView, TExternalProps, {}>, 'valueManager' | 'validator'> {
|
|
24
24
|
props: TExternalProps;
|
|
25
25
|
/**
|
|
26
26
|
* Ref to pass to the root element
|
|
@@ -14,6 +14,16 @@ export interface DayRangeValidationProps<TDate> {
|
|
|
14
14
|
*/
|
|
15
15
|
shouldDisableDate?: (day: TDate, position: 'start' | 'end') => boolean;
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Props used in every range picker.
|
|
19
|
+
*/
|
|
20
|
+
export interface BaseRangeProps {
|
|
21
|
+
/**
|
|
22
|
+
* If `true`, the component is disabled.
|
|
23
|
+
* @default false
|
|
24
|
+
*/
|
|
25
|
+
disabled?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface UseDateRangeFieldProps<TDate> extends MakeOptional<UseFieldInternalProps<DateRange<TDate>, DateRangeValidationError>, 'format'>, DayRangeValidationProps<TDate>, BaseDateValidationProps<TDate>, BaseRangeProps {
|
|
18
28
|
}
|
|
19
29
|
export type UseDateRangeFieldDefaultizedProps<TDate> = DefaultizedProps<UseDateRangeFieldProps<TDate>, keyof BaseDateValidationProps<TDate> | 'format'>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BaseDateValidationProps, TimeValidationProps, DefaultizedProps, MakeOptional, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
2
|
-
import { DayRangeValidationProps } from './dateRange';
|
|
2
|
+
import { BaseRangeProps, DayRangeValidationProps } from './dateRange';
|
|
3
3
|
import { DateRange } from './range';
|
|
4
4
|
import { DateTimeRangeValidationError } from '../hooks/validation/useDateTimeRangeValidation';
|
|
5
|
-
export interface UseDateTimeRangeFieldProps<TDate> extends MakeOptional<UseFieldInternalProps<DateRange<TDate>, DateTimeRangeValidationError>, 'format'>, DayRangeValidationProps<TDate>, TimeValidationProps<TDate>, BaseDateValidationProps<TDate
|
|
5
|
+
export interface UseDateTimeRangeFieldProps<TDate> extends MakeOptional<UseFieldInternalProps<DateRange<TDate>, DateTimeRangeValidationError>, 'format'>, DayRangeValidationProps<TDate>, TimeValidationProps<TDate>, BaseDateValidationProps<TDate>, BaseRangeProps {
|
|
6
6
|
/**
|
|
7
7
|
* Minimal selectable moment of time with binding to date, to set min time in each day use `minTime`.
|
|
8
8
|
*/
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { BaseTimeValidationProps, TimeValidationProps, DefaultizedProps, MakeOptional, UseFieldInternalProps } from '@mui/x-date-pickers/internals';
|
|
2
2
|
import { DateRange } from './range';
|
|
3
3
|
import { TimeRangeValidationError } from '../hooks/validation/useTimeRangeValidation';
|
|
4
|
-
|
|
4
|
+
import { BaseRangeProps } from './dateRange';
|
|
5
|
+
export interface UseTimeRangeFieldProps<TDate> extends MakeOptional<UseFieldInternalProps<DateRange<TDate>, TimeRangeValidationError>, 'format'>, TimeValidationProps<TDate>, BaseTimeValidationProps, BaseRangeProps {
|
|
5
6
|
/**
|
|
6
7
|
* 12h/24h view for hour selection clock.
|
|
7
8
|
* @default `utils.is12HourCycleInCurrentLocale()`
|
|
@@ -3,4 +3,20 @@ export declare const splitDateRangeSections: (sections: RangeFieldSection[]) =>
|
|
|
3
3
|
startDate: RangeFieldSection[];
|
|
4
4
|
endDate: RangeFieldSection[];
|
|
5
5
|
};
|
|
6
|
-
export declare const removeLastSeparator: (dateSections: RangeFieldSection[]) => RangeFieldSection
|
|
6
|
+
export declare const removeLastSeparator: (dateSections: RangeFieldSection[]) => (RangeFieldSection | {
|
|
7
|
+
separator: null;
|
|
8
|
+
dateName: "start" | "end";
|
|
9
|
+
start: number;
|
|
10
|
+
end: number;
|
|
11
|
+
startInInput: number;
|
|
12
|
+
endInInput: number;
|
|
13
|
+
value: string;
|
|
14
|
+
placeholder: string;
|
|
15
|
+
startSeparator: string;
|
|
16
|
+
endSeparator: string;
|
|
17
|
+
dateSectionName: import("@mui/x-date-pickers").MuiDateSectionName;
|
|
18
|
+
contentType: "digit" | "letter";
|
|
19
|
+
formatValue: string;
|
|
20
|
+
edited: boolean;
|
|
21
|
+
hasTrailingZeroes: boolean;
|
|
22
|
+
})[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTY3MTgzMjgwMDAwMA==";
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import { replaceInvalidDateByNull, splitFormatIntoSections, addPositionPropertiesToSections,
|
|
2
|
+
import { replaceInvalidDateByNull, splitFormatIntoSections, addPositionPropertiesToSections, createDateStrForInputFromSections, getSectionOrder } from '@mui/x-date-pickers/internals';
|
|
3
3
|
import { splitDateRangeSections, removeLastSeparator } from './date-fields-utils';
|
|
4
4
|
export const rangeValueManager = {
|
|
5
5
|
emptyValue: [null, null],
|
|
@@ -29,35 +29,29 @@ export const rangeFieldValueManager = {
|
|
|
29
29
|
startDate: null,
|
|
30
30
|
endDate: null
|
|
31
31
|
} : splitDateRangeSections(prevSections);
|
|
32
|
-
const getSections = (newDate, prevDateSections) => {
|
|
32
|
+
const getSections = (newDate, prevDateSections, position) => {
|
|
33
33
|
const shouldReUsePrevDateSections = !utils.isValid(newDate) && !!prevDateSections;
|
|
34
34
|
if (shouldReUsePrevDateSections) {
|
|
35
35
|
return prevDateSections;
|
|
36
36
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
37
|
+
const sections = splitFormatIntoSections(utils, localeText, format, newDate);
|
|
38
|
+
return sections.map((section, sectionIndex) => {
|
|
39
|
+
if (sectionIndex === sections.length - 1 && position === 'start') {
|
|
40
|
+
return _extends({}, section, {
|
|
41
|
+
dateName: position,
|
|
42
|
+
endSeparator: `${section.endSeparator}\u2069 – \u2066`
|
|
43
|
+
});
|
|
44
|
+
}
|
|
43
45
|
return _extends({}, section, {
|
|
44
|
-
dateName:
|
|
45
|
-
separator: `\u2069 – \u2066`,
|
|
46
|
-
parsingSeparator: ' – '
|
|
46
|
+
dateName: position
|
|
47
47
|
});
|
|
48
|
-
}
|
|
49
|
-
return _extends({}, section, {
|
|
50
|
-
dateName: 'start'
|
|
51
48
|
});
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
dateName: 'end'
|
|
55
|
-
}));
|
|
56
|
-
return addPositionPropertiesToSections([...sectionsOfStartDate, ...sectionsOfEndDate]);
|
|
49
|
+
};
|
|
50
|
+
return addPositionPropertiesToSections([...getSections(start, prevDateRangeSections.startDate, 'start'), ...getSections(end, prevDateRangeSections.endDate, 'end')]);
|
|
57
51
|
},
|
|
58
52
|
getValueStrFromSections: sections => {
|
|
59
53
|
const dateRangeSections = splitDateRangeSections(sections);
|
|
60
|
-
return
|
|
54
|
+
return createDateStrForInputFromSections([...dateRangeSections.startDate, ...dateRangeSections.endDate]);
|
|
61
55
|
},
|
|
62
56
|
getActiveDateSections: (sections, activeSection) => {
|
|
63
57
|
const index = activeSection.dateName === 'start' ? 0 : 1;
|
|
@@ -90,7 +84,7 @@ export const rangeFieldValueManager = {
|
|
|
90
84
|
getSectionOrder: (utils, localeText, format, isRTL) => {
|
|
91
85
|
const splitedFormat = splitFormatIntoSections(utils, localeText, format, null);
|
|
92
86
|
return getSectionOrder([...splitedFormat.slice(0, splitedFormat.length - 1), _extends({}, splitedFormat[splitedFormat.length - 1], {
|
|
93
|
-
|
|
87
|
+
endSeparator: ' – '
|
|
94
88
|
}), ...splitedFormat], isRTL);
|
|
95
89
|
}
|
|
96
90
|
};
|
|
@@ -408,7 +408,7 @@ var DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalendar
|
|
|
408
408
|
className: classes.monthContainer,
|
|
409
409
|
children: [calendars === 1 ? /*#__PURE__*/_jsx(PickersCalendarHeader, {
|
|
410
410
|
views: ['day'],
|
|
411
|
-
|
|
411
|
+
view: 'day',
|
|
412
412
|
currentMonth: calendarState.currentMonth,
|
|
413
413
|
onMonthChange: function onMonthChange(newMonth, direction) {
|
|
414
414
|
return handleChangeMonth({
|
|
@@ -466,6 +466,12 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
|
|
|
466
466
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
467
467
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
468
468
|
// ----------------------------------------------------------------------
|
|
469
|
+
/**
|
|
470
|
+
* If `true`, the main element is focused during the first mount.
|
|
471
|
+
* This main element is:
|
|
472
|
+
* - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
|
|
473
|
+
* - the `input` element if there is a field rendered.
|
|
474
|
+
*/
|
|
469
475
|
autoFocus: PropTypes.bool,
|
|
470
476
|
/**
|
|
471
477
|
* The number of calendars to render.
|
|
@@ -233,11 +233,6 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
|
|
|
233
233
|
* Use in controlled mode (see open).
|
|
234
234
|
*/
|
|
235
235
|
onOpen: PropTypes.func,
|
|
236
|
-
/**
|
|
237
|
-
* Callback fired on view change.
|
|
238
|
-
* @param {DateView} view The new view.
|
|
239
|
-
*/
|
|
240
|
-
onViewChange: PropTypes.func,
|
|
241
236
|
/**
|
|
242
237
|
* Control the popup or dialog open state.
|
|
243
238
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
-
var _excluded = ["calendars", "className", "value", "DateInputProps", "defaultCalendarMonth", "disableAutoMonthSwitching", "disableFuture", "disableHighlightToday", "disablePast", "isMobileKeyboardViewOpen", "maxDate", "minDate", "onDateChange", "onMonthChange", "open", "reduceAnimations", "rangePosition", "onRangePositionChange", "shouldDisableDate", "showToolbar", "toggleMobileKeyboardView", "components", "componentsProps"];
|
|
4
|
+
var _excluded = ["calendars", "className", "value", "DateInputProps", "defaultCalendarMonth", "disableAutoMonthSwitching", "disableFuture", "disableHighlightToday", "disablePast", "isMobileKeyboardViewOpen", "maxDate", "minDate", "onDateChange", "onMonthChange", "open", "reduceAnimations", "rangePosition", "onRangePositionChange", "shouldDisableDate", "showToolbar", "toggleMobileKeyboardView", "components", "componentsProps", "onFocusedViewChange"];
|
|
5
5
|
import * as React from 'react';
|
|
6
6
|
import PropTypes from 'prop-types';
|
|
7
7
|
import { Watermark } from '@mui/x-license-pro';
|
|
@@ -44,6 +44,7 @@ function DateRangePickerViewRaw(props) {
|
|
|
44
44
|
toggleMobileKeyboardView = props.toggleMobileKeyboardView,
|
|
45
45
|
components = props.components,
|
|
46
46
|
componentsProps = props.componentsProps,
|
|
47
|
+
onFocusedViewChange = props.onFocusedViewChange,
|
|
47
48
|
other = _objectWithoutProperties(props, _excluded);
|
|
48
49
|
var utils = useUtils();
|
|
49
50
|
var wrapperVariant = React.useContext(WrapperVariantContext);
|
|
@@ -127,7 +128,11 @@ function DateRangePickerViewRaw(props) {
|
|
|
127
128
|
components: components,
|
|
128
129
|
componentsProps: componentsProps,
|
|
129
130
|
shouldDisableDate: wrappedShouldDisableDate
|
|
130
|
-
}, calendarState,
|
|
131
|
+
}, calendarState, {
|
|
132
|
+
onFocusedViewChange: onFocusedViewChange ? function (newHasFocus) {
|
|
133
|
+
return onFocusedViewChange('day', newHasFocus);
|
|
134
|
+
} : undefined
|
|
135
|
+
}, other);
|
|
131
136
|
switch (wrapperVariant) {
|
|
132
137
|
case 'desktop':
|
|
133
138
|
{
|
|
@@ -68,7 +68,7 @@ export function DateRangePickerViewMobile(props) {
|
|
|
68
68
|
maxDate: maxDateWithDisabled,
|
|
69
69
|
minDate: minDateWithDisabled,
|
|
70
70
|
onMonthChange: changeMonth,
|
|
71
|
-
|
|
71
|
+
view: "day",
|
|
72
72
|
views: onlyDayView,
|
|
73
73
|
disabled: disabled
|
|
74
74
|
}, other)), /*#__PURE__*/_jsx(DayCalendar, _extends({}, other, {
|
|
@@ -187,10 +187,26 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
|
|
|
187
187
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
188
188
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
189
189
|
// ----------------------------------------------------------------------
|
|
190
|
+
/**
|
|
191
|
+
* A ref for imperative actions.
|
|
192
|
+
* It currently only supports `focusVisible()` action.
|
|
193
|
+
*/
|
|
194
|
+
action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
195
|
+
current: PropTypes.shape({
|
|
196
|
+
focusVisible: PropTypes.func.isRequired
|
|
197
|
+
})
|
|
198
|
+
})]),
|
|
199
|
+
/**
|
|
200
|
+
* If `true`, the ripples are centered.
|
|
201
|
+
* They won't start at the cursor interaction position.
|
|
202
|
+
* @default false
|
|
203
|
+
*/
|
|
204
|
+
centerRipple: PropTypes.bool,
|
|
190
205
|
/**
|
|
191
206
|
* Override or extend the styles applied to the component.
|
|
192
207
|
*/
|
|
193
208
|
classes: PropTypes.object,
|
|
209
|
+
className: PropTypes.string,
|
|
194
210
|
/**
|
|
195
211
|
* The date to show.
|
|
196
212
|
*/
|
|
@@ -210,6 +226,33 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
|
|
|
210
226
|
* @default false
|
|
211
227
|
*/
|
|
212
228
|
disableMargin: PropTypes.bool,
|
|
229
|
+
/**
|
|
230
|
+
* If `true`, the ripple effect is disabled.
|
|
231
|
+
*
|
|
232
|
+
* ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
|
|
233
|
+
* to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
|
|
234
|
+
* @default false
|
|
235
|
+
*/
|
|
236
|
+
disableRipple: PropTypes.bool,
|
|
237
|
+
/**
|
|
238
|
+
* If `true`, the touch ripple effect is disabled.
|
|
239
|
+
* @default false
|
|
240
|
+
*/
|
|
241
|
+
disableTouchRipple: PropTypes.bool,
|
|
242
|
+
/**
|
|
243
|
+
* If `true`, the base button will have a keyboard focus ripple.
|
|
244
|
+
* @default false
|
|
245
|
+
*/
|
|
246
|
+
focusRipple: PropTypes.bool,
|
|
247
|
+
/**
|
|
248
|
+
* This prop can help identify which element has keyboard focus.
|
|
249
|
+
* The class name will be applied when the element gains the focus through keyboard interaction.
|
|
250
|
+
* It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
|
|
251
|
+
* The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
|
|
252
|
+
* A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
|
|
253
|
+
* if needed.
|
|
254
|
+
*/
|
|
255
|
+
focusVisibleClassName: PropTypes.string,
|
|
213
256
|
isAnimating: PropTypes.bool,
|
|
214
257
|
/**
|
|
215
258
|
* Set to `true` if the `day` is the end of a highlighted date range.
|
|
@@ -240,6 +283,11 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
|
|
|
240
283
|
*/
|
|
241
284
|
isVisuallySelected: PropTypes.bool,
|
|
242
285
|
onDaySelect: PropTypes.func.isRequired,
|
|
286
|
+
/**
|
|
287
|
+
* Callback fired when the component is focused with a keyboard.
|
|
288
|
+
* We trigger a `onFocus` callback too.
|
|
289
|
+
*/
|
|
290
|
+
onFocusVisible: PropTypes.func,
|
|
243
291
|
onMouseEnter: PropTypes.func,
|
|
244
292
|
/**
|
|
245
293
|
* If `true`, day is outside of month and will be hidden.
|
|
@@ -255,11 +303,34 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
|
|
|
255
303
|
* @default false
|
|
256
304
|
*/
|
|
257
305
|
showDaysOutsideCurrentMonth: PropTypes.bool,
|
|
306
|
+
style: PropTypes.object,
|
|
307
|
+
/**
|
|
308
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
309
|
+
*/
|
|
310
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
311
|
+
/**
|
|
312
|
+
* @default 0
|
|
313
|
+
*/
|
|
314
|
+
tabIndex: PropTypes.number,
|
|
258
315
|
/**
|
|
259
316
|
* If `true`, renders as today date.
|
|
260
317
|
* @default false
|
|
261
318
|
*/
|
|
262
|
-
today: PropTypes.bool
|
|
319
|
+
today: PropTypes.bool,
|
|
320
|
+
/**
|
|
321
|
+
* Props applied to the `TouchRipple` element.
|
|
322
|
+
*/
|
|
323
|
+
TouchRippleProps: PropTypes.object,
|
|
324
|
+
/**
|
|
325
|
+
* A ref that points to the `TouchRipple` element.
|
|
326
|
+
*/
|
|
327
|
+
touchRippleRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
328
|
+
current: PropTypes.shape({
|
|
329
|
+
pulsate: PropTypes.func.isRequired,
|
|
330
|
+
start: PropTypes.func.isRequired,
|
|
331
|
+
stop: PropTypes.func.isRequired
|
|
332
|
+
})
|
|
333
|
+
})])
|
|
263
334
|
} : void 0;
|
|
264
335
|
|
|
265
336
|
/**
|
|
@@ -251,11 +251,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateRangePicker.propTypes = {
|
|
|
251
251
|
* Use in controlled mode (see open).
|
|
252
252
|
*/
|
|
253
253
|
onOpen: PropTypes.func,
|
|
254
|
-
/**
|
|
255
|
-
* Callback fired on view change.
|
|
256
|
-
* @param {DateView} view The new view.
|
|
257
|
-
*/
|
|
258
|
-
onViewChange: PropTypes.func,
|
|
259
254
|
/**
|
|
260
255
|
* Control the popup or dialog open state.
|
|
261
256
|
*/
|
|
@@ -7,13 +7,10 @@ import { extractValidationProps } from '@mui/x-date-pickers/internals';
|
|
|
7
7
|
import { resolveComponentProps } from '@mui/base/utils';
|
|
8
8
|
import { rangeValueManager } from '../internal/utils/valueManagers';
|
|
9
9
|
import { useNextDateRangePickerDefaultizedProps } from '../NextDateRangePicker/shared';
|
|
10
|
-
import {
|
|
10
|
+
import { renderDateRangeViewCalendar } from '../dateRangeViewRenderers';
|
|
11
11
|
import { Unstable_MultiInputDateRangeField as MultiInputDateRangeField } from '../MultiInputDateRangeField';
|
|
12
|
-
import {
|
|
12
|
+
import { useDesktopRangePicker } from '../internal/hooks/useDesktopRangePicker';
|
|
13
13
|
import { validateDateRange } from '../internal/hooks/validation/useDateRangeValidation';
|
|
14
|
-
var VIEW_LOOKUP = {
|
|
15
|
-
day: renderDateRangeView
|
|
16
|
-
};
|
|
17
14
|
var DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopNextDateRangePicker(inProps, ref) {
|
|
18
15
|
var _defaultizedProps$cal, _defaultizedProps$sho;
|
|
19
16
|
// Props with the default values common to all date time pickers
|
|
@@ -21,7 +18,11 @@ var DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopN
|
|
|
21
18
|
className = _useNextDateRangePick.className,
|
|
22
19
|
sx = _useNextDateRangePick.sx,
|
|
23
20
|
defaultizedProps = _objectWithoutProperties(_useNextDateRangePick, _excluded);
|
|
21
|
+
var viewRenderers = _extends({
|
|
22
|
+
day: renderDateRangeViewCalendar
|
|
23
|
+
}, defaultizedProps.viewRenderers);
|
|
24
24
|
var props = _extends({}, defaultizedProps, {
|
|
25
|
+
viewRenderers: viewRenderers,
|
|
25
26
|
calendars: (_defaultizedProps$cal = defaultizedProps.calendars) != null ? _defaultizedProps$cal : 2,
|
|
26
27
|
views: ['day'],
|
|
27
28
|
openTo: 'day',
|
|
@@ -43,7 +44,6 @@ var DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopN
|
|
|
43
44
|
var _useDesktopRangePicke = useDesktopRangePicker({
|
|
44
45
|
props: props,
|
|
45
46
|
valueManager: rangeValueManager,
|
|
46
|
-
viewLookup: VIEW_LOOKUP,
|
|
47
47
|
validator: validateDateRange
|
|
48
48
|
}),
|
|
49
49
|
renderPicker = _useDesktopRangePicke.renderPicker;
|
|
@@ -54,6 +54,12 @@ DesktopNextDateRangePicker.propTypes = {
|
|
|
54
54
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
55
55
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
56
56
|
// ----------------------------------------------------------------------
|
|
57
|
+
/**
|
|
58
|
+
* If `true`, the main element is focused during the first mount.
|
|
59
|
+
* This main element is:
|
|
60
|
+
* - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
|
|
61
|
+
* - the `input` element if there is a field rendered.
|
|
62
|
+
*/
|
|
57
63
|
autoFocus: PropTypes.bool,
|
|
58
64
|
/**
|
|
59
65
|
* The number of calendars to render on **desktop**.
|
|
@@ -234,7 +240,7 @@ DesktopNextDateRangePicker.propTypes = {
|
|
|
234
240
|
* 4. If `null` is provided, no section will be selected
|
|
235
241
|
* If not provided, the selected sections will be handled internally.
|
|
236
242
|
*/
|
|
237
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
|
|
243
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
|
|
238
244
|
endIndex: PropTypes.number.isRequired,
|
|
239
245
|
startIndex: PropTypes.number.isRequired
|
|
240
246
|
})]),
|
|
@@ -264,6 +270,14 @@ DesktopNextDateRangePicker.propTypes = {
|
|
|
264
270
|
* The selected value.
|
|
265
271
|
* Used when the component is controlled.
|
|
266
272
|
*/
|
|
267
|
-
value: PropTypes.arrayOf(PropTypes.any)
|
|
273
|
+
value: PropTypes.arrayOf(PropTypes.any),
|
|
274
|
+
/**
|
|
275
|
+
* Define custom view renderers for each section.
|
|
276
|
+
* If `null`, the section will only have field editing.
|
|
277
|
+
* If `undefined`, internally defined view will be the used.
|
|
278
|
+
*/
|
|
279
|
+
viewRenderers: PropTypes.shape({
|
|
280
|
+
day: PropTypes.func
|
|
281
|
+
})
|
|
268
282
|
};
|
|
269
283
|
export { DesktopNextDateRangePicker };
|
|
@@ -256,11 +256,6 @@ process.env.NODE_ENV !== "production" ? MobileDateRangePicker.propTypes = {
|
|
|
256
256
|
* Use in controlled mode (see open).
|
|
257
257
|
*/
|
|
258
258
|
onOpen: PropTypes.func,
|
|
259
|
-
/**
|
|
260
|
-
* Callback fired on view change.
|
|
261
|
-
* @param {DateView} view The new view.
|
|
262
|
-
*/
|
|
263
|
-
onViewChange: PropTypes.func,
|
|
264
259
|
/**
|
|
265
260
|
* Control the popup or dialog open state.
|
|
266
261
|
*/
|
|
@@ -7,13 +7,10 @@ import { extractValidationProps } from '@mui/x-date-pickers/internals';
|
|
|
7
7
|
import { resolveComponentProps } from '@mui/base/utils';
|
|
8
8
|
import { rangeValueManager } from '../internal/utils/valueManagers';
|
|
9
9
|
import { useNextDateRangePickerDefaultizedProps } from '../NextDateRangePicker/shared';
|
|
10
|
-
import {
|
|
10
|
+
import { renderDateRangeViewCalendar } from '../dateRangeViewRenderers';
|
|
11
11
|
import { Unstable_MultiInputDateRangeField as MultiInputDateRangeField } from '../MultiInputDateRangeField';
|
|
12
|
-
import {
|
|
12
|
+
import { useMobileRangePicker } from '../internal/hooks/useMobileRangePicker';
|
|
13
13
|
import { validateDateRange } from '../internal/hooks/validation/useDateRangeValidation';
|
|
14
|
-
var VIEW_LOOKUP = {
|
|
15
|
-
day: renderDateRangeView
|
|
16
|
-
};
|
|
17
14
|
var MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileNextDateRangePicker(inProps, ref) {
|
|
18
15
|
var _defaultizedProps$cal, _defaultizedProps$sho;
|
|
19
16
|
// Props with the default values common to all date time pickers
|
|
@@ -21,7 +18,11 @@ var MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileNex
|
|
|
21
18
|
className = _useNextDateRangePick.className,
|
|
22
19
|
sx = _useNextDateRangePick.sx,
|
|
23
20
|
defaultizedProps = _objectWithoutProperties(_useNextDateRangePick, _excluded);
|
|
21
|
+
var viewRenderers = _extends({
|
|
22
|
+
day: renderDateRangeViewCalendar
|
|
23
|
+
}, defaultizedProps.viewRenderers);
|
|
24
24
|
var props = _extends({}, defaultizedProps, {
|
|
25
|
+
viewRenderers: viewRenderers,
|
|
25
26
|
calendars: (_defaultizedProps$cal = defaultizedProps.calendars) != null ? _defaultizedProps$cal : 1,
|
|
26
27
|
views: ['day'],
|
|
27
28
|
openTo: 'day',
|
|
@@ -43,7 +44,6 @@ var MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileNex
|
|
|
43
44
|
var _useMobileRangePicker = useMobileRangePicker({
|
|
44
45
|
props: props,
|
|
45
46
|
valueManager: rangeValueManager,
|
|
46
|
-
viewLookup: VIEW_LOOKUP,
|
|
47
47
|
validator: validateDateRange
|
|
48
48
|
}),
|
|
49
49
|
renderPicker = _useMobileRangePicker.renderPicker;
|
|
@@ -54,6 +54,12 @@ MobileNextDateRangePicker.propTypes = {
|
|
|
54
54
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
55
55
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
56
56
|
// ----------------------------------------------------------------------
|
|
57
|
+
/**
|
|
58
|
+
* If `true`, the main element is focused during the first mount.
|
|
59
|
+
* This main element is:
|
|
60
|
+
* - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
|
|
61
|
+
* - the `input` element if there is a field rendered.
|
|
62
|
+
*/
|
|
57
63
|
autoFocus: PropTypes.bool,
|
|
58
64
|
/**
|
|
59
65
|
* The number of calendars to render on **desktop**.
|
|
@@ -234,7 +240,7 @@ MobileNextDateRangePicker.propTypes = {
|
|
|
234
240
|
* 4. If `null` is provided, no section will be selected
|
|
235
241
|
* If not provided, the selected sections will be handled internally.
|
|
236
242
|
*/
|
|
237
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
|
|
243
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
|
|
238
244
|
endIndex: PropTypes.number.isRequired,
|
|
239
245
|
startIndex: PropTypes.number.isRequired
|
|
240
246
|
})]),
|
|
@@ -264,6 +270,14 @@ MobileNextDateRangePicker.propTypes = {
|
|
|
264
270
|
* The selected value.
|
|
265
271
|
* Used when the component is controlled.
|
|
266
272
|
*/
|
|
267
|
-
value: PropTypes.arrayOf(PropTypes.any)
|
|
273
|
+
value: PropTypes.arrayOf(PropTypes.any),
|
|
274
|
+
/**
|
|
275
|
+
* Define custom view renderers for each section.
|
|
276
|
+
* If `null`, the section will only have field editing.
|
|
277
|
+
* If `undefined`, internally defined view will be the used.
|
|
278
|
+
*/
|
|
279
|
+
viewRenderers: PropTypes.shape({
|
|
280
|
+
day: PropTypes.func
|
|
281
|
+
})
|
|
268
282
|
};
|
|
269
283
|
export { MobileNextDateRangePicker };
|