@mui/x-date-pickers-pro 8.0.0-alpha.12 → 8.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 +299 -0
- package/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/esm/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/esm/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/esm/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/esm/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/esm/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/esm/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/esm/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/esm/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/esm/hooks/index.d.ts +2 -1
- package/esm/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeField.js +41 -50
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +25 -0
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -2
- package/esm/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/esm/hooks/useMultiInputRangeField/useTextFieldProps.js +141 -0
- package/esm/index.js +1 -1
- package/esm/internals/hooks/models/index.d.ts +1 -1
- package/esm/internals/hooks/models/useRangePicker.d.ts +1 -8
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +16 -4
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +17 -4
- package/esm/internals/hooks/useRangePosition.d.ts +1 -4
- package/esm/internals/hooks/useRangePosition.js +1 -18
- package/esm/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +26 -32
- package/esm/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/esm/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/esm/internals/utils/createMultiInputRangeField/useTextFieldProps.js +36 -0
- package/esm/internals/utils/date-fields-utils.d.ts +4 -1
- package/esm/internals/utils/date-fields-utils.js +5 -1
- package/esm/internals/utils/releaseInfo.js +1 -1
- package/esm/managers/useDateRangeManager.js +8 -1
- package/esm/managers/useDateTimeRangeManager.js +8 -1
- package/esm/managers/useTimeRangeManager.js +10 -1
- package/esm/models/fields.d.ts +5 -18
- package/hooks/index.d.ts +2 -1
- package/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/hooks/useMultiInputRangeField/useMultiInputRangeField.js +40 -51
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +31 -0
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -1
- package/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/hooks/useMultiInputRangeField/useTextFieldProps.js +149 -0
- package/index.js +1 -1
- package/internals/hooks/models/index.d.ts +1 -1
- package/internals/hooks/models/useRangePicker.d.ts +1 -8
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +7 -74
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +16 -4
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +17 -4
- package/internals/hooks/useRangePosition.d.ts +1 -4
- package/internals/hooks/useRangePosition.js +1 -18
- package/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +25 -31
- package/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/internals/utils/createMultiInputRangeField/useTextFieldProps.js +44 -0
- package/internals/utils/date-fields-utils.d.ts +4 -1
- package/internals/utils/date-fields-utils.js +6 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/managers/useDateRangeManager.js +8 -1
- package/managers/useDateTimeRangeManager.js +8 -1
- package/managers/useTimeRangeManager.js +10 -1
- package/models/fields.d.ts +5 -18
- package/modern/DateRangePicker/DateRangePicker.types.d.ts +2 -2
- package/modern/DateTimeRangePicker/DateTimeRangePicker.types.d.ts +2 -2
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +2 -2
- package/modern/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +2 -2
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +2 -2
- package/modern/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +2 -2
- package/modern/SingleInputDateRangeField/useSingleInputDateRangeField.d.ts +1 -1
- package/modern/SingleInputDateTimeRangeField/useSingleInputDateTimeRangeField.d.ts +1 -1
- package/modern/SingleInputTimeRangeField/useSingleInputTimeRangeField.d.ts +1 -1
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +6 -4
- package/modern/dateRangeViewRenderers/dateRangeViewRenderers.js +13 -8
- package/modern/hooks/index.d.ts +2 -1
- package/modern/hooks/useMultiInputRangeField/index.d.ts +2 -1
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.d.ts +37 -18
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeField.js +41 -50
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.d.ts +11 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldRootProps.js +25 -0
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.d.ts +4 -1
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldSelectedSections.js +3 -2
- package/modern/hooks/useMultiInputRangeField/useTextFieldProps.d.ts +30 -0
- package/modern/hooks/useMultiInputRangeField/useTextFieldProps.js +141 -0
- package/modern/index.js +1 -1
- package/modern/internals/hooks/models/index.d.ts +1 -1
- package/modern/internals/hooks/models/useRangePicker.d.ts +1 -8
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +8 -75
- package/modern/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +16 -4
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +17 -47
- package/modern/internals/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +17 -4
- package/modern/internals/hooks/useRangePosition.d.ts +1 -4
- package/modern/internals/hooks/useRangePosition.js +1 -18
- package/modern/internals/hooks/useStaticRangePicker/useStaticRangePicker.js +3 -3
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.js +26 -32
- package/modern/internals/utils/createMultiInputRangeField/createMultiInputRangeField.types.d.ts +1 -1
- package/modern/internals/utils/createMultiInputRangeField/useTextFieldProps.d.ts +12 -0
- package/modern/internals/utils/createMultiInputRangeField/useTextFieldProps.js +36 -0
- package/modern/internals/utils/date-fields-utils.d.ts +4 -1
- package/modern/internals/utils/date-fields-utils.js +5 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/modern/managers/useDateRangeManager.js +8 -1
- package/modern/managers/useDateTimeRangeManager.js +8 -1
- package/modern/managers/useTimeRangeManager.js +10 -1
- package/modern/models/fields.d.ts +5 -18
- package/package.json +4 -4
- package/tsconfig.build.tsbuildinfo +1 -1
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/esm/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -59
- package/esm/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/esm/internals/hooks/useEnrichedRangePickerField.js +0 -236
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -66
- package/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/internals/hooks/useEnrichedRangePickerField.js +0 -245
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.d.ts +0 -17
- package/modern/hooks/useMultiInputRangeField/useMultiInputRangeFieldTextFieldProps.js +0 -59
- package/modern/internals/hooks/useEnrichedRangePickerField.d.ts +0 -70
- package/modern/internals/hooks/useEnrichedRangePickerField.js +0 -236
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { PickersTextFieldProps } from '@mui/x-date-pickers/PickersTextField';
|
|
2
|
+
import { FieldOwnerState } from '@mui/x-date-pickers/models';
|
|
3
|
+
import { MultiInputRangeFieldSlotProps } from "./createMultiInputRangeField.types.js";
|
|
4
|
+
export declare function useTextFieldProps({
|
|
5
|
+
slotProps,
|
|
6
|
+
ownerState,
|
|
7
|
+
position
|
|
8
|
+
}: {
|
|
9
|
+
slotProps: MultiInputRangeFieldSlotProps | undefined;
|
|
10
|
+
ownerState: FieldOwnerState;
|
|
11
|
+
position: 'start' | 'end';
|
|
12
|
+
}): PickersTextFieldProps;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import useSlotProps from '@mui/utils/useSlotProps';
|
|
4
|
+
import { PickersTextField } from '@mui/x-date-pickers/PickersTextField';
|
|
5
|
+
import { usePickerTranslations } from '@mui/x-date-pickers/hooks';
|
|
6
|
+
import { PickerFieldUIContext, useNullablePickerContext, mergeSlotProps } from '@mui/x-date-pickers/internals';
|
|
7
|
+
import { useNullablePickerRangePositionContext } from "../../hooks/useNullablePickerRangePositionContext.js";
|
|
8
|
+
export function useTextFieldProps({
|
|
9
|
+
slotProps,
|
|
10
|
+
ownerState,
|
|
11
|
+
position
|
|
12
|
+
}) {
|
|
13
|
+
const pickerContext = useNullablePickerContext();
|
|
14
|
+
const translations = usePickerTranslations();
|
|
15
|
+
const pickerFieldUIContext = React.useContext(PickerFieldUIContext);
|
|
16
|
+
const rangePositionContext = useNullablePickerRangePositionContext();
|
|
17
|
+
const textFieldProps = useSlotProps({
|
|
18
|
+
elementType: PickersTextField,
|
|
19
|
+
externalSlotProps: mergeSlotProps(pickerFieldUIContext.slotProps.textField, slotProps?.textField),
|
|
20
|
+
additionalProps: {
|
|
21
|
+
// TODO: Decide if we also want to set the default labels on standalone fields.
|
|
22
|
+
label: pickerContext ? translations[position] : undefined,
|
|
23
|
+
focused: pickerContext?.open ? rangePositionContext?.rangePosition === position : undefined
|
|
24
|
+
},
|
|
25
|
+
ownerState: _extends({}, ownerState, {
|
|
26
|
+
position
|
|
27
|
+
})
|
|
28
|
+
});
|
|
29
|
+
if (!textFieldProps.InputProps) {
|
|
30
|
+
textFieldProps.InputProps = {};
|
|
31
|
+
}
|
|
32
|
+
if (pickerContext && position === 'start') {
|
|
33
|
+
textFieldProps.InputProps.ref = pickerContext.triggerRef;
|
|
34
|
+
}
|
|
35
|
+
return textFieldProps;
|
|
36
|
+
}
|
|
@@ -17,4 +17,7 @@ export declare const removeLastSeparator: (dateSections: FieldRangeSection[]) =>
|
|
|
17
17
|
modified: boolean;
|
|
18
18
|
startSeparator: string;
|
|
19
19
|
endSeparator: string;
|
|
20
|
-
})[];
|
|
20
|
+
})[];
|
|
21
|
+
export declare function getRangeFieldType(field: React.ElementType & {
|
|
22
|
+
fieldType?: 'single-input' | 'multi-input';
|
|
23
|
+
}): "single-input" | "multi-input";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTc0MDY5NzIwMDAwMA==";
|
|
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
|
|
@@ -28,6 +28,13 @@ export function useDateRangeManager(parameters = {}) {
|
|
|
28
28
|
internalProps
|
|
29
29
|
})),
|
|
30
30
|
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
31
|
-
internal_getOpenPickerButtonAriaLabel: (
|
|
31
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
32
|
+
value,
|
|
33
|
+
utils,
|
|
34
|
+
localeText
|
|
35
|
+
}) => {
|
|
36
|
+
const formattedValue = utils.isValid(value[0]) ? utils.format(value[0], 'fullDate') : null;
|
|
37
|
+
return localeText.openDatePickerDialogue(formattedValue);
|
|
38
|
+
}
|
|
32
39
|
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
33
40
|
}
|
|
@@ -28,6 +28,13 @@ export function useDateTimeRangeManager(parameters = {}) {
|
|
|
28
28
|
defaultDates
|
|
29
29
|
})),
|
|
30
30
|
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
31
|
-
internal_getOpenPickerButtonAriaLabel: (
|
|
31
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
32
|
+
value,
|
|
33
|
+
utils,
|
|
34
|
+
localeText
|
|
35
|
+
}) => {
|
|
36
|
+
const formattedValue = utils.isValid(value[0]) ? utils.format(value[0], 'fullDate') : null;
|
|
37
|
+
return localeText.openDatePickerDialogue(formattedValue);
|
|
38
|
+
}
|
|
32
39
|
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
33
40
|
}
|
|
@@ -26,6 +26,15 @@ export function useTimeRangeManager(parameters = {}) {
|
|
|
26
26
|
internalProps
|
|
27
27
|
})),
|
|
28
28
|
// TODO v8: Add a real aria label before moving the opening logic to the field on range pickers.
|
|
29
|
-
internal_getOpenPickerButtonAriaLabel: (
|
|
29
|
+
internal_getOpenPickerButtonAriaLabel: ({
|
|
30
|
+
value,
|
|
31
|
+
utils,
|
|
32
|
+
localeText
|
|
33
|
+
}) => {
|
|
34
|
+
// TODO: Use ampm prop?
|
|
35
|
+
const ampm = utils.is12HourCycleInCurrentLocale();
|
|
36
|
+
const formattedValue = utils.isValid(value[0]) ? utils.format(value[0], ampm ? 'fullTime12h' : 'fullTime24h') : null;
|
|
37
|
+
return localeText.openTimePickerDialogue(formattedValue);
|
|
38
|
+
}
|
|
30
39
|
}), [enableAccessibleFieldDOMStructure, dateSeparator]);
|
|
31
40
|
}
|
|
@@ -1,24 +1,16 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { PickerValue, PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
3
3
|
import { FieldRef, PickerFieldSlotProps } from '@mui/x-date-pickers/models';
|
|
4
|
+
import type { UseMultiInputRangeFieldTextFieldProps } from '../hooks/useMultiInputRangeField';
|
|
4
5
|
export type { FieldRangeSection } from '@mui/x-date-pickers/internals';
|
|
5
6
|
export type FieldType = 'single-input' | 'multi-input';
|
|
6
7
|
/**
|
|
7
8
|
* Props the `textField` slot of the multi input field can receive when used inside a picker.
|
|
8
9
|
*/
|
|
9
|
-
export
|
|
10
|
+
export type MultiInputFieldSlotTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean = true> = UseMultiInputRangeFieldTextFieldProps<TEnableAccessibleFieldDOMStructure, {
|
|
10
11
|
label?: React.ReactNode;
|
|
11
|
-
id?: string;
|
|
12
|
-
onKeyDown?: React.KeyboardEventHandler;
|
|
13
|
-
onClick?: React.MouseEventHandler;
|
|
14
|
-
onFocus?: React.FocusEventHandler;
|
|
15
12
|
focused?: boolean;
|
|
16
|
-
|
|
17
|
-
ref?: React.Ref<any>;
|
|
18
|
-
endAdornment?: React.ReactNode;
|
|
19
|
-
startAdornment?: React.ReactNode;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
13
|
+
}>;
|
|
22
14
|
/**
|
|
23
15
|
* Props the `root` slot of the multi input field can receive when used inside a picker.
|
|
24
16
|
*/
|
|
@@ -39,9 +31,4 @@ export interface RangeFieldSeparatorProps {
|
|
|
39
31
|
/**
|
|
40
32
|
* Props the `slotProps.field` of a range picker component can receive.
|
|
41
33
|
*/
|
|
42
|
-
export type PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> = PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & RangeFieldSeparatorProps;
|
|
43
|
-
/**
|
|
44
|
-
* Props the text field receives when used with a multi input picker.
|
|
45
|
-
* Only contains what the MUI components are passing to the text field, not what users can pass using the `props.slotProps.textField`.
|
|
46
|
-
*/
|
|
47
|
-
export type BaseMultiInputPickersTextFieldProps<TEnableAccessibleFieldDOMStructure extends boolean> = Omit<UseFieldResponse<TEnableAccessibleFieldDOMStructure, MultiInputFieldSlotTextFieldProps>, 'slots' | 'slotProps' | 'clearable' | 'onClear' | 'openPickerButtonPosition' | 'clearButtonPosition' | 'openPickerAriaLabel'>;
|
|
34
|
+
export type PickerRangeFieldSlotProps<TEnableAccessibleFieldDOMStructure extends boolean> = PickerFieldSlotProps<PickerRangeValue, TEnableAccessibleFieldDOMStructure> & RangeFieldSeparatorProps;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/x-date-pickers-pro",
|
|
3
|
-
"version": "8.0.0-alpha.
|
|
3
|
+
"version": "8.0.0-alpha.13",
|
|
4
4
|
"description": "The Pro plan edition of the Date and Time Picker components (MUI X).",
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -37,9 +37,9 @@
|
|
|
37
37
|
"clsx": "^2.1.1",
|
|
38
38
|
"prop-types": "^15.8.1",
|
|
39
39
|
"react-transition-group": "^4.4.5",
|
|
40
|
-
"@mui/x-date-pickers": "8.0.0-alpha.
|
|
41
|
-
"@mui/x-
|
|
42
|
-
"@mui/x-
|
|
40
|
+
"@mui/x-date-pickers": "8.0.0-alpha.13",
|
|
41
|
+
"@mui/x-license": "8.0.0-alpha.13",
|
|
42
|
+
"@mui/x-internals": "8.0.0-alpha.13"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
45
|
"@emotion/react": "^11.9.0",
|