@mui/x-date-pickers 6.2.0 → 6.2.1
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 +49 -1
- package/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/LocalizationProvider/LocalizationProvider.d.ts +1 -1
- package/LocalizationProvider/LocalizationProvider.js +1 -1
- package/MobileDatePicker/MobileDatePicker.js +1 -0
- package/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/MobileTimePicker/MobileTimePicker.js +1 -0
- package/StaticDatePicker/StaticDatePicker.js +1 -0
- package/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
- package/StaticTimePicker/StaticTimePicker.js +3 -2
- package/index.js +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.d.ts +1 -1
- package/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
- package/internals/hooks/useDesktopPicker/useDesktopPicker.types.d.ts +1 -1
- package/internals/hooks/useField/useField.types.d.ts +1 -2
- package/internals/hooks/useField/useField.utils.d.ts +2 -2
- package/internals/hooks/useField/useFieldState.js +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.d.ts +1 -1
- package/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/internals/hooks/useMobilePicker/useMobilePicker.types.d.ts +1 -1
- package/internals/hooks/usePicker/usePicker.d.ts +1 -1
- package/internals/hooks/usePicker/usePicker.js +2 -0
- package/internals/hooks/usePicker/usePicker.types.d.ts +1 -1
- package/internals/hooks/usePicker/usePickerValue.d.ts +1 -1
- package/internals/hooks/usePicker/usePickerValue.js +9 -11
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +4 -2
- package/internals/hooks/useStaticPicker/useStaticPicker.d.ts +1 -1
- package/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/internals/hooks/useStaticPicker/useStaticPicker.types.d.ts +1 -1
- package/internals/utils/valueManagers.js +1 -1
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/legacy/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/legacy/LocalizationProvider/LocalizationProvider.js +1 -1
- package/legacy/MobileDatePicker/MobileDatePicker.js +1 -0
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/legacy/MobileTimePicker/MobileTimePicker.js +1 -0
- package/legacy/StaticDatePicker/StaticDatePicker.js +1 -0
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
- package/legacy/StaticTimePicker/StaticTimePicker.js +3 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/hooks/useDesktopPicker/useDesktopPicker.js +8 -10
- package/legacy/internals/hooks/useField/useFieldState.js +1 -1
- package/legacy/internals/hooks/useMobilePicker/useMobilePicker.js +5 -6
- package/legacy/internals/hooks/usePicker/usePicker.js +2 -0
- package/legacy/internals/hooks/usePicker/usePickerValue.js +9 -13
- package/legacy/internals/hooks/useStaticPicker/useStaticPicker.js +7 -8
- package/legacy/internals/utils/valueManagers.js +2 -2
- package/models/fields.d.ts +1 -0
- package/modern/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/modern/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/modern/LocalizationProvider/LocalizationProvider.js +1 -1
- package/modern/MobileDatePicker/MobileDatePicker.js +1 -0
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/modern/MobileTimePicker/MobileTimePicker.js +1 -0
- package/modern/StaticDatePicker/StaticDatePicker.js +1 -0
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
- package/modern/StaticTimePicker/StaticTimePicker.js +3 -2
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
- package/modern/internals/hooks/useField/useFieldState.js +1 -1
- package/modern/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/modern/internals/hooks/usePicker/usePicker.js +2 -0
- package/modern/internals/hooks/usePicker/usePickerValue.js +9 -11
- package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/modern/internals/utils/valueManagers.js +1 -1
- package/node/DesktopDatePicker/DesktopDatePicker.js +1 -0
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +1 -0
- package/node/DesktopTimePicker/DesktopTimePicker.js +1 -0
- package/node/LocalizationProvider/LocalizationProvider.js +1 -1
- package/node/MobileDatePicker/MobileDatePicker.js +1 -0
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +1 -0
- package/node/MobileTimePicker/MobileTimePicker.js +1 -0
- package/node/StaticDatePicker/StaticDatePicker.js +1 -0
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +3 -2
- package/node/StaticTimePicker/StaticTimePicker.js +3 -2
- package/node/index.js +1 -1
- package/node/internals/hooks/useDesktopPicker/useDesktopPicker.js +13 -14
- package/node/internals/hooks/useField/useFieldState.js +1 -1
- package/node/internals/hooks/useMobilePicker/useMobilePicker.js +10 -10
- package/node/internals/hooks/usePicker/usePicker.js +2 -0
- package/node/internals/hooks/usePicker/usePickerValue.js +9 -11
- package/node/internals/hooks/useStaticPicker/useStaticPicker.js +10 -10
- package/node/internals/utils/valueManagers.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,9 +3,57 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 6.2.1
|
|
7
|
+
|
|
8
|
+
_Apr 20, 2023_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 9 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🚀 Add virtualization to row detail panels (#7969) @yaredtsy
|
|
13
|
+
- 🐞 Bugfixes
|
|
14
|
+
- 📚 Documentation improvements
|
|
15
|
+
|
|
16
|
+
### `@mui/x-data-grid@v6.2.1` / `@mui/x-data-grid-pro@v6.2.1` / `@mui/x-data-grid-premium@v6.2.1`
|
|
17
|
+
|
|
18
|
+
#### Changes
|
|
19
|
+
|
|
20
|
+
- [DataGrid] Add `getTogglableColumns` to `Hide all` and `Show all` actions (#8496) @MBilalShafi
|
|
21
|
+
- [DataGrid] Add Grid + Joy UI experiment page (#8067) @cherniavskii
|
|
22
|
+
- [DataGrid] Fix print style when rendering inside Shadow DOM (#8656) @Bwatermelon
|
|
23
|
+
- [DataGrid] Replace `GridAutoSizer` with `ResizeObserver` (#8091) @m4theushw
|
|
24
|
+
- [DataGrid] Use stable ID for the placeholder filter item (#8603) @m4theushw
|
|
25
|
+
- [DataGridPro] Virtualize row detail panels (#7969) @yaredtsy
|
|
26
|
+
|
|
27
|
+
### `@mui/x-date-pickers@v6.2.1` / `@mui/x-date-pickers-pro@v6.2.1`
|
|
28
|
+
|
|
29
|
+
#### Changes
|
|
30
|
+
|
|
31
|
+
- [pickers] Do not include the time in date components when going to today (#8657) @flaviendelangle
|
|
32
|
+
- [pickers] Sync internal state with controlled value (#8674) @alexfauquette
|
|
33
|
+
|
|
34
|
+
### `@mui/x-codemod@v6.0.6`
|
|
35
|
+
|
|
36
|
+
#### Changes
|
|
37
|
+
|
|
38
|
+
- [codemod] Avoid filter failures on object prototype properties (#8647) @LukasTy
|
|
39
|
+
|
|
40
|
+
### Docs
|
|
41
|
+
|
|
42
|
+
- [docs] Add no-op service worker to fix stale cache issue (#8598) @cherniavskii
|
|
43
|
+
- [docs] Clarify what `AdapterDayjs` is in the Getting Started page (#8219) @flaviendelangle
|
|
44
|
+
- [docs] Fix typo on picker page description (#8611) @maxolasersquad
|
|
45
|
+
- [docs] Improve section title in Getting Started page (#8648) @flaviendelangle
|
|
46
|
+
- [docs] Inform about input format modification (#8458) @alexfauquette
|
|
47
|
+
|
|
48
|
+
### Core
|
|
49
|
+
|
|
50
|
+
- [core] Fix release date (#8618) @flaviendelangle
|
|
51
|
+
- [core] Upgrade monorepo (#8668) @MBilalShafi
|
|
52
|
+
- [charts] Support Tooltip (#8356) @alexfauquette
|
|
53
|
+
|
|
6
54
|
## 6.2.0
|
|
7
55
|
|
|
8
|
-
_Apr
|
|
56
|
+
_Apr 14, 2023_
|
|
9
57
|
|
|
10
58
|
We'd like to offer a big thanks to the 8 contributors who made this release possible. Here are some highlights ✨:
|
|
11
59
|
|
|
@@ -49,6 +49,7 @@ const DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePick
|
|
|
49
49
|
} = useDesktopPicker({
|
|
50
50
|
props,
|
|
51
51
|
valueManager: singleItemValueManager,
|
|
52
|
+
valueType: 'date',
|
|
52
53
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
53
54
|
validator: validateDate
|
|
54
55
|
});
|
|
@@ -57,6 +57,7 @@ const DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDate
|
|
|
57
57
|
} = useDesktopPicker({
|
|
58
58
|
props,
|
|
59
59
|
valueManager: singleItemValueManager,
|
|
60
|
+
valueType: 'date-time',
|
|
60
61
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
61
62
|
validator: validateDateTime
|
|
62
63
|
});
|
|
@@ -49,6 +49,7 @@ const DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePick
|
|
|
49
49
|
} = useDesktopPicker({
|
|
50
50
|
props,
|
|
51
51
|
valueManager: singleItemValueManager,
|
|
52
|
+
valueType: 'time',
|
|
52
53
|
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
53
54
|
validator: validateTime
|
|
54
55
|
});
|
|
@@ -17,7 +17,7 @@ export interface LocalizationProviderProps<TDate> {
|
|
|
17
17
|
children?: React.ReactNode;
|
|
18
18
|
/**
|
|
19
19
|
* Date library adapter class function.
|
|
20
|
-
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#
|
|
20
|
+
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
|
|
21
21
|
*/
|
|
22
22
|
dateAdapter?: new (...args: any) => MuiPickersAdapter<TDate>;
|
|
23
23
|
/** Formats that are used for any child pickers */
|
|
@@ -90,7 +90,7 @@ process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
|
|
|
90
90
|
children: PropTypes.node,
|
|
91
91
|
/**
|
|
92
92
|
* Date library adapter class function.
|
|
93
|
-
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#
|
|
93
|
+
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
|
|
94
94
|
*/
|
|
95
95
|
dateAdapter: PropTypes.func,
|
|
96
96
|
/**
|
|
@@ -46,6 +46,7 @@ const MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker
|
|
|
46
46
|
} = useMobilePicker({
|
|
47
47
|
props,
|
|
48
48
|
valueManager: singleItemValueManager,
|
|
49
|
+
valueType: 'date',
|
|
49
50
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
50
51
|
validator: validateDate
|
|
51
52
|
});
|
|
@@ -55,6 +55,7 @@ const MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTi
|
|
|
55
55
|
} = useMobilePicker({
|
|
56
56
|
props,
|
|
57
57
|
valueManager: singleItemValueManager,
|
|
58
|
+
valueType: 'date-time',
|
|
58
59
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
59
60
|
validator: validateDateTime
|
|
60
61
|
});
|
|
@@ -48,6 +48,7 @@ const MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker
|
|
|
48
48
|
} = useMobilePicker({
|
|
49
49
|
props,
|
|
50
50
|
valueManager: singleItemValueManager,
|
|
51
|
+
valueType: 'time',
|
|
51
52
|
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
52
53
|
validator: validateTime
|
|
53
54
|
});
|
|
@@ -42,8 +42,9 @@ const StaticDateTimePicker = /*#__PURE__*/React.forwardRef(function StaticDateTi
|
|
|
42
42
|
} = useStaticPicker({
|
|
43
43
|
props,
|
|
44
44
|
valueManager: singleItemValueManager,
|
|
45
|
-
|
|
46
|
-
validator: validateDateTime
|
|
45
|
+
valueType: 'date-time',
|
|
46
|
+
validator: validateDateTime,
|
|
47
|
+
ref
|
|
47
48
|
});
|
|
48
49
|
return renderPicker();
|
|
49
50
|
});
|
|
@@ -34,8 +34,9 @@ const StaticTimePicker = /*#__PURE__*/React.forwardRef(function StaticTimePicker
|
|
|
34
34
|
} = useStaticPicker({
|
|
35
35
|
props,
|
|
36
36
|
valueManager: singleItemValueManager,
|
|
37
|
-
|
|
38
|
-
validator: validateTime
|
|
37
|
+
valueType: 'time',
|
|
38
|
+
validator: validateTime,
|
|
39
|
+
ref
|
|
39
40
|
});
|
|
40
41
|
return renderPicker();
|
|
41
42
|
});
|
package/index.js
CHANGED
|
@@ -7,6 +7,6 @@ import { DateOrTimeView } from '../../../models';
|
|
|
7
7
|
* - DesktopDateTimePicker
|
|
8
8
|
* - DesktopTimePicker
|
|
9
9
|
*/
|
|
10
|
-
export declare const useDesktopPicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>>({ props,
|
|
10
|
+
export declare const useDesktopPicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>>({ props, getOpenDialogAriaText, ...pickerParams }: UseDesktopPickerParams<TDate, TView, TExternalProps>) => {
|
|
11
11
|
renderPicker: () => JSX.Element;
|
|
12
12
|
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["
|
|
4
|
-
_excluded2 = ["ownerState"]
|
|
3
|
+
const _excluded = ["props", "getOpenDialogAriaText"],
|
|
4
|
+
_excluded2 = ["ownerState"],
|
|
5
|
+
_excluded3 = ["ownerState"];
|
|
5
6
|
import * as React from 'react';
|
|
6
7
|
import { useSlotProps } from '@mui/base/utils';
|
|
7
8
|
import MuiInputAdornment from '@mui/material/InputAdornment';
|
|
@@ -21,13 +22,13 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
21
22
|
* - DesktopDateTimePicker
|
|
22
23
|
* - DesktopTimePicker
|
|
23
24
|
*/
|
|
24
|
-
export const useDesktopPicker =
|
|
25
|
-
props,
|
|
26
|
-
valueManager,
|
|
27
|
-
getOpenDialogAriaText,
|
|
28
|
-
validator
|
|
29
|
-
}) => {
|
|
25
|
+
export const useDesktopPicker = _ref => {
|
|
30
26
|
var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$inputAdornment, _slots$openPickerButt, _slots$layout;
|
|
27
|
+
let {
|
|
28
|
+
props,
|
|
29
|
+
getOpenDialogAriaText
|
|
30
|
+
} = _ref,
|
|
31
|
+
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
31
32
|
const {
|
|
32
33
|
slots,
|
|
33
34
|
slotProps: innerSlotProps,
|
|
@@ -55,15 +56,13 @@ export const useDesktopPicker = ({
|
|
|
55
56
|
renderCurrentView,
|
|
56
57
|
shouldRestoreFocus,
|
|
57
58
|
fieldProps: pickerFieldProps
|
|
58
|
-
} = usePicker({
|
|
59
|
+
} = usePicker(_extends({}, pickerParams, {
|
|
59
60
|
props,
|
|
60
61
|
inputRef: internalInputRef,
|
|
61
|
-
valueManager,
|
|
62
|
-
validator,
|
|
63
62
|
autoFocusView: true,
|
|
64
63
|
additionalViewProps: {},
|
|
65
64
|
wrapperVariant: 'desktop'
|
|
66
|
-
});
|
|
65
|
+
}));
|
|
67
66
|
const InputAdornment = (_slots$inputAdornment = slots.inputAdornment) != null ? _slots$inputAdornment : MuiInputAdornment;
|
|
68
67
|
const _useSlotProps = useSlotProps({
|
|
69
68
|
elementType: InputAdornment,
|
|
@@ -73,7 +72,7 @@ export const useDesktopPicker = ({
|
|
|
73
72
|
},
|
|
74
73
|
ownerState: props
|
|
75
74
|
}),
|
|
76
|
-
inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps,
|
|
75
|
+
inputAdornmentProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
77
76
|
const OpenPickerButton = (_slots$openPickerButt = slots.openPickerButton) != null ? _slots$openPickerButt : IconButton;
|
|
78
77
|
const _useSlotProps2 = useSlotProps({
|
|
79
78
|
elementType: OpenPickerButton,
|
|
@@ -86,7 +85,7 @@ export const useDesktopPicker = ({
|
|
|
86
85
|
},
|
|
87
86
|
ownerState: props
|
|
88
87
|
}),
|
|
89
|
-
openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2,
|
|
88
|
+
openPickerButtonProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);
|
|
90
89
|
const OpenPickerIcon = slots.openPickerIcon;
|
|
91
90
|
const Field = slots.field;
|
|
92
91
|
const fieldProps = useSlotProps({
|
|
@@ -64,7 +64,7 @@ export interface UseDesktopPickerProps<TDate, TView extends DateOrTimeView, TErr
|
|
|
64
64
|
*/
|
|
65
65
|
slotProps?: UseDesktopPickerSlotsComponentsProps<TDate, TView>;
|
|
66
66
|
}
|
|
67
|
-
export interface UseDesktopPickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'validator'> {
|
|
67
|
+
export interface UseDesktopPickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseDesktopPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
|
|
68
68
|
props: TExternalProps;
|
|
69
69
|
getOpenDialogAriaText: (date: TDate | null, utils: MuiPickersAdapter<TDate>) => string;
|
|
70
70
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter } from '../../../models';
|
|
2
|
+
import { FieldSectionType, FieldSection, FieldSelectedSections, MuiPickersAdapter, FieldValueType } from '../../../models';
|
|
3
3
|
import type { PickerValueManager } from '../usePicker';
|
|
4
4
|
import { InferError, Validator } from '../validation/useValidation';
|
|
5
5
|
export interface UseFieldParams<TValue, TDate, TSection extends FieldSection, TForwardedProps extends UseFieldForwardedProps, TInternalProps extends UseFieldInternalProps<any, any, any>> {
|
|
@@ -249,7 +249,6 @@ export type UseFieldValidationProps<TValue, TInternalProps extends {
|
|
|
249
249
|
value: TValue;
|
|
250
250
|
};
|
|
251
251
|
export type AvailableAdjustKeyCode = 'ArrowUp' | 'ArrowDown' | 'PageUp' | 'PageDown' | 'Home' | 'End';
|
|
252
|
-
export type FieldValueType = 'date' | 'time' | 'date-time';
|
|
253
252
|
export type SectionNeighbors = {
|
|
254
253
|
[sectionIndex: number]: {
|
|
255
254
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AvailableAdjustKeyCode, FieldSectionsValueBoundaries, SectionOrdering,
|
|
2
|
-
import { FieldSectionType, FieldSection, MuiPickersAdapter } from '../../../models';
|
|
1
|
+
import { AvailableAdjustKeyCode, FieldSectionsValueBoundaries, SectionOrdering, FieldSectionWithoutPosition, FieldSectionValueBoundaries } from './useField.types';
|
|
2
|
+
import { FieldSectionType, FieldValueType, FieldSection, MuiPickersAdapter } from '../../../models';
|
|
3
3
|
import { PickersLocaleText } from '../../../locales/utils/pickersLocaleTextApi';
|
|
4
4
|
export declare const getDateSectionConfigFromFormatToken: <TDate>(utils: MuiPickersAdapter<TDate>, formatToken: string) => Pick<FieldSection, 'type' | 'contentType'>;
|
|
5
5
|
export declare const getDaysInWeekStr: <TDate>(utils: MuiPickersAdapter<TDate>, format: string) => string[];
|
|
@@ -38,7 +38,7 @@ export const useFieldState = params => {
|
|
|
38
38
|
return {
|
|
39
39
|
sections,
|
|
40
40
|
value: valueFromTheOutside,
|
|
41
|
-
referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils)),
|
|
41
|
+
referenceValue: fieldValueManager.updateReferenceValue(utils, valueFromTheOutside, valueManager.getTodayValue(utils, valueType)),
|
|
42
42
|
tempValueStrAndroid: null
|
|
43
43
|
};
|
|
44
44
|
});
|
|
@@ -7,6 +7,6 @@ import { DateOrTimeView } from '../../../models';
|
|
|
7
7
|
* - MobileDateTimePicker
|
|
8
8
|
* - MobileTimePicker
|
|
9
9
|
*/
|
|
10
|
-
export declare const useMobilePicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseMobilePickerProps<TDate, TView, any, TExternalProps>>({ props,
|
|
10
|
+
export declare const useMobilePicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseMobilePickerProps<TDate, TView, any, TExternalProps>>({ props, getOpenDialogAriaText, ...pickerParams }: UseMobilePickerParams<TDate, TView, TExternalProps>) => {
|
|
11
11
|
renderPicker: () => JSX.Element;
|
|
12
12
|
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["props", "getOpenDialogAriaText"];
|
|
2
4
|
import * as React from 'react';
|
|
3
5
|
import { useSlotProps } from '@mui/base/utils';
|
|
4
6
|
import useForkRef from '@mui/utils/useForkRef';
|
|
@@ -17,13 +19,13 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
17
19
|
* - MobileDateTimePicker
|
|
18
20
|
* - MobileTimePicker
|
|
19
21
|
*/
|
|
20
|
-
export const useMobilePicker =
|
|
21
|
-
props,
|
|
22
|
-
valueManager,
|
|
23
|
-
getOpenDialogAriaText,
|
|
24
|
-
validator
|
|
25
|
-
}) => {
|
|
22
|
+
export const useMobilePicker = _ref => {
|
|
26
23
|
var _innerSlotProps$toolb, _innerSlotProps$toolb2, _slots$layout;
|
|
24
|
+
let {
|
|
25
|
+
props,
|
|
26
|
+
getOpenDialogAriaText
|
|
27
|
+
} = _ref,
|
|
28
|
+
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
27
29
|
const {
|
|
28
30
|
slots,
|
|
29
31
|
slotProps: innerSlotProps,
|
|
@@ -47,15 +49,13 @@ export const useMobilePicker = ({
|
|
|
47
49
|
layoutProps,
|
|
48
50
|
renderCurrentView,
|
|
49
51
|
fieldProps: pickerFieldProps
|
|
50
|
-
} = usePicker({
|
|
52
|
+
} = usePicker(_extends({}, pickerParams, {
|
|
51
53
|
props,
|
|
52
54
|
inputRef: internalInputRef,
|
|
53
|
-
valueManager,
|
|
54
|
-
validator,
|
|
55
55
|
autoFocusView: true,
|
|
56
56
|
additionalViewProps: {},
|
|
57
57
|
wrapperVariant: 'mobile'
|
|
58
|
-
});
|
|
58
|
+
}));
|
|
59
59
|
const Field = slots.field;
|
|
60
60
|
const fieldProps = useSlotProps({
|
|
61
61
|
elementType: Field,
|
|
@@ -41,7 +41,7 @@ export interface UseMobilePickerProps<TDate, TView extends DateOrTimeView, TErro
|
|
|
41
41
|
*/
|
|
42
42
|
slotProps?: UseMobilePickerSlotsComponentsProps<TDate, TView>;
|
|
43
43
|
}
|
|
44
|
-
export interface UseMobilePickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseMobilePickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'validator'> {
|
|
44
|
+
export interface UseMobilePickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseMobilePickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
|
|
45
45
|
props: TExternalProps;
|
|
46
46
|
getOpenDialogAriaText: (date: TDate | null, utils: MuiPickersAdapter<TDate>) => string;
|
|
47
47
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { UsePickerParams, UsePickerProps, UsePickerResponse } from './usePicker.types';
|
|
2
2
|
import { InferError } from '../validation/useValidation';
|
|
3
3
|
import { FieldSection, DateOrTimeView } from '../../../models';
|
|
4
|
-
export declare const usePicker: <TValue, TDate, TView extends DateOrTimeView, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, TSection, any, any, any>, TAdditionalProps extends {}>({ props, valueManager, wrapperVariant, inputRef, additionalViewProps, validator, autoFocusView, }: UsePickerParams<TValue, TDate, TView, TSection, TExternalProps, TAdditionalProps>) => UsePickerResponse<TValue, TView, TSection, InferError<TExternalProps>>;
|
|
4
|
+
export declare const usePicker: <TValue, TDate, TView extends DateOrTimeView, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, TSection, any, any, any>, TAdditionalProps extends {}>({ props, valueManager, valueType, wrapperVariant, inputRef, additionalViewProps, validator, autoFocusView, }: UsePickerParams<TValue, TDate, TView, TSection, TExternalProps, TAdditionalProps>) => UsePickerResponse<TValue, TView, TSection, InferError<TExternalProps>>;
|
|
@@ -6,6 +6,7 @@ const warnRenderInputIsDefined = buildWarning(['The `renderInput` prop has been
|
|
|
6
6
|
export const usePicker = ({
|
|
7
7
|
props,
|
|
8
8
|
valueManager,
|
|
9
|
+
valueType,
|
|
9
10
|
wrapperVariant,
|
|
10
11
|
inputRef,
|
|
11
12
|
additionalViewProps,
|
|
@@ -20,6 +21,7 @@ export const usePicker = ({
|
|
|
20
21
|
const pickerValueResponse = usePickerValue({
|
|
21
22
|
props,
|
|
22
23
|
valueManager,
|
|
24
|
+
valueType,
|
|
23
25
|
wrapperVariant,
|
|
24
26
|
validator
|
|
25
27
|
});
|
|
@@ -9,7 +9,7 @@ export interface UsePickerBaseProps<TValue, TView extends DateOrTimeView, TError
|
|
|
9
9
|
}
|
|
10
10
|
export interface UsePickerProps<TValue, TView extends DateOrTimeView, TSection extends FieldSection, TError, TExternalProps extends UsePickerViewsProps<TValue, TView, any, any>, TAdditionalProps extends {}> extends UsePickerValueProps<TValue, TSection, TError>, UsePickerViewsProps<TValue, TView, TExternalProps, TAdditionalProps>, UsePickerLayoutProps {
|
|
11
11
|
}
|
|
12
|
-
export interface UsePickerParams<TValue, TDate, TView extends DateOrTimeView, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, TSection, any, any, any>, TAdditionalProps extends {}> extends Pick<UsePickerValueParams<TValue, TDate, TSection, TExternalProps>, 'valueManager' | 'wrapperVariant' | 'validator'>, Pick<UsePickerViewParams<TValue, TView, TExternalProps, TAdditionalProps>, 'additionalViewProps' | 'inputRef' | 'autoFocusView'> {
|
|
12
|
+
export interface UsePickerParams<TValue, TDate, TView extends DateOrTimeView, TSection extends FieldSection, TExternalProps extends UsePickerProps<TValue, TView, TSection, any, any, any>, TAdditionalProps extends {}> extends Pick<UsePickerValueParams<TValue, TDate, TSection, TExternalProps>, 'valueManager' | 'valueType' | 'wrapperVariant' | 'validator'>, Pick<UsePickerViewParams<TValue, TView, TExternalProps, TAdditionalProps>, 'additionalViewProps' | 'inputRef' | 'autoFocusView'> {
|
|
13
13
|
props: TExternalProps;
|
|
14
14
|
}
|
|
15
15
|
export interface UsePickerResponse<TValue, TView extends DateOrTimeView, TSection extends FieldSection, TError> extends Omit<UsePickerValueResponse<TValue, TSection, TError>, 'viewProps' | 'layoutProps'>, Omit<UsePickerViewsResponse<TView>, 'layoutProps'>, UsePickerLayoutPropsResponse<TValue, TView> {
|
|
@@ -4,4 +4,4 @@ import { UsePickerValueProps, UsePickerValueParams, UsePickerValueResponse } fro
|
|
|
4
4
|
/**
|
|
5
5
|
* Manage the value lifecycle of all the pickers.
|
|
6
6
|
*/
|
|
7
|
-
export declare const usePickerValue: <TValue, TDate, TSection extends FieldSection, TExternalProps extends UsePickerValueProps<TValue, TSection, any>>({ props, valueManager, wrapperVariant, validator, }: UsePickerValueParams<TValue, TDate, TSection, TExternalProps>) => UsePickerValueResponse<TValue, TSection, InferError<TExternalProps>>;
|
|
7
|
+
export declare const usePickerValue: <TValue, TDate, TSection extends FieldSection, TExternalProps extends UsePickerValueProps<TValue, TSection, any>>({ props, valueManager, valueType, wrapperVariant, validator, }: UsePickerValueParams<TValue, TDate, TSection, TExternalProps>) => UsePickerValueResponse<TValue, TSection, InferError<TExternalProps>>;
|
|
@@ -97,6 +97,7 @@ const shouldClosePicker = params => {
|
|
|
97
97
|
export const usePickerValue = ({
|
|
98
98
|
props,
|
|
99
99
|
valueManager,
|
|
100
|
+
valueType,
|
|
100
101
|
wrapperVariant,
|
|
101
102
|
validator
|
|
102
103
|
}) => {
|
|
@@ -200,18 +201,15 @@ export const usePickerValue = ({
|
|
|
200
201
|
setIsOpen(false);
|
|
201
202
|
}
|
|
202
203
|
});
|
|
203
|
-
React.useEffect(() => {
|
|
204
|
-
if (isOpen) {
|
|
205
|
-
setDateState(prev => _extends({}, prev, {
|
|
206
|
-
lastCommittedValue: dateState.draft
|
|
207
|
-
}));
|
|
208
|
-
}
|
|
209
|
-
}, [isOpen]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
210
|
-
|
|
211
204
|
if (inValue !== undefined && (dateState.lastControlledValue === undefined || !valueManager.areValuesEqual(utils, dateState.lastControlledValue, inValue))) {
|
|
205
|
+
const isUpdateComingFromPicker = valueManager.areValuesEqual(utils, dateState.draft, inValue);
|
|
212
206
|
setDateState(prev => _extends({}, prev, {
|
|
213
|
-
lastControlledValue: inValue
|
|
214
|
-
|
|
207
|
+
lastControlledValue: inValue
|
|
208
|
+
}, isUpdateComingFromPicker ? {} : {
|
|
209
|
+
lastCommittedValue: inValue,
|
|
210
|
+
lastPublishedValue: inValue,
|
|
211
|
+
draft: inValue,
|
|
212
|
+
hasBeenModifiedSinceMount: true
|
|
215
213
|
}));
|
|
216
214
|
}
|
|
217
215
|
const handleClear = useEventCallback(() => {
|
|
@@ -244,7 +242,7 @@ export const usePickerValue = ({
|
|
|
244
242
|
});
|
|
245
243
|
const handleSetToday = useEventCallback(() => {
|
|
246
244
|
updateDate({
|
|
247
|
-
value: valueManager.getTodayValue(utils),
|
|
245
|
+
value: valueManager.getTodayValue(utils, valueType),
|
|
248
246
|
name: 'setValueFromAction',
|
|
249
247
|
pickerAction: 'today'
|
|
250
248
|
});
|
|
@@ -2,7 +2,7 @@ import { FieldChangeHandlerContext, UseFieldInternalProps } from '../useField';
|
|
|
2
2
|
import { InferError, Validator } from '../validation/useValidation';
|
|
3
3
|
import { UseFieldValidationProps } from '../useField/useField.types';
|
|
4
4
|
import { WrapperVariant } from '../../models/common';
|
|
5
|
-
import { FieldSection, FieldSelectedSections, MuiPickersAdapter } from '../../../models';
|
|
5
|
+
import { FieldSection, FieldSelectedSections, FieldValueType, MuiPickersAdapter } from '../../../models';
|
|
6
6
|
export interface PickerValueManager<TValue, TDate, TError> {
|
|
7
7
|
/**
|
|
8
8
|
* Determines if two values are equal.
|
|
@@ -21,9 +21,10 @@ export interface PickerValueManager<TValue, TDate, TError> {
|
|
|
21
21
|
* Method returning the value to set when clicking the "Today" button
|
|
22
22
|
* @template TDate, TValue
|
|
23
23
|
* @param {MuiPickersAdapter<TDate>} utils The adapter.
|
|
24
|
+
* @param {FieldValueType} valueType The type of the value being edited.
|
|
24
25
|
* @returns {TValue} The value to set when clicking the "Today" button.
|
|
25
26
|
*/
|
|
26
|
-
getTodayValue: (utils: MuiPickersAdapter<TDate
|
|
27
|
+
getTodayValue: (utils: MuiPickersAdapter<TDate>, valueType: FieldValueType) => TValue;
|
|
27
28
|
/**
|
|
28
29
|
* Method parsing the input value to replace all invalid dates by `null`.
|
|
29
30
|
* @template TDate, TValue
|
|
@@ -193,6 +194,7 @@ export interface UsePickerValueProps<TValue, TSection extends FieldSection, TErr
|
|
|
193
194
|
export interface UsePickerValueParams<TValue, TDate, TSection extends FieldSection, TExternalProps extends UsePickerValueProps<TValue, TSection, any>> {
|
|
194
195
|
props: TExternalProps;
|
|
195
196
|
valueManager: PickerValueManager<TValue, TDate, InferError<TExternalProps>>;
|
|
197
|
+
valueType: FieldValueType;
|
|
196
198
|
wrapperVariant: WrapperVariant;
|
|
197
199
|
validator: Validator<TValue, TDate, InferError<TExternalProps>, UseFieldValidationProps<TValue, TExternalProps>>;
|
|
198
200
|
}
|
|
@@ -7,6 +7,6 @@ import { DateOrTimeView } from '../../../models';
|
|
|
7
7
|
* - StaticDateTimePicker
|
|
8
8
|
* - StaticTimePicker
|
|
9
9
|
*/
|
|
10
|
-
export declare const useStaticPicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticPickerProps<TDate, TView, any, TExternalProps>>({ props,
|
|
10
|
+
export declare const useStaticPicker: <TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticPickerProps<TDate, TView, any, TExternalProps>>({ props, ref, ...pickerParams }: UseStaticPickerParams<TDate, TView, TExternalProps>) => {
|
|
11
11
|
renderPicker: () => JSX.Element;
|
|
12
12
|
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["props", "ref"];
|
|
2
4
|
import * as React from 'react';
|
|
3
5
|
import clsx from 'clsx';
|
|
4
6
|
import { styled } from '@mui/material/styles';
|
|
@@ -21,13 +23,13 @@ const PickerStaticLayout = styled(PickersLayout)(({
|
|
|
21
23
|
* - StaticDateTimePicker
|
|
22
24
|
* - StaticTimePicker
|
|
23
25
|
*/
|
|
24
|
-
export const useStaticPicker =
|
|
25
|
-
props,
|
|
26
|
-
valueManager,
|
|
27
|
-
validator,
|
|
28
|
-
ref
|
|
29
|
-
}) => {
|
|
26
|
+
export const useStaticPicker = _ref => {
|
|
30
27
|
var _slots$layout;
|
|
28
|
+
let {
|
|
29
|
+
props,
|
|
30
|
+
ref
|
|
31
|
+
} = _ref,
|
|
32
|
+
pickerParams = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
31
33
|
const {
|
|
32
34
|
localeText,
|
|
33
35
|
slots,
|
|
@@ -40,14 +42,12 @@ export const useStaticPicker = ({
|
|
|
40
42
|
const {
|
|
41
43
|
layoutProps,
|
|
42
44
|
renderCurrentView
|
|
43
|
-
} = usePicker({
|
|
45
|
+
} = usePicker(_extends({}, pickerParams, {
|
|
44
46
|
props,
|
|
45
|
-
valueManager,
|
|
46
|
-
validator,
|
|
47
47
|
autoFocusView: autoFocus != null ? autoFocus : false,
|
|
48
48
|
additionalViewProps: {},
|
|
49
49
|
wrapperVariant: displayStaticWrapperAs
|
|
50
|
-
});
|
|
50
|
+
}));
|
|
51
51
|
const Layout = (_slots$layout = slots == null ? void 0 : slots.layout) != null ? _slots$layout : PickerStaticLayout;
|
|
52
52
|
const renderPicker = () => {
|
|
53
53
|
var _slotProps$layout, _slotProps$layout2, _slotProps$layout3;
|
|
@@ -50,7 +50,7 @@ export interface UseStaticPickerProps<TDate, TView extends DateOrTimeView, TErro
|
|
|
50
50
|
*/
|
|
51
51
|
slotProps?: UseStaticPickerSlotsComponentsProps<TDate, TView>;
|
|
52
52
|
}
|
|
53
|
-
export interface UseStaticPickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'validator'> {
|
|
53
|
+
export interface UseStaticPickerParams<TDate, TView extends DateOrTimeView, TExternalProps extends UseStaticPickerProps<TDate, TView, any, TExternalProps>> extends Pick<UsePickerParams<TDate | null, TDate, TView, FieldSection, TExternalProps, {}>, 'valueManager' | 'valueType' | 'validator'> {
|
|
54
54
|
props: TExternalProps;
|
|
55
55
|
/**
|
|
56
56
|
* Ref to pass to the root element
|
|
@@ -2,7 +2,7 @@ import { areDatesEqual, replaceInvalidDateByNull } from './date-utils';
|
|
|
2
2
|
import { addPositionPropertiesToSections, createDateStrForInputFromSections } from '../hooks/useField/useField.utils';
|
|
3
3
|
export const singleItemValueManager = {
|
|
4
4
|
emptyValue: null,
|
|
5
|
-
getTodayValue: utils => utils.date(),
|
|
5
|
+
getTodayValue: (utils, valueType) => valueType === 'date' ? utils.startOfDay(utils.date()) : utils.date(),
|
|
6
6
|
cleanValue: replaceInvalidDateByNull,
|
|
7
7
|
areValuesEqual: areDatesEqual,
|
|
8
8
|
isSameError: (a, b) => a === b,
|
|
@@ -47,6 +47,7 @@ var DesktopDatePicker = /*#__PURE__*/React.forwardRef(function DesktopDatePicker
|
|
|
47
47
|
var _useDesktopPicker = useDesktopPicker({
|
|
48
48
|
props: props,
|
|
49
49
|
valueManager: singleItemValueManager,
|
|
50
|
+
valueType: 'date',
|
|
50
51
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
51
52
|
validator: validateDate
|
|
52
53
|
}),
|
|
@@ -55,6 +55,7 @@ var DesktopDateTimePicker = /*#__PURE__*/React.forwardRef(function DesktopDateTi
|
|
|
55
55
|
var _useDesktopPicker = useDesktopPicker({
|
|
56
56
|
props: props,
|
|
57
57
|
valueManager: singleItemValueManager,
|
|
58
|
+
valueType: 'date-time',
|
|
58
59
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
59
60
|
validator: validateDateTime
|
|
60
61
|
}),
|
|
@@ -47,6 +47,7 @@ var DesktopTimePicker = /*#__PURE__*/React.forwardRef(function DesktopTimePicker
|
|
|
47
47
|
var _useDesktopPicker = useDesktopPicker({
|
|
48
48
|
props: props,
|
|
49
49
|
valueManager: singleItemValueManager,
|
|
50
|
+
valueType: 'time',
|
|
50
51
|
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
51
52
|
validator: validateTime
|
|
52
53
|
}),
|
|
@@ -87,7 +87,7 @@ process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
|
|
|
87
87
|
children: PropTypes.node,
|
|
88
88
|
/**
|
|
89
89
|
* Date library adapter class function.
|
|
90
|
-
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#
|
|
90
|
+
* @see See the localization provider {@link https://mui.com/x/react-date-pickers/getting-started/#setup-your-date-library-adapter date adapter setup section} for more details.
|
|
91
91
|
*/
|
|
92
92
|
dateAdapter: PropTypes.func,
|
|
93
93
|
/**
|
|
@@ -44,6 +44,7 @@ var MobileDatePicker = /*#__PURE__*/React.forwardRef(function MobileDatePicker(i
|
|
|
44
44
|
var _useMobilePicker = useMobilePicker({
|
|
45
45
|
props: props,
|
|
46
46
|
valueManager: singleItemValueManager,
|
|
47
|
+
valueType: 'date',
|
|
47
48
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
48
49
|
validator: validateDate
|
|
49
50
|
}),
|
|
@@ -53,6 +53,7 @@ var MobileDateTimePicker = /*#__PURE__*/React.forwardRef(function MobileDateTime
|
|
|
53
53
|
var _useMobilePicker = useMobilePicker({
|
|
54
54
|
props: props,
|
|
55
55
|
valueManager: singleItemValueManager,
|
|
56
|
+
valueType: 'date-time',
|
|
56
57
|
getOpenDialogAriaText: localeText.openDatePickerDialogue,
|
|
57
58
|
validator: validateDateTime
|
|
58
59
|
}),
|
|
@@ -46,6 +46,7 @@ var MobileTimePicker = /*#__PURE__*/React.forwardRef(function MobileTimePicker(i
|
|
|
46
46
|
var _useMobilePicker = useMobilePicker({
|
|
47
47
|
props: props,
|
|
48
48
|
valueManager: singleItemValueManager,
|
|
49
|
+
valueType: 'time',
|
|
49
50
|
getOpenDialogAriaText: localeText.openTimePickerDialogue,
|
|
50
51
|
validator: validateTime
|
|
51
52
|
}),
|