@mui/x-date-pickers 7.23.2 → 7.23.6

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +190 -0
  2. package/DateCalendar/PickersFadeTransitionGroup.d.ts +1 -1
  3. package/DateCalendar/PickersSlideTransition.d.ts +1 -1
  4. package/DateField/useDateField.d.ts +1 -1
  5. package/DateTimeField/useDateTimeField.d.ts +1 -1
  6. package/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  7. package/README.md +1 -1
  8. package/TimeClock/Clock.d.ts +4 -0
  9. package/TimeClock/Clock.js +9 -6
  10. package/TimeClock/TimeClock.js +21 -4
  11. package/TimeField/useTimeField.d.ts +1 -1
  12. package/index.js +1 -1
  13. package/internals/hooks/useField/useFieldV6TextField.js +2 -2
  14. package/internals/hooks/usePicker/usePickerViews.d.ts +1 -1
  15. package/internals/hooks/useStaticPicker/useStaticPicker.js +0 -1
  16. package/internals/hooks/useUtils.js +1 -1
  17. package/locales/index.d.ts +1 -0
  18. package/locales/index.js +1 -0
  19. package/locales/nbNO.js +15 -19
  20. package/locales/zhTW.d.ts +80 -0
  21. package/locales/zhTW.js +73 -0
  22. package/modern/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  23. package/modern/TimeClock/Clock.js +9 -6
  24. package/modern/TimeClock/TimeClock.js +21 -4
  25. package/modern/index.js +1 -1
  26. package/modern/internals/hooks/useField/useFieldV6TextField.js +2 -2
  27. package/modern/internals/hooks/useStaticPicker/useStaticPicker.js +0 -1
  28. package/modern/internals/hooks/useUtils.js +1 -1
  29. package/modern/locales/index.js +1 -0
  30. package/modern/locales/nbNO.js +15 -19
  31. package/modern/locales/zhTW.js +73 -0
  32. package/node/MultiSectionDigitalClock/MultiSectionDigitalClock.js +3 -0
  33. package/node/TimeClock/Clock.js +9 -6
  34. package/node/TimeClock/TimeClock.js +21 -4
  35. package/node/index.js +1 -1
  36. package/node/internals/hooks/useField/useFieldV6TextField.js +2 -2
  37. package/node/internals/hooks/useStaticPicker/useStaticPicker.js +0 -1
  38. package/node/internals/hooks/useUtils.js +1 -1
  39. package/node/locales/index.js +11 -0
  40. package/node/locales/nbNO.js +15 -19
  41. package/node/locales/zhTW.js +79 -0
  42. package/package.json +3 -3
