@mui/x-date-pickers 7.0.0-alpha.2 → 7.0.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AdapterDateFns/AdapterDateFns.js +10 -14
- package/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
- package/AdapterDayjs/AdapterDayjs.js +11 -8
- package/AdapterLuxon/AdapterLuxon.d.ts +1 -1
- package/AdapterLuxon/AdapterLuxon.js +29 -16
- package/AdapterMoment/AdapterMoment.d.ts +1 -1
- package/AdapterMoment/AdapterMoment.js +14 -14
- package/AdapterMomentHijri/AdapterMomentHijri.d.ts +0 -1
- package/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
- package/AdapterMomentJalaali/AdapterMomentJalaali.d.ts +0 -2
- package/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
- package/CHANGELOG.md +241 -0
- package/DateCalendar/DateCalendar.js +2 -2
- package/DateCalendar/DayCalendar.d.ts +3 -3
- package/DatePicker/DatePicker.js +2 -2
- package/DateTimePicker/DateTimePicker.js +2 -2
- package/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/MobileDatePicker/MobileDatePicker.js +2 -2
- package/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.d.ts +3 -2
- package/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
- package/PickersShortcuts/PickersShortcuts.d.ts +1 -1
- package/PickersShortcuts/PickersShortcuts.js +1 -1
- package/README.md +0 -1
- package/StaticDatePicker/StaticDatePicker.js +2 -2
- package/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/index.js +1 -1
- package/internals/components/PickersTextField/Outline.d.ts +2 -0
- package/internals/components/PickersTextField/Outline.js +99 -0
- package/internals/components/PickersTextField/PickersInput.d.ts +4 -0
- package/internals/components/PickersTextField/PickersInput.js +264 -0
- package/internals/components/PickersTextField/PickersInput.types.d.ts +30 -0
- package/internals/components/PickersTextField/PickersInput.types.js +1 -0
- package/internals/components/PickersTextField/PickersTextField.d.ts +3 -0
- package/internals/components/PickersTextField/PickersTextField.js +120 -0
- package/internals/components/PickersTextField/PickersTextField.types.d.ts +18 -0
- package/internals/components/PickersTextField/PickersTextField.types.js +1 -0
- package/internals/components/PickersTextField/index.d.ts +1 -0
- package/internals/components/PickersTextField/index.js +1 -0
- package/internals/components/PickersTextField/pickersTextFieldClasses.d.ts +42 -0
- package/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
- package/internals/hooks/useField/useField.utils.js +23 -10
- package/internals/hooks/usePicker/usePickerValue.js +2 -6
- package/internals/hooks/usePicker/usePickerValue.types.d.ts +2 -2
- package/legacy/AdapterDateFns/AdapterDateFns.js +10 -14
- package/legacy/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
- package/legacy/AdapterDayjs/AdapterDayjs.js +11 -8
- package/legacy/AdapterLuxon/AdapterLuxon.js +30 -17
- package/legacy/AdapterMoment/AdapterMoment.js +326 -320
- package/legacy/AdapterMomentHijri/AdapterMomentHijri.js +4 -25
- package/legacy/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -30
- package/legacy/DateCalendar/DateCalendar.js +2 -2
- package/legacy/DatePicker/DatePicker.js +2 -2
- package/legacy/DateTimePicker/DateTimePicker.js +2 -2
- package/legacy/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/legacy/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/legacy/MobileDatePicker/MobileDatePicker.js +2 -2
- package/legacy/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
- package/legacy/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
- package/legacy/PickersShortcuts/PickersShortcuts.js +2 -1
- package/legacy/StaticDatePicker/StaticDatePicker.js +2 -2
- package/legacy/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/legacy/index.js +1 -1
- package/legacy/internals/components/PickersTextField/Outline.js +100 -0
- package/legacy/internals/components/PickersTextField/PickersInput.js +273 -0
- package/legacy/internals/components/PickersTextField/PickersInput.types.js +1 -0
- package/legacy/internals/components/PickersTextField/PickersTextField.js +129 -0
- package/legacy/internals/components/PickersTextField/PickersTextField.types.js +1 -0
- package/legacy/internals/components/PickersTextField/index.js +1 -0
- package/legacy/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
- package/legacy/internals/hooks/useField/useField.utils.js +23 -10
- package/legacy/internals/hooks/usePicker/usePickerValue.js +2 -6
- package/locales/beBY.d.ts +18 -5
- package/locales/caES.d.ts +18 -5
- package/locales/csCZ.d.ts +18 -5
- package/locales/daDK.d.ts +18 -5
- package/locales/deDE.d.ts +18 -5
- package/locales/elGR.d.ts +18 -5
- package/locales/enUS.d.ts +18 -5
- package/locales/esES.d.ts +18 -5
- package/locales/eu.d.ts +18 -5
- package/locales/faIR.d.ts +18 -5
- package/locales/fiFI.d.ts +18 -5
- package/locales/frFR.d.ts +18 -5
- package/locales/heIL.d.ts +18 -5
- package/locales/huHU.d.ts +18 -5
- package/locales/isIS.d.ts +18 -5
- package/locales/itIT.d.ts +18 -5
- package/locales/jaJP.d.ts +18 -5
- package/locales/koKR.d.ts +18 -5
- package/locales/kzKZ.d.ts +18 -5
- package/locales/mk.d.ts +18 -5
- package/locales/nbNO.d.ts +18 -5
- package/locales/nlNL.d.ts +18 -5
- package/locales/plPL.d.ts +18 -5
- package/locales/ptBR.d.ts +18 -5
- package/locales/roRO.d.ts +18 -5
- package/locales/ruRU.d.ts +18 -5
- package/locales/skSK.d.ts +18 -5
- package/locales/svSE.d.ts +18 -5
- package/locales/trTR.d.ts +18 -5
- package/locales/ukUA.d.ts +18 -5
- package/locales/urPK.d.ts +18 -5
- package/locales/utils/getPickersLocalization.d.ts +18 -5
- package/locales/utils/pickersLocaleTextApi.d.ts +18 -5
- package/locales/viVN.d.ts +18 -5
- package/locales/zhCN.d.ts +18 -5
- package/locales/zhHK.d.ts +18 -5
- package/modern/AdapterDateFns/AdapterDateFns.js +10 -14
- package/modern/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
- package/modern/AdapterDayjs/AdapterDayjs.js +11 -8
- package/modern/AdapterLuxon/AdapterLuxon.js +28 -16
- package/modern/AdapterMoment/AdapterMoment.js +14 -14
- package/modern/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
- package/modern/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
- package/modern/DateCalendar/DateCalendar.js +2 -2
- package/modern/DatePicker/DatePicker.js +2 -2
- package/modern/DateTimePicker/DateTimePicker.js +2 -2
- package/modern/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/modern/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/modern/MobileDatePicker/MobileDatePicker.js +2 -2
- package/modern/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
- package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
- package/modern/PickersShortcuts/PickersShortcuts.js +1 -1
- package/modern/StaticDatePicker/StaticDatePicker.js +2 -2
- package/modern/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersTextField/Outline.js +99 -0
- package/modern/internals/components/PickersTextField/PickersInput.js +264 -0
- package/modern/internals/components/PickersTextField/PickersInput.types.js +1 -0
- package/modern/internals/components/PickersTextField/PickersTextField.js +119 -0
- package/modern/internals/components/PickersTextField/PickersTextField.types.js +1 -0
- package/modern/internals/components/PickersTextField/index.js +1 -0
- package/modern/internals/components/PickersTextField/pickersTextFieldClasses.js +9 -0
- package/modern/internals/hooks/useField/useField.utils.js +23 -10
- package/modern/internals/hooks/usePicker/usePickerValue.js +2 -6
- package/node/AdapterDateFns/AdapterDateFns.js +10 -14
- package/node/AdapterDateFnsJalali/AdapterDateFnsJalali.js +12 -16
- package/node/AdapterDayjs/AdapterDayjs.js +10 -7
- package/node/AdapterLuxon/AdapterLuxon.js +28 -16
- package/node/AdapterMoment/AdapterMoment.js +14 -14
- package/node/AdapterMomentHijri/AdapterMomentHijri.js +1 -24
- package/node/AdapterMomentJalaali/AdapterMomentJalaali.js +0 -26
- package/node/DateCalendar/DateCalendar.js +2 -2
- package/node/DatePicker/DatePicker.js +2 -2
- package/node/DateTimePicker/DateTimePicker.js +2 -2
- package/node/DesktopDatePicker/DesktopDatePicker.js +2 -2
- package/node/DesktopDateTimePicker/DesktopDateTimePicker.js +2 -2
- package/node/MobileDatePicker/MobileDatePicker.js +2 -2
- package/node/MobileDateTimePicker/MobileDateTimePicker.js +2 -2
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +2 -0
- package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.utils.js +2 -1
- package/node/PickersShortcuts/PickersShortcuts.js +1 -1
- package/node/StaticDatePicker/StaticDatePicker.js +2 -2
- package/node/StaticDateTimePicker/StaticDateTimePicker.js +2 -2
- package/node/index.js +1 -1
- package/node/internals/components/PickersTextField/Outline.js +108 -0
- package/node/internals/components/PickersTextField/PickersInput.js +272 -0
- package/node/internals/components/PickersTextField/PickersInput.types.js +5 -0
- package/node/internals/components/PickersTextField/PickersTextField.js +127 -0
- package/node/internals/components/PickersTextField/PickersTextField.types.js +5 -0
- package/node/internals/components/PickersTextField/index.js +12 -0
- package/node/internals/components/PickersTextField/pickersTextFieldClasses.js +17 -0
- package/node/internals/hooks/useField/useField.utils.js +23 -10
- package/node/internals/hooks/usePicker/usePickerValue.js +2 -6
- package/package.json +2 -2
- package/internals/components/FakeTextField/FakeTextField.d.ts +0 -22
- package/internals/components/FakeTextField/FakeTextField.js +0 -44
- package/internals/components/FakeTextField/index.d.ts +0 -1
- package/internals/components/FakeTextField/index.js +0 -1
- package/legacy/internals/components/FakeTextField/FakeTextField.js +0 -49
- package/legacy/internals/components/FakeTextField/index.js +0 -1
- package/modern/internals/components/FakeTextField/FakeTextField.js +0 -44
- package/modern/internals/components/FakeTextField/index.js +0 -1
- package/node/internals/components/FakeTextField/FakeTextField.js +0 -52
- package/node/internals/components/FakeTextField/index.js +0 -12
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["elements", "className", "color", "disabled", "error", "label", "variant", "fullWidth", "valueStr", "helperText", "valueType", "id", "FormHelperTextProps", "InputLabelProps", "inputProps", "InputProps", "required", "focused", "ownerState"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import clsx from 'clsx';
|
|
6
|
+
import { styled } from '@mui/material/styles';
|
|
7
|
+
import useForkRef from '@mui/utils/useForkRef';
|
|
8
|
+
import { unstable_composeClasses as composeClasses, unstable_useId as useId } from '@mui/utils';
|
|
9
|
+
import InputLabel from '@mui/material/InputLabel';
|
|
10
|
+
import FormHelperText from '@mui/material/FormHelperText';
|
|
11
|
+
import FormControl from '@mui/material/FormControl';
|
|
12
|
+
import { getPickersTextFieldUtilityClass } from './pickersTextFieldClasses';
|
|
13
|
+
import PickersInput from './PickersInput';
|
|
14
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
15
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
16
|
+
const PickersTextFieldRoot = styled(FormControl, {
|
|
17
|
+
name: 'MuiPickersTextField',
|
|
18
|
+
slot: 'Root',
|
|
19
|
+
overridesResolver: (props, styles) => styles.root
|
|
20
|
+
})({});
|
|
21
|
+
const useUtilityClasses = ownerState => {
|
|
22
|
+
const {
|
|
23
|
+
focused,
|
|
24
|
+
disabled,
|
|
25
|
+
classes,
|
|
26
|
+
required
|
|
27
|
+
} = ownerState;
|
|
28
|
+
const slots = {
|
|
29
|
+
root: ['root', focused && !disabled && 'focused', disabled && 'disabled', required && 'required']
|
|
30
|
+
};
|
|
31
|
+
return composeClasses(slots, getPickersTextFieldUtilityClass, classes);
|
|
32
|
+
};
|
|
33
|
+
export const PickersTextField = /*#__PURE__*/React.forwardRef(function PickersTextField(props, ref) {
|
|
34
|
+
const {
|
|
35
|
+
elements,
|
|
36
|
+
className,
|
|
37
|
+
color = 'primary',
|
|
38
|
+
disabled = false,
|
|
39
|
+
error = false,
|
|
40
|
+
label,
|
|
41
|
+
variant = 'outlined',
|
|
42
|
+
fullWidth = false,
|
|
43
|
+
valueStr,
|
|
44
|
+
helperText,
|
|
45
|
+
valueType,
|
|
46
|
+
id: idOverride,
|
|
47
|
+
FormHelperTextProps,
|
|
48
|
+
InputLabelProps,
|
|
49
|
+
inputProps,
|
|
50
|
+
InputProps,
|
|
51
|
+
required = false,
|
|
52
|
+
focused: focusedProp
|
|
53
|
+
} = props,
|
|
54
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
55
|
+
const [focused, setFocused] = React.useState(focusedProp);
|
|
56
|
+
const rootRef = React.useRef(null);
|
|
57
|
+
const handleRootRef = useForkRef(ref, rootRef);
|
|
58
|
+
const inputRef = React.useRef(null);
|
|
59
|
+
const handleInputRef = useForkRef(inputRef, InputProps?.ref);
|
|
60
|
+
const id = useId(idOverride);
|
|
61
|
+
const helperTextId = helperText && id ? `${id}-helper-text` : undefined;
|
|
62
|
+
const inputLabelId = label && id ? `${id}-label` : undefined;
|
|
63
|
+
const ownerState = _extends({}, props, {
|
|
64
|
+
color,
|
|
65
|
+
disabled,
|
|
66
|
+
error,
|
|
67
|
+
focused,
|
|
68
|
+
variant
|
|
69
|
+
});
|
|
70
|
+
const classes = useUtilityClasses(ownerState);
|
|
71
|
+
|
|
72
|
+
// TODO: delete after behavior implementation
|
|
73
|
+
const onWrapperClick = () => {
|
|
74
|
+
if (!focused) {
|
|
75
|
+
setFocused(true);
|
|
76
|
+
const container = rootRef.current;
|
|
77
|
+
|
|
78
|
+
// Find the first input element within the container
|
|
79
|
+
const firstInput = container?.querySelector('.content');
|
|
80
|
+
|
|
81
|
+
// Check if the input element exists before focusing it
|
|
82
|
+
if (firstInput) {
|
|
83
|
+
firstInput.focus();
|
|
84
|
+
}
|
|
85
|
+
inputRef.current?.focus();
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
return /*#__PURE__*/_jsxs(PickersTextFieldRoot, {
|
|
89
|
+
className: clsx(classes.root, className),
|
|
90
|
+
ref: handleRootRef,
|
|
91
|
+
focused: focused,
|
|
92
|
+
disabled: disabled,
|
|
93
|
+
variant: variant,
|
|
94
|
+
error: error,
|
|
95
|
+
color: color,
|
|
96
|
+
fullWidth: fullWidth,
|
|
97
|
+
required: required,
|
|
98
|
+
ownerState: ownerState,
|
|
99
|
+
children: [/*#__PURE__*/_jsx(InputLabel, _extends({
|
|
100
|
+
htmlFor: id,
|
|
101
|
+
id: inputLabelId
|
|
102
|
+
}, InputLabelProps, {
|
|
103
|
+
children: label
|
|
104
|
+
})), /*#__PURE__*/_jsx(PickersInput, _extends({
|
|
105
|
+
elements,
|
|
106
|
+
valueStr,
|
|
107
|
+
valueType,
|
|
108
|
+
onWrapperClick,
|
|
109
|
+
inputProps,
|
|
110
|
+
label
|
|
111
|
+
}, other, InputProps, {
|
|
112
|
+
ref: handleInputRef
|
|
113
|
+
})), helperText && /*#__PURE__*/_jsx(FormHelperText, _extends({
|
|
114
|
+
id: helperTextId
|
|
115
|
+
}, FormHelperTextProps, {
|
|
116
|
+
children: helperText
|
|
117
|
+
}))]
|
|
118
|
+
});
|
|
119
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PickersTextField } from './PickersTextField';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
|
|
2
|
+
export function getPickersTextFieldUtilityClass(slot) {
|
|
3
|
+
return generateUtilityClass('MuiPickersTextField', slot);
|
|
4
|
+
}
|
|
5
|
+
export const pickersTextFieldClasses = generateUtilityClasses('MuiPickersTextField', ['root', 'focused', 'disabled', 'error', 'required']);
|
|
6
|
+
export function getPickersInputUtilityClass(slot) {
|
|
7
|
+
return generateUtilityClass('MuiPickersInput', slot);
|
|
8
|
+
}
|
|
9
|
+
export const pickersInputClasses = generateUtilityClasses('MuiPickersInput', ['root', 'focused', 'disabled', 'error', 'notchedOutline', 'content', 'before', 'after', 'adornedStart', 'adornedEnd', 'input']);
|
|
@@ -207,49 +207,62 @@ export const addPositionPropertiesToSections = (sections, isRTL) => {
|
|
|
207
207
|
}
|
|
208
208
|
return newSections;
|
|
209
209
|
};
|
|
210
|
-
const getSectionPlaceholder = (utils, timezone, localeText, sectionConfig,
|
|
210
|
+
const getSectionPlaceholder = (utils, timezone, localeText, sectionConfig, sectionFormat) => {
|
|
211
211
|
switch (sectionConfig.type) {
|
|
212
212
|
case 'year':
|
|
213
213
|
{
|
|
214
214
|
return localeText.fieldYearPlaceholder({
|
|
215
|
-
digitAmount: utils.formatByString(utils.date(undefined, timezone),
|
|
215
|
+
digitAmount: utils.formatByString(utils.date(undefined, timezone), sectionFormat).length,
|
|
216
|
+
format: sectionFormat
|
|
216
217
|
});
|
|
217
218
|
}
|
|
218
219
|
case 'month':
|
|
219
220
|
{
|
|
220
221
|
return localeText.fieldMonthPlaceholder({
|
|
221
|
-
contentType: sectionConfig.contentType
|
|
222
|
+
contentType: sectionConfig.contentType,
|
|
223
|
+
format: sectionFormat
|
|
222
224
|
});
|
|
223
225
|
}
|
|
224
226
|
case 'day':
|
|
225
227
|
{
|
|
226
|
-
return localeText.fieldDayPlaceholder(
|
|
228
|
+
return localeText.fieldDayPlaceholder({
|
|
229
|
+
format: sectionFormat
|
|
230
|
+
});
|
|
227
231
|
}
|
|
228
232
|
case 'weekDay':
|
|
229
233
|
{
|
|
230
234
|
return localeText.fieldWeekDayPlaceholder({
|
|
231
|
-
contentType: sectionConfig.contentType
|
|
235
|
+
contentType: sectionConfig.contentType,
|
|
236
|
+
format: sectionFormat
|
|
232
237
|
});
|
|
233
238
|
}
|
|
234
239
|
case 'hours':
|
|
235
240
|
{
|
|
236
|
-
return localeText.fieldHoursPlaceholder(
|
|
241
|
+
return localeText.fieldHoursPlaceholder({
|
|
242
|
+
format: sectionFormat
|
|
243
|
+
});
|
|
237
244
|
}
|
|
238
245
|
case 'minutes':
|
|
239
246
|
{
|
|
240
|
-
return localeText.fieldMinutesPlaceholder(
|
|
247
|
+
return localeText.fieldMinutesPlaceholder({
|
|
248
|
+
format: sectionFormat
|
|
249
|
+
});
|
|
241
250
|
}
|
|
242
251
|
case 'seconds':
|
|
243
252
|
{
|
|
244
|
-
return localeText.fieldSecondsPlaceholder(
|
|
253
|
+
return localeText.fieldSecondsPlaceholder({
|
|
254
|
+
format: sectionFormat
|
|
255
|
+
});
|
|
245
256
|
}
|
|
246
257
|
case 'meridiem':
|
|
247
258
|
{
|
|
248
|
-
return localeText.fieldMeridiemPlaceholder(
|
|
259
|
+
return localeText.fieldMeridiemPlaceholder({
|
|
260
|
+
format: sectionFormat
|
|
261
|
+
});
|
|
249
262
|
}
|
|
250
263
|
default:
|
|
251
264
|
{
|
|
252
|
-
return
|
|
265
|
+
return sectionFormat;
|
|
253
266
|
}
|
|
254
267
|
}
|
|
255
268
|
};
|
|
@@ -221,9 +221,7 @@ export const usePickerValue = ({
|
|
|
221
221
|
const context = {
|
|
222
222
|
validationError
|
|
223
223
|
};
|
|
224
|
-
|
|
225
|
-
// TODO v7: Remove 2nd condition
|
|
226
|
-
if (action.name === 'setValueFromShortcut' && action.shortcut != null) {
|
|
224
|
+
if (action.name === 'setValueFromShortcut') {
|
|
227
225
|
context.shortcut = action.shortcut;
|
|
228
226
|
}
|
|
229
227
|
handleValueChange(action.value, context);
|
|
@@ -288,12 +286,10 @@ export const usePickerValue = ({
|
|
|
288
286
|
value: newValue,
|
|
289
287
|
selectionState
|
|
290
288
|
}));
|
|
291
|
-
|
|
292
|
-
// TODO v7: Make changeImportance and label mandatory.
|
|
293
289
|
const handleSelectShortcut = useEventCallback((newValue, changeImportance, shortcut) => updateDate({
|
|
294
290
|
name: 'setValueFromShortcut',
|
|
295
291
|
value: newValue,
|
|
296
|
-
changeImportance
|
|
292
|
+
changeImportance,
|
|
297
293
|
shortcut
|
|
298
294
|
}));
|
|
299
295
|
const handleChangeFromField = useEventCallback((newValue, context) => updateDate({
|
|
@@ -389,10 +389,10 @@ class AdapterDateFns {
|
|
|
389
389
|
return (0, _isBefore.default)(value, comparing);
|
|
390
390
|
};
|
|
391
391
|
this.isBeforeYear = (value, comparing) => {
|
|
392
|
-
return (0, _isBefore.default)(value,
|
|
392
|
+
return (0, _isBefore.default)(value, this.startOfYear(comparing));
|
|
393
393
|
};
|
|
394
394
|
this.isBeforeDay = (value, comparing) => {
|
|
395
|
-
return (0, _isBefore.default)(value,
|
|
395
|
+
return (0, _isBefore.default)(value, this.startOfDay(comparing));
|
|
396
396
|
};
|
|
397
397
|
this.isWithinRange = (value, [start, end]) => {
|
|
398
398
|
return (0, _isWithinInterval.default)(value, {
|
|
@@ -495,20 +495,16 @@ class AdapterDateFns {
|
|
|
495
495
|
return (0, _getDaysInMonth.default)(value);
|
|
496
496
|
};
|
|
497
497
|
this.getWeekArray = value => {
|
|
498
|
-
const start =
|
|
499
|
-
|
|
500
|
-
});
|
|
501
|
-
const end = (0, _endOfWeek.default)((0, _endOfMonth.default)(value), {
|
|
502
|
-
locale: this.locale
|
|
503
|
-
});
|
|
498
|
+
const start = this.startOfWeek(this.startOfMonth(value));
|
|
499
|
+
const end = this.endOfWeek(this.endOfMonth(value));
|
|
504
500
|
let count = 0;
|
|
505
501
|
let current = start;
|
|
506
502
|
const nestedWeeks = [];
|
|
507
|
-
while (
|
|
503
|
+
while (this.isBefore(current, end)) {
|
|
508
504
|
const weekNumber = Math.floor(count / 7);
|
|
509
505
|
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
510
506
|
nestedWeeks[weekNumber].push(current);
|
|
511
|
-
current =
|
|
507
|
+
current = this.addDays(current, 1);
|
|
512
508
|
count += 1;
|
|
513
509
|
}
|
|
514
510
|
return nestedWeeks;
|
|
@@ -519,13 +515,13 @@ class AdapterDateFns {
|
|
|
519
515
|
});
|
|
520
516
|
};
|
|
521
517
|
this.getYearRange = ([start, end]) => {
|
|
522
|
-
const startDate =
|
|
523
|
-
const endDate =
|
|
518
|
+
const startDate = this.startOfYear(start);
|
|
519
|
+
const endDate = this.endOfYear(end);
|
|
524
520
|
const years = [];
|
|
525
521
|
let current = startDate;
|
|
526
|
-
while (
|
|
522
|
+
while (this.isBefore(current, endDate)) {
|
|
527
523
|
years.push(current);
|
|
528
|
-
current =
|
|
524
|
+
current = this.addYears(current, 1);
|
|
529
525
|
}
|
|
530
526
|
return years;
|
|
531
527
|
};
|
|
@@ -391,19 +391,19 @@ class AdapterDateFnsJalali {
|
|
|
391
391
|
return (0, _isAfter.default)(value, comparing);
|
|
392
392
|
};
|
|
393
393
|
this.isAfterYear = (value, comparing) => {
|
|
394
|
-
return (0, _isAfter.default)(value,
|
|
394
|
+
return (0, _isAfter.default)(value, this.endOfYear(comparing));
|
|
395
395
|
};
|
|
396
396
|
this.isAfterDay = (value, comparing) => {
|
|
397
|
-
return (0, _isAfter.default)(value,
|
|
397
|
+
return (0, _isAfter.default)(value, this.endOfDay(comparing));
|
|
398
398
|
};
|
|
399
399
|
this.isBefore = (value, comparing) => {
|
|
400
400
|
return (0, _isBefore.default)(value, comparing);
|
|
401
401
|
};
|
|
402
402
|
this.isBeforeYear = (value, comparing) => {
|
|
403
|
-
return (0, _isBefore.default)(value,
|
|
403
|
+
return (0, _isBefore.default)(value, this.startOfYear(comparing));
|
|
404
404
|
};
|
|
405
405
|
this.isBeforeDay = (value, comparing) => {
|
|
406
|
-
return (0, _isBefore.default)(value,
|
|
406
|
+
return (0, _isBefore.default)(value, this.startOfDay(comparing));
|
|
407
407
|
};
|
|
408
408
|
this.isWithinRange = (value, [start, end]) => {
|
|
409
409
|
return (0, _isWithinInterval.default)(value, {
|
|
@@ -506,20 +506,16 @@ class AdapterDateFnsJalali {
|
|
|
506
506
|
return (0, _getDaysInMonth.default)(value);
|
|
507
507
|
};
|
|
508
508
|
this.getWeekArray = value => {
|
|
509
|
-
const start =
|
|
510
|
-
|
|
511
|
-
});
|
|
512
|
-
const end = (0, _endOfWeek.default)((0, _endOfMonth.default)(value), {
|
|
513
|
-
locale: this.locale
|
|
514
|
-
});
|
|
509
|
+
const start = this.startOfWeek(this.startOfMonth(value));
|
|
510
|
+
const end = this.endOfWeek(this.endOfMonth(value));
|
|
515
511
|
let count = 0;
|
|
516
512
|
let current = start;
|
|
517
513
|
const nestedWeeks = [];
|
|
518
|
-
while (
|
|
514
|
+
while (this.isBefore(current, end)) {
|
|
519
515
|
const weekNumber = Math.floor(count / 7);
|
|
520
516
|
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
521
517
|
nestedWeeks[weekNumber].push(current);
|
|
522
|
-
current =
|
|
518
|
+
current = this.addDays(current, 1);
|
|
523
519
|
count += 1;
|
|
524
520
|
}
|
|
525
521
|
return nestedWeeks;
|
|
@@ -530,13 +526,13 @@ class AdapterDateFnsJalali {
|
|
|
530
526
|
});
|
|
531
527
|
};
|
|
532
528
|
this.getYearRange = ([start, end]) => {
|
|
533
|
-
const startDate =
|
|
534
|
-
const endDate =
|
|
529
|
+
const startDate = this.startOfYear(start);
|
|
530
|
+
const endDate = this.endOfYear(end);
|
|
535
531
|
const years = [];
|
|
536
532
|
let current = startDate;
|
|
537
|
-
while (
|
|
533
|
+
while (this.isBefore(current, endDate)) {
|
|
538
534
|
years.push(current);
|
|
539
|
-
current =
|
|
535
|
+
current = this.addYears(current, 1);
|
|
540
536
|
}
|
|
541
537
|
return years;
|
|
542
538
|
};
|
|
@@ -14,8 +14,8 @@ var _isBetween = _interopRequireDefault(require("dayjs/plugin/isBetween"));
|
|
|
14
14
|
var _warning = require("../internals/utils/warning");
|
|
15
15
|
/* eslint-disable class-methods-use-this */
|
|
16
16
|
|
|
17
|
-
_dayjs.default.extend(_customParseFormat.default);
|
|
18
17
|
_dayjs.default.extend(_localizedFormat.default);
|
|
18
|
+
_dayjs.default.extend(_weekOfYear.default);
|
|
19
19
|
_dayjs.default.extend(_isBetween.default);
|
|
20
20
|
const localeNotFoundWarning = (0, _warning.buildWarning)(['Your locale has not been found.', 'Either the locale key is not a supported one. Locales supported by dayjs are available here: https://github.com/iamkun/dayjs/tree/dev/src/locale', "Or you forget to import the locale from 'dayjs/locale/{localeUsed}'", 'fallback on English locale']);
|
|
21
21
|
const formatTokenMap = {
|
|
@@ -512,8 +512,8 @@ class AdapterDayjs {
|
|
|
512
512
|
};
|
|
513
513
|
this.getWeekArray = value => {
|
|
514
514
|
const cleanValue = this.setLocaleToValue(value);
|
|
515
|
-
const start =
|
|
516
|
-
const end =
|
|
515
|
+
const start = this.startOfWeek(this.startOfMonth(cleanValue));
|
|
516
|
+
const end = this.endOfWeek(this.endOfMonth(cleanValue));
|
|
517
517
|
let count = 0;
|
|
518
518
|
let current = start;
|
|
519
519
|
const nestedWeeks = [];
|
|
@@ -530,11 +530,11 @@ class AdapterDayjs {
|
|
|
530
530
|
return value.week();
|
|
531
531
|
};
|
|
532
532
|
this.getYearRange = ([start, end]) => {
|
|
533
|
-
const startDate =
|
|
534
|
-
const endDate =
|
|
533
|
+
const startDate = this.startOfYear(start);
|
|
534
|
+
const endDate = this.endOfYear(end);
|
|
535
535
|
const years = [];
|
|
536
536
|
let current = startDate;
|
|
537
|
-
while (current
|
|
537
|
+
while (this.isBefore(current, endDate)) {
|
|
538
538
|
years.push(current);
|
|
539
539
|
current = this.addYears(current, 1);
|
|
540
540
|
}
|
|
@@ -543,7 +543,10 @@ class AdapterDayjs {
|
|
|
543
543
|
this.dayjs = withLocale(_dayjs.default, _locale);
|
|
544
544
|
this.locale = _locale;
|
|
545
545
|
this.formats = (0, _extends2.default)({}, defaultFormats, formats);
|
|
546
|
-
|
|
546
|
+
|
|
547
|
+
// Moved plugins to the constructor to allow for users to use options on the library
|
|
548
|
+
// for reference: https://github.com/mui/mui-x/pull/11151
|
|
549
|
+
_dayjs.default.extend(_customParseFormat.default);
|
|
547
550
|
}
|
|
548
551
|
}
|
|
549
552
|
exports.AdapterDayjs = AdapterDayjs;
|
|
@@ -315,12 +315,12 @@ class AdapterLuxon {
|
|
|
315
315
|
};
|
|
316
316
|
this.isAfterYear = (value, comparing) => {
|
|
317
317
|
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
318
|
-
const diff = value.diff(
|
|
318
|
+
const diff = value.diff(this.endOfYear(comparingInValueTimezone), 'years').toObject();
|
|
319
319
|
return diff.years > 0;
|
|
320
320
|
};
|
|
321
321
|
this.isAfterDay = (value, comparing) => {
|
|
322
322
|
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
323
|
-
const diff = value.diff(
|
|
323
|
+
const diff = value.diff(this.endOfDay(comparingInValueTimezone), 'days').toObject();
|
|
324
324
|
return diff.days > 0;
|
|
325
325
|
};
|
|
326
326
|
this.isBefore = (value, comparing) => {
|
|
@@ -328,12 +328,12 @@ class AdapterLuxon {
|
|
|
328
328
|
};
|
|
329
329
|
this.isBeforeYear = (value, comparing) => {
|
|
330
330
|
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
331
|
-
const diff = value.diff(
|
|
331
|
+
const diff = value.diff(this.startOfYear(comparingInValueTimezone), 'years').toObject();
|
|
332
332
|
return diff.years < 0;
|
|
333
333
|
};
|
|
334
334
|
this.isBeforeDay = (value, comparing) => {
|
|
335
335
|
const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));
|
|
336
|
-
const diff = value.diff(
|
|
336
|
+
const diff = value.diff(this.startOfDay(comparingInValueTimezone), 'days').toObject();
|
|
337
337
|
return diff.days < 0;
|
|
338
338
|
};
|
|
339
339
|
this.isWithinRange = (value, [start, end]) => {
|
|
@@ -346,7 +346,12 @@ class AdapterLuxon {
|
|
|
346
346
|
return value.startOf('month');
|
|
347
347
|
};
|
|
348
348
|
this.startOfWeek = value => {
|
|
349
|
-
return value.startOf('week'
|
|
349
|
+
return value.startOf('week',
|
|
350
|
+
// TODO: remove when `@types/luxon` add support for the parameter.
|
|
351
|
+
// @ts-ignore
|
|
352
|
+
{
|
|
353
|
+
useLocaleWeeks: true
|
|
354
|
+
});
|
|
350
355
|
};
|
|
351
356
|
this.startOfDay = value => {
|
|
352
357
|
return value.startOf('day');
|
|
@@ -358,7 +363,12 @@ class AdapterLuxon {
|
|
|
358
363
|
return value.endOf('month');
|
|
359
364
|
};
|
|
360
365
|
this.endOfWeek = value => {
|
|
361
|
-
return value.endOf('week'
|
|
366
|
+
return value.endOf('week',
|
|
367
|
+
// TODO: remove when `@types/luxon` add support for the parameter.
|
|
368
|
+
// @ts-ignore
|
|
369
|
+
{
|
|
370
|
+
useLocaleWeeks: true
|
|
371
|
+
});
|
|
362
372
|
};
|
|
363
373
|
this.endOfDay = value => {
|
|
364
374
|
return value.endOf('day');
|
|
@@ -460,11 +470,13 @@ class AdapterLuxon {
|
|
|
460
470
|
};
|
|
461
471
|
this.getWeekArray = value => {
|
|
462
472
|
const cleanValue = this.setLocaleToValue(value);
|
|
473
|
+
const firstDay = this.startOfWeek(this.startOfMonth(cleanValue));
|
|
474
|
+
const lastDay = this.endOfWeek(this.endOfMonth(cleanValue));
|
|
463
475
|
const {
|
|
464
476
|
days
|
|
465
|
-
} =
|
|
477
|
+
} = lastDay.diff(firstDay, 'days').toObject();
|
|
466
478
|
const weeks = [];
|
|
467
|
-
new Array(Math.round(days)).fill(0).map((_, i) => i).map(day =>
|
|
479
|
+
new Array(Math.round(days)).fill(0).map((_, i) => i).map(day => firstDay.plus({
|
|
468
480
|
days: day
|
|
469
481
|
})).forEach((v, i) => {
|
|
470
482
|
if (i === 0 || i % 7 === 0 && i > 6) {
|
|
@@ -476,18 +488,18 @@ class AdapterLuxon {
|
|
|
476
488
|
return weeks;
|
|
477
489
|
};
|
|
478
490
|
this.getWeekNumber = value => {
|
|
479
|
-
|
|
491
|
+
// TODO: remove when `@types/luxon` add support for the parameter.
|
|
492
|
+
// @ts-ignore
|
|
493
|
+
return value.localeWeekNumber ?? value.weekNumber;
|
|
480
494
|
};
|
|
481
495
|
this.getYearRange = ([start, end]) => {
|
|
482
|
-
const startDate =
|
|
483
|
-
const endDate =
|
|
484
|
-
let current = startDate;
|
|
496
|
+
const startDate = this.startOfYear(start);
|
|
497
|
+
const endDate = this.endOfYear(end);
|
|
485
498
|
const years = [];
|
|
486
|
-
|
|
499
|
+
let current = startDate;
|
|
500
|
+
while (this.isBefore(current, endDate)) {
|
|
487
501
|
years.push(current);
|
|
488
|
-
current =
|
|
489
|
-
year: 1
|
|
490
|
-
});
|
|
502
|
+
current = this.addYears(current, 1);
|
|
491
503
|
}
|
|
492
504
|
return years;
|
|
493
505
|
};
|
|
@@ -434,8 +434,8 @@ class AdapterMoment {
|
|
|
434
434
|
};
|
|
435
435
|
this.getWeekArray = value => {
|
|
436
436
|
const cleanValue = this.setLocaleToValue(value);
|
|
437
|
-
const start =
|
|
438
|
-
const end =
|
|
437
|
+
const start = this.startOfWeek(this.startOfMonth(cleanValue));
|
|
438
|
+
const end = this.endOfWeek(this.endOfMonth(cleanValue));
|
|
439
439
|
let count = 0;
|
|
440
440
|
let current = start;
|
|
441
441
|
const nestedWeeks = [];
|
|
@@ -443,7 +443,7 @@ class AdapterMoment {
|
|
|
443
443
|
const weekNumber = Math.floor(count / 7);
|
|
444
444
|
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
445
445
|
nestedWeeks[weekNumber].push(current);
|
|
446
|
-
current =
|
|
446
|
+
current = this.addDays(current, 1);
|
|
447
447
|
count += 1;
|
|
448
448
|
}
|
|
449
449
|
return nestedWeeks;
|
|
@@ -451,20 +451,20 @@ class AdapterMoment {
|
|
|
451
451
|
this.getWeekNumber = value => {
|
|
452
452
|
return value.week();
|
|
453
453
|
};
|
|
454
|
-
this.getYearRange = ([start, end]) => {
|
|
455
|
-
const startDate = this.moment(start).startOf('year');
|
|
456
|
-
const endDate = this.moment(end).endOf('year');
|
|
457
|
-
const years = [];
|
|
458
|
-
let current = startDate;
|
|
459
|
-
while (current.isBefore(endDate)) {
|
|
460
|
-
years.push(current);
|
|
461
|
-
current = current.clone().add(1, 'year');
|
|
462
|
-
}
|
|
463
|
-
return years;
|
|
464
|
-
};
|
|
465
454
|
this.moment = instance || _moment.default;
|
|
466
455
|
this.locale = locale;
|
|
467
456
|
this.formats = (0, _extends2.default)({}, defaultFormats, formats);
|
|
468
457
|
}
|
|
458
|
+
getYearRange([start, end]) {
|
|
459
|
+
const startDate = this.startOfYear(start);
|
|
460
|
+
const endDate = this.endOfYear(end);
|
|
461
|
+
const years = [];
|
|
462
|
+
let current = startDate;
|
|
463
|
+
while (this.isBefore(current, endDate)) {
|
|
464
|
+
years.push(current);
|
|
465
|
+
current = this.addYears(current, 1);
|
|
466
|
+
}
|
|
467
|
+
return years;
|
|
468
|
+
}
|
|
469
469
|
}
|
|
470
470
|
exports.AdapterMoment = AdapterMoment;
|
|
@@ -206,21 +206,6 @@ class AdapterMomentHijri extends _AdapterMoment.AdapterMoment {
|
|
|
206
206
|
this.setDate = (value, date) => {
|
|
207
207
|
return value.clone().iDate(date);
|
|
208
208
|
};
|
|
209
|
-
this.getWeekArray = value => {
|
|
210
|
-
const start = value.clone().startOf('iMonth').startOf('week');
|
|
211
|
-
const end = value.clone().endOf('iMonth').endOf('week');
|
|
212
|
-
let count = 0;
|
|
213
|
-
let current = start;
|
|
214
|
-
const nestedWeeks = [];
|
|
215
|
-
while (current.isBefore(end)) {
|
|
216
|
-
const weekNumber = Math.floor(count / 7);
|
|
217
|
-
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
218
|
-
nestedWeeks[weekNumber].push(current);
|
|
219
|
-
current = current.clone().add(1, 'day');
|
|
220
|
-
count += 1;
|
|
221
|
-
}
|
|
222
|
-
return nestedWeeks;
|
|
223
|
-
};
|
|
224
209
|
this.getWeekNumber = value => {
|
|
225
210
|
return value.iWeek();
|
|
226
211
|
};
|
|
@@ -233,15 +218,7 @@ class AdapterMomentHijri extends _AdapterMoment.AdapterMoment {
|
|
|
233
218
|
if (end.isAfter('2076-11-26')) {
|
|
234
219
|
throw new Error('max date must be on or before 1499-12-29 H (2076-11-26)');
|
|
235
220
|
}
|
|
236
|
-
|
|
237
|
-
const endDate = this.moment(end).endOf('iYear');
|
|
238
|
-
const years = [];
|
|
239
|
-
let current = startDate;
|
|
240
|
-
while (current.isBefore(endDate)) {
|
|
241
|
-
years.push(current);
|
|
242
|
-
current = current.clone().add(1, 'iYear');
|
|
243
|
-
}
|
|
244
|
-
return years;
|
|
221
|
+
return super.getYearRange([start, end]);
|
|
245
222
|
};
|
|
246
223
|
this.moment = instance || _momentHijri.default;
|
|
247
224
|
this.locale = 'ar-SA';
|
|
@@ -220,35 +220,9 @@ class AdapterMomentJalaali extends _AdapterMoment.AdapterMoment {
|
|
|
220
220
|
this.setDate = (value, date) => {
|
|
221
221
|
return value.clone().jDate(date);
|
|
222
222
|
};
|
|
223
|
-
this.getWeekArray = value => {
|
|
224
|
-
const start = value.clone().startOf('jMonth').startOf('week');
|
|
225
|
-
const end = value.clone().endOf('jMonth').endOf('week');
|
|
226
|
-
let count = 0;
|
|
227
|
-
let current = start;
|
|
228
|
-
const nestedWeeks = [];
|
|
229
|
-
while (current.isBefore(end)) {
|
|
230
|
-
const weekNumber = Math.floor(count / 7);
|
|
231
|
-
nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
|
232
|
-
nestedWeeks[weekNumber].push(current);
|
|
233
|
-
current = current.clone().add(1, 'day');
|
|
234
|
-
count += 1;
|
|
235
|
-
}
|
|
236
|
-
return nestedWeeks;
|
|
237
|
-
};
|
|
238
223
|
this.getWeekNumber = value => {
|
|
239
224
|
return value.jWeek();
|
|
240
225
|
};
|
|
241
|
-
this.getYearRange = ([start, end]) => {
|
|
242
|
-
const startDate = this.moment(start).startOf('jYear');
|
|
243
|
-
const endDate = this.moment(end).endOf('jYear');
|
|
244
|
-
const years = [];
|
|
245
|
-
let current = startDate;
|
|
246
|
-
while (current.isBefore(endDate)) {
|
|
247
|
-
years.push(current);
|
|
248
|
-
current = current.clone().add(1, 'jYear');
|
|
249
|
-
}
|
|
250
|
-
return years;
|
|
251
|
-
};
|
|
252
226
|
this.moment = instance || _momentJalaali.default;
|
|
253
227
|
this.locale = 'fa';
|
|
254
228
|
this.formats = (0, _extends2.default)({}, defaultFormats, formats);
|
|
@@ -401,8 +401,8 @@ process.env.NODE_ENV !== "production" ? DateCalendar.propTypes = {
|
|
|
401
401
|
*/
|
|
402
402
|
displayWeekNumber: _propTypes.default.bool,
|
|
403
403
|
/**
|
|
404
|
-
*
|
|
405
|
-
* Put it to 6
|
|
404
|
+
* The day view will show as many weeks as needed after the end of the current month to match this value.
|
|
405
|
+
* Put it to 6 to have a fixed number of weeks in Gregorian calendars
|
|
406
406
|
* @default undefined
|
|
407
407
|
*/
|
|
408
408
|
fixedWeekNumber: _propTypes.default.number,
|
|
@@ -121,8 +121,8 @@ process.env.NODE_ENV !== "production" ? DatePicker.propTypes = {
|
|
|
121
121
|
*/
|
|
122
122
|
displayWeekNumber: _propTypes.default.bool,
|
|
123
123
|
/**
|
|
124
|
-
*
|
|
125
|
-
* Put it to 6
|
|
124
|
+
* The day view will show as many weeks as needed after the end of the current month to match this value.
|
|
125
|
+
* Put it to 6 to have a fixed number of weeks in Gregorian calendars
|
|
126
126
|
* @default undefined
|
|
127
127
|
*/
|
|
128
128
|
fixedWeekNumber: _propTypes.default.number,
|