@mui/x-date-pickers-pro 6.0.0-alpha.12 → 6.0.0-alpha.13
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 +132 -0
- package/DateRangeCalendar/DateRangeCalendar.js +7 -1
- package/DateRangeCalendar/DateRangeCalendar.types.d.ts +37 -37
- package/DateRangePicker/DateRangePicker.js +0 -5
- package/DateRangePicker/DateRangePickerView.d.ts +3 -3
- package/DateRangePicker/DateRangePickerView.js +6 -3
- package/DateRangePicker/DateRangePickerViewMobile.js +1 -1
- package/DateRangePickerDay/DateRangePickerDay.js +72 -1
- package/DesktopDateRangePicker/DesktopDateRangePicker.d.ts +5 -0
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
- package/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
- package/MobileDateRangePicker/MobileDateRangePicker.d.ts +5 -0
- package/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
- package/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
- package/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
- package/MultiInputDateRangeField/MultiInputDateRangeField.types.d.ts +2 -2
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.types.d.ts +3 -3
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.types.d.ts +2 -2
- package/NextDateRangePicker/NextDateRangePicker.js +16 -2
- package/NextDateRangePicker/shared.d.ts +9 -2
- package/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
- package/SingleInputDateRangeField/SingleInputDateRangeField.types.d.ts +3 -2
- package/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
- package/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
- package/dateRangeViewRenderers/dateRangeViewRenderers.d.ts +13 -0
- package/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
- package/dateRangeViewRenderers/index.d.ts +2 -0
- package/dateRangeViewRenderers/index.js +1 -0
- package/dateRangeViewRenderers/package.json +6 -0
- package/index.d.ts +1 -0
- package/index.js +5 -2
- package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.d.ts +1 -1
- package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
- package/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.types.d.ts +4 -5
- package/internal/hooks/useMobileRangePicker/useMobileRangePicker.d.ts +1 -1
- package/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
- package/internal/hooks/useMobileRangePicker/useMobileRangePicker.types.d.ts +4 -5
- package/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
- package/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
- package/internal/hooks/useMultiInputRangeField/useMultiInputRangeField.types.d.ts +2 -0
- package/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
- package/internal/hooks/useRangePickerInputProps.d.ts +4 -6
- package/internal/hooks/useRangePickerInputProps.js +5 -6
- package/internal/hooks/useStaticRangePicker/useStaticRangePicker.d.ts +1 -1
- package/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
- package/internal/hooks/useStaticRangePicker/useStaticRangePicker.types.d.ts +2 -2
- package/internal/models/dateRange.d.ts +11 -1
- package/internal/models/dateTimeRange.d.ts +2 -2
- package/internal/models/timeRange.d.ts +2 -1
- package/internal/utils/date-fields-utils.d.ts +17 -1
- package/internal/utils/releaseInfo.js +1 -1
- package/internal/utils/valueManagers.js +15 -21
- package/legacy/DateRangeCalendar/DateRangeCalendar.js +7 -1
- package/legacy/DateRangePicker/DateRangePicker.js +0 -5
- package/legacy/DateRangePicker/DateRangePickerView.js +7 -2
- package/legacy/DateRangePicker/DateRangePickerViewMobile.js +1 -1
- package/legacy/DateRangePickerDay/DateRangePickerDay.js +72 -1
- package/legacy/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
- package/legacy/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
- package/legacy/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
- package/legacy/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
- package/legacy/MultiInputDateRangeField/MultiInputDateRangeField.js +44 -11
- package/legacy/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +43 -8
- package/legacy/MultiInputTimeRangeField/MultiInputTimeRangeField.js +43 -8
- package/legacy/NextDateRangePicker/NextDateRangePicker.js +16 -2
- package/legacy/SingleInputDateRangeField/SingleInputDateRangeField.js +109 -4
- package/legacy/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
- package/legacy/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
- package/legacy/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
- package/legacy/dateRangeViewRenderers/index.js +1 -0
- package/legacy/index.js +5 -2
- package/legacy/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
- package/legacy/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
- package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
- package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
- package/legacy/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
- package/legacy/internal/hooks/useRangePickerInputProps.js +5 -6
- package/legacy/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
- package/legacy/internal/utils/releaseInfo.js +1 -1
- package/legacy/internal/utils/valueManagers.js +15 -23
- package/legacy/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
- package/modern/DateRangeCalendar/DateRangeCalendar.js +7 -1
- package/modern/DateRangePicker/DateRangePicker.js +0 -5
- package/modern/DateRangePicker/DateRangePickerView.js +6 -3
- package/modern/DateRangePicker/DateRangePickerViewMobile.js +1 -1
- package/modern/DateRangePickerDay/DateRangePickerDay.js +72 -1
- package/modern/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
- package/modern/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
- package/modern/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
- package/modern/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
- package/modern/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
- package/modern/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
- package/modern/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
- package/modern/NextDateRangePicker/NextDateRangePicker.js +16 -2
- package/modern/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
- package/modern/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
- package/modern/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
- package/modern/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +3 -4
- package/modern/dateRangeViewRenderers/index.js +1 -0
- package/modern/index.js +5 -2
- package/modern/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
- package/modern/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
- package/modern/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
- package/modern/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
- package/modern/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
- package/modern/internal/hooks/useRangePickerInputProps.js +5 -6
- package/modern/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
- package/modern/internal/utils/releaseInfo.js +1 -1
- package/modern/internal/utils/valueManagers.js +15 -21
- package/modern/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
- package/node/DateRangeCalendar/DateRangeCalendar.js +7 -1
- package/node/DateRangePicker/DateRangePicker.js +0 -5
- package/node/DateRangePicker/DateRangePickerView.js +6 -3
- package/node/DateRangePicker/DateRangePickerViewMobile.js +1 -1
- package/node/DateRangePickerDay/DateRangePickerDay.js +72 -1
- package/node/DesktopDateRangePicker/DesktopDateRangePicker.js +0 -5
- package/node/DesktopNextDateRangePicker/DesktopNextDateRangePicker.js +22 -8
- package/node/MobileDateRangePicker/MobileDateRangePicker.js +0 -5
- package/node/MobileNextDateRangePicker/MobileNextDateRangePicker.js +22 -8
- package/node/MultiInputDateRangeField/MultiInputDateRangeField.js +46 -13
- package/node/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +45 -10
- package/node/MultiInputTimeRangeField/MultiInputTimeRangeField.js +45 -10
- package/node/NextDateRangePicker/NextDateRangePicker.js +16 -2
- package/node/SingleInputDateRangeField/SingleInputDateRangeField.js +110 -5
- package/node/StaticDateRangePicker/StaticDateRangePicker.js +0 -5
- package/node/StaticNextDateRangePicker/StaticNextDateRangePicker.js +20 -6
- package/node/{internal/utils/viewRenderers.js → dateRangeViewRenderers/dateRangeViewRenderers.js} +4 -4
- package/node/dateRangeViewRenderers/index.js +12 -0
- package/node/index.js +13 -1
- package/node/internal/hooks/useDesktopRangePicker/useDesktopRangePicker.js +2 -4
- package/node/internal/hooks/useMobileRangePicker/useMobileRangePicker.js +2 -4
- package/node/internal/hooks/useMultiInputRangeField/useMultiInputDateRangeField.js +7 -1
- package/node/internal/hooks/useMultiInputRangeField/useMultiInputDateTimeRangeField.js +7 -1
- package/node/internal/hooks/useMultiInputRangeField/useMultiInputTimeRangeField.js +7 -1
- package/node/internal/hooks/useRangePickerInputProps.js +5 -6
- package/node/internal/hooks/useStaticRangePicker/useStaticRangePicker.js +0 -2
- package/node/internal/utils/releaseInfo.js +1 -1
- package/node/internal/utils/valueManagers.js +14 -20
- package/node/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
- package/package.json +3 -3
- package/tests/describeRangeValidation/testTextFieldRangeValidation.js +1 -1
- package/internal/utils/viewRenderers.d.ts +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,138 @@
|
|
|
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
|
+
## 6.0.0-alpha.13
|
|
7
|
+
|
|
8
|
+
_Dec 24, 2022_
|
|
9
|
+
|
|
10
|
+
We'd like to offer a big thanks to the 10 contributors who made this release possible. Here are some highlights ✨:
|
|
11
|
+
|
|
12
|
+
- 🚀 New column menu design and API
|
|
13
|
+
- 🌍 Improve Russian (ru-RU) and Korean (ko-KR) locales
|
|
14
|
+
- 📚 Documentation improvements
|
|
15
|
+
- 🐞 Bugfixes
|
|
16
|
+
|
|
17
|
+
### `@mui/x-data-grid@6.0.0-alpha.13` / `@mui/x-data-grid-pro@6.0.0-alpha.13` / `@mui/x-data-grid-premium@6.0.0-alpha.13`
|
|
18
|
+
|
|
19
|
+
#### Breaking changes
|
|
20
|
+
|
|
21
|
+
- New column menu design and API (#6619) MBilalShafi
|
|
22
|
+
|
|
23
|
+
The `currentColumn` prop passed to `components.ColumnMenu` was renamed to `colDef`.
|
|
24
|
+
The `column` prop passed to the items of the column menu was renamed to `colDef`.
|
|
25
|
+
The `DATA_GRID_DEFAULT_SLOTS_COMPONENTS` export has been removed.
|
|
26
|
+
The following components and interfaces were been renamed for consistency:
|
|
27
|
+
|
|
28
|
+
**Community Package:**
|
|
29
|
+
|
|
30
|
+
```diff
|
|
31
|
+
-<GridFilterMenuItem />
|
|
32
|
+
+<GridColumnMenuFilterItem />
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
```diff
|
|
36
|
+
-<HideGridColMenuItem />
|
|
37
|
+
+<GridColumnMenuHideItem />
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```diff
|
|
41
|
+
-<GridColumnsMenuItem />
|
|
42
|
+
+<GridColumnMenuColumnsItem />
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```diff
|
|
46
|
+
-<SortGridMenuItems />
|
|
47
|
+
+<GridColumnMenuSortItem />
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
```diff
|
|
51
|
+
-interface GridFilterItemProps
|
|
52
|
+
+interface GridColumnMenuItemProps
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Pro package:**
|
|
56
|
+
|
|
57
|
+
```diff
|
|
58
|
+
-<GridColumnPinningMenuItems />
|
|
59
|
+
+<GridColumnMenuPinningItem />
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Premium package:**
|
|
63
|
+
|
|
64
|
+
```diff
|
|
65
|
+
-<GridAggregationColumnMenuItem />
|
|
66
|
+
+<GridColumnMenuAggregationItem />
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
```diff
|
|
70
|
+
-<GridRowGroupingColumnMenuItems />
|
|
71
|
+
-<GridRowGroupableColumnMenuItems />
|
|
72
|
+
+<GridColumnMenuGroupingItem />
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
- Improve column definition typing (#7224) @cherniavskii
|
|
76
|
+
|
|
77
|
+
The `GridColumns` type was removed. Use `GridColDef[]` instead.
|
|
78
|
+
The `GridActionsColDef` interface was removed. Use `GridColDef` instead.
|
|
79
|
+
The `GridEnrichedColDef` type was removed. Use `GridColDef` instead.
|
|
80
|
+
The `GridStateColDef` type was removed.
|
|
81
|
+
|
|
82
|
+
If you use it to type `searchPredicate`, use `GridColumnsPanelProps['searchPredicate']` instead.
|
|
83
|
+
If you use it to type `getApplyFilterFn`, `GridFilterOperator['getApplyFilterFn']` can be used as replacement.
|
|
84
|
+
|
|
85
|
+
- Remove GridDensityType enum (#7304) @cherniavskii
|
|
86
|
+
|
|
87
|
+
The `GridDensityTypes` enum was removed. Use `GridDensity` type instead.
|
|
88
|
+
|
|
89
|
+
#### Changes
|
|
90
|
+
|
|
91
|
+
- [DataGrid] Allow disabling of buttons in column panel (#6947) @MBilalShafi
|
|
92
|
+
- [DataGrid] Improve column definition typing (#7224) @cherniavskii
|
|
93
|
+
- [DataGrid] Improve column menu design and API (#6619) @MBilalShafi
|
|
94
|
+
- [DataGrid] Remove `GridDensityType` enum (#7304) @cherniavskii
|
|
95
|
+
- [DataGrid] Remove `rowHeight` and `headerHeight` from state (#7199) @DanailH
|
|
96
|
+
- [DataGrid] Remove column separator to match table styles (#7067) @MBilalShafi
|
|
97
|
+
- [DataGrid] Update Russian (ru-RU) locale (#7220) @VeceluXa
|
|
98
|
+
- [DataGridPro] Use row ID as `key` of the detail panels (#7302) @m4theushw
|
|
99
|
+
- [DataGridPremium] Fix `exceljs` import with parcel (#7284) @alexfauquette
|
|
100
|
+
|
|
101
|
+
### `@mui/x-date-pickers@6.0.0-alpha.13` / `@mui/x-date-pickers-pro@6.0.0-alpha.13`
|
|
102
|
+
|
|
103
|
+
#### Breaking changes
|
|
104
|
+
|
|
105
|
+
- Require Luxon 3.0.2 or higher (#7249) @flaviendelangle
|
|
106
|
+
|
|
107
|
+
`AdapterLuxon` now requires `luxon` in version `3.0.2` or higher in order to work.
|
|
108
|
+
|
|
109
|
+
Take a look at the [Upgrading Luxon](https://moment.github.io/luxon/#/upgrading) guide if you are using an older version.
|
|
110
|
+
|
|
111
|
+
#### Changes
|
|
112
|
+
|
|
113
|
+
- [DateRangePicker] Fix to propagate `disabled` and `readOnly` on multi input picker (#7135) @LukasTy
|
|
114
|
+
- [fields] Fix multi input fields root element props order and types (#7225) @LukasTy
|
|
115
|
+
- [fields] Support escaped characters (#7184) @flaviendelangle
|
|
116
|
+
- [pickers] Allow to define custom view renderers on the pickers (#7176) @flaviendelangle
|
|
117
|
+
- [pickers] Avoid running validation methods several times in `DateCalendar` (#7247) @flaviendelangle
|
|
118
|
+
- [pickers] Improve Korean (ko-KR) locale (#7266) @hanbin9775
|
|
119
|
+
- [pickers] Require Luxon 3.0.2 or higher (#7249) @flaviendelangle
|
|
120
|
+
- [pickers] Rework view internals (#7097) @flaviendelangle
|
|
121
|
+
|
|
122
|
+
### `@mui/x-codemod@6.0.0-alpha.13`
|
|
123
|
+
|
|
124
|
+
#### Changes
|
|
125
|
+
|
|
126
|
+
- [codemod] New codemod for view component renaming (#7264) @flaviendelangle
|
|
127
|
+
|
|
128
|
+
### Docs
|
|
129
|
+
|
|
130
|
+
- [docs] Fix some selectors not being documented (#7218) @cherniavskii
|
|
131
|
+
- [docs] New page for `DateCalendar` (#7053) @flaviendelangle
|
|
132
|
+
- [docs] Split selection docs (#7213) @m4theushw
|
|
133
|
+
|
|
134
|
+
### Core
|
|
135
|
+
|
|
136
|
+
- [core] Fix API demos callout spacing @oliviertassinari
|
|
137
|
+
|
|
6
138
|
## 6.0.0-alpha.12
|
|
7
139
|
|
|
8
140
|
_Dec 16, 2022_
|
|
@@ -383,7 +383,7 @@ const DateRangeCalendar = /*#__PURE__*/React.forwardRef(function DateRangeCalend
|
|
|
383
383
|
className: classes.monthContainer,
|
|
384
384
|
children: [calendars === 1 ? /*#__PURE__*/_jsx(PickersCalendarHeader, {
|
|
385
385
|
views: ['day'],
|
|
386
|
-
|
|
386
|
+
view: 'day',
|
|
387
387
|
currentMonth: calendarState.currentMonth,
|
|
388
388
|
onMonthChange: (newMonth, direction) => handleChangeMonth({
|
|
389
389
|
newMonth,
|
|
@@ -438,6 +438,12 @@ process.env.NODE_ENV !== "production" ? DateRangeCalendar.propTypes = {
|
|
|
438
438
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
439
439
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
440
440
|
// ----------------------------------------------------------------------
|
|
441
|
+
/**
|
|
442
|
+
* If `true`, the main element is focused during the first mount.
|
|
443
|
+
* This main element is:
|
|
444
|
+
* - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
|
|
445
|
+
* - the `input` element if there is a field rendered.
|
|
446
|
+
*/
|
|
441
447
|
autoFocus: PropTypes.bool,
|
|
442
448
|
/**
|
|
443
449
|
* The number of calendars to render.
|
|
@@ -2,7 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { SxProps } from '@mui/system';
|
|
3
3
|
import { SlotComponentProps } from '@mui/base';
|
|
4
4
|
import { Theme } from '@mui/material/styles';
|
|
5
|
-
import { BaseDateValidationProps, DefaultizedProps, ExportedDayCalendarProps, DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps, PickerSelectionState, PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps, DayCalendarProps } from '@mui/x-date-pickers/internals';
|
|
5
|
+
import { BaseDateValidationProps, DefaultizedProps, ExportedDayCalendarProps, DayCalendarSlotsComponent, DayCalendarSlotsComponentsProps, PickersArrowSwitcherSlotsComponent, PickersArrowSwitcherSlotsComponentsProps, PickerSelectionState, PickersCalendarHeaderSlotsComponent, PickersCalendarHeaderSlotsComponentsProps, DayCalendarProps, ExportedUseViewsOptions } from '@mui/x-date-pickers/internals';
|
|
6
6
|
import { DateRange, RangePositionProps, DayRangeValidationProps } from '../internal/models';
|
|
7
7
|
import { DateRangeCalendarClasses } from './dateRangeCalendarClasses';
|
|
8
8
|
import { DateRangePickerDay, DateRangePickerDayProps } from '../DateRangePickerDay';
|
|
@@ -21,41 +21,7 @@ export interface DateRangeCalendarSlotsComponentsProps<TDate> extends PickersArr
|
|
|
21
21
|
selected: boolean;
|
|
22
22
|
}>;
|
|
23
23
|
}
|
|
24
|
-
export interface
|
|
25
|
-
/**
|
|
26
|
-
* The selected value.
|
|
27
|
-
* Used when the component is controlled.
|
|
28
|
-
*/
|
|
29
|
-
value?: DateRange<TDate>;
|
|
30
|
-
/**
|
|
31
|
-
* The default selected value.
|
|
32
|
-
* Used when the component is not controlled.
|
|
33
|
-
*/
|
|
34
|
-
defaultValue?: DateRange<TDate>;
|
|
35
|
-
/**
|
|
36
|
-
* Callback fired when the value changes.
|
|
37
|
-
* @template TDate
|
|
38
|
-
* @param {DateRange<TDate>} value The new value.
|
|
39
|
-
* @param {PickerSelectionState | undefined} selectionState Indicates if the date range selection is complete.
|
|
40
|
-
*/
|
|
41
|
-
onChange?: (value: DateRange<TDate>, selectionState?: PickerSelectionState) => void;
|
|
42
|
-
autoFocus?: boolean;
|
|
43
|
-
className?: string;
|
|
44
|
-
classes?: Partial<DateRangeCalendarClasses>;
|
|
45
|
-
/**
|
|
46
|
-
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
47
|
-
*/
|
|
48
|
-
sx?: SxProps<Theme>;
|
|
49
|
-
/**
|
|
50
|
-
* Overrideable components.
|
|
51
|
-
* @default {}
|
|
52
|
-
*/
|
|
53
|
-
components?: DateRangeCalendarSlotsComponent<TDate>;
|
|
54
|
-
/**
|
|
55
|
-
* The props used for each component slot.
|
|
56
|
-
* @default {}
|
|
57
|
-
*/
|
|
58
|
-
componentsProps?: DateRangeCalendarSlotsComponentsProps<TDate>;
|
|
24
|
+
export interface ExportedDateRangeCalendarProps<TDate> extends ExportedDayCalendarProps<TDate>, BaseDateValidationProps<TDate>, DayRangeValidationProps<TDate>, Pick<ExportedUseViewsOptions<'day'>, 'autoFocus'> {
|
|
59
25
|
/**
|
|
60
26
|
* If `true`, after selecting `start` date calendar will not automatically switch to the month of `end` date.
|
|
61
27
|
* @default false
|
|
@@ -98,8 +64,42 @@ export interface DateRangeCalendarProps<TDate> extends ExportedDayCalendarProps<
|
|
|
98
64
|
*/
|
|
99
65
|
disableDragEditing?: boolean;
|
|
100
66
|
}
|
|
67
|
+
export interface DateRangeCalendarProps<TDate> extends ExportedDateRangeCalendarProps<TDate>, Partial<RangePositionProps> {
|
|
68
|
+
/**
|
|
69
|
+
* The selected value.
|
|
70
|
+
* Used when the component is controlled.
|
|
71
|
+
*/
|
|
72
|
+
value?: DateRange<TDate>;
|
|
73
|
+
/**
|
|
74
|
+
* The default selected value.
|
|
75
|
+
* Used when the component is not controlled.
|
|
76
|
+
*/
|
|
77
|
+
defaultValue?: DateRange<TDate>;
|
|
78
|
+
/**
|
|
79
|
+
* Callback fired when the value changes.
|
|
80
|
+
* @template TDate
|
|
81
|
+
* @param {DateRange<TDate>} value The new value.
|
|
82
|
+
* @param {PickerSelectionState | undefined} selectionState Indicates if the date range selection is complete.
|
|
83
|
+
*/
|
|
84
|
+
onChange?: (value: DateRange<TDate>, selectionState?: PickerSelectionState) => void;
|
|
85
|
+
className?: string;
|
|
86
|
+
classes?: Partial<DateRangeCalendarClasses>;
|
|
87
|
+
/**
|
|
88
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
89
|
+
*/
|
|
90
|
+
sx?: SxProps<Theme>;
|
|
91
|
+
/**
|
|
92
|
+
* Overrideable components.
|
|
93
|
+
* @default {}
|
|
94
|
+
*/
|
|
95
|
+
components?: DateRangeCalendarSlotsComponent<TDate>;
|
|
96
|
+
/**
|
|
97
|
+
* The props used for each component slot.
|
|
98
|
+
* @default {}
|
|
99
|
+
*/
|
|
100
|
+
componentsProps?: DateRangeCalendarSlotsComponentsProps<TDate>;
|
|
101
|
+
}
|
|
101
102
|
export interface DateRangeCalendarOwnerState<TDate> extends DateRangeCalendarProps<TDate> {
|
|
102
103
|
isDragging: boolean;
|
|
103
104
|
}
|
|
104
105
|
export type DateRangeCalendarDefaultizedProps<TDate> = DefaultizedProps<DateRangeCalendarProps<TDate>, 'reduceAnimations' | 'calendars' | 'disableDragEditing' | keyof BaseDateValidationProps<TDate>>;
|
|
105
|
-
export type ExportedDateRangeCalendarProps<TDate> = Omit<DateRangeCalendarProps<TDate>, 'defaultValue' | 'value' | 'onChange' | 'changeView' | 'slideDirection' | 'currentMonth' | 'className' | 'classes' | 'components' | 'componentsProps' | 'rangePosition' | 'onRangePositionChange'>;
|
|
@@ -234,11 +234,6 @@ process.env.NODE_ENV !== "production" ? DateRangePicker.propTypes = {
|
|
|
234
234
|
* Use in controlled mode (see open).
|
|
235
235
|
*/
|
|
236
236
|
onOpen: PropTypes.func,
|
|
237
|
-
/**
|
|
238
|
-
* Callback fired on view change.
|
|
239
|
-
* @param {DateView} view The new view.
|
|
240
|
-
*/
|
|
241
|
-
onViewChange: PropTypes.func,
|
|
242
237
|
/**
|
|
243
238
|
* Control the popup or dialog open state.
|
|
244
239
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { ExportedDateCalendarProps, PickerStatePickerProps, BaseDateValidationProps, DayValidationProps, ExportedBaseToolbarProps } from '@mui/x-date-pickers/internals';
|
|
2
|
+
import { ExportedDateCalendarProps, PickerStatePickerProps, BaseDateValidationProps, DayValidationProps, ExportedBaseToolbarProps, ExportedUseViewsOptions } from '@mui/x-date-pickers/internals';
|
|
3
3
|
import { DateRange, RangePositionProps } from '../internal/models/range';
|
|
4
4
|
import { DayRangeValidationProps } from '../internal/models/dateRange';
|
|
5
5
|
import { DateRangePickerViewMobileSlotsComponent, DateRangePickerViewMobileSlotsComponentsProps } from './DateRangePickerViewMobile';
|
|
@@ -16,7 +16,7 @@ export interface DateRangePickerViewSlotsComponent<TDate> extends DateRangePicke
|
|
|
16
16
|
export interface DateRangePickerViewSlotsComponentsProps<TDate> extends DateRangePickerViewMobileSlotsComponentsProps<TDate> {
|
|
17
17
|
toolbar?: ExportedBaseToolbarProps;
|
|
18
18
|
}
|
|
19
|
-
export interface ExportedDateRangePickerViewProps<TDate> extends ExportedDateRangePickerViewDesktopProps, DayRangeValidationProps<TDate>, Omit<ExportedDateCalendarProps<TDate>, 'onYearChange' | keyof BaseDateValidationProps<TDate> | keyof DayValidationProps<TDate>> {
|
|
19
|
+
export interface ExportedDateRangePickerViewProps<TDate> extends ExportedDateRangePickerViewDesktopProps, DayRangeValidationProps<TDate>, Omit<ExportedDateCalendarProps<TDate>, 'value' | 'defaultValue' | 'onChange' | 'onYearChange' | keyof BaseDateValidationProps<TDate> | keyof DayValidationProps<TDate>> {
|
|
20
20
|
/**
|
|
21
21
|
* Overrideable components.
|
|
22
22
|
* @default {}
|
|
@@ -41,7 +41,7 @@ export interface ExportedDateRangePickerViewProps<TDate> extends ExportedDateRan
|
|
|
41
41
|
*/
|
|
42
42
|
className?: string;
|
|
43
43
|
}
|
|
44
|
-
interface DateRangePickerViewProps<TDate> extends RangePositionProps, ExportedDateRangePickerViewProps<TDate>, PickerStatePickerProps<DateRange<TDate>>, Required<BaseDateValidationProps<TDate
|
|
44
|
+
interface DateRangePickerViewProps<TDate> extends RangePositionProps, ExportedDateRangePickerViewProps<TDate>, PickerStatePickerProps<DateRange<TDate>>, Required<BaseDateValidationProps<TDate>>, Pick<ExportedUseViewsOptions<'day'>, 'onFocusedViewChange'> {
|
|
45
45
|
calendars: 1 | 2 | 3;
|
|
46
46
|
open: boolean;
|
|
47
47
|
DateInputProps: DateRangePickerInputProps<TDate>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
2
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["calendars", "className", "value", "DateInputProps", "defaultCalendarMonth", "disableAutoMonthSwitching", "disableFuture", "disableHighlightToday", "disablePast", "isMobileKeyboardViewOpen", "maxDate", "minDate", "onDateChange", "onMonthChange", "open", "reduceAnimations", "rangePosition", "onRangePositionChange", "shouldDisableDate", "showToolbar", "toggleMobileKeyboardView", "components", "componentsProps"];
|
|
3
|
+
const _excluded = ["calendars", "className", "value", "DateInputProps", "defaultCalendarMonth", "disableAutoMonthSwitching", "disableFuture", "disableHighlightToday", "disablePast", "isMobileKeyboardViewOpen", "maxDate", "minDate", "onDateChange", "onMonthChange", "open", "reduceAnimations", "rangePosition", "onRangePositionChange", "shouldDisableDate", "showToolbar", "toggleMobileKeyboardView", "components", "componentsProps", "onFocusedViewChange"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { Watermark } from '@mui/x-license-pro';
|
|
@@ -40,7 +40,8 @@ function DateRangePickerViewRaw(props) {
|
|
|
40
40
|
showToolbar,
|
|
41
41
|
toggleMobileKeyboardView,
|
|
42
42
|
components,
|
|
43
|
-
componentsProps
|
|
43
|
+
componentsProps,
|
|
44
|
+
onFocusedViewChange
|
|
44
45
|
} = props,
|
|
45
46
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
46
47
|
const utils = useUtils();
|
|
@@ -123,7 +124,9 @@ function DateRangePickerViewRaw(props) {
|
|
|
123
124
|
components,
|
|
124
125
|
componentsProps,
|
|
125
126
|
shouldDisableDate: wrappedShouldDisableDate
|
|
126
|
-
}, calendarState,
|
|
127
|
+
}, calendarState, {
|
|
128
|
+
onFocusedViewChange: onFocusedViewChange ? newHasFocus => onFocusedViewChange('day', newHasFocus) : undefined
|
|
129
|
+
}, other);
|
|
127
130
|
switch (wrapperVariant) {
|
|
128
131
|
case 'desktop':
|
|
129
132
|
{
|
|
@@ -66,7 +66,7 @@ export function DateRangePickerViewMobile(props) {
|
|
|
66
66
|
maxDate: maxDateWithDisabled,
|
|
67
67
|
minDate: minDateWithDisabled,
|
|
68
68
|
onMonthChange: changeMonth,
|
|
69
|
-
|
|
69
|
+
view: "day",
|
|
70
70
|
views: onlyDayView,
|
|
71
71
|
disabled: disabled
|
|
72
72
|
}, other)), /*#__PURE__*/_jsx(DayCalendar, _extends({}, other, {
|
|
@@ -196,10 +196,26 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
|
|
|
196
196
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
197
197
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
198
198
|
// ----------------------------------------------------------------------
|
|
199
|
+
/**
|
|
200
|
+
* A ref for imperative actions.
|
|
201
|
+
* It currently only supports `focusVisible()` action.
|
|
202
|
+
*/
|
|
203
|
+
action: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
204
|
+
current: PropTypes.shape({
|
|
205
|
+
focusVisible: PropTypes.func.isRequired
|
|
206
|
+
})
|
|
207
|
+
})]),
|
|
208
|
+
/**
|
|
209
|
+
* If `true`, the ripples are centered.
|
|
210
|
+
* They won't start at the cursor interaction position.
|
|
211
|
+
* @default false
|
|
212
|
+
*/
|
|
213
|
+
centerRipple: PropTypes.bool,
|
|
199
214
|
/**
|
|
200
215
|
* Override or extend the styles applied to the component.
|
|
201
216
|
*/
|
|
202
217
|
classes: PropTypes.object,
|
|
218
|
+
className: PropTypes.string,
|
|
203
219
|
/**
|
|
204
220
|
* The date to show.
|
|
205
221
|
*/
|
|
@@ -219,6 +235,33 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
|
|
|
219
235
|
* @default false
|
|
220
236
|
*/
|
|
221
237
|
disableMargin: PropTypes.bool,
|
|
238
|
+
/**
|
|
239
|
+
* If `true`, the ripple effect is disabled.
|
|
240
|
+
*
|
|
241
|
+
* ⚠️ Without a ripple there is no styling for :focus-visible by default. Be sure
|
|
242
|
+
* to highlight the element by applying separate styles with the `.Mui-focusVisible` class.
|
|
243
|
+
* @default false
|
|
244
|
+
*/
|
|
245
|
+
disableRipple: PropTypes.bool,
|
|
246
|
+
/**
|
|
247
|
+
* If `true`, the touch ripple effect is disabled.
|
|
248
|
+
* @default false
|
|
249
|
+
*/
|
|
250
|
+
disableTouchRipple: PropTypes.bool,
|
|
251
|
+
/**
|
|
252
|
+
* If `true`, the base button will have a keyboard focus ripple.
|
|
253
|
+
* @default false
|
|
254
|
+
*/
|
|
255
|
+
focusRipple: PropTypes.bool,
|
|
256
|
+
/**
|
|
257
|
+
* This prop can help identify which element has keyboard focus.
|
|
258
|
+
* The class name will be applied when the element gains the focus through keyboard interaction.
|
|
259
|
+
* It's a polyfill for the [CSS :focus-visible selector](https://drafts.csswg.org/selectors-4/#the-focus-visible-pseudo).
|
|
260
|
+
* The rationale for using this feature [is explained here](https://github.com/WICG/focus-visible/blob/HEAD/explainer.md).
|
|
261
|
+
* A [polyfill can be used](https://github.com/WICG/focus-visible) to apply a `focus-visible` class to other components
|
|
262
|
+
* if needed.
|
|
263
|
+
*/
|
|
264
|
+
focusVisibleClassName: PropTypes.string,
|
|
222
265
|
isAnimating: PropTypes.bool,
|
|
223
266
|
/**
|
|
224
267
|
* Set to `true` if the `day` is the end of a highlighted date range.
|
|
@@ -249,6 +292,11 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
|
|
|
249
292
|
*/
|
|
250
293
|
isVisuallySelected: PropTypes.bool,
|
|
251
294
|
onDaySelect: PropTypes.func.isRequired,
|
|
295
|
+
/**
|
|
296
|
+
* Callback fired when the component is focused with a keyboard.
|
|
297
|
+
* We trigger a `onFocus` callback too.
|
|
298
|
+
*/
|
|
299
|
+
onFocusVisible: PropTypes.func,
|
|
252
300
|
onMouseEnter: PropTypes.func,
|
|
253
301
|
/**
|
|
254
302
|
* If `true`, day is outside of month and will be hidden.
|
|
@@ -264,11 +312,34 @@ process.env.NODE_ENV !== "production" ? DateRangePickerDayRaw.propTypes = {
|
|
|
264
312
|
* @default false
|
|
265
313
|
*/
|
|
266
314
|
showDaysOutsideCurrentMonth: PropTypes.bool,
|
|
315
|
+
style: PropTypes.object,
|
|
316
|
+
/**
|
|
317
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
318
|
+
*/
|
|
319
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
|
|
320
|
+
/**
|
|
321
|
+
* @default 0
|
|
322
|
+
*/
|
|
323
|
+
tabIndex: PropTypes.number,
|
|
267
324
|
/**
|
|
268
325
|
* If `true`, renders as today date.
|
|
269
326
|
* @default false
|
|
270
327
|
*/
|
|
271
|
-
today: PropTypes.bool
|
|
328
|
+
today: PropTypes.bool,
|
|
329
|
+
/**
|
|
330
|
+
* Props applied to the `TouchRipple` element.
|
|
331
|
+
*/
|
|
332
|
+
TouchRippleProps: PropTypes.object,
|
|
333
|
+
/**
|
|
334
|
+
* A ref that points to the `TouchRipple` element.
|
|
335
|
+
*/
|
|
336
|
+
touchRippleRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
|
|
337
|
+
current: PropTypes.shape({
|
|
338
|
+
pulsate: PropTypes.func.isRequired,
|
|
339
|
+
start: PropTypes.func.isRequired,
|
|
340
|
+
stop: PropTypes.func.isRequired
|
|
341
|
+
})
|
|
342
|
+
})])
|
|
272
343
|
} : void 0;
|
|
273
344
|
|
|
274
345
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { SxProps } from '@mui/system';
|
|
2
3
|
import { DesktopWrapperProps, DesktopWrapperSlotsComponent, DesktopWrapperSlotsComponentsProps, DateInputSlotsComponent } from '@mui/x-date-pickers/internals';
|
|
3
4
|
import { BaseDateRangePickerProps, BaseDateRangePickerSlotsComponent, BaseDateRangePickerSlotsComponentsProps } from '../DateRangePicker/shared';
|
|
4
5
|
export interface DesktopDateRangePickerSlotsComponent<TDate> extends BaseDateRangePickerSlotsComponent<TDate>, DesktopWrapperSlotsComponent, DateInputSlotsComponent {
|
|
@@ -16,6 +17,10 @@ export interface DesktopDateRangePickerProps<TDate> extends BaseDateRangePickerP
|
|
|
16
17
|
* @default {}
|
|
17
18
|
*/
|
|
18
19
|
componentsProps?: DesktopDateRangePickerSlotsComponentsProps<TDate>;
|
|
20
|
+
/**
|
|
21
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
22
|
+
*/
|
|
23
|
+
sx?: SxProps;
|
|
19
24
|
}
|
|
20
25
|
type DesktopDateRangePickerComponent = (<TDate>(props: DesktopDateRangePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => JSX.Element) & {
|
|
21
26
|
propTypes?: any;
|
|
@@ -248,11 +248,6 @@ process.env.NODE_ENV !== "production" ? DesktopDateRangePicker.propTypes = {
|
|
|
248
248
|
* Use in controlled mode (see open).
|
|
249
249
|
*/
|
|
250
250
|
onOpen: PropTypes.func,
|
|
251
|
-
/**
|
|
252
|
-
* Callback fired on view change.
|
|
253
|
-
* @param {DateView} view The new view.
|
|
254
|
-
*/
|
|
255
|
-
onViewChange: PropTypes.func,
|
|
256
251
|
/**
|
|
257
252
|
* Control the popup or dialog open state.
|
|
258
253
|
*/
|
|
@@ -7,13 +7,10 @@ import { extractValidationProps } from '@mui/x-date-pickers/internals';
|
|
|
7
7
|
import { resolveComponentProps } from '@mui/base/utils';
|
|
8
8
|
import { rangeValueManager } from '../internal/utils/valueManagers';
|
|
9
9
|
import { useNextDateRangePickerDefaultizedProps } from '../NextDateRangePicker/shared';
|
|
10
|
-
import {
|
|
10
|
+
import { renderDateRangeViewCalendar } from '../dateRangeViewRenderers';
|
|
11
11
|
import { Unstable_MultiInputDateRangeField as MultiInputDateRangeField } from '../MultiInputDateRangeField';
|
|
12
|
-
import {
|
|
12
|
+
import { useDesktopRangePicker } from '../internal/hooks/useDesktopRangePicker';
|
|
13
13
|
import { validateDateRange } from '../internal/hooks/validation/useDateRangeValidation';
|
|
14
|
-
const VIEW_LOOKUP = {
|
|
15
|
-
day: renderDateRangeView
|
|
16
|
-
};
|
|
17
14
|
const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function DesktopNextDateRangePicker(inProps, ref) {
|
|
18
15
|
var _defaultizedProps$cal, _defaultizedProps$sho;
|
|
19
16
|
// Props with the default values common to all date time pickers
|
|
@@ -23,7 +20,11 @@ const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
23
20
|
sx
|
|
24
21
|
} = _useNextDateRangePick,
|
|
25
22
|
defaultizedProps = _objectWithoutPropertiesLoose(_useNextDateRangePick, _excluded);
|
|
23
|
+
const viewRenderers = _extends({
|
|
24
|
+
day: renderDateRangeViewCalendar
|
|
25
|
+
}, defaultizedProps.viewRenderers);
|
|
26
26
|
const props = _extends({}, defaultizedProps, {
|
|
27
|
+
viewRenderers,
|
|
27
28
|
calendars: (_defaultizedProps$cal = defaultizedProps.calendars) != null ? _defaultizedProps$cal : 2,
|
|
28
29
|
views: ['day'],
|
|
29
30
|
openTo: 'day',
|
|
@@ -47,7 +48,6 @@ const DesktopNextDateRangePicker = /*#__PURE__*/React.forwardRef(function Deskto
|
|
|
47
48
|
} = useDesktopRangePicker({
|
|
48
49
|
props,
|
|
49
50
|
valueManager: rangeValueManager,
|
|
50
|
-
viewLookup: VIEW_LOOKUP,
|
|
51
51
|
validator: validateDateRange
|
|
52
52
|
});
|
|
53
53
|
return renderPicker();
|
|
@@ -57,6 +57,12 @@ DesktopNextDateRangePicker.propTypes = {
|
|
|
57
57
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
58
58
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
59
59
|
// ----------------------------------------------------------------------
|
|
60
|
+
/**
|
|
61
|
+
* If `true`, the main element is focused during the first mount.
|
|
62
|
+
* This main element is:
|
|
63
|
+
* - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
|
|
64
|
+
* - the `input` element if there is a field rendered.
|
|
65
|
+
*/
|
|
60
66
|
autoFocus: PropTypes.bool,
|
|
61
67
|
/**
|
|
62
68
|
* The number of calendars to render on **desktop**.
|
|
@@ -237,7 +243,7 @@ DesktopNextDateRangePicker.propTypes = {
|
|
|
237
243
|
* 4. If `null` is provided, no section will be selected
|
|
238
244
|
* If not provided, the selected sections will be handled internally.
|
|
239
245
|
*/
|
|
240
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
|
|
246
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
|
|
241
247
|
endIndex: PropTypes.number.isRequired,
|
|
242
248
|
startIndex: PropTypes.number.isRequired
|
|
243
249
|
})]),
|
|
@@ -267,6 +273,14 @@ DesktopNextDateRangePicker.propTypes = {
|
|
|
267
273
|
* The selected value.
|
|
268
274
|
* Used when the component is controlled.
|
|
269
275
|
*/
|
|
270
|
-
value: PropTypes.arrayOf(PropTypes.any)
|
|
276
|
+
value: PropTypes.arrayOf(PropTypes.any),
|
|
277
|
+
/**
|
|
278
|
+
* Define custom view renderers for each section.
|
|
279
|
+
* If `null`, the section will only have field editing.
|
|
280
|
+
* If `undefined`, internally defined view will be the used.
|
|
281
|
+
*/
|
|
282
|
+
viewRenderers: PropTypes.shape({
|
|
283
|
+
day: PropTypes.func
|
|
284
|
+
})
|
|
271
285
|
};
|
|
272
286
|
export { DesktopNextDateRangePicker };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
+
import { SxProps } from '@mui/system';
|
|
2
3
|
import { MobileWrapperProps, MobileWrapperSlotsComponent, MobileWrapperSlotsComponentsProps, DateInputSlotsComponent } from '@mui/x-date-pickers/internals';
|
|
3
4
|
import { BaseDateRangePickerProps, BaseDateRangePickerSlotsComponent, BaseDateRangePickerSlotsComponentsProps } from '../DateRangePicker/shared';
|
|
4
5
|
export interface MobileDateRangePickerSlotsComponent<TDate> extends BaseDateRangePickerSlotsComponent<TDate>, MobileWrapperSlotsComponent, DateInputSlotsComponent {
|
|
@@ -16,6 +17,10 @@ export interface MobileDateRangePickerProps<TDate> extends BaseDateRangePickerPr
|
|
|
16
17
|
* @default {}
|
|
17
18
|
*/
|
|
18
19
|
componentsProps?: MobileDateRangePickerSlotsComponentsProps<TDate>;
|
|
20
|
+
/**
|
|
21
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
22
|
+
*/
|
|
23
|
+
sx?: SxProps;
|
|
19
24
|
}
|
|
20
25
|
type MobileDateRangePickerComponent = (<TDate>(props: MobileDateRangePickerProps<TDate> & React.RefAttributes<HTMLDivElement>) => JSX.Element) & {
|
|
21
26
|
propTypes?: any;
|
|
@@ -255,11 +255,6 @@ process.env.NODE_ENV !== "production" ? MobileDateRangePicker.propTypes = {
|
|
|
255
255
|
* Use in controlled mode (see open).
|
|
256
256
|
*/
|
|
257
257
|
onOpen: PropTypes.func,
|
|
258
|
-
/**
|
|
259
|
-
* Callback fired on view change.
|
|
260
|
-
* @param {DateView} view The new view.
|
|
261
|
-
*/
|
|
262
|
-
onViewChange: PropTypes.func,
|
|
263
258
|
/**
|
|
264
259
|
* Control the popup or dialog open state.
|
|
265
260
|
*/
|
|
@@ -7,13 +7,10 @@ import { extractValidationProps } from '@mui/x-date-pickers/internals';
|
|
|
7
7
|
import { resolveComponentProps } from '@mui/base/utils';
|
|
8
8
|
import { rangeValueManager } from '../internal/utils/valueManagers';
|
|
9
9
|
import { useNextDateRangePickerDefaultizedProps } from '../NextDateRangePicker/shared';
|
|
10
|
-
import {
|
|
10
|
+
import { renderDateRangeViewCalendar } from '../dateRangeViewRenderers';
|
|
11
11
|
import { Unstable_MultiInputDateRangeField as MultiInputDateRangeField } from '../MultiInputDateRangeField';
|
|
12
|
-
import {
|
|
12
|
+
import { useMobileRangePicker } from '../internal/hooks/useMobileRangePicker';
|
|
13
13
|
import { validateDateRange } from '../internal/hooks/validation/useDateRangeValidation';
|
|
14
|
-
const VIEW_LOOKUP = {
|
|
15
|
-
day: renderDateRangeView
|
|
16
|
-
};
|
|
17
14
|
const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileNextDateRangePicker(inProps, ref) {
|
|
18
15
|
var _defaultizedProps$cal, _defaultizedProps$sho;
|
|
19
16
|
// Props with the default values common to all date time pickers
|
|
@@ -23,7 +20,11 @@ const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileN
|
|
|
23
20
|
sx
|
|
24
21
|
} = _useNextDateRangePick,
|
|
25
22
|
defaultizedProps = _objectWithoutPropertiesLoose(_useNextDateRangePick, _excluded);
|
|
23
|
+
const viewRenderers = _extends({
|
|
24
|
+
day: renderDateRangeViewCalendar
|
|
25
|
+
}, defaultizedProps.viewRenderers);
|
|
26
26
|
const props = _extends({}, defaultizedProps, {
|
|
27
|
+
viewRenderers,
|
|
27
28
|
calendars: (_defaultizedProps$cal = defaultizedProps.calendars) != null ? _defaultizedProps$cal : 1,
|
|
28
29
|
views: ['day'],
|
|
29
30
|
openTo: 'day',
|
|
@@ -47,7 +48,6 @@ const MobileNextDateRangePicker = /*#__PURE__*/React.forwardRef(function MobileN
|
|
|
47
48
|
} = useMobileRangePicker({
|
|
48
49
|
props,
|
|
49
50
|
valueManager: rangeValueManager,
|
|
50
|
-
viewLookup: VIEW_LOOKUP,
|
|
51
51
|
validator: validateDateRange
|
|
52
52
|
});
|
|
53
53
|
return renderPicker();
|
|
@@ -57,6 +57,12 @@ MobileNextDateRangePicker.propTypes = {
|
|
|
57
57
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
58
58
|
// | To update them edit the TypeScript types and run "yarn proptypes" |
|
|
59
59
|
// ----------------------------------------------------------------------
|
|
60
|
+
/**
|
|
61
|
+
* If `true`, the main element is focused during the first mount.
|
|
62
|
+
* This main element is:
|
|
63
|
+
* - the element chosen by the visible view if any (i.e: the selected day on the `day` view).
|
|
64
|
+
* - the `input` element if there is a field rendered.
|
|
65
|
+
*/
|
|
60
66
|
autoFocus: PropTypes.bool,
|
|
61
67
|
/**
|
|
62
68
|
* The number of calendars to render on **desktop**.
|
|
@@ -237,7 +243,7 @@ MobileNextDateRangePicker.propTypes = {
|
|
|
237
243
|
* 4. If `null` is provided, no section will be selected
|
|
238
244
|
* If not provided, the selected sections will be handled internally.
|
|
239
245
|
*/
|
|
240
|
-
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
|
|
246
|
+
selectedSections: PropTypes.oneOfType([PropTypes.oneOf(['all', 'day', 'hours', 'meridiem', 'minutes', 'month', 'seconds', 'year']), PropTypes.number, PropTypes.shape({
|
|
241
247
|
endIndex: PropTypes.number.isRequired,
|
|
242
248
|
startIndex: PropTypes.number.isRequired
|
|
243
249
|
})]),
|
|
@@ -267,6 +273,14 @@ MobileNextDateRangePicker.propTypes = {
|
|
|
267
273
|
* The selected value.
|
|
268
274
|
* Used when the component is controlled.
|
|
269
275
|
*/
|
|
270
|
-
value: PropTypes.arrayOf(PropTypes.any)
|
|
276
|
+
value: PropTypes.arrayOf(PropTypes.any),
|
|
277
|
+
/**
|
|
278
|
+
* Define custom view renderers for each section.
|
|
279
|
+
* If `null`, the section will only have field editing.
|
|
280
|
+
* If `undefined`, internally defined view will be the used.
|
|
281
|
+
*/
|
|
282
|
+
viewRenderers: PropTypes.shape({
|
|
283
|
+
day: PropTypes.func
|
|
284
|
+
})
|
|
271
285
|
};
|
|
272
286
|
export { MobileNextDateRangePicker };
|