@@ -0,0 +1,73 @@
1
+ import { getPickersLocalization } from "./utils/getPickersLocalization.js";
2
+ const views = {
3
+ hours: '小時',
4
+ minutes: '分鐘',
5
+ seconds: '秒',
6
+ meridiem: '十二小時制'
7
+ };
8
+ const zhTWPickers = {
9
+ // Calendar navigation
10
+ previousMonth: '上個月',
11
+ nextMonth: '下個月',
12
+ // View navigation
13
+ openPreviousView: '前一個視圖',
14
+ openNextView: '下一個視圖',
15
+ calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? '年視圖已打開,切換為日曆視圖' : '日曆視圖已打開,切換為年視圖',
16
+ // DateRange labels
17
+ start: '開始',
18
+ end: '結束',
19
+ startDate: '開始日期',
20
+ startTime: '開始時間',
21
+ endDate: '結束日期',
22
+ endTime: '結束時間',
23
+ // Action bar
24
+ cancelButtonLabel: '取消',
25
+ clearButtonLabel: '清除',
26
+ okButtonLabel: '確認',
27
+ todayButtonLabel: '今天',
28
+ // Toolbar titles
29
+ datePickerToolbarTitle: '選擇日期',
30
+ dateTimePickerToolbarTitle: '選擇日期和時間',
31
+ timePickerToolbarTitle: '選擇時間',
32
+ dateRangePickerToolbarTitle: '選擇時間範圍',
33
+ // Clock labels
34
+ clockLabelText: (view, time, utils, formattedTime) => `選擇 ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? '未選擇時間' : `已選擇${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
+ hoursClockNumberText: hours => `${hours}小時`,
36
+ minutesClockNumberText: minutes => `${minutes}分鐘`,
37
+ secondsClockNumberText: seconds => `${seconds}秒`,
38
+ // Digital clock labels
39
+ selectViewText: view => `選擇 ${views[view]}`,
40
+ // Calendar labels
41
+ calendarWeekNumberHeaderLabel: '週數',
42
+ calendarWeekNumberHeaderText: '#',
43
+ calendarWeekNumberAriaLabelText: weekNumber => `第${weekNumber}週`,
44
+ calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
+ // Open picker labels
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `選擇日期,已選擇${formattedDate ?? utils.format(value, 'fullDate')}` : '選擇日期',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `選擇時間,已選擇${formattedTime ?? utils.format(value, 'fullTime')}` : '選擇時間',
48
+ fieldClearLabel: '清除',
49
+ // Table labels
50
+ timeTableLabel: '選擇時間',
51
+ dateTableLabel: '選擇日期',
52
+ // Field section placeholders
53
+ fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),
54
+ fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
55
+ fieldDayPlaceholder: () => 'DD',
56
+ fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
57
+ fieldHoursPlaceholder: () => 'hh',
58
+ fieldMinutesPlaceholder: () => 'mm',
59
+ fieldSecondsPlaceholder: () => 'ss',
60
+ fieldMeridiemPlaceholder: () => 'aa',
61
+ // View names
62
+ year: '年份',
63
+ month: '月份',
64
+ day: '日期',
65
+ weekDay: '星期',
66
+ hours: '時',
67
+ minutes: '分',
68
+ seconds: '秒',
69
+ meridiem: '十二小時制',
70
+ // Common
71
+ empty: '空'
72
+ };
73
+ export const zhTW = getPickersLocalization(zhTWPickers);
@@ -190,6 +190,9 @@ export const MultiSectionDigitalClock = /*#__PURE__*/React.forwardRef(function M
190
190
  {
191
191
  const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);
192
192
  const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
193
+ if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
194
+ return true;
195
+ }
193
196
  const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
194
197
  const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
195
198
  return !containsValidTime({
@@ -180,6 +180,7 @@ export function Clock(inProps) {
180
180
  selectedId,
181
181
  type,
182
182
  viewValue,
183
+ viewRange: [minViewValue, maxViewValue],
183
184
  disabled = false,
184
185
  readOnly,
185
186
  className
@@ -252,6 +253,8 @@ export function Clock(inProps) {
252
253
  listboxRef.current.focus();
253
254
  }
254
255
  }, [autoFocus]);
256
+ const clampValue = newValue => Math.max(minViewValue, Math.min(maxViewValue, newValue));
257
+ const circleValue = newValue => (newValue + (maxViewValue + 1)) % (maxViewValue + 1);
255
258
  const handleKeyDown = event => {
256
259
  // TODO: Why this early exit?
257
260
  if (isMoving.current) {
@@ -260,27 +263,27 @@ export function Clock(inProps) {
260
263
  switch (event.key) {
261
264
  case 'Home':
262
265
  // reset both hours and minutes
263
- handleValueChange(0, 'partial');
266
+ handleValueChange(minViewValue, 'partial');
264
267
  event.preventDefault();
265
268
  break;
266
269
  case 'End':
267
- handleValueChange(type === 'minutes' ? 59 : 23, 'partial');
270
+ handleValueChange(maxViewValue, 'partial');
268
271
  event.preventDefault();
269
272
  break;
270
273
  case 'ArrowUp':
271
- handleValueChange(viewValue + keyboardControlStep, 'partial');
274
+ handleValueChange(circleValue(viewValue + keyboardControlStep), 'partial');
272
275
  event.preventDefault();
273
276
  break;
274
277
  case 'ArrowDown':
275
- handleValueChange(viewValue - keyboardControlStep, 'partial');
278
+ handleValueChange(circleValue(viewValue - keyboardControlStep), 'partial');
276
279
  event.preventDefault();
277
280
  break;
278
281
  case 'PageUp':
279
- handleValueChange(viewValue + 5, 'partial');
282
+ handleValueChange(clampValue(viewValue + 5), 'partial');
280
283
  event.preventDefault();
281
284
  break;
282
285
  case 'PageDown':
283
- handleValueChange(viewValue - 5, 'partial');
286
+ handleValueChange(clampValue(viewValue - 5), 'partial');
284
287
  event.preventDefault();
285
288
  break;
286
289
  case 'Enter':
@@ -183,6 +183,9 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
183
183
  {
184
184
  const valueWithMeridiem = convertValueToMeridiem(rawValue, meridiemMode, ampm);
185
185
  const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
186
+ if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
187
+ return true;
188
+ }
186
189
  const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
187
190
  const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
188
191
  return !containsValidTime({
@@ -223,9 +226,20 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
223
226
  const valueWithMeridiem = convertValueToMeridiem(hourValue, meridiemMode, ampm);
224
227
  setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
225
228
  };
229
+ const viewValue = utils.getHours(valueOrReferenceDate);
230
+ let viewRange;
231
+ if (ampm) {
232
+ if (viewValue > 12) {
233
+ viewRange = [12, 23];
234
+ } else {
235
+ viewRange = [0, 11];
236
+ }
237
+ } else {
238
+ viewRange = [0, 23];
239
+ }
226
240
  return {
227
241
  onChange: handleHoursChange,
228
- viewValue: utils.getHours(valueOrReferenceDate),
242
+ viewValue,
229
243
  children: getHourNumbers({
230
244
  value,
231
245
  utils,
@@ -234,7 +248,8 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
234
248
  getClockNumberText: translations.hoursClockNumberText,
235
249
  isDisabled: hourValue => disabled || isTimeDisabled(hourValue, 'hours'),
236
250
  selectedId
237
- })
251
+ }),
252
+ viewRange
238
253
  };
239
254
  }
240
255
  case 'minutes':
@@ -253,7 +268,8 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
253
268
  getClockNumberText: translations.minutesClockNumberText,
254
269
  isDisabled: minuteValue => disabled || isTimeDisabled(minuteValue, 'minutes'),
255
270
  selectedId
256
- })
271
+ }),
272
+ viewRange: [0, 59]
257
273
  };
