@mui/x-date-pickers 7.0.0-beta.6 β 7.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +117 -1
- package/DateCalendar/DayCalendar.js +2 -1
- package/PickersCalendarHeader/PickersCalendarHeader.d.ts +1 -1
- package/index.js +1 -1
- package/internals/hooks/useField/useFieldV7TextField.js +2 -2
- package/internals/utils/date-utils.d.ts +1 -1
- package/internals/utils/date-utils.js +8 -8
- package/locales/jaJP.js +15 -19
- package/modern/DateCalendar/DayCalendar.js +2 -1
- package/modern/index.js +1 -1
- package/modern/internals/hooks/useField/useFieldV7TextField.js +2 -2
- package/modern/internals/utils/date-utils.js +8 -8
- package/modern/locales/jaJP.js +15 -19
- package/node/DateCalendar/DayCalendar.js +2 -1
- package/node/index.js +1 -1
- package/node/internals/hooks/useField/useFieldV7TextField.js +2 -2
- package/node/internals/utils/date-utils.js +9 -9
- package/node/locales/jaJP.js +15 -19
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,102 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## 7.0.0-beta.7
|
|
7
|
+
|
|
8
|
+
_Mar 14, 2024_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 11 contributors who made this release possible. Here are some highlights β¨:
|
|
11
|
+
|
|
12
|
+
- π¦₯ The Lazy loading feature is now stable and the `lazyLoading` feature flag was removed from the `experimentalFeatures` prop.
|
|
13
|
+
- π Improve Japanese (ja-JP) locale for the Data Grid
|
|
14
|
+
- π Bugfixes
|
|
15
|
+
- π Documentation improvements
|
|
16
|
+
|
|
17
|
+
### Data Grid
|
|
18
|
+
|
|
19
|
+
#### Breaking changes
|
|
20
|
+
|
|
21
|
+
- The `columnHeader--showColumnBorder` class was replaced by `columnHeader--withLeftBorder` and `columnHeader--withRightBorder`.
|
|
22
|
+
- The `columnHeadersInner`, `columnHeadersInner--scrollable`, and `columnHeaderDropZone` classes were removed since the inner wrapper was removed in our effort to simplify the DOM structure and improve accessibility.
|
|
23
|
+
- The `pinnedColumnHeaders`, `pinnedColumnHeaders--left`, and `pinnedColumnHeaders--right` classes were removed along with the element they were applied to.
|
|
24
|
+
The pinned column headers now use `position: 'sticky'` and are rendered in the same row element as the regular column headers.
|
|
25
|
+
|
|
26
|
+
#### `@mui/x-data-grid@7.0.0-beta.7`
|
|
27
|
+
|
|
28
|
+
- [DataGrid] Fix focus visible style on scrollbar (#12402) @oliviertassinari
|
|
29
|
+
- [DataGrid] Fix the issue where pressing the Delete key resets various cell values to an empty string. (#12216) @sooster910
|
|
30
|
+
- [DataGrid] Make `rowCount` part of the state (#12381) @MBilalShafi
|
|
31
|
+
- [DataGrid] Make column resizing and autosizing available in Community plan (#12420) @cherniavskii
|
|
32
|
+
- [DataGrid] Remove `baseSwitch` slot (#12439) @romgrk
|
|
33
|
+
- [l10n] Improve Japanese (ja-JP) locale (#12398) @makoto14
|
|
34
|
+
|
|
35
|
+
#### `@mui/x-data-grid-pro@7.0.0-beta.7` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
36
|
+
|
|
37
|
+
Same changes as in `@mui/x-data-grid@7.0.0-beta.7`, plus:
|
|
38
|
+
|
|
39
|
+
- [DataGridPro] Add `inputRef` to the props passed to `colDef.renderHeaderFilter` (#12328) @vovarudomanenko
|
|
40
|
+
- [DataGridPro] Fix filler rendered for no reason when there are pinned columns (#12440) @cherniavskii
|
|
41
|
+
- [DataGridPro] Make lazy loading feature stable (#12421) @cherniavskii
|
|
42
|
+
- [DataGridPro] Render pinned and non-pinned column headers in one row (#12376) @cherniavskii
|
|
43
|
+
|
|
44
|
+
#### `@mui/x-data-grid-premium@7.0.0-beta.7` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
45
|
+
|
|
46
|
+
Same changes as in `@mui/x-data-grid-pro@7.0.0-beta.7`, plus:
|
|
47
|
+
|
|
48
|
+
- [DataGridPremium] Fix auto-scroll not working when selecting cell range (#12267) @cherniavskii
|
|
49
|
+
|
|
50
|
+
### Date and Time Pickers
|
|
51
|
+
|
|
52
|
+
#### `@mui/x-date-pickers@7.0.0-beta.7`
|
|
53
|
+
|
|
54
|
+
- [fields] Fix `tabIndex` on accessible field DOM structure (#12311) @flaviendelangle
|
|
55
|
+
- [fields] Fix items alignment on multi input range fields (#12312) @flaviendelangle
|
|
56
|
+
- [pickers] Improve the customization of the range picker calendar header (#11988) @flaviendelangle
|
|
57
|
+
- [pickers] Keep the existing time when looking for closest enabled date (#12377) @LukasTy
|
|
58
|
+
|
|
59
|
+
#### `@mui/x-date-pickers-pro@7.0.0-beta.7` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
60
|
+
|
|
61
|
+
Same changes as in `@mui/x-date-pickers@7.0.0-beta.7`.
|
|
62
|
+
|
|
63
|
+
### Charts
|
|
64
|
+
|
|
65
|
+
#### `@mui/x-charts@7.0.0-beta.7`
|
|
66
|
+
|
|
67
|
+
- [charts] Fix axis highlight when axis is reversed (#12407) @alexfauquette
|
|
68
|
+
|
|
69
|
+
### Tree View
|
|
70
|
+
|
|
71
|
+
#### Breaking changes
|
|
72
|
+
|
|
73
|
+
The `onNodeFocus` callback has been renamed to `onItemFocus` for consistency:
|
|
74
|
+
|
|
75
|
+
```diff
|
|
76
|
+
<SimpleTreeView
|
|
77
|
+
- onNodeFocus={onNodeFocus}
|
|
78
|
+
+ onItemFocus={onItemFocus}
|
|
79
|
+
/>
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
#### `@mui/x-tree-view@7.0.0-beta.7`
|
|
83
|
+
|
|
84
|
+
- [TreeView] Clean the usage of the term "item" and "node" in API introduced during v7 (#12368) @noraleonte
|
|
85
|
+
- [TreeView] Introduce a new `TreeItem2` component and a new `useTreeItem2` hook (#11721) @flaviendelangle
|
|
86
|
+
- [TreeView] Rename `onNodeFocus` to `onItemFocus` (#12419) @noraleonte
|
|
87
|
+
|
|
88
|
+
### Docs
|
|
89
|
+
|
|
90
|
+
- [docs] Add `legacy` bundle drop mention in migration pages (#12424) @LukasTy
|
|
91
|
+
- [docs] Add missing luxon `Info` import (#12427) @LukasTy
|
|
92
|
+
- [docs] Improve slots definitions for charts (#12408) @alexfauquette
|
|
93
|
+
- [docs] Polish What's new in MUI X blog titles (#12309) @oliviertassinari
|
|
94
|
+
- [docs] Replace `rel="noreferrer"` by `rel="noopener"` @oliviertassinari
|
|
95
|
+
- [docs] Update `date-fns` `weekStarsOn` overriding example (#12416) @LukasTy
|
|
96
|
+
|
|
97
|
+
### Core
|
|
98
|
+
|
|
99
|
+
- [core] Fix CI (#12414) @flaviendelangle
|
|
100
|
+
- [core] Fix PR deploy link for Tree View doc pages (#12411) @flaviendelangle
|
|
101
|
+
|
|
6
102
|
## 7.0.0-beta.6
|
|
7
103
|
|
|
8
104
|
_Mar 8, 2024_
|
|
@@ -1731,7 +1827,7 @@ Same changes as in `@mui/x-data-grid-pro@7.0.0-alpha.3`, plus:
|
|
|
1731
1827
|
The Firefox browser currently does not support this behavior because the [getWeekInfo](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/getWeekInfo) API is not yet implemented.
|
|
1732
1828
|
|
|
1733
1829
|
```ts
|
|
1734
|
-
import { Settings } from 'luxon';
|
|
1830
|
+
import { Settings, Info } from 'luxon';
|
|
1735
1831
|
|
|
1736
1832
|
Settings.defaultWeekSettings = {
|
|
1737
1833
|
firstDay: 1,
|
|
@@ -2521,6 +2617,26 @@ Here is an example of the renaming for the `<ChartsTooltip />` component.
|
|
|
2521
2617
|
- [core] Update release instructions as per v7 configuration (#10962) @MBilalShafi
|
|
2522
2618
|
- [license] Correctly throw errors (#10924) @oliviertassinari
|
|
2523
2619
|
|
|
2620
|
+
## 6.19.7
|
|
2621
|
+
|
|
2622
|
+
_Mar 14, 2024_
|
|
2623
|
+
|
|
2624
|
+
We'd like to offer a big thanks to @LukasTy who made this release possible.
|
|
2625
|
+
|
|
2626
|
+
### Date Pickers
|
|
2627
|
+
|
|
2628
|
+
#### `@mui/x-date-pickers@6.19.7`
|
|
2629
|
+
|
|
2630
|
+
- [pickers] Keep the existing time when looking for closest enabled date (#12410) @LukasTy
|
|
2631
|
+
|
|
2632
|
+
#### `@mui/x-date-pickers-pro@6.19.7` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
2633
|
+
|
|
2634
|
+
Same changes as in `@mui/x-date-pickers@6.19.7`.
|
|
2635
|
+
|
|
2636
|
+
### Docs
|
|
2637
|
+
|
|
2638
|
+
- [docs] Add Pickers custom start of week section (#12425) @LukasTy
|
|
2639
|
+
|
|
2524
2640
|
## 6.19.6
|
|
2525
2641
|
|
|
2526
2642
|
_Mar 1, 2024_
|
|
@@ -354,10 +354,11 @@ export function DayCalendar(inProps) {
|
|
|
354
354
|
}
|
|
355
355
|
});
|
|
356
356
|
const currentMonthNumber = utils.getMonth(currentMonth);
|
|
357
|
+
const currentYearNumber = utils.getYear(currentMonth);
|
|
357
358
|
const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);
|
|
358
359
|
|
|
359
360
|
// need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.
|
|
360
|
-
const transitionKey = currentMonthNumber
|
|
361
|
+
const transitionKey = `${currentYearNumber}-${currentMonthNumber}`;
|
|
361
362
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
362
363
|
const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);
|
|
363
364
|
const startOfCurrentWeek = utils.startOfWeek(now);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { PickersCalendarHeaderProps } from './PickersCalendarHeader.types';
|
|
3
3
|
import { PickerValidDate } from '../models';
|
|
4
|
-
type PickersCalendarHeaderComponent = (<TDate extends PickerValidDate>(props: PickersCalendarHeaderProps<TDate> & React.RefAttributes<
|
|
4
|
+
type PickersCalendarHeaderComponent = (<TDate extends PickerValidDate>(props: PickersCalendarHeaderProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
5
5
|
propTypes?: any;
|
|
6
6
|
};
|
|
7
7
|
/**
|
package/index.js
CHANGED
|
@@ -329,7 +329,7 @@ export const useFieldV7TextField = params => {
|
|
|
329
329
|
onClick: getInputContainerClickHandler(index)
|
|
330
330
|
},
|
|
331
331
|
content: {
|
|
332
|
-
tabIndex: isContainerEditable ?
|
|
332
|
+
tabIndex: isContainerEditable || index > 0 ? -1 : 0,
|
|
333
333
|
contentEditable: !isContainerEditable && !disabled && !readOnly,
|
|
334
334
|
role: 'spinbutton',
|
|
335
335
|
id: `${id}-${section.type}`,
|
|
@@ -392,7 +392,7 @@ export const useFieldV7TextField = params => {
|
|
|
392
392
|
enableAccessibleFieldDOMStructure: true,
|
|
393
393
|
elements,
|
|
394
394
|
// TODO v7: Try to set to undefined when there is a section selected.
|
|
395
|
-
tabIndex: 0,
|
|
395
|
+
tabIndex: parsedSelectedSections === 0 ? -1 : 0,
|
|
396
396
|
contentEditable: isContainerEditable,
|
|
397
397
|
value: valueStr,
|
|
398
398
|
onChange: handleValueStrChange,
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DateView, FieldValueType, MuiPickersAdapter, PickersTimezone, PickerValidDate } from '../../models';
|
|
2
2
|
import { DateOrTimeViewWithMeridiem } from '../models';
|
|
3
|
+
export declare const mergeDateAndTime: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, dateParam: TDate, timeParam: TDate) => TDate;
|
|
3
4
|
interface FindClosestDateParams<TDate extends PickerValidDate> {
|
|
4
5
|
date: TDate;
|
|
5
6
|
disableFuture?: boolean;
|
|
@@ -15,7 +16,6 @@ export declare const replaceInvalidDateByNull: <TDate extends PickerValidDate>(u
|
|
|
15
16
|
export declare const applyDefaultDate: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, value: TDate | null | undefined, defaultValue: TDate) => TDate;
|
|
16
17
|
export declare const areDatesEqual: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, a: TDate, b: TDate) => boolean;
|
|
17
18
|
export declare const getMonthsInYear: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, year: TDate) => TDate[];
|
|
18
|
-
export declare const mergeDateAndTime: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, dateParam: TDate, timeParam: TDate) => TDate;
|
|
19
19
|
export declare const getTodayDate: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, timezone: PickersTimezone, valueType?: FieldValueType) => TDate;
|
|
20
20
|
export declare const formatMeridiem: <TDate extends PickerValidDate>(utils: MuiPickersAdapter<TDate, any>, meridiem: 'am' | 'pm') => string;
|
|
21
21
|
export declare const isDatePickerView: (view: DateOrTimeViewWithMeridiem) => view is DateView;
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { areViewsEqual } from './views';
|
|
2
|
+
export const mergeDateAndTime = (utils, dateParam, timeParam) => {
|
|
3
|
+
let mergedDate = dateParam;
|
|
4
|
+
mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
|
|
5
|
+
mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
|
|
6
|
+
mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
|
|
7
|
+
return mergedDate;
|
|
8
|
+
};
|
|
2
9
|
export const findClosestEnabledDate = ({
|
|
3
10
|
date,
|
|
4
11
|
disableFuture,
|
|
@@ -9,7 +16,7 @@ export const findClosestEnabledDate = ({
|
|
|
9
16
|
utils,
|
|
10
17
|
timezone
|
|
11
18
|
}) => {
|
|
12
|
-
const today =
|
|
19
|
+
const today = mergeDateAndTime(utils, utils.date(undefined, timezone), date);
|
|
13
20
|
if (disablePast && utils.isBefore(minDate, today)) {
|
|
14
21
|
minDate = today;
|
|
15
22
|
}
|
|
@@ -72,13 +79,6 @@ export const getMonthsInYear = (utils, year) => {
|
|
|
72
79
|
}
|
|
73
80
|
return months;
|
|
74
81
|
};
|
|
75
|
-
export const mergeDateAndTime = (utils, dateParam, timeParam) => {
|
|
76
|
-
let mergedDate = dateParam;
|
|
77
|
-
mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
|
|
78
|
-
mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
|
|
79
|
-
mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
|
|
80
|
-
return mergedDate;
|
|
81
|
-
};
|
|
82
82
|
export const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.date(undefined, timezone)) : utils.date(undefined, timezone);
|
|
83
83
|
export const formatMeridiem = (utils, meridiem) => {
|
|
84
84
|
const date = utils.setHours(utils.date(), meridiem === 'am' ? 2 : 14);
|
package/locales/jaJP.js
CHANGED
|
@@ -17,11 +17,10 @@ const jaJPPickers = {
|
|
|
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: 'γ―γͺγ’',
|
|
@@ -50,8 +49,7 @@ const jaJPPickers = {
|
|
|
50
49
|
// Open picker labels
|
|
51
50
|
openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ₯δ»γιΈζγγ¦γγ γγγιΈζγγζ₯δ»γ― ${utils.format(value, 'fullDate')} γ§γ` : 'ζ₯δ»γιΈζγγ¦γγ γγ',
|
|
52
51
|
openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζιγιΈζγγ¦γγ γγγιΈζγγζιγ― ${utils.format(value, 'fullTime')} γ§γ` : 'ζιγιΈζγγ¦γγ γγ',
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
fieldClearLabel: 'γ―γͺγ’',
|
|
55
53
|
// Table labels
|
|
56
54
|
timeTableLabel: 'ζιγιΈζ',
|
|
57
55
|
dateTableLabel: 'ζ₯δ»γιΈζ',
|
|
@@ -63,19 +61,17 @@ const jaJPPickers = {
|
|
|
63
61
|
fieldHoursPlaceholder: () => 'hh',
|
|
64
62
|
fieldMinutesPlaceholder: () => 'mm',
|
|
65
63
|
fieldSecondsPlaceholder: () => 'ss',
|
|
66
|
-
fieldMeridiemPlaceholder: () => 'aa'
|
|
67
|
-
|
|
64
|
+
fieldMeridiemPlaceholder: () => 'aa',
|
|
68
65
|
// View names
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
66
|
+
year: 'εΉ΄',
|
|
67
|
+
month: 'ζ',
|
|
68
|
+
day: 'ζ₯',
|
|
69
|
+
weekDay: 'εΉ³ζ₯',
|
|
70
|
+
hours: 'ζι',
|
|
71
|
+
minutes: 'ε',
|
|
72
|
+
seconds: 'η§',
|
|
73
|
+
meridiem: 'γ‘γͺγγ£γ ',
|
|
78
74
|
// Common
|
|
79
|
-
|
|
75
|
+
empty: 'η©Ί'
|
|
80
76
|
};
|
|
81
77
|
export const jaJP = getPickersLocalization(jaJPPickers);
|
|
@@ -353,10 +353,11 @@ export function DayCalendar(inProps) {
|
|
|
353
353
|
}
|
|
354
354
|
});
|
|
355
355
|
const currentMonthNumber = utils.getMonth(currentMonth);
|
|
356
|
+
const currentYearNumber = utils.getYear(currentMonth);
|
|
356
357
|
const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);
|
|
357
358
|
|
|
358
359
|
// need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.
|
|
359
|
-
const transitionKey = currentMonthNumber
|
|
360
|
+
const transitionKey = `${currentYearNumber}-${currentMonthNumber}`;
|
|
360
361
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
361
362
|
const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);
|
|
362
363
|
const startOfCurrentWeek = utils.startOfWeek(now);
|
package/modern/index.js
CHANGED
|
@@ -327,7 +327,7 @@ export const useFieldV7TextField = params => {
|
|
|
327
327
|
onClick: getInputContainerClickHandler(index)
|
|
328
328
|
},
|
|
329
329
|
content: {
|
|
330
|
-
tabIndex: isContainerEditable ?
|
|
330
|
+
tabIndex: isContainerEditable || index > 0 ? -1 : 0,
|
|
331
331
|
contentEditable: !isContainerEditable && !disabled && !readOnly,
|
|
332
332
|
role: 'spinbutton',
|
|
333
333
|
id: `${id}-${section.type}`,
|
|
@@ -390,7 +390,7 @@ export const useFieldV7TextField = params => {
|
|
|
390
390
|
enableAccessibleFieldDOMStructure: true,
|
|
391
391
|
elements,
|
|
392
392
|
// TODO v7: Try to set to undefined when there is a section selected.
|
|
393
|
-
tabIndex: 0,
|
|
393
|
+
tabIndex: parsedSelectedSections === 0 ? -1 : 0,
|
|
394
394
|
contentEditable: isContainerEditable,
|
|
395
395
|
value: valueStr,
|
|
396
396
|
onChange: handleValueStrChange,
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import { areViewsEqual } from './views';
|
|
2
|
+
export const mergeDateAndTime = (utils, dateParam, timeParam) => {
|
|
3
|
+
let mergedDate = dateParam;
|
|
4
|
+
mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
|
|
5
|
+
mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
|
|
6
|
+
mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
|
|
7
|
+
return mergedDate;
|
|
8
|
+
};
|
|
2
9
|
export const findClosestEnabledDate = ({
|
|
3
10
|
date,
|
|
4
11
|
disableFuture,
|
|
@@ -9,7 +16,7 @@ export const findClosestEnabledDate = ({
|
|
|
9
16
|
utils,
|
|
10
17
|
timezone
|
|
11
18
|
}) => {
|
|
12
|
-
const today =
|
|
19
|
+
const today = mergeDateAndTime(utils, utils.date(undefined, timezone), date);
|
|
13
20
|
if (disablePast && utils.isBefore(minDate, today)) {
|
|
14
21
|
minDate = today;
|
|
15
22
|
}
|
|
@@ -72,13 +79,6 @@ export const getMonthsInYear = (utils, year) => {
|
|
|
72
79
|
}
|
|
73
80
|
return months;
|
|
74
81
|
};
|
|
75
|
-
export const mergeDateAndTime = (utils, dateParam, timeParam) => {
|
|
76
|
-
let mergedDate = dateParam;
|
|
77
|
-
mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
|
|
78
|
-
mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
|
|
79
|
-
mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
|
|
80
|
-
return mergedDate;
|
|
81
|
-
};
|
|
82
82
|
export const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.date(undefined, timezone)) : utils.date(undefined, timezone);
|
|
83
83
|
export const formatMeridiem = (utils, meridiem) => {
|
|
84
84
|
const date = utils.setHours(utils.date(), meridiem === 'am' ? 2 : 14);
|
package/modern/locales/jaJP.js
CHANGED
|
@@ -17,11 +17,10 @@ const jaJPPickers = {
|
|
|
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: 'γ―γͺγ’',
|
|
@@ -47,8 +46,7 @@ const jaJPPickers = {
|
|
|
47
46
|
// Open picker labels
|
|
48
47
|
openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ₯δ»γιΈζγγ¦γγ γγγιΈζγγζ₯δ»γ― ${utils.format(value, 'fullDate')} γ§γ` : 'ζ₯δ»γιΈζγγ¦γγ γγ',
|
|
49
48
|
openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζιγιΈζγγ¦γγ γγγιΈζγγζιγ― ${utils.format(value, 'fullTime')} γ§γ` : 'ζιγιΈζγγ¦γγ γγ',
|
|
50
|
-
|
|
51
|
-
|
|
49
|
+
fieldClearLabel: 'γ―γͺγ’',
|
|
52
50
|
// Table labels
|
|
53
51
|
timeTableLabel: 'ζιγιΈζ',
|
|
54
52
|
dateTableLabel: 'ζ₯δ»γιΈζ',
|
|
@@ -60,19 +58,17 @@ const jaJPPickers = {
|
|
|
60
58
|
fieldHoursPlaceholder: () => 'hh',
|
|
61
59
|
fieldMinutesPlaceholder: () => 'mm',
|
|
62
60
|
fieldSecondsPlaceholder: () => 'ss',
|
|
63
|
-
fieldMeridiemPlaceholder: () => 'aa'
|
|
64
|
-
|
|
61
|
+
fieldMeridiemPlaceholder: () => 'aa',
|
|
65
62
|
// View names
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
63
|
+
year: 'εΉ΄',
|
|
64
|
+
month: 'ζ',
|
|
65
|
+
day: 'ζ₯',
|
|
66
|
+
weekDay: 'εΉ³ζ₯',
|
|
67
|
+
hours: 'ζι',
|
|
68
|
+
minutes: 'ε',
|
|
69
|
+
seconds: 'η§',
|
|
70
|
+
meridiem: 'γ‘γͺγγ£γ ',
|
|
75
71
|
// Common
|
|
76
|
-
|
|
72
|
+
empty: 'η©Ί'
|
|
77
73
|
};
|
|
78
74
|
export const jaJP = getPickersLocalization(jaJPPickers);
|
|
@@ -361,10 +361,11 @@ function DayCalendar(inProps) {
|
|
|
361
361
|
}
|
|
362
362
|
});
|
|
363
363
|
const currentMonthNumber = utils.getMonth(currentMonth);
|
|
364
|
+
const currentYearNumber = utils.getYear(currentMonth);
|
|
364
365
|
const validSelectedDays = React.useMemo(() => selectedDays.filter(day => !!day).map(day => utils.startOfDay(day)), [utils, selectedDays]);
|
|
365
366
|
|
|
366
367
|
// need a new ref whenever the `key` of the transition changes: https://reactcommunity.org/react-transition-group/transition/#Transition-prop-nodeRef.
|
|
367
|
-
const transitionKey = currentMonthNumber
|
|
368
|
+
const transitionKey = `${currentYearNumber}-${currentMonthNumber}`;
|
|
368
369
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
369
370
|
const slideNodeRef = React.useMemo(() => /*#__PURE__*/React.createRef(), [transitionKey]);
|
|
370
371
|
const startOfCurrentWeek = utils.startOfWeek(now);
|
package/node/index.js
CHANGED
|
@@ -336,7 +336,7 @@ const useFieldV7TextField = params => {
|
|
|
336
336
|
onClick: getInputContainerClickHandler(index)
|
|
337
337
|
},
|
|
338
338
|
content: {
|
|
339
|
-
tabIndex: isContainerEditable ?
|
|
339
|
+
tabIndex: isContainerEditable || index > 0 ? -1 : 0,
|
|
340
340
|
contentEditable: !isContainerEditable && !disabled && !readOnly,
|
|
341
341
|
role: 'spinbutton',
|
|
342
342
|
id: `${id}-${section.type}`,
|
|
@@ -399,7 +399,7 @@ const useFieldV7TextField = params => {
|
|
|
399
399
|
enableAccessibleFieldDOMStructure: true,
|
|
400
400
|
elements,
|
|
401
401
|
// TODO v7: Try to set to undefined when there is a section selected.
|
|
402
|
-
tabIndex: 0,
|
|
402
|
+
tabIndex: parsedSelectedSections === 0 ? -1 : 0,
|
|
403
403
|
contentEditable: isContainerEditable,
|
|
404
404
|
value: valueStr,
|
|
405
405
|
onChange: handleValueStrChange,
|
|
@@ -5,6 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.resolveDateFormat = exports.replaceInvalidDateByNull = exports.mergeDateAndTime = exports.isDatePickerView = exports.getWeekdays = exports.getTodayDate = exports.getMonthsInYear = exports.formatMeridiem = exports.findClosestEnabledDate = exports.areDatesEqual = exports.applyDefaultDate = void 0;
|
|
7
7
|
var _views = require("./views");
|
|
8
|
+
const mergeDateAndTime = (utils, dateParam, timeParam) => {
|
|
9
|
+
let mergedDate = dateParam;
|
|
10
|
+
mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
|
|
11
|
+
mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
|
|
12
|
+
mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
|
|
13
|
+
return mergedDate;
|
|
14
|
+
};
|
|
15
|
+
exports.mergeDateAndTime = mergeDateAndTime;
|
|
8
16
|
const findClosestEnabledDate = ({
|
|
9
17
|
date,
|
|
10
18
|
disableFuture,
|
|
@@ -15,7 +23,7 @@ const findClosestEnabledDate = ({
|
|
|
15
23
|
utils,
|
|
16
24
|
timezone
|
|
17
25
|
}) => {
|
|
18
|
-
const today =
|
|
26
|
+
const today = mergeDateAndTime(utils, utils.date(undefined, timezone), date);
|
|
19
27
|
if (disablePast && utils.isBefore(minDate, today)) {
|
|
20
28
|
minDate = today;
|
|
21
29
|
}
|
|
@@ -83,14 +91,6 @@ const getMonthsInYear = (utils, year) => {
|
|
|
83
91
|
return months;
|
|
84
92
|
};
|
|
85
93
|
exports.getMonthsInYear = getMonthsInYear;
|
|
86
|
-
const mergeDateAndTime = (utils, dateParam, timeParam) => {
|
|
87
|
-
let mergedDate = dateParam;
|
|
88
|
-
mergedDate = utils.setHours(mergedDate, utils.getHours(timeParam));
|
|
89
|
-
mergedDate = utils.setMinutes(mergedDate, utils.getMinutes(timeParam));
|
|
90
|
-
mergedDate = utils.setSeconds(mergedDate, utils.getSeconds(timeParam));
|
|
91
|
-
return mergedDate;
|
|
92
|
-
};
|
|
93
|
-
exports.mergeDateAndTime = mergeDateAndTime;
|
|
94
94
|
const getTodayDate = (utils, timezone, valueType) => valueType === 'date' ? utils.startOfDay(utils.date(undefined, timezone)) : utils.date(undefined, timezone);
|
|
95
95
|
exports.getTodayDate = getTodayDate;
|
|
96
96
|
const formatMeridiem = (utils, meridiem) => {
|
package/node/locales/jaJP.js
CHANGED
|
@@ -23,11 +23,10 @@ const jaJPPickers = {
|
|
|
23
23
|
// DateRange labels
|
|
24
24
|
start: 'ιε§',
|
|
25
25
|
end: 'η΅δΊ',
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
startDate: 'ιε§ζ₯',
|
|
27
|
+
startTime: 'ιε§ζι',
|
|
28
|
+
endDate: 'η΅δΊζ₯',
|
|
29
|
+
endTime: 'η΅δΊζι',
|
|
31
30
|
// Action bar
|
|
32
31
|
cancelButtonLabel: 'γγ£γ³γ»γ«',
|
|
33
32
|
clearButtonLabel: 'γ―γͺγ’',
|
|
@@ -53,8 +52,7 @@ const jaJPPickers = {
|
|
|
53
52
|
// Open picker labels
|
|
54
53
|
openDatePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζ₯δ»γιΈζγγ¦γγ γγγιΈζγγζ₯δ»γ― ${utils.format(value, 'fullDate')} γ§γ` : 'ζ₯δ»γιΈζγγ¦γγ γγ',
|
|
55
54
|
openTimePickerDialogue: (value, utils) => value !== null && utils.isValid(value) ? `ζιγιΈζγγ¦γγ γγγιΈζγγζιγ― ${utils.format(value, 'fullTime')} γ§γ` : 'ζιγιΈζγγ¦γγ γγ',
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
fieldClearLabel: 'γ―γͺγ’',
|
|
58
56
|
// Table labels
|
|
59
57
|
timeTableLabel: 'ζιγιΈζ',
|
|
60
58
|
dateTableLabel: 'ζ₯δ»γιΈζ',
|
|
@@ -66,19 +64,17 @@ const jaJPPickers = {
|
|
|
66
64
|
fieldHoursPlaceholder: () => 'hh',
|
|
67
65
|
fieldMinutesPlaceholder: () => 'mm',
|
|
68
66
|
fieldSecondsPlaceholder: () => 'ss',
|
|
69
|
-
fieldMeridiemPlaceholder: () => 'aa'
|
|
70
|
-
|
|
67
|
+
fieldMeridiemPlaceholder: () => 'aa',
|
|
71
68
|
// View names
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
69
|
+
year: 'εΉ΄',
|
|
70
|
+
month: 'ζ',
|
|
71
|
+
day: 'ζ₯',
|
|
72
|
+
weekDay: 'εΉ³ζ₯',
|
|
73
|
+
hours: 'ζι',
|
|
74
|
+
minutes: 'ε',
|
|
75
|
+
seconds: 'η§',
|
|
76
|
+
meridiem: 'γ‘γͺγγ£γ ',
|
|
81
77
|
// Common
|
|
82
|
-
|
|
78
|
+
empty: 'η©Ί'
|
|
83
79
|
};
|
|
84
80
|
const jaJP = exports.jaJP = (0, _getPickersLocalization.getPickersLocalization)(jaJPPickers);
|