@mui/x-date-pickers-pro 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/DateRangeCalendar/DateRangeCalendar.js +18 -53
- package/DateRangeCalendar/DateRangeCalendar.types.d.ts +3 -2
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.d.ts +8 -0
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +124 -0
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.d.ts +18 -0
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +1 -0
- package/PickersRangeCalendarHeader/index.d.ts +2 -0
- package/PickersRangeCalendarHeader/index.js +1 -0
- package/PickersRangeCalendarHeader/package.json +6 -0
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/internals/utils/releaseInfo.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +39 -71
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
- package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +124 -0
- package/modern/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +1 -0
- package/modern/PickersRangeCalendarHeader/index.js +1 -0
- package/modern/index.js +2 -1
- package/modern/internals/utils/releaseInfo.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +38 -70
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +4 -2
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +4 -2
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +4 -2
- package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +132 -0
- package/node/PickersRangeCalendarHeader/PickersRangeCalendarHeader.types.js +5 -0
- package/node/PickersRangeCalendarHeader/index.js +12 -0
- package/node/index.js +13 -1
- package/node/internals/utils/releaseInfo.js +1 -1
- package/package.json +2 -2
- package/themeAugmentation/components.d.ts +3 -0
- package/themeAugmentation/props.d.ts +2 -0
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_
|
|
@@ -11,8 +11,7 @@ import { resolveComponentProps, useSlotProps } from '@mui/base/utils';
|
|
|
11
11
|
import { styled, useThemeProps } from '@mui/material/styles';
|
|
12
12
|
import { unstable_composeClasses as composeClasses } from '@mui/utils';
|
|
13
13
|
import { Watermark } from '@mui/x-license';
|
|
14
|
-
import {
|
|
15
|
-
import { applyDefaultDate, DayCalendar, useDefaultReduceAnimations, PickersArrowSwitcher, useCalendarState, useDefaultDates, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, buildWarning, useControlledValueWithTimezone, useViews } from '@mui/x-date-pickers/internals';
|
|
14
|
+
import { applyDefaultDate, DayCalendar, useDefaultReduceAnimations, useCalendarState, useDefaultDates, useUtils, useNow, DEFAULT_DESKTOP_MODE_MEDIA_QUERY, buildWarning, useControlledValueWithTimezone, useViews } from '@mui/x-date-pickers/internals';
|
|
16
15
|
import { getReleaseInfo } from '../internals/utils/releaseInfo';
|
|
17
16
|
import { dateRangeCalendarClasses, getDateRangeCalendarUtilityClass } from './dateRangeCalendarClasses';
|
|
18
17
|
import { isEndOfRange, isRangeValid, isStartOfRange, isWithinRange } from '../internals/utils/date-utils';
|
|
@@ -22,6 +21,7 @@ import { rangeValueManager } from '../internals/utils/valueManagers';
|
|
|
22
21
|
import { useDragRange } from './useDragRange';
|
|
23
22
|
import { useRangePosition } from '../internals/hooks/useRangePosition';
|
|
24
23
|
import { DAY_RANGE_SIZE, DAY_MARGIN } from '../internals/constants/dimensions';
|
|
24
|
+
import { PickersRangeCalendarHeader } from '../PickersRangeCalendarHeader';
|
|
25
25
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
26
26
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
27
|
const releaseInfo = getReleaseInfo();
|
|
@@ -44,12 +44,6 @@ const DateRangeCalendarMonthContainer = styled('div', {
|
|
|
44
44
|
borderRight: `1px solid ${(theme.vars || theme).palette.divider}`
|
|
45
45
|
}
|
|
46
46
|
}));
|
|
47
|
-
const DateRangeCalendarArrowSwitcher = styled(PickersArrowSwitcher)({
|
|
48
|
-
padding: '12px 16px 4px 16px',
|
|
49
|
-
display: 'flex',
|
|
50
|
-
alignItems: 'center',
|
|
51
|
-
justifyContent: 'space-between'
|
|
52
|
-
});
|
|
53
47
|
const weeksContainerHeight = (DAY_RANGE_SIZE + DAY_MARGIN * 2) * 6;
|
|
54
48
|
const warnInvalidCurrentMonthCalendarPosition = buildWarning(['The `currentMonthCalendarPosition` prop must be an integer between `1` and the amount of calendars rendered.', 'For example if you have 2 calendars rendered, it should be equal to either 1 or 2.']);
|
|
55
49
|
const DayCalendarForRange = styled(DayCalendar)(({
|
|
@@ -192,7 +186,6 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
192
186
|
autoFocus
|
|
193
187
|
});
|
|
194
188
|
const utils = useUtils();
|
|
195
|
-
const localeText = useLocaleText();
|
|
196
189
|
const now = useNow(timezone);
|
|
197
190
|
const {
|
|
198
191
|
rangePosition,
|
|
@@ -290,15 +283,12 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
290
283
|
shouldDisableDate: wrappedShouldDisableDate,
|
|
291
284
|
timezone
|
|
292
285
|
});
|
|
293
|
-
|
|
294
|
-
// When disabled, limit the view to the selected date
|
|
295
|
-
const minDateWithDisabled = disabled && value[0] || minDate;
|
|
296
|
-
const maxDateWithDisabled = disabled && value[1] || maxDate;
|
|
297
|
-
const CalendarHeader = (_slots$calendarHeader = slots == null ? void 0 : slots.calendarHeader) != null ? _slots$calendarHeader : PickersCalendarHeader;
|
|
286
|
+
const CalendarHeader = (_slots$calendarHeader = slots == null ? void 0 : slots.calendarHeader) != null ? _slots$calendarHeader : PickersRangeCalendarHeader;
|
|
298
287
|
const calendarHeaderProps = useSlotProps({
|
|
299
288
|
elementType: CalendarHeader,
|
|
300
289
|
externalSlotProps: slotProps == null ? void 0 : slotProps.calendarHeader,
|
|
301
290
|
additionalProps: {
|
|
291
|
+
calendars,
|
|
302
292
|
views: ['day'],
|
|
303
293
|
view: 'day',
|
|
304
294
|
currentMonth: calendarState.currentMonth,
|
|
@@ -306,15 +296,15 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
306
296
|
newMonth,
|
|
307
297
|
direction
|
|
308
298
|
}),
|
|
309
|
-
minDate
|
|
310
|
-
maxDate
|
|
299
|
+
minDate,
|
|
300
|
+
maxDate,
|
|
311
301
|
disabled,
|
|
312
302
|
disablePast,
|
|
313
303
|
disableFuture,
|
|
314
304
|
reduceAnimations,
|
|
305
|
+
timezone,
|
|
315
306
|
slots,
|
|
316
|
-
slotProps
|
|
317
|
-
timezone
|
|
307
|
+
slotProps
|
|
318
308
|
},
|
|
319
309
|
ownerState: props
|
|
320
310
|
});
|
|
@@ -344,22 +334,6 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
344
334
|
}
|
|
345
335
|
}, [rangePosition, value]); // eslint-disable-line
|
|
346
336
|
|
|
347
|
-
const selectNextMonth = React.useCallback(() => {
|
|
348
|
-
changeMonth(utils.addMonths(calendarState.currentMonth, 1));
|
|
349
|
-
}, [changeMonth, calendarState.currentMonth, utils]);
|
|
350
|
-
const selectPreviousMonth = React.useCallback(() => {
|
|
351
|
-
changeMonth(utils.addMonths(calendarState.currentMonth, -1));
|
|
352
|
-
}, [changeMonth, calendarState.currentMonth, utils]);
|
|
353
|
-
const isNextMonthDisabled = useNextMonthDisabled(calendarState.currentMonth, {
|
|
354
|
-
disableFuture,
|
|
355
|
-
maxDate,
|
|
356
|
-
timezone
|
|
357
|
-
});
|
|
358
|
-
const isPreviousMonthDisabled = usePreviousMonthDisabled(calendarState.currentMonth, {
|
|
359
|
-
disablePast,
|
|
360
|
-
minDate,
|
|
361
|
-
timezone
|
|
362
|
-
});
|
|
363
337
|
const baseDateValidationProps = {
|
|
364
338
|
disablePast,
|
|
365
339
|
disableFuture,
|
|
@@ -467,23 +441,14 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
467
441
|
children: [/*#__PURE__*/_jsx(Watermark, {
|
|
468
442
|
packageName: "x-date-pickers-pro",
|
|
469
443
|
releaseInfo: releaseInfo
|
|
470
|
-
}), calendarMonths.map(
|
|
471
|
-
|
|
444
|
+
}), calendarMonths.map(monthIndex => {
|
|
445
|
+
const month = visibleMonths[monthIndex];
|
|
472
446
|
return /*#__PURE__*/_jsxs(DateRangeCalendarMonthContainer, {
|
|
473
447
|
className: classes.monthContainer,
|
|
474
|
-
children: [
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
isPreviousDisabled: isPreviousMonthDisabled,
|
|
479
|
-
previousLabel: localeText.previousMonth,
|
|
480
|
-
isNextHidden: index !== calendars - 1,
|
|
481
|
-
isNextDisabled: isNextMonthDisabled,
|
|
482
|
-
nextLabel: localeText.nextMonth,
|
|
483
|
-
slots: slots,
|
|
484
|
-
slotProps: slotProps,
|
|
485
|
-
children: utils.formatByString(visibleMonths[month], (_calendarHeaderProps$ = calendarHeaderProps.format) != null ? _calendarHeaderProps$ : `${utils.formats.month} ${utils.formats.year}`)
|
|
486
|
-
}), /*#__PURE__*/_jsx(DayCalendarForRange, _extends({
|
|
448
|
+
children: [/*#__PURE__*/_jsx(CalendarHeader, _extends({}, calendarHeaderProps, {
|
|
449
|
+
month: month,
|
|
450
|
+
monthIndex: monthIndex
|
|
451
|
+
})), /*#__PURE__*/_jsx(DayCalendarForRange, _extends({
|
|
487
452
|
className: classes.dayCalendar
|
|
488
453
|
}, calendarState, baseDateValidationProps, commonViewProps, {
|
|
489
454
|
onMonthSwitchingAnimationEnd: onMonthSwitchingAnimationEnd,
|
|
@@ -491,7 +456,7 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
491
456
|
reduceAnimations: reduceAnimations,
|
|
492
457
|
selectedDays: value,
|
|
493
458
|
onSelectedDaysChange: handleSelectedDayChange,
|
|
494
|
-
currentMonth:
|
|
459
|
+
currentMonth: month,
|
|
495
460
|
TransitionProps: CalendarTransitionProps,
|
|
496
461
|
shouldDisableDate: wrappedShouldDisableDate,
|
|
497
462
|
showDaysOutsideCurrentMonth: calendars === 1 && showDaysOutsideCurrentMonth,
|
|
@@ -500,12 +465,12 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
500
465
|
renderLoading: renderLoading,
|
|
501
466
|
slots: slotsForDayCalendar,
|
|
502
467
|
slotProps: slotPropsForDayCalendar,
|
|
503
|
-
autoFocus:
|
|
468
|
+
autoFocus: month === focusedMonth,
|
|
504
469
|
fixedWeekNumber: fixedWeekNumber,
|
|
505
470
|
displayWeekNumber: displayWeekNumber,
|
|
506
471
|
timezone: timezone
|
|
507
|
-
})
|
|
508
|
-
},
|
|
472
|
+
}))]
|
|
473
|
+
}, monthIndex);
|
|
509
474
|
})]
|
|
510
475
|
}));
|
|
511
476
|
});
|
|
@@ -3,13 +3,14 @@ import { SxProps } from '@mui/system';
|
|
|
3
3
|
import { SlotComponentProps } from '@mui/base/utils';
|
|
4
4
|
import { Theme } from '@mui/material/styles';
|
|
5
5
|
import { PickerValidDate, TimezoneProps } from '@mui/x-date-pickers/models';
|
|
6
|
-
import { PickersCalendarHeader,
|
|
6
|
+
import { PickersCalendarHeader, PickersCalendarHeaderSlots, PickersCalendarHeaderSlotProps } from '@mui/x-date-pickers/PickersCalendarHeader';
|
|
7
7
|
import { BaseDateValidationProps, DefaultizedProps, ExportedDayCalendarProps, DayCalendarSlots, DayCalendarSlotProps, PickersArrowSwitcherSlots, PickersArrowSwitcherSlotProps, DayCalendarProps, ExportedUseViewsOptions } from '@mui/x-date-pickers/internals';
|
|
8
8
|
import { DayRangeValidationProps } from '../internals/models';
|
|
9
9
|
import { DateRange } from '../models';
|
|
10
10
|
import { DateRangeCalendarClasses } from './dateRangeCalendarClasses';
|
|
11
11
|
import { DateRangePickerDay, DateRangePickerDayProps } from '../DateRangePickerDay';
|
|
12
12
|
import { UseRangePositionProps } from '../internals/hooks/useRangePosition';
|
|
13
|
+
import { PickersRangeCalendarHeaderProps } from '../PickersRangeCalendarHeader';
|
|
13
14
|
export type DateRangePosition = 'start' | 'end';
|
|
14
15
|
export interface DateRangeCalendarSlots<TDate extends PickerValidDate> extends PickersArrowSwitcherSlots, Omit<DayCalendarSlots<TDate>, 'day'>, PickersCalendarHeaderSlots {
|
|
15
16
|
/**
|
|
@@ -17,7 +18,7 @@ export interface DateRangeCalendarSlots<TDate extends PickerValidDate> extends P
|
|
|
17
18
|
* Check the [PickersCalendarHeader](https://mui.com/x/api/date-pickers/pickers-calendar-header/) component.
|
|
18
19
|
* @default PickersCalendarHeader
|
|
19
20
|
*/
|
|
20
|
-
calendarHeader?: React.ElementType<
|
|
21
|
+
calendarHeader?: React.ElementType<PickersRangeCalendarHeaderProps<TDate>>;
|
|
21
22
|
/**
|
|
22
23
|
* Custom component for day in range pickers.
|
|
23
24
|
* Check the [DateRangePickersDay](https://mui.com/x/api/date-pickers/date-range-picker-day/) component.
|
|
@@ -31,7 +31,7 @@ const MultiInputDateRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((prop
|
|
|
31
31
|
ref: ref,
|
|
32
32
|
spacing: 2,
|
|
33
33
|
direction: "row",
|
|
34
|
-
alignItems: "
|
|
34
|
+
alignItems: "center"
|
|
35
35
|
}, props))), {
|
|
36
36
|
name: 'MuiMultiInputDateRangeField',
|
|
37
37
|
slot: 'Root',
|
|
@@ -46,7 +46,9 @@ const MultiInputDateRangeFieldSeparator = styled(props => {
|
|
|
46
46
|
name: 'MuiMultiInputDateRangeField',
|
|
47
47
|
slot: 'Separator',
|
|
48
48
|
overridesResolver: (props, styles) => styles.separator
|
|
49
|
-
})({
|
|
49
|
+
})({
|
|
50
|
+
lineHeight: '1.4375em' // 23px
|
|
51
|
+
});
|
|
50
52
|
/**
|
|
51
53
|
* Demos:
|
|
52
54
|
*
|
|
@@ -31,7 +31,7 @@ const MultiInputDateTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((
|
|
|
31
31
|
ref: ref,
|
|
32
32
|
spacing: 2,
|
|
33
33
|
direction: "row",
|
|
34
|
-
alignItems: "
|
|
34
|
+
alignItems: "center"
|
|
35
35
|
}, props))), {
|
|
36
36
|
name: 'MuiMultiInputDateTimeRangeField',
|
|
37
37
|
slot: 'Root',
|
|
@@ -46,7 +46,9 @@ const MultiInputDateTimeRangeFieldSeparator = styled(props => {
|
|
|
46
46
|
name: 'MuiMultiInputDateTimeRangeField',
|
|
47
47
|
slot: 'Separator',
|
|
48
48
|
overridesResolver: (props, styles) => styles.separator
|
|
49
|
-
})({
|
|
49
|
+
})({
|
|
50
|
+
lineHeight: '1.4375em' // 23px
|
|
51
|
+
});
|
|
50
52
|
/**
|
|
51
53
|
* Demos:
|
|
52
54
|
*
|
|
@@ -31,7 +31,7 @@ const MultiInputTimeRangeFieldRoot = styled( /*#__PURE__*/React.forwardRef((prop
|
|
|
31
31
|
ref: ref,
|
|
32
32
|
spacing: 2,
|
|
33
33
|
direction: "row",
|
|
34
|
-
alignItems: "
|
|
34
|
+
alignItems: "center"
|
|
35
35
|
}, props))), {
|
|
36
36
|
name: 'MuiMultiInputTimeRangeField',
|
|
37
37
|
slot: 'Root',
|
|
@@ -46,7 +46,9 @@ const MultiInputTimeRangeFieldSeparator = styled(props => {
|
|
|
46
46
|
name: 'MuiMultiInputTimeRangeField',
|
|
47
47
|
slot: 'Separator',
|
|
48
48
|
overridesResolver: (props, styles) => styles.separator
|
|
49
|
-
})({
|
|
49
|
+
})({
|
|
50
|
+
lineHeight: '1.4375em' // 23px
|
|
51
|
+
});
|
|
50
52
|
/**
|
|
51
53
|
* Demos:
|
|
52
54
|
*
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
3
|
+
import { PickersRangeCalendarHeaderProps } from './PickersRangeCalendarHeader.types';
|
|
4
|
+
type PickersRangeCalendarHeaderComponent = (<TDate extends PickerValidDate>(props: PickersRangeCalendarHeaderProps<TDate> & React.RefAttributes<HTMLDivElement>) => React.JSX.Element) & {
|
|
5
|
+
propTypes?: any;
|
|
6
|
+
};
|
|
7
|
+
declare const PickersRangeCalendarHeader: PickersRangeCalendarHeaderComponent;
|
|
8
|
+
export { PickersRangeCalendarHeader };
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["calendars", "month", "monthIndex"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import { styled } from '@mui/material/styles';
|
|
7
|
+
import { PickersCalendarHeader } from '@mui/x-date-pickers/PickersCalendarHeader';
|
|
8
|
+
import { PickersArrowSwitcher, useLocaleText, useNextMonthDisabled, usePreviousMonthDisabled, useUtils } from '@mui/x-date-pickers/internals';
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
const PickersRangeCalendarHeaderContentMultipleCalendars = styled(PickersArrowSwitcher)({
|
|
11
|
+
padding: '12px 16px 4px 16px',
|
|
12
|
+
display: 'flex',
|
|
13
|
+
alignItems: 'center',
|
|
14
|
+
justifyContent: 'space-between'
|
|
15
|
+
});
|
|
16
|
+
const PickersRangeCalendarHeader = /*#__PURE__*/React.forwardRef(function PickersRangeCalendarHeader(props, ref) {
|
|
17
|
+
const utils = useUtils();
|
|
18
|
+
const localeText = useLocaleText();
|
|
19
|
+
const {
|
|
20
|
+
calendars,
|
|
21
|
+
month,
|
|
22
|
+
monthIndex
|
|
23
|
+
} = props,
|
|
24
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
25
|
+
const {
|
|
26
|
+
format,
|
|
27
|
+
slots,
|
|
28
|
+
slotProps,
|
|
29
|
+
currentMonth,
|
|
30
|
+
onMonthChange,
|
|
31
|
+
disableFuture,
|
|
32
|
+
disablePast,
|
|
33
|
+
minDate,
|
|
34
|
+
maxDate,
|
|
35
|
+
timezone
|
|
36
|
+
} = props;
|
|
37
|
+
const isNextMonthDisabled = useNextMonthDisabled(currentMonth, {
|
|
38
|
+
disableFuture,
|
|
39
|
+
maxDate,
|
|
40
|
+
timezone
|
|
41
|
+
});
|
|
42
|
+
const isPreviousMonthDisabled = usePreviousMonthDisabled(currentMonth, {
|
|
43
|
+
disablePast,
|
|
44
|
+
minDate,
|
|
45
|
+
timezone
|
|
46
|
+
});
|
|
47
|
+
if (calendars === 1) {
|
|
48
|
+
return /*#__PURE__*/_jsx(PickersCalendarHeader, _extends({}, other, {
|
|
49
|
+
ref: ref
|
|
50
|
+
}));
|
|
51
|
+
}
|
|
52
|
+
const selectNextMonth = () => onMonthChange(utils.addMonths(currentMonth, 1), 'left');
|
|
53
|
+
const selectPreviousMonth = () => onMonthChange(utils.addMonths(currentMonth, -1), 'right');
|
|
54
|
+
return /*#__PURE__*/_jsx(PickersRangeCalendarHeaderContentMultipleCalendars, {
|
|
55
|
+
ref: ref,
|
|
56
|
+
onGoToPrevious: selectPreviousMonth,
|
|
57
|
+
onGoToNext: selectNextMonth,
|
|
58
|
+
isPreviousHidden: monthIndex !== 0,
|
|
59
|
+
isPreviousDisabled: isPreviousMonthDisabled,
|
|
60
|
+
previousLabel: localeText.previousMonth,
|
|
61
|
+
isNextHidden: monthIndex !== calendars - 1,
|
|
62
|
+
isNextDisabled: isNextMonthDisabled,
|
|
63
|
+
nextLabel: localeText.nextMonth,
|
|
64
|
+
slots: slots,
|
|
65
|
+
slotProps: slotProps,
|
|
66
|
+
children: utils.formatByString(month, format != null ? format : `${utils.formats.month} ${utils.formats.year}`)
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
process.env.NODE_ENV !== "production" ? PickersRangeCalendarHeader.propTypes = {
|
|
70
|
+
// ----------------------------- Warning --------------------------------
|
|
71
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
72
|
+
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
73
|
+
// ----------------------------------------------------------------------
|
|
74
|
+
/**
|
|
75
|
+
* The number of calendars rendered.
|
|
76
|
+
*/
|
|
77
|
+
calendars: PropTypes.oneOf([1, 2, 3]).isRequired,
|
|
78
|
+
/**
|
|
79
|
+
* Override or extend the styles applied to the component.
|
|
80
|
+
*/
|
|
81
|
+
classes: PropTypes.object,
|
|
82
|
+
className: PropTypes.string,
|
|
83
|
+
currentMonth: PropTypes.object.isRequired,
|
|
84
|
+
disabled: PropTypes.bool,
|
|
85
|
+
disableFuture: PropTypes.bool,
|
|
86
|
+
disablePast: PropTypes.bool,
|
|
87
|
+
/**
|
|
88
|
+
* Format used to display the date.
|
|
89
|
+
* @default `${adapter.formats.month} ${adapter.formats.year}`
|
|
90
|
+
*/
|
|
91
|
+
format: PropTypes.string,
|
|
92
|
+
labelId: PropTypes.string,
|
|
93
|
+
maxDate: PropTypes.object.isRequired,
|
|
94
|
+
minDate: PropTypes.object.isRequired,
|
|
95
|
+
/**
|
|
96
|
+
* Month used for this header.
|
|
97
|
+
*/
|
|
98
|
+
month: PropTypes.object.isRequired,
|
|
99
|
+
/**
|
|
100
|
+
* Index of the month used for this header.
|
|
101
|
+
*/
|
|
102
|
+
monthIndex: PropTypes.number.isRequired,
|
|
103
|
+
onMonthChange: PropTypes.func.isRequired,
|
|
104
|
+
onViewChange: PropTypes.func,
|
|
105
|
+
reduceAnimations: PropTypes.bool.isRequired,
|
|
106
|
+
/**
|
|
107
|
+
* The props used for each component slot.
|
|
108
|
+
* @default {}
|
|
109
|
+
*/
|
|
110
|
+
slotProps: PropTypes.object,
|
|
111
|
+
/**
|
|
112
|
+
* Overridable component slots.
|
|
113
|
+
* @default {}
|
|
114
|
+
*/
|
|
115
|
+
slots: PropTypes.object,
|
|
116
|
+
/**
|
|
117
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
118
|
+
*/
|
|
119
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
120
|
+
timezone: PropTypes.string.isRequired,
|
|
121
|
+
view: PropTypes.oneOf(['day', 'month', 'year']).isRequired,
|
|
122
|
+
views: PropTypes.arrayOf(PropTypes.oneOf(['day', 'month', 'year']).isRequired).isRequired
|
|
123
|
+
} : void 0;
|
|
124
|
+
export { PickersRangeCalendarHeader };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PickerValidDate } from '@mui/x-date-pickers/models';
|
|
2
|
+
import { ExportedPickersCalendarHeaderProps, PickersCalendarHeaderProps } from '@mui/x-date-pickers/PickersCalendarHeader';
|
|
3
|
+
export interface PickersRangeCalendarHeaderProps<TDate extends PickerValidDate> extends PickersCalendarHeaderProps<TDate> {
|
|
4
|
+
/**
|
|
5
|
+
* The number of calendars rendered.
|
|
6
|
+
*/
|
|
7
|
+
calendars: 1 | 2 | 3;
|
|
8
|
+
/**
|
|
9
|
+
* Month used for this header.
|
|
10
|
+
*/
|
|
11
|
+
month: TDate;
|
|
12
|
+
/**
|
|
13
|
+
* Index of the month used for this header.
|
|
14
|
+
*/
|
|
15
|
+
monthIndex: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ExportedPickersRangeCalendarHeaderProps<TDate extends PickerValidDate> extends ExportedPickersCalendarHeaderProps<TDate> {
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { PickersRangeCalendarHeader } from './PickersRangeCalendarHeader';
|
package/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './SingleInputDateRangeField';
|
|
|
14
14
|
export * from './SingleInputTimeRangeField';
|
|
15
15
|
export * from './SingleInputDateTimeRangeField';
|
|
16
16
|
export * from './DateRangeCalendar';
|
|
17
|
+
export * from './PickersRangeCalendarHeader';
|
|
17
18
|
export * from './DateRangePicker';
|
|
18
19
|
export * from './DesktopDateRangePicker';
|
|
19
20
|
export * from './MobileDateRangePicker';
|
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @mui/x-date-pickers-pro v7.0.0-beta.
|
|
2
|
+
* @mui/x-date-pickers-pro v7.0.0-beta.7
|
|
3
3
|
*
|
|
4
4
|
* @license MUI X Commercial
|
|
5
5
|
* This source code is licensed under the commercial license found in the
|
|
@@ -24,6 +24,7 @@ export * from './SingleInputDateTimeRangeField';
|
|
|
24
24
|
|
|
25
25
|
// Calendars
|
|
26
26
|
export * from './DateRangeCalendar';
|
|
27
|
+
export * from './PickersRangeCalendarHeader';
|
|
27
28
|
|
|
28
29
|
// New pickers
|
|
29
30
|
export * from './DateRangePicker';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ponyfillGlobal } from '@mui/utils';
|
|
2
2
|
export const getReleaseInfo = () => {
|
|
3
|
-
const releaseInfo = "
|
|
3
|
+
const releaseInfo = "MTcxMDM3MDgwMDAwMA==";
|
|
4
4
|
if (process.env.NODE_ENV !== 'production') {
|
|
5
5
|
// A simple hack to set the value in the test environment (has no build step).
|
|
6
6
|
// eslint-disable-next-line no-useless-concat
|