258
274
  }
259
275
  case 'seconds':
@@ -272,7 +288,8 @@ export const TimeClock = /*#__PURE__*/React.forwardRef(function TimeClock(inProp
272
288
  getClockNumberText: translations.secondsClockNumberText,
273
289
  isDisabled: secondValue => disabled || isTimeDisabled(secondValue, 'seconds'),
274
290
  selectedId
275
- })
291
+ }),
292
+ viewRange: [0, 59]
276
293
  };
277
294
  }
278
295
  default:
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.23.2
2
+ * @mui/x-date-pickers v7.23.6
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -35,8 +35,8 @@ export const addPositionPropertiesToSections = (sections, localizedDigits, isRtl
35
35
  };
36
36
  export const useFieldV6TextField = params => {
37
37
  const isRtl = useRtl();
38
- const focusTimeoutRef = React.useRef();
39
- const selectionSyncTimeoutRef = React.useRef();
38
+ const focusTimeoutRef = React.useRef(undefined);
39
+ const selectionSyncTimeoutRef = React.useRef(undefined);
40
40
  const {
41
41
  forwardedProps: {
42
42
  onFocus,
@@ -44,7 +44,6 @@ export const useStaticPicker = _ref => {
44
44
  } = usePicker(_extends({}, pickerParams, {
45
45
  props,
46
46
  autoFocusView: autoFocus ?? false,
47
- fieldRef: undefined,
48
47
  additionalViewProps: {},
49
48
  wrapperVariant: displayStaticWrapperAs
50
49
  }));
@@ -19,7 +19,7 @@ export const useUtils = () => useLocalizationContext().utils;
19
19
  export const useDefaultDates = () => useLocalizationContext().defaultDates;
20
20
  export const useNow = timezone => {
21
21
  const utils = useUtils();
22
- const now = React.useRef();
22
+ const now = React.useRef(undefined);
23
23
  if (now.current === undefined) {
24
24
  now.current = utils.date(undefined, timezone);
25
25
  }
@@ -36,4 +36,5 @@ export * from "./urPK.js";
36
36
  export * from "./viVN.js";
37
37
  export * from "./zhCN.js";
38
38
  export * from "./zhHK.js";
39
+ export * from "./zhTW.js";
39
40
  export * from "./utils/pickersLocaleTextApi.js";
@@ -16,11 +16,10 @@ const nbNOPickers = {
16
16
  // DateRange labels
17
17
  start: 'Start',
18
18
  end: 'Slutt',
19
- // startDate: 'Start date',
20
- // startTime: 'Start time',
21
- // endDate: 'End date',
22
- // endTime: 'End time',
23
-
19
+ startDate: 'Startdato',
20
+ startTime: 'Starttid',
21
+ endDate: 'Sluttdato',
22
+ endTime: 'Slutttid',
24
23
  // Action bar
25
24
  cancelButtonLabel: 'Avbryt',
26
25
  clearButtonLabel: 'Fjern',
@@ -46,8 +45,7 @@ const nbNOPickers = {
46
45
  // Open picker labels
47
46
  openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Velg dato, valgt dato er ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Velg dato',
48
47
  openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Velg tid, valgt tid er ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Velg tid',
49
- // fieldClearLabel: 'Clear',
50
-
48
+ fieldClearLabel: 'Slett',
51
49
  // Table labels
52
50
  timeTableLabel: 'velg tid',
53
51
  dateTableLabel: 'velg dato',
@@ -59,19 +57,17 @@ const nbNOPickers = {
59
57
  fieldHoursPlaceholder: () => 'tt',
60
58
  fieldMinutesPlaceholder: () => 'mm',
61
59
  fieldSecondsPlaceholder: () => 'ss',
62
- fieldMeridiemPlaceholder: () => 'aa'
63
-
60
+ fieldMeridiemPlaceholder: () => 'aa',
64
61
  // View names
65
- // year: 'Year',
66
- // month: 'Month',
67
- // day: 'Day',
68
- // weekDay: 'Week day',
69
- // hours: 'Hours',
70
- // minutes: 'Minutes',
71
- // seconds: 'Seconds',
72
- // meridiem: 'Meridiem',
73
-
62
+ year: 'År',
63
+ month: 'Måned',
64
+ day: 'Dag',
65
+ weekDay: 'Ukedag',
66
+ hours: 'Timer',
67
+ minutes: 'Minutter',
68
+ seconds: 'Sekunder',
69
+ meridiem: 'Meridiem',
74
70
  // Common
75
- // empty: 'Empty',
71
+ empty: 'Tøm'
76
72
  };
77
73
  export const nbNO = getPickersLocalization(nbNOPickers);
@@ -0,0 +1,73 @@
1
+ import { getPickersLocalization } from "./utils/getPickersLocalization.js";
2
+ const views = {
3
+ hours: '小時',
4
+ minutes: '分鐘',
5
+ seconds: '秒',
6
+ meridiem: '十二小時制'
7
+ };
8
+ const zhTWPickers = {
9
+ // Calendar navigation
10
+ previousMonth: '上個月',
11
+ nextMonth: '下個月',
12
+ // View navigation
13
+ openPreviousView: '前一個視圖',
14
+ openNextView: '下一個視圖',
15
+ calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? '年視圖已打開,切換為日曆視圖' : '日曆視圖已打開,切換為年視圖',
16
+ // DateRange labels
17
+ start: '開始',
18
+ end: '結束',
19
+ startDate: '開始日期',
20
+ startTime: '開始時間',
21
+ endDate: '結束日期',
22
+ endTime: '結束時間',
23
+ // Action bar
24
+ cancelButtonLabel: '取消',
25
+ clearButtonLabel: '清除',
26
+ okButtonLabel: '確認',
27
+ todayButtonLabel: '今天',
28
+ // Toolbar titles
29
+ datePickerToolbarTitle: '選擇日期',
30
+ dateTimePickerToolbarTitle: '選擇日期和時間',
31
+ timePickerToolbarTitle: '選擇時間',
32
+ dateRangePickerToolbarTitle: '選擇時間範圍',
33
+ // Clock labels
34
+ clockLabelText: (view, time, utils, formattedTime) => `選擇 ${views[view]}. ${!formattedTime && (time === null || !utils.isValid(time)) ? '未選擇時間' : `已選擇${formattedTime ?? utils.format(time, 'fullTime')}`}`,
35
+ hoursClockNumberText: hours => `${hours}小時`,
36
+ minutesClockNumberText: minutes => `${minutes}分鐘`,
37
+ secondsClockNumberText: seconds => `${seconds}秒`,
38
+ // Digital clock labels
39
+ selectViewText: view => `選擇 ${views[view]}`,
40
+ // Calendar labels
41
+ calendarWeekNumberHeaderLabel: '週數',
42
+ calendarWeekNumberHeaderText: '#',
43
+ calendarWeekNumberAriaLabelText: weekNumber => `第${weekNumber}週`,
44
+ calendarWeekNumberText: weekNumber => `${weekNumber}`,
45
+ // Open picker labels
46
+ openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `選擇日期,已選擇${formattedDate ?? utils.format(value, 'fullDate')}` : '選擇日期',
47
+ openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `選擇時間,已選擇${formattedTime ?? utils.format(value, 'fullTime')}` : '選擇時間',
48
+ fieldClearLabel: '清除',
49
+ // Table labels
50
+ timeTableLabel: '選擇時間',
51
+ dateTableLabel: '選擇日期',
52
+ // Field section placeholders
53
+ fieldYearPlaceholder: params => 'Y'.repeat(params.digitAmount),
54
+ fieldMonthPlaceholder: params => params.contentType === 'letter' ? 'MMMM' : 'MM',
55
+ fieldDayPlaceholder: () => 'DD',
56
+ fieldWeekDayPlaceholder: params => params.contentType === 'letter' ? 'EEEE' : 'EE',
57
+ fieldHoursPlaceholder: () => 'hh',
58
+ fieldMinutesPlaceholder: () => 'mm',
59
+ fieldSecondsPlaceholder: () => 'ss',
60
+ fieldMeridiemPlaceholder: () => 'aa',
61
+ // View names
62
+ year: '年份',
63
+ month: '月份',
64
+ day: '日期',
65
+ weekDay: '星期',
66
+ hours: '時',
67
+ minutes: '分',
68
+ seconds: '秒',
69
+ meridiem: '十二小時制',
70
+ // Common
71
+ empty: '空'
72
+ };
73
+ export const zhTW = getPickersLocalization(zhTWPickers);
@@ -197,6 +197,9 @@ const MultiSectionDigitalClock = exports.MultiSectionDigitalClock = /*#__PURE__*
197
197
  {
198
198
  const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(rawValue, meridiemMode, ampm);
199
199
  const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
200
+ if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
201
+ return true;
202
+ }
200
203
  const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
201
204
  const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
202
205
  return !containsValidTime({
@@ -188,6 +188,7 @@ function Clock(inProps) {
188
188
  selectedId,
189
189
  type,
190
190
  viewValue,
191
+ viewRange: [minViewValue, maxViewValue],
191
192
  disabled = false,
192
193
  readOnly,
193
194
  className
@@ -260,6 +261,8 @@ function Clock(inProps) {
260
261
  listboxRef.current.focus();
261
262
  }
262
263
  }, [autoFocus]);
264
+ const clampValue = newValue => Math.max(minViewValue, Math.min(maxViewValue, newValue));
265
+ const circleValue = newValue => (newValue + (maxViewValue + 1)) % (maxViewValue + 1);
263
266
  const handleKeyDown = event => {
264
267
  // TODO: Why this early exit?
265
268
  if (isMoving.current) {
@@ -268,27 +271,27 @@ function Clock(inProps) {
268
271
  switch (event.key) {
269
272
  case 'Home':
270
273
  // reset both hours and minutes
271
- handleValueChange(0, 'partial');
274
+ handleValueChange(minViewValue, 'partial');
272
275
  event.preventDefault();
273
276
  break;
274
277
  case 'End':
275
- handleValueChange(type === 'minutes' ? 59 : 23, 'partial');
278
+ handleValueChange(maxViewValue, 'partial');
276
279
  event.preventDefault();
277
280
  break;
278
281
  case 'ArrowUp':
279
- handleValueChange(viewValue + keyboardControlStep, 'partial');
282
+ handleValueChange(circleValue(viewValue + keyboardControlStep), 'partial');
280
283
  event.preventDefault();
281
284
  break;
282
285
  case 'ArrowDown':
283
- handleValueChange(viewValue - keyboardControlStep, 'partial');
286
+ handleValueChange(circleValue(viewValue - keyboardControlStep), 'partial');
284
287
  event.preventDefault();
285
288
  break;
286
289
  case 'PageUp':
287
- handleValueChange(viewValue + 5, 'partial');
290
+ handleValueChange(clampValue(viewValue + 5), 'partial');
288
291
  event.preventDefault();
289
292
  break;
290
293
  case 'PageDown':
291
- handleValueChange(viewValue - 5, 'partial');
294
+ handleValueChange(clampValue(viewValue - 5), 'partial');
292
295
  event.preventDefault();
293
296
  break;
294
297
  case 'Enter':
@@ -190,6 +190,9 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
190
190
  {
191
191
  const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(rawValue, meridiemMode, ampm);
192
192
  const dateWithNewHours = utils.setHours(valueOrReferenceDate, valueWithMeridiem);
193
+ if (utils.getHours(dateWithNewHours) !== valueWithMeridiem) {
194
+ return true;
195
+ }
193
196
  const start = utils.setSeconds(utils.setMinutes(dateWithNewHours, 0), 0);
194
197
  const end = utils.setSeconds(utils.setMinutes(dateWithNewHours, 59), 59);
195
198
  return !containsValidTime({
@@ -230,9 +233,20 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
230
233
  const valueWithMeridiem = (0, _timeUtils.convertValueToMeridiem)(hourValue, meridiemMode, ampm);
231
234
  setValueAndGoToNextView(utils.setHours(valueOrReferenceDate, valueWithMeridiem), isFinish, 'hours');
232
235
  };
236
+ const viewValue = utils.getHours(valueOrReferenceDate);
237
+ let viewRange;
238
+ if (ampm) {
239
+ if (viewValue > 12) {
240
+ viewRange = [12, 23];
241
+ } else {
242
+ viewRange = [0, 11];
243
+ }
244
+ } else {
245
+ viewRange = [0, 23];
246
+ }
233
247
  return {
234
248
  onChange: handleHoursChange,
235
- viewValue: utils.getHours(valueOrReferenceDate),
249
+ viewValue,
236
250
  children: (0, _ClockNumbers.getHourNumbers)({
237
251
  value,
238
252
  utils,
@@ -241,7 +255,8 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
241
255
  getClockNumberText: translations.hoursClockNumberText,
242
256
  isDisabled: hourValue => disabled || isTimeDisabled(hourValue, 'hours'),
243
257
  selectedId
244
- })
258
+ }),
259
+ viewRange
245
260
  };
246
261
  }
247
262
  case 'minutes':
@@ -260,7 +275,8 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
260
275
  getClockNumberText: translations.minutesClockNumberText,
261
276
  isDisabled: minuteValue => disabled || isTimeDisabled(minuteValue, 'minutes'),
262
277
  selectedId
263
- })
278
+ }),
279
+ viewRange: [0, 59]
264
280
  };
265
281
  }
266
282
  case 'seconds':
@@ -279,7 +295,8 @@ const TimeClock = exports.TimeClock = /*#__PURE__*/React.forwardRef(function Tim
279
295
  getClockNumberText: translations.secondsClockNumberText,
280
296
  isDisabled: secondValue => disabled || isTimeDisabled(secondValue, 'seconds'),
281
297
  selectedId
282
- })
298
+ }),
299
+ viewRange: [0, 59]
283
300
  };
284
301
  }
285
302
  default:
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-date-pickers v7.23.2
2
+ * @mui/x-date-pickers v7.23.6
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -44,8 +44,8 @@ const addPositionPropertiesToSections = (sections, localizedDigits, isRtl) => {
44
44
  exports.addPositionPropertiesToSections = addPositionPropertiesToSections;
45
45
  const useFieldV6TextField = params => {
46
46
  const isRtl = (0, _RtlProvider.useRtl)();
47
- const focusTimeoutRef = React.useRef();
48
- const selectionSyncTimeoutRef = React.useRef();
47
+ const focusTimeoutRef = React.useRef(undefined);
48
+ const selectionSyncTimeoutRef = React.useRef(undefined);
49
49
  const {
50
50
  forwardedProps: {
51
51
  onFocus,
@@ -52,7 +52,6 @@ const useStaticPicker = _ref => {
52
52
  } = (0, _usePicker.usePicker)((0, _extends2.default)({}, pickerParams, {
53
53
  props,
54
54
  autoFocusView: autoFocus ?? false,
55
- fieldRef: undefined,
56
55
  additionalViewProps: {},
57
56
  wrapperVariant: displayStaticWrapperAs
58
57
  }));
@@ -30,7 +30,7 @@ const useDefaultDates = () => useLocalizationContext().defaultDates;
30
30
  exports.useDefaultDates = useDefaultDates;
31
31
  const useNow = timezone => {
32
32
  const utils = useUtils();
33
- const now = React.useRef();
33
+ const now = React.useRef(undefined);
34
34
  if (now.current === undefined) {
35
35
  now.current = utils.date(undefined, timezone);
36
36
  }
@@ -421,6 +421,17 @@ Object.keys(_zhHK).forEach(function (key) {
421
421
  }
422
422
  });
423
423
  });
424
+ var _zhTW = require("./zhTW");
425
+ Object.keys(_zhTW).forEach(function (key) {
426
+ if (key === "default" || key === "__esModule") return;
427
+ if (key in exports && exports[key] === _zhTW[key]) return;
428
+ Object.defineProperty(exports, key, {
429
+ enumerable: true,
430
+ get: function () {
431
+ return _zhTW[key];
432
+ }
433
+ });
434
+ });
424
435
  var _pickersLocaleTextApi = require("./utils/pickersLocaleTextApi");
425
436
  Object.keys(_pickersLocaleTextApi).forEach(function (key) {
426
437
  if (key === "default" || key === "__esModule") return;
@@ -22,11 +22,10 @@ const nbNOPickers = {
22
22
  // DateRange labels
23
23
  start: 'Start',
24
24
  end: 'Slutt',
25
- // startDate: 'Start date',
26
- // startTime: 'Start time',
27
- // endDate: 'End date',
28
- // endTime: 'End time',
29
-
25
+ startDate: 'Startdato',
26
+ startTime: 'Starttid',
27
+ endDate: 'Sluttdato',
28
+ endTime: 'Slutttid',
30
29
  // Action bar
31
30
  cancelButtonLabel: 'Avbryt',
32
31
  clearButtonLabel: 'Fjern',
@@ -52,8 +51,7 @@ const nbNOPickers = {
52
51
  // Open picker labels
53
52
  openDatePickerDialogue: (value, utils, formattedDate) => formattedDate || value !== null && utils.isValid(value) ? `Velg dato, valgt dato er ${formattedDate ?? utils.format(value, 'fullDate')}` : 'Velg dato',
54
53
  openTimePickerDialogue: (value, utils, formattedTime) => formattedTime || value !== null && utils.isValid(value) ? `Velg tid, valgt tid er ${formattedTime ?? utils.format(value, 'fullTime')}` : 'Velg tid',
55
- // fieldClearLabel: 'Clear',
56
-
54
+ fieldClearLabel: 'Slett',
57
55
  // Table labels
58
56
  timeTableLabel: 'velg tid',
59
57
  dateTableLabel: 'velg dato',
@@ -65,19 +63,17 @@ const nbNOPickers = {
65
63
  fieldHoursPlaceholder: () => 'tt',
66
64
  fieldMinutesPlaceholder: () => 'mm',
67
65
  fieldSecondsPlaceholder: () => 'ss',
68
- fieldMeridiemPlaceholder: () => 'aa'
69
-
66
+ fieldMeridiemPlaceholder: () => 'aa',
70
67
  // View names
71
- // year: 'Year',
72
- // month: 'Month',
73
- // day: 'Day',
74
- // weekDay: 'Week day',
75
- // hours: 'Hours',
76
- // minutes: 'Minutes',
77
- // seconds: 'Seconds',
78
- // meridiem: 'Meridiem',
79
-
68
+ year: 'År',
69
+ month: 'Måned',
70
+ day: 'Dag',
71
+ weekDay: 'Ukedag',
72
+ hours: 'Timer',
73
+ minutes: 'Minutter',
74
+ seconds: 'Sekunder',
75
+ meridiem: 'Meridiem',
80
76
  // Common
81
- // empty: 'Empty',
77
+ empty: 'Tøm'
82
78
  };
83
79
  const nbNO = exports.nbNO = (0, _getPickersLocalization.getPickersLocalization)(nbNOPickers);