@mui/x-date-pickers 7.10.0 → 7.11.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/AdapterDayjs/AdapterDayjs.js +4 -3
- package/CHANGELOG.md +169 -0
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.d.ts +4 -4
- package/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +2 -3
- package/PickersCalendarHeader/PickersCalendarHeader.js +1 -1
- package/PickersCalendarHeader/PickersCalendarHeader.types.d.ts +1 -1
- package/PickersLayout/PickersLayout.d.ts +4 -4
- package/PickersLayout/PickersLayout.js +2 -4
- package/PickersLayout/PickersLayout.types.d.ts +0 -4
- package/PickersTextField/PickersInput/pickersInputClasses.d.ts +1 -1
- package/TimeClock/Clock.js +21 -32
- package/TimeClock/clockClasses.d.ts +2 -0
- package/TimeClock/clockClasses.js +1 -1
- package/index.js +1 -1
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -5
- package/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.types.d.ts +2 -2
- package/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.d.ts +9 -1
- package/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.js +1 -1
- package/internals/hooks/useField/useField.js +3 -1
- package/internals/hooks/useField/useFieldV6TextField.js +3 -2
- package/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/internals/hooks/usePicker/usePicker.js +2 -3
- package/internals/index.d.ts +1 -1
- package/internals/index.js +1 -1
- package/internals/utils/warning.d.ts +2 -4
- package/internals/utils/warning.js +17 -24
- package/locales/index.d.ts +1 -0
- package/locales/index.js +1 -0
- package/locales/koKR.js +14 -16
- package/locales/nnNO.d.ts +80 -0
- package/locales/nnNO.js +73 -0
- package/locales/ruRU.js +15 -18
- package/models/pickers.d.ts +1 -1
- package/modern/AdapterDayjs/AdapterDayjs.js +4 -3
- package/modern/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +2 -3
- package/modern/PickersCalendarHeader/PickersCalendarHeader.js +1 -1
- package/modern/PickersLayout/PickersLayout.js +2 -4
- package/modern/TimeClock/Clock.js +21 -32
- package/modern/TimeClock/clockClasses.js +1 -1
- package/modern/index.js +1 -1
- package/modern/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -5
- package/modern/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.js +1 -1
- package/modern/internals/hooks/useField/useField.js +3 -1
- package/modern/internals/hooks/useField/useFieldV6TextField.js +3 -2
- package/modern/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/modern/internals/hooks/usePicker/usePicker.js +2 -3
- package/modern/internals/index.js +1 -1
- package/modern/internals/utils/warning.js +17 -24
- package/modern/locales/index.js +1 -0
- package/modern/locales/koKR.js +14 -16
- package/modern/locales/nnNO.js +73 -0
- package/modern/locales/ruRU.js +15 -18
- package/node/AdapterDayjs/AdapterDayjs.js +3 -2
- package/node/DesktopDateTimePicker/DesktopDateTimePickerLayout.js +3 -4
- package/node/PickersCalendarHeader/PickersCalendarHeader.js +1 -1
- package/node/PickersLayout/PickersLayout.js +2 -4
- package/node/TimeClock/Clock.js +21 -32
- package/node/TimeClock/clockClasses.js +1 -1
- package/node/index.js +1 -1
- package/node/internals/components/PickersArrowSwitcher/PickersArrowSwitcher.js +11 -5
- package/node/internals/components/PickersArrowSwitcher/pickersArrowSwitcherClasses.js +1 -1
- package/node/internals/hooks/useField/useField.js +3 -1
- package/node/internals/hooks/useField/useFieldV6TextField.js +3 -2
- package/node/internals/hooks/useField/useFieldV7TextField.js +1 -1
- package/node/internals/hooks/usePicker/usePicker.js +1 -2
- package/node/internals/index.js +6 -12
- package/node/internals/utils/warning.js +19 -27
- package/node/locales/index.js +11 -0
- package/node/locales/koKR.js +14 -16
- package/node/locales/nnNO.js +79 -0
- package/node/locales/ruRU.js +15 -18
- package/package.json +4 -4
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
const warnedOnceCache = new Set();
|
|
2
|
+
|
|
3
|
+
// TODO move to @mui/x-internals
|
|
4
|
+
// TODO eventually move to @base_ui/internals. Base UI, etc. too need this helper.
|
|
5
|
+
export function warnOnce(message, gravity = 'warning') {
|
|
3
6
|
if (process.env.NODE_ENV === 'production') {
|
|
4
|
-
return
|
|
7
|
+
return;
|
|
5
8
|
}
|
|
6
9
|
const cleanMessage = Array.isArray(message) ? message.join('\n') : message;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
if (
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
if (!warnedOnceCache.has(cleanMessage)) {
|
|
11
|
+
warnedOnceCache.add(cleanMessage);
|
|
12
|
+
if (gravity === 'error') {
|
|
13
|
+
console.error(cleanMessage);
|
|
14
|
+
} else {
|
|
15
|
+
console.warn(cleanMessage);
|
|
12
16
|
}
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
export
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return () => {
|
|
19
|
-
if (!alreadyWarned) {
|
|
20
|
-
alreadyWarned = true;
|
|
21
|
-
if (gravity === 'error') {
|
|
22
|
-
console.error(cleanMessage);
|
|
23
|
-
} else {
|
|
24
|
-
console.warn(cleanMessage);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
};
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export function clearWarningsCache() {
|
|
20
|
+
warnedOnceCache.clear();
|
|
21
|
+
}
|
package/locales/index.d.ts
CHANGED
package/locales/index.js
CHANGED
package/locales/koKR.js
CHANGED
|
@@ -16,11 +16,10 @@ const koKRPickers = {
|
|
|
16
16
|
// DateRange labels
|
|
17
17
|
start: '시작',
|
|
18
18
|
end: '종료',
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
startDate: '시작 날짜',
|
|
20
|
+
startTime: '시작 시간',
|
|
21
|
+
endDate: '종료 날짜',
|
|
22
|
+
endTime: '종료 시간',
|
|
24
23
|
// Action bar
|
|
25
24
|
cancelButtonLabel: '취소',
|
|
26
25
|
clearButtonLabel: '초기화',
|
|
@@ -54,23 +53,22 @@ const koKRPickers = {
|
|
|
54
53
|
fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),
|
|
55
54
|
fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
|
|
56
55
|
fieldDayPlaceholder: () => 'DD',
|
|
57
|
-
|
|
56
|
+
fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
|
|
58
57
|
fieldHoursPlaceholder: () => 'hh',
|
|
59
58
|
fieldMinutesPlaceholder: () => 'mm',
|
|
60
59
|
fieldSecondsPlaceholder: () => 'ss',
|
|
61
|
-
fieldMeridiemPlaceholder: () => 'aa'
|
|
62
|
-
|
|
60
|
+
fieldMeridiemPlaceholder: () => 'aa',
|
|
63
61
|
// View names
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
62
|
+
year: '년',
|
|
63
|
+
month: '월',
|
|
64
|
+
day: '일',
|
|
65
|
+
weekDay: '평일',
|
|
66
|
+
hours: '시간',
|
|
67
|
+
minutes: '분',
|
|
68
|
+
seconds: '초',
|
|
71
69
|
// meridiem: 'Meridiem',
|
|
72
70
|
|
|
73
71
|
// Common
|
|
74
|
-
|
|
72
|
+
empty: '공란'
|
|
75
73
|
};
|
|
76
74
|
export const koKR = getPickersLocalization(koKRPickers);
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { TimeViewWithMeridiem } from '../internals/models';
|
|
2
|
+
export declare const nnNO: {
|
|
3
|
+
components: {
|
|
4
|
+
MuiLocalizationProvider: {
|
|
5
|
+
defaultProps: {
|
|
6
|
+
localeText: {
|
|
7
|
+
previousMonth?: string | undefined;
|
|
8
|
+
nextMonth?: string | undefined;
|
|
9
|
+
calendarWeekNumberHeaderLabel?: string | undefined;
|
|
10
|
+
calendarWeekNumberHeaderText?: string | undefined;
|
|
11
|
+
calendarWeekNumberAriaLabelText?: ((weekNumber: number) => string) | undefined;
|
|
12
|
+
calendarWeekNumberText?: ((weekNumber: number) => string) | undefined;
|
|
13
|
+
openPreviousView?: string | undefined;
|
|
14
|
+
openNextView?: string | undefined;
|
|
15
|
+
calendarViewSwitchingButtonAriaLabel?: ((currentView: import("@mui/x-date-pickers/models").DateView) => string) | undefined;
|
|
16
|
+
start?: string | undefined;
|
|
17
|
+
end?: string | undefined;
|
|
18
|
+
startDate?: string | undefined;
|
|
19
|
+
startTime?: string | undefined;
|
|
20
|
+
endDate?: string | undefined;
|
|
21
|
+
endTime?: string | undefined;
|
|
22
|
+
cancelButtonLabel?: string | undefined;
|
|
23
|
+
clearButtonLabel?: string | undefined;
|
|
24
|
+
okButtonLabel?: string | undefined;
|
|
25
|
+
todayButtonLabel?: string | undefined;
|
|
26
|
+
clockLabelText?: ((view: import("@mui/x-date-pickers/models").TimeView, time: any, adapter: import("@mui/x-date-pickers/models").MuiPickersAdapter<any, any>) => string) | undefined;
|
|
27
|
+
hoursClockNumberText?: ((hours: string) => string) | undefined;
|
|
28
|
+
minutesClockNumberText?: ((minutes: string) => string) | undefined;
|
|
29
|
+
secondsClockNumberText?: ((seconds: string) => string) | undefined;
|
|
30
|
+
selectViewText?: ((view: TimeViewWithMeridiem) => string) | undefined;
|
|
31
|
+
openDatePickerDialogue?: ((date: any, utils: import("@mui/x-date-pickers/models").MuiPickersAdapter<any, any>) => string) | undefined;
|
|
32
|
+
openTimePickerDialogue?: ((date: any, utils: import("@mui/x-date-pickers/models").MuiPickersAdapter<any, any>) => string) | undefined;
|
|
33
|
+
fieldClearLabel?: string | undefined;
|
|
34
|
+
timeTableLabel?: string | undefined;
|
|
35
|
+
dateTableLabel?: string | undefined;
|
|
36
|
+
fieldYearPlaceholder?: ((params: {
|
|
37
|
+
digitAmount: number;
|
|
38
|
+
format: string;
|
|
39
|
+
}) => string) | undefined;
|
|
40
|
+
fieldMonthPlaceholder?: ((params: {
|
|
41
|
+
contentType: import("@mui/x-date-pickers/models").FieldSectionContentType;
|
|
42
|
+
format: string;
|
|
43
|
+
}) => string) | undefined;
|
|
44
|
+
fieldDayPlaceholder?: ((params: {
|
|
45
|
+
format: string;
|
|
46
|
+
}) => string) | undefined;
|
|
47
|
+
fieldWeekDayPlaceholder?: ((params: {
|
|
48
|
+
contentType: import("@mui/x-date-pickers/models").FieldSectionContentType;
|
|
49
|
+
format: string;
|
|
50
|
+
}) => string) | undefined;
|
|
51
|
+
fieldHoursPlaceholder?: ((params: {
|
|
52
|
+
format: string;
|
|
53
|
+
}) => string) | undefined;
|
|
54
|
+
fieldMinutesPlaceholder?: ((params: {
|
|
55
|
+
format: string;
|
|
56
|
+
}) => string) | undefined;
|
|
57
|
+
fieldSecondsPlaceholder?: ((params: {
|
|
58
|
+
format: string;
|
|
59
|
+
}) => string) | undefined;
|
|
60
|
+
fieldMeridiemPlaceholder?: ((params: {
|
|
61
|
+
format: string;
|
|
62
|
+
}) => string) | undefined;
|
|
63
|
+
year?: string | undefined;
|
|
64
|
+
month?: string | undefined;
|
|
65
|
+
day?: string | undefined;
|
|
66
|
+
weekDay?: string | undefined;
|
|
67
|
+
hours?: string | undefined;
|
|
68
|
+
minutes?: string | undefined;
|
|
69
|
+
seconds?: string | undefined;
|
|
70
|
+
meridiem?: string | undefined;
|
|
71
|
+
empty?: string | undefined;
|
|
72
|
+
datePickerToolbarTitle?: string | undefined;
|
|
73
|
+
timePickerToolbarTitle?: string | undefined;
|
|
74
|
+
dateTimePickerToolbarTitle?: string | undefined;
|
|
75
|
+
dateRangePickerToolbarTitle?: string | undefined;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
};
|
package/locales/nnNO.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { getPickersLocalization } from './utils/getPickersLocalization';
|
|
2
|
+
const timeViews = {
|
|
3
|
+
hours: 'timar',
|
|
4
|
+
minutes: 'minuttar',
|
|
5
|
+
seconds: 'sekundar',
|
|
6
|
+
meridiem: 'meridiem'
|
|
7
|
+
};
|
|
8
|
+
const nnNOPickers = {
|
|
9
|
+
// Calendar navigation
|
|
10
|
+
previousMonth: 'Forrige månad',
|
|
11
|
+
nextMonth: 'Neste månad',
|
|
12
|
+
// View navigation
|
|
13
|
+
openPreviousView: 'Opne forrige visning',
|
|
14
|
+
openNextView: 'Opne neste visning',
|
|
15
|
+
calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'årsvisning er open, byt til kalendervisning' : 'kalendervisning er open, byt til årsvisning',
|
|
16
|
+
// DateRange labels
|
|
17
|
+
start: 'Start',
|
|
18
|
+
end: 'Slutt',
|
|
19
|
+
startDate: 'Startdato',
|
|
20
|
+
startTime: 'Starttid',
|
|
21
|
+
endDate: 'Sluttdato',
|
|
22
|
+
endTime: 'Slutttid',
|
|
23
|
+
// Action bar
|
|
24
|
+
cancelButtonLabel: 'Avbryt',
|
|
25
|
+
clearButtonLabel: 'Fjern',
|
|
26
|
+
okButtonLabel: 'OK',
|
|
27
|
+
todayButtonLabel: 'I dag',
|
|
28
|
+
// Toolbar titles
|
|
29
|
+
datePickerToolbarTitle: 'Vel dato',
|
|
30
|
+
dateTimePickerToolbarTitle: 'Vel dato & klokkeslett',
|
|
31
|
+
timePickerToolbarTitle: 'Vel klokkeslett',
|
|
32
|
+
dateRangePickerToolbarTitle: 'Vel datoperiode',
|
|
33
|
+
// Clock labels
|
|
34
|
+
clockLabelText: (view, time, adapter) => `Vel ${timeViews[view]}. ${time === null ? 'Ingen tid vald' : `Vald tid er ${adapter.format(time, 'fullTime')}`}`,
|
|
35
|
+
hoursClockNumberText: hours => `${hours} timar`,
|
|
36
|
+
minutesClockNumberText: minutes => `${minutes} minuttar`,
|
|
37
|
+
secondsClockNumberText: seconds => `${seconds} sekundar`,
|
|
38
|
+
// Digital clock labels
|
|
39
|
+
selectViewText: view => `Vel ${timeViews[view]}`,
|
|
40
|
+
// Calendar labels
|
|
41
|
+
calendarWeekNumberHeaderLabel: 'Vekenummer',
|
|
42
|
+
calendarWeekNumberHeaderText: '#',
|
|
43
|
+
calendarWeekNumberAriaLabelText: weekNumber => `Veke ${weekNumber}`,
|
|
44
|
+
calendarWeekNumberText: weekNumber => `${weekNumber}`,
|
|
45
|
+
// Open picker labels
|
|
46
|
+
openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Vel dato, vald dato er ${utils.format(value, 'fullDate')}` : 'Vel dato',
|
|
47
|
+
openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `Vel tid, vald tid er ${utils.format(value, 'fullTime')}` : 'Vel tid',
|
|
48
|
+
fieldClearLabel: 'Fjern verdi',
|
|
49
|
+
// Table labels
|
|
50
|
+
timeTableLabel: 'vel tid',
|
|
51
|
+
dateTableLabel: 'vel dato',
|
|
52
|
+
// Field section placeholders
|
|
53
|
+
fieldYearPlaceholder: params => 'Å'.repeat(params.digitAmount),
|
|
54
|
+
fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
|
|
55
|
+
fieldDayPlaceholder: () => 'DD',
|
|
56
|
+
fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
|
|
57
|
+
fieldHoursPlaceholder: () => 'tt',
|
|
58
|
+
fieldMinutesPlaceholder: () => 'mm',
|
|
59
|
+
fieldSecondsPlaceholder: () => 'ss',
|
|
60
|
+
fieldMeridiemPlaceholder: () => 'aa',
|
|
61
|
+
// View names
|
|
62
|
+
year: 'År',
|
|
63
|
+
month: 'Månad',
|
|
64
|
+
day: 'Dag',
|
|
65
|
+
weekDay: 'Vekedag',
|
|
66
|
+
hours: 'Timar',
|
|
67
|
+
minutes: 'Minuttar',
|
|
68
|
+
seconds: 'Sekundar',
|
|
69
|
+
meridiem: 'Meridiem',
|
|
70
|
+
// Common
|
|
71
|
+
empty: 'Tom'
|
|
72
|
+
};
|
|
73
|
+
export const nnNO = getPickersLocalization(nnNOPickers);
|
package/locales/ruRU.js
CHANGED
|
@@ -17,11 +17,10 @@ const ruRUPickers = {
|
|
|
17
17
|
// DateRange labels
|
|
18
18
|
start: 'Начало',
|
|
19
19
|
end: 'Конец',
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
20
|
+
startDate: 'Начальная дата',
|
|
21
|
+
startTime: 'Начальное время',
|
|
22
|
+
endDate: 'Конечная дата',
|
|
23
|
+
endTime: 'Конечное время',
|
|
25
24
|
// Action bar
|
|
26
25
|
cancelButtonLabel: 'Отмена',
|
|
27
26
|
clearButtonLabel: 'Очистить',
|
|
@@ -55,23 +54,21 @@ const ruRUPickers = {
|
|
|
55
54
|
fieldYearPlaceholder: params => 'Г'.repeat(params.digitAmount),
|
|
56
55
|
fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'ММММ' : 'ММ',
|
|
57
56
|
fieldDayPlaceholder: () => 'ДД',
|
|
58
|
-
|
|
57
|
+
fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'ДДДД' : 'ДД',
|
|
59
58
|
fieldHoursPlaceholder: () => 'чч',
|
|
60
59
|
fieldMinutesPlaceholder: () => 'мм',
|
|
61
60
|
fieldSecondsPlaceholder: () => 'сс',
|
|
62
|
-
fieldMeridiemPlaceholder: () => '(д|п)п'
|
|
63
|
-
|
|
61
|
+
fieldMeridiemPlaceholder: () => '(д|п)п',
|
|
64
62
|
// View names
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
63
|
+
year: 'Год',
|
|
64
|
+
month: 'Месяц',
|
|
65
|
+
day: 'День',
|
|
66
|
+
weekDay: 'День недели',
|
|
67
|
+
hours: 'Часы',
|
|
68
|
+
minutes: 'Минуты',
|
|
69
|
+
seconds: 'Секунды',
|
|
70
|
+
meridiem: 'Меридием',
|
|
74
71
|
// Common
|
|
75
|
-
|
|
72
|
+
empty: 'Пустой'
|
|
76
73
|
};
|
|
77
74
|
export const ruRU = getPickersLocalization(ruRUPickers);
|
package/models/pickers.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { PickersShortcutsItemContext } from '../PickersShortcuts';
|
|
|
2
2
|
export interface PickerChangeHandlerContext<TError> {
|
|
3
3
|
validationError: TError;
|
|
4
4
|
/**
|
|
5
|
-
* Shortcut causing this `onChange` call.
|
|
5
|
+
* Shortcut causing this `onChange` or `onAccept` call.
|
|
6
6
|
* If the call has not been caused by a shortcut selection, this property will be `undefined`.
|
|
7
7
|
*/
|
|
8
8
|
shortcut?: PickersShortcutsItemContext;
|
|
@@ -6,12 +6,11 @@ import customParseFormatPlugin from 'dayjs/plugin/customParseFormat';
|
|
|
6
6
|
import localizedFormatPlugin from 'dayjs/plugin/localizedFormat';
|
|
7
7
|
import isBetweenPlugin from 'dayjs/plugin/isBetween';
|
|
8
8
|
import advancedFormatPlugin from 'dayjs/plugin/advancedFormat';
|
|
9
|
-
import {
|
|
9
|
+
import { warnOnce } from '../internals/utils/warning';
|
|
10
10
|
defaultDayjs.extend(localizedFormatPlugin);
|
|
11
11
|
defaultDayjs.extend(weekOfYearPlugin);
|
|
12
12
|
defaultDayjs.extend(isBetweenPlugin);
|
|
13
13
|
defaultDayjs.extend(advancedFormatPlugin);
|
|
14
|
-
const localeNotFoundWarning = 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']);
|
|
15
14
|
const formatTokenMap = {
|
|
16
15
|
// Year
|
|
17
16
|
YY: 'year',
|
|
@@ -234,7 +233,9 @@ export class AdapterDayjs {
|
|
|
234
233
|
const locale = this.locale || 'en';
|
|
235
234
|
let localeObject = locales[locale];
|
|
236
235
|
if (localeObject === undefined) {
|
|
237
|
-
|
|
236
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
237
|
+
warnOnce(['MUI X: 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.']);
|
|
238
|
+
}
|
|
238
239
|
localeObject = locales.en;
|
|
239
240
|
}
|
|
240
241
|
return localeObject.formats;
|
|
@@ -9,7 +9,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
9
9
|
/**
|
|
10
10
|
* @ignore - internal component.
|
|
11
11
|
*/
|
|
12
|
-
function DesktopDateTimePickerLayout(props) {
|
|
12
|
+
const DesktopDateTimePickerLayout = /*#__PURE__*/React.forwardRef(function DesktopDateTimePickerLayout(props, ref) {
|
|
13
13
|
const isRtl = useRtl();
|
|
14
14
|
const {
|
|
15
15
|
toolbar,
|
|
@@ -22,7 +22,6 @@ function DesktopDateTimePickerLayout(props) {
|
|
|
22
22
|
sx,
|
|
23
23
|
className,
|
|
24
24
|
isLandscape,
|
|
25
|
-
ref,
|
|
26
25
|
classes
|
|
27
26
|
} = props;
|
|
28
27
|
const isActionBarVisible = actionBar && (actionBar.props.actions?.length ?? 0) > 0;
|
|
@@ -55,7 +54,7 @@ function DesktopDateTimePickerLayout(props) {
|
|
|
55
54
|
})]
|
|
56
55
|
}), actionBar]
|
|
57
56
|
});
|
|
58
|
-
}
|
|
57
|
+
});
|
|
59
58
|
process.env.NODE_ENV !== "production" ? DesktopDateTimePickerLayout.propTypes = {
|
|
60
59
|
// ----------------------------- Warning --------------------------------
|
|
61
60
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
@@ -152,7 +152,7 @@ const PickersCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersCale
|
|
|
152
152
|
const _useSlotProps = useSlotProps({
|
|
153
153
|
elementType: SwitchViewIcon,
|
|
154
154
|
externalSlotProps: slotProps?.switchViewIcon,
|
|
155
|
-
ownerState
|
|
155
|
+
ownerState,
|
|
156
156
|
className: classes.switchViewIcon
|
|
157
157
|
}),
|
|
158
158
|
switchViewIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
@@ -89,7 +89,6 @@ export const PickersLayoutContentWrapper = styled('div', {
|
|
|
89
89
|
display: 'flex',
|
|
90
90
|
flexDirection: 'column'
|
|
91
91
|
});
|
|
92
|
-
|
|
93
92
|
/**
|
|
94
93
|
* Demos:
|
|
95
94
|
*
|
|
@@ -99,7 +98,7 @@ export const PickersLayoutContentWrapper = styled('div', {
|
|
|
99
98
|
*
|
|
100
99
|
* - [PickersLayout API](https://mui.com/x/api/date-pickers/pickers-layout/)
|
|
101
100
|
*/
|
|
102
|
-
const PickersLayout = function PickersLayout(inProps) {
|
|
101
|
+
const PickersLayout = /*#__PURE__*/React.forwardRef(function PickersLayout(inProps, ref) {
|
|
103
102
|
const props = useThemeProps({
|
|
104
103
|
props: inProps,
|
|
105
104
|
name: 'MuiPickersLayout'
|
|
@@ -115,7 +114,6 @@ const PickersLayout = function PickersLayout(inProps) {
|
|
|
115
114
|
sx,
|
|
116
115
|
className,
|
|
117
116
|
isLandscape,
|
|
118
|
-
ref,
|
|
119
117
|
wrapperVariant
|
|
120
118
|
} = props;
|
|
121
119
|
const classes = useUtilityClasses(props);
|
|
@@ -133,7 +131,7 @@ const PickersLayout = function PickersLayout(inProps) {
|
|
|
133
131
|
})
|
|
134
132
|
}), actionBar]
|
|
135
133
|
});
|
|
136
|
-
};
|
|
134
|
+
});
|
|
137
135
|
process.env.NODE_ENV !== "production" ? PickersLayout.propTypes = {
|
|
138
136
|
// ----------------------------- Warning --------------------------------
|
|
139
137
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import * as React from 'react';
|
|
2
3
|
import clsx from 'clsx';
|
|
3
4
|
import IconButton from '@mui/material/IconButton';
|
|
@@ -13,7 +14,8 @@ import { formatMeridiem } from '../internals/utils/date-utils';
|
|
|
13
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
15
|
const useUtilityClasses = ownerState => {
|
|
15
16
|
const {
|
|
16
|
-
classes
|
|
17
|
+
classes,
|
|
18
|
+
meridiemMode
|
|
17
19
|
} = ownerState;
|
|
18
20
|
const slots = {
|
|
19
21
|
root: ['root'],
|
|
@@ -21,8 +23,8 @@ const useUtilityClasses = ownerState => {
|
|
|
21
23
|
wrapper: ['wrapper'],
|
|
22
24
|
squareMask: ['squareMask'],
|
|
23
25
|
pin: ['pin'],
|
|
24
|
-
amButton: ['amButton'],
|
|
25
|
-
pmButton: ['pmButton'],
|
|
26
|
+
amButton: ['amButton', meridiemMode === 'am' && 'selected'],
|
|
27
|
+
pmButton: ['pmButton', meridiemMode === 'pm' && 'selected'],
|
|
26
28
|
meridiemText: ['meridiemText']
|
|
27
29
|
};
|
|
28
30
|
return composeClasses(slots, getClockUtilityClass, classes);
|
|
@@ -105,23 +107,15 @@ const ClockPin = styled('div', {
|
|
|
105
107
|
left: '50%',
|
|
106
108
|
transform: 'translate(-50%, -50%)'
|
|
107
109
|
}));
|
|
108
|
-
const
|
|
109
|
-
name: 'MuiClock',
|
|
110
|
-
slot: 'AmButton',
|
|
111
|
-
overridesResolver: (_, styles) => styles.amButton
|
|
112
|
-
})(({
|
|
113
|
-
theme
|
|
114
|
-
}) => ({
|
|
110
|
+
const meridiemButtonCommonStyles = (theme, meridiemMode) => ({
|
|
115
111
|
zIndex: 1,
|
|
116
|
-
position: 'absolute',
|
|
117
112
|
bottom: 8,
|
|
118
|
-
left: 8,
|
|
119
113
|
paddingLeft: 4,
|
|
120
114
|
paddingRight: 4,
|
|
121
115
|
width: CLOCK_HOUR_WIDTH,
|
|
122
116
|
variants: [{
|
|
123
117
|
props: {
|
|
124
|
-
meridiemMode
|
|
118
|
+
meridiemMode
|
|
125
119
|
},
|
|
126
120
|
style: {
|
|
127
121
|
backgroundColor: (theme.vars || theme).palette.primary.main,
|
|
@@ -131,6 +125,17 @@ const ClockAmButton = styled(IconButton, {
|
|
|
131
125
|
}
|
|
132
126
|
}
|
|
133
127
|
}]
|
|
128
|
+
});
|
|
129
|
+
const ClockAmButton = styled(IconButton, {
|
|
130
|
+
name: 'MuiClock',
|
|
131
|
+
slot: 'AmButton',
|
|
132
|
+
overridesResolver: (_, styles) => styles.amButton
|
|
133
|
+
})(({
|
|
134
|
+
theme
|
|
135
|
+
}) => _extends({}, meridiemButtonCommonStyles(theme, 'am'), {
|
|
136
|
+
// keeping it here to make TS happy
|
|
137
|
+
position: 'absolute',
|
|
138
|
+
left: 8
|
|
134
139
|
}));
|
|
135
140
|
const ClockPmButton = styled(IconButton, {
|
|
136
141
|
name: 'MuiClock',
|
|
@@ -138,26 +143,10 @@ const ClockPmButton = styled(IconButton, {
|
|
|
138
143
|
overridesResolver: (_, styles) => styles.pmButton
|
|
139
144
|
})(({
|
|
140
145
|
theme
|
|
141
|
-
}) => ({
|
|
142
|
-
|
|
146
|
+
}) => _extends({}, meridiemButtonCommonStyles(theme, 'pm'), {
|
|
147
|
+
// keeping it here to make TS happy
|
|
143
148
|
position: 'absolute',
|
|
144
|
-
|
|
145
|
-
right: 8,
|
|
146
|
-
paddingLeft: 4,
|
|
147
|
-
paddingRight: 4,
|
|
148
|
-
width: CLOCK_HOUR_WIDTH,
|
|
149
|
-
variants: [{
|
|
150
|
-
props: {
|
|
151
|
-
meridiemMode: 'pm'
|
|
152
|
-
},
|
|
153
|
-
style: {
|
|
154
|
-
backgroundColor: (theme.vars || theme).palette.primary.main,
|
|
155
|
-
color: (theme.vars || theme).palette.primary.contrastText,
|
|
156
|
-
'&:hover': {
|
|
157
|
-
backgroundColor: (theme.vars || theme).palette.primary.light
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}]
|
|
149
|
+
right: 8
|
|
161
150
|
}));
|
|
162
151
|
const ClockMeridiemText = styled(Typography, {
|
|
163
152
|
name: 'MuiClock',
|
|
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClass as generateUtilityClass, unstable_generat
|
|
|
2
2
|
export function getClockUtilityClass(slot) {
|
|
3
3
|
return generateUtilityClass('MuiClock', slot);
|
|
4
4
|
}
|
|
5
|
-
export const clockClasses = generateUtilityClasses('MuiClock', ['root', 'clock', 'wrapper', 'squareMask', 'pin', 'amButton', 'pmButton', 'meridiemText']);
|
|
5
|
+
export const clockClasses = generateUtilityClasses('MuiClock', ['root', 'clock', 'wrapper', 'squareMask', 'pin', 'amButton', 'pmButton', 'meridiemText', 'selected']);
|
package/modern/index.js
CHANGED
|
@@ -51,7 +51,11 @@ const useUtilityClasses = ownerState => {
|
|
|
51
51
|
const slots = {
|
|
52
52
|
root: ['root'],
|
|
53
53
|
spacer: ['spacer'],
|
|
54
|
-
button: ['button']
|
|
54
|
+
button: ['button'],
|
|
55
|
+
previousIconButton: ['previousIconButton'],
|
|
56
|
+
nextIconButton: ['nextIconButton'],
|
|
57
|
+
leftArrowIcon: ['leftArrowIcon'],
|
|
58
|
+
rightArrowIcon: ['rightArrowIcon']
|
|
55
59
|
};
|
|
56
60
|
return composeClasses(slots, getPickersArrowSwitcherUtilityClass, classes);
|
|
57
61
|
};
|
|
@@ -106,7 +110,7 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
|
|
|
106
110
|
ownerState: _extends({}, ownerState, {
|
|
107
111
|
hidden: previousProps.isHidden
|
|
108
112
|
}),
|
|
109
|
-
className: classes.button
|
|
113
|
+
className: clsx(classes.button, classes.previousIconButton)
|
|
110
114
|
});
|
|
111
115
|
const NextIconButton = slots?.nextIconButton ?? PickersArrowSwitcherButton;
|
|
112
116
|
const nextIconButtonProps = useSlotProps({
|
|
@@ -123,7 +127,7 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
|
|
|
123
127
|
ownerState: _extends({}, ownerState, {
|
|
124
128
|
hidden: nextProps.isHidden
|
|
125
129
|
}),
|
|
126
|
-
className: classes.button
|
|
130
|
+
className: clsx(classes.button, classes.nextIconButton)
|
|
127
131
|
});
|
|
128
132
|
const LeftArrowIcon = slots?.leftArrowIcon ?? ArrowLeftIcon;
|
|
129
133
|
// The spread is here to avoid this bug mui/material-ui#34056
|
|
@@ -133,7 +137,8 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
|
|
|
133
137
|
additionalProps: {
|
|
134
138
|
fontSize: 'inherit'
|
|
135
139
|
},
|
|
136
|
-
ownerState
|
|
140
|
+
ownerState,
|
|
141
|
+
className: classes.leftArrowIcon
|
|
137
142
|
}),
|
|
138
143
|
leftArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded2);
|
|
139
144
|
const RightArrowIcon = slots?.rightArrowIcon ?? ArrowRightIcon;
|
|
@@ -144,7 +149,8 @@ export const PickersArrowSwitcher = /*#__PURE__*/React.forwardRef(function Picke
|
|
|
144
149
|
additionalProps: {
|
|
145
150
|
fontSize: 'inherit'
|
|
146
151
|
},
|
|
147
|
-
ownerState
|
|
152
|
+
ownerState,
|
|
153
|
+
className: classes.rightArrowIcon
|
|
148
154
|
}),
|
|
149
155
|
rightArrowIconProps = _objectWithoutPropertiesLoose(_useSlotProps2, _excluded3);
|
|
150
156
|
return /*#__PURE__*/_jsxs(PickersArrowSwitcherRoot, _extends({
|
|
@@ -2,4 +2,4 @@ import { unstable_generateUtilityClass as generateUtilityClass, unstable_generat
|
|
|
2
2
|
export function getPickersArrowSwitcherUtilityClass(slot) {
|
|
3
3
|
return generateUtilityClass('MuiPickersArrowSwitcher', slot);
|
|
4
4
|
}
|
|
5
|
-
export const pickersArrowSwitcherClasses = generateUtilityClasses('MuiPickersArrowSwitcher', ['root', 'spacer', 'button']);
|
|
5
|
+
export const pickersArrowSwitcherClasses = generateUtilityClasses('MuiPickersArrowSwitcher', ['root', 'spacer', 'button', 'previousIconButton', 'nextIconButton', 'leftArrowIcon', 'rightArrowIcon']);
|
|
@@ -47,7 +47,8 @@ export const useFieldV6TextField = params => {
|
|
|
47
47
|
placeholder: inPlaceholder
|
|
48
48
|
},
|
|
49
49
|
internalProps: {
|
|
50
|
-
readOnly = false
|
|
50
|
+
readOnly = false,
|
|
51
|
+
disabled = false
|
|
51
52
|
},
|
|
52
53
|
parsedSelectedSections,
|
|
53
54
|
activeSectionIndex,
|
|
@@ -188,7 +189,7 @@ export const useFieldV6TextField = params => {
|
|
|
188
189
|
|
|
189
190
|
// prevent default to avoid the input `onChange` handler being called
|
|
190
191
|
event.preventDefault();
|
|
191
|
-
if (readOnly) {
|
|
192
|
+
if (readOnly || disabled) {
|
|
192
193
|
return;
|
|
193
194
|
}
|
|
194
195
|
const pastedValue = event.clipboardData.getData('text');
|
|
@@ -236,7 +236,7 @@ export const useFieldV7TextField = params => {
|
|
|
236
236
|
const handleInputContentPaste = useEventCallback(event => {
|
|
237
237
|
// prevent default to avoid the input `onInput` handler being called
|
|
238
238
|
event.preventDefault();
|
|
239
|
-
if (readOnly || typeof parsedSelectedSections !== 'number') {
|
|
239
|
+
if (readOnly || disabled || typeof parsedSelectedSections !== 'number') {
|
|
240
240
|
return;
|
|
241
241
|
}
|
|
242
242
|
const activeSection = state.sections[parsedSelectedSections];
|