@mui/x-date-pickers-pro 8.5.2 → 8.6.0
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 +203 -11
- package/DateRangeCalendar/DateRangeCalendar.js +37 -36
- package/DateRangeCalendar/useDragRange.d.ts +2 -2
- package/DateRangeCalendar/useDragRange.js +17 -17
- package/DateRangePicker/DateRangePickerToolbar.js +4 -4
- package/DateRangePickerDay/DateRangePickerDay.js +5 -4
- package/DateRangePickerDay2/DateRangePickerDay2.js +5 -4
- package/DateTimeRangePicker/DateTimeRangePicker.js +1 -1
- package/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +6 -6
- package/DateTimeRangePicker/DateTimeRangePickerToolbar.js +3 -3
- package/DateTimeRangePicker/shared.js +3 -2
- package/DesktopDateRangePicker/DesktopDateRangePicker.js +4 -4
- package/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +9 -8
- package/DesktopTimeRangePicker/DesktopTimeRangePicker.js +4 -3
- package/MobileDateRangePicker/MobileDateRangePicker.js +5 -5
- package/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +6 -5
- package/MobileTimeRangePicker/MobileTimeRangePicker.js +6 -5
- package/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +1 -1
- package/MultiInputTimeRangeField/MultiInputTimeRangeField.js +1 -1
- package/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +4 -4
- package/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +1 -1
- package/SingleInputTimeRangeField/SingleInputTimeRangeField.js +1 -1
- package/TimeRangePicker/TimeRangePicker.js +1 -1
- package/TimeRangePicker/TimeRangePickerTimeWrapper.js +6 -6
- package/TimeRangePicker/TimeRangePickerToolbar.js +7 -7
- package/TimeRangePicker/shared.js +3 -2
- package/esm/DateRangeCalendar/DateRangeCalendar.js +38 -37
- package/esm/DateRangeCalendar/useDragRange.d.ts +2 -2
- package/esm/DateRangeCalendar/useDragRange.js +17 -17
- package/esm/DateRangePicker/DateRangePickerToolbar.js +6 -6
- package/esm/DateRangePickerDay/DateRangePickerDay.js +6 -5
- package/esm/DateRangePickerDay2/DateRangePickerDay2.js +6 -5
- package/esm/DateTimeRangePicker/DateTimeRangePicker.js +1 -1
- package/esm/DateTimeRangePicker/DateTimeRangePickerTimeWrapper.js +4 -4
- package/esm/DateTimeRangePicker/DateTimeRangePickerToolbar.js +5 -5
- package/esm/DateTimeRangePicker/shared.js +4 -3
- package/esm/DesktopDateRangePicker/DesktopDateRangePicker.js +4 -4
- package/esm/DesktopDateTimeRangePicker/DesktopDateTimeRangePicker.js +7 -6
- package/esm/DesktopTimeRangePicker/DesktopTimeRangePicker.js +5 -4
- package/esm/MobileDateRangePicker/MobileDateRangePicker.js +5 -5
- package/esm/MobileDateTimeRangePicker/MobileDateTimeRangePicker.js +5 -4
- package/esm/MobileTimeRangePicker/MobileTimeRangePicker.js +6 -5
- package/esm/MultiInputDateTimeRangeField/MultiInputDateTimeRangeField.js +1 -1
- package/esm/MultiInputTimeRangeField/MultiInputTimeRangeField.js +1 -1
- package/esm/PickersRangeCalendarHeader/PickersRangeCalendarHeader.js +6 -6
- package/esm/SingleInputDateTimeRangeField/SingleInputDateTimeRangeField.js +1 -1
- package/esm/SingleInputTimeRangeField/SingleInputTimeRangeField.js +1 -1
- package/esm/TimeRangePicker/TimeRangePicker.js +1 -1
- package/esm/TimeRangePicker/TimeRangePickerTimeWrapper.js +4 -4
- package/esm/TimeRangePicker/TimeRangePickerToolbar.js +9 -9
- package/esm/TimeRangePicker/shared.js +4 -3
- package/esm/index.js +1 -1
- package/esm/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +1 -1
- package/esm/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +1 -1
- package/esm/internals/utils/date-range-manager.d.ts +2 -2
- package/esm/internals/utils/date-range-manager.js +8 -8
- package/esm/internals/utils/date-utils.d.ts +5 -5
- package/esm/internals/utils/date-utils.js +11 -11
- package/esm/internals/utils/valueManagers.js +9 -9
- package/esm/managers/useDateRangeManager.js +8 -8
- package/esm/managers/useDateTimeRangeManager.js +9 -9
- package/esm/managers/useTimeRangeManager.js +10 -10
- package/esm/validation/validateDateRange.js +1 -1
- package/esm/validation/validateDateTimeRange.js +1 -1
- package/esm/validation/validateTimeRange.js +1 -1
- package/index.js +1 -1
- package/internals/hooks/useDesktopRangePicker/useDesktopRangePicker.js +1 -1
- package/internals/hooks/useMobileRangePicker/useMobileRangePicker.js +1 -1
- package/internals/utils/date-range-manager.d.ts +2 -2
- package/internals/utils/date-range-manager.js +8 -8
- package/internals/utils/date-utils.d.ts +5 -5
- package/internals/utils/date-utils.js +11 -11
- package/internals/utils/valueManagers.js +9 -9
- package/managers/useDateRangeManager.js +6 -6
- package/managers/useDateTimeRangeManager.js +7 -7
- package/managers/useTimeRangeManager.js +8 -8
- package/package.json +4 -4
- package/validation/validateDateRange.js +1 -1
- package/validation/validateDateTimeRange.js +1 -1
- package/validation/validateTimeRange.js +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,208 @@
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
7
7
|
|
|
8
|
+
## 8.6.0
|
|
9
|
+
|
|
10
|
+
_Jun 27, 2025_
|
|
11
|
+
|
|
12
|
+
We'd like to extend a big thank you to the 12 contributors who made this release possible. Here are some highlights ✨:
|
|
13
|
+
|
|
14
|
+
- 📊 Add export menu to charts toolbar
|
|
15
|
+
- 📅 Add `usePickerAdapter` hook to access the date adapter.
|
|
16
|
+
|
|
17
|
+
You can use the adapter in your custom components if you need them to work with multiple date libraries — [Learn more](https://mui.com/x/react-date-pickers/custom-components/#access-date-adapter).
|
|
18
|
+
- 🌎 Improve Danish (da-DK) locale
|
|
19
|
+
- 🌎 Improve German (de-DE) locale
|
|
20
|
+
|
|
21
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
22
|
+
@ShahrazH, @vadimka123
|
|
23
|
+
|
|
24
|
+
The following are all team members who have contributed to this release:
|
|
25
|
+
@arminmeh, @bernardobelchior, @JCQuintas, @KenanYusuf, @LukasTy, @MBilalShafi, @michelengelen, @noraleonte, @rita-codes, @sai6855
|
|
26
|
+
|
|
27
|
+
### Data Grid
|
|
28
|
+
|
|
29
|
+
#### `@mui/x-data-grid@8.6.0`
|
|
30
|
+
|
|
31
|
+
- [DataGrid] Fix `label` type in `GridActionsCellItem` type (#18175) @sai6855
|
|
32
|
+
- [DataGrid] Fix grid menu not closing when pressing escape/tab (#18300) @KenanYusuf
|
|
33
|
+
- [l10n] Improve Danish (da-DK) locale (#18428) @ShahrazH
|
|
34
|
+
- [l10n] Improve German (de-DE) locale (#18388) @omalyutin
|
|
35
|
+
|
|
36
|
+
#### `@mui/x-data-grid-pro@8.6.0` [](https://mui.com/r/x-pro-svg-link "Pro plan")
|
|
37
|
+
|
|
38
|
+
Same changes as in `@mui/x-data-grid@8.6.0`, plus:
|
|
39
|
+
|
|
40
|
+
- [DataGridPro] Fix lazy loading params calculated from rendering context (#18460) @arminmeh
|
|
41
|
+
|
|
42
|
+
#### `@mui/x-data-grid-premium@8.6.0` [](https://mui.com/r/x-premium-svg-link "Premium plan")
|
|
43
|
+
|
|
44
|
+
Same changes as in `@mui/x-data-grid-pro@8.6.0`.
|
|
45
|
+
|
|
46
|
+
### Date and Time Pickers
|
|
47
|
+
|
|
48
|
+
#### `@mui/x-date-pickers@8.6.0`
|
|
49
|
+
|
|
50
|
+
- [pickers] Add `usePickerAdapter` hook (#18457) @LukasTy
|
|
51
|
+
- [pickers] Fix to use latest `value` when updating `lastCommittedValue` in internal state (#18518) @LukasTy
|
|
52
|
+
- [pickers] Use `usePickerAdapter` hook internally instead of `useUtils` (#18465) @LukasTy
|
|
53
|
+
|
|
54
|
+
#### `@mui/x-date-pickers-pro@8.6.0` [](https://mui.com/r/x-pro-svg-link "Pro plan")
|
|
55
|
+
|
|
56
|
+
Same changes as in `@mui/x-date-pickers@8.6.0`.
|
|
57
|
+
|
|
58
|
+
### Charts
|
|
59
|
+
|
|
60
|
+
#### `@mui/x-charts@8.6.0`
|
|
61
|
+
|
|
62
|
+
- [charts] Add `data-series` to charts legend item (#18414) @bernardobelchior
|
|
63
|
+
- [charts] Add `data-series` to bar charts (#18413) @bernardobelchior
|
|
64
|
+
- [charts] Add `data-series` to elements of line chart (#18409) @bernardobelchior
|
|
65
|
+
- [charts] Add `data-series` to pie charts (#18432) @bernardobelchior
|
|
66
|
+
- [charts] Fix missing key in bar plot (#18502) @bernardobelchior
|
|
67
|
+
- [charts] Split axis utils from main file (#18517) @JCQuintas
|
|
68
|
+
- [charts] Improve touch behavior for polar axis (#18531) @JCQuintas
|
|
69
|
+
- [charts] Add `isElementInside` helper (#18530) @JCQuintas
|
|
70
|
+
|
|
71
|
+
#### `@mui/x-charts-pro@8.6.0` [](https://mui.com/r/x-pro-svg-link "Pro plan")
|
|
72
|
+
|
|
73
|
+
Same changes as in `@mui/x-charts@8.6.0`, plus:
|
|
74
|
+
|
|
75
|
+
- [charts-pro] Add export menu to charts toolbar (#18210) @bernardobelchior
|
|
76
|
+
- [charts-pro] Fix export docs mentioning tooltip instead of toolbar (#18490) @bernardobelchior
|
|
77
|
+
- [charts-pro] Fix iframe not being removed after print export (#18500) @bernardobelchior
|
|
78
|
+
|
|
79
|
+
### Tree View
|
|
80
|
+
|
|
81
|
+
#### `@mui/x-tree-view@8.6.0`
|
|
82
|
+
|
|
83
|
+
Internal changes.
|
|
84
|
+
|
|
85
|
+
#### `@mui/x-tree-view-pro@8.6.0` [](https://mui.com/r/x-pro-svg-link "Pro plan")
|
|
86
|
+
|
|
87
|
+
Same changes as in `@mui/x-tree-view@8.6.0`, plus:
|
|
88
|
+
|
|
89
|
+
- [tree view pro] Fix theme augmentation (#18437) @LukasTy
|
|
90
|
+
|
|
91
|
+
### Codemod
|
|
92
|
+
|
|
93
|
+
#### `@mui/x-codemod@8.6.0`
|
|
94
|
+
|
|
95
|
+
Internal changes.
|
|
96
|
+
|
|
97
|
+
### Docs
|
|
98
|
+
|
|
99
|
+
- [docs] Document `GridRenderContext` (#18492) @arminmeh
|
|
100
|
+
- [docs] Prevent stale rows to appear on sort and filter change in the lazy loading demo (#18461) @arminmeh
|
|
101
|
+
- [docs][pickers] Update action bar demo to use the `nextOrAccept` action (#18505) @LukasTy
|
|
102
|
+
- [docs] Update indeterminate checkbox section in migration guide (#18229) @michelengelen
|
|
103
|
+
- [docs] Data source nested pagination recipe (#14777) @MBilalShafi
|
|
104
|
+
|
|
105
|
+
### Core
|
|
106
|
+
|
|
107
|
+
- [core] Avoid json stringify whole window object (#18512) @vadimka123
|
|
108
|
+
|
|
109
|
+
### Miscellaneous
|
|
110
|
+
|
|
111
|
+
- [code-infra] Dynamically get pickers adapters dependencies versions (#18446) @JCQuintas
|
|
112
|
+
- [infra] Adjust inquirer version and usage (#18495) @michelengelen
|
|
113
|
+
- [infra] Use `String.raw` for creating the remote regex (#18462) @michelengelen
|
|
114
|
+
|
|
115
|
+
## 8.5.3
|
|
116
|
+
|
|
117
|
+
_Jun 19, 2025_
|
|
118
|
+
|
|
119
|
+
We'd like to extend a big thank you to the 10 contributors who made this release possible. Here are some highlights ✨:
|
|
120
|
+
|
|
121
|
+
- 📚 Documentation improvements
|
|
122
|
+
- 🐞 Bugfixes
|
|
123
|
+
|
|
124
|
+
Special thanks go out to the community members for their valuable contributions:
|
|
125
|
+
@alisasanib, @arminmeh, @sai6855
|
|
126
|
+
|
|
127
|
+
The following are all team members who have contributed to this release:
|
|
128
|
+
@alexfauquette, @bernardobelchior, @flaviendelangle, @JCQuintas, @LukasTy, @MBilalShafi, @oliviertassinari
|
|
129
|
+
|
|
130
|
+
### Data Grid
|
|
131
|
+
|
|
132
|
+
#### `@mui/x-data-grid@8.5.3`
|
|
133
|
+
|
|
134
|
+
- [DataGrid] Fix export menu button tooltip being interactive when menu is open (#18327) @bernardobelchior
|
|
135
|
+
- [DataGrid] Fix column menu scroll close (#18065) @alisasanib
|
|
136
|
+
- [DataGrid] Fix page size issue with data source (#18419) @MBilalShafi
|
|
137
|
+
|
|
138
|
+
#### `@mui/x-data-grid-pro@8.5.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
139
|
+
|
|
140
|
+
Same changes as in `@mui/x-data-grid@8.5.3`, plus:
|
|
141
|
+
|
|
142
|
+
- [DataGridPro] Ignore missing `rowCount` response when new children are fetched with the data source (#17711) @arminmeh
|
|
143
|
+
|
|
144
|
+
#### `@mui/x-data-grid-premium@8.5.3` [](https://mui.com/r/x-premium-svg-link 'Premium plan')
|
|
145
|
+
|
|
146
|
+
Same changes as in `@mui/x-data-grid-pro@8.5.3`.
|
|
147
|
+
|
|
148
|
+
### Date and Time Pickers
|
|
149
|
+
|
|
150
|
+
#### `@mui/x-date-pickers@8.5.3`
|
|
151
|
+
|
|
152
|
+
- [pickers] Add `inputSizeSmall` to classes interface (#18242) @sai6855
|
|
153
|
+
|
|
154
|
+
#### `@mui/x-date-pickers-pro@8.5.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
155
|
+
|
|
156
|
+
Same changes as in `@mui/x-date-pickers@8.5.3`.
|
|
157
|
+
|
|
158
|
+
### Charts
|
|
159
|
+
|
|
160
|
+
#### `@mui/x-charts@8.5.3`
|
|
161
|
+
|
|
162
|
+
- [charts] Add item class to list item around each series in legend (#18411) @bernardobelchior
|
|
163
|
+
- [charts] Allow `tabIndex` in surface and legend (#18344) @JCQuintas
|
|
164
|
+
- [charts] Explore selector typing (#18362) @alexfauquette
|
|
165
|
+
- [charts] Fix highlight with number ids (#18423) @alexfauquette
|
|
166
|
+
- [charts] Make scatter chart use data attributes (#18048) @alexfauquette
|
|
167
|
+
|
|
168
|
+
#### `@mui/x-charts-pro@8.5.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
169
|
+
|
|
170
|
+
Same changes as in `@mui/x-charts@8.5.3`, plus:
|
|
171
|
+
|
|
172
|
+
- [charts-pro] Add data-series to elements of funnel chart (#18067) @JCQuintas
|
|
173
|
+
- [charts-pro] Hide values outside minStart and maxEnd in zoom slider (#18336) @bernardobelchior
|
|
174
|
+
- [charts-pro] Fix `FunnelChart` label positioning with different curves (#18354) @JCQuintas
|
|
175
|
+
|
|
176
|
+
### Tree View
|
|
177
|
+
|
|
178
|
+
#### `@mui/x-tree-view@8.5.3`
|
|
179
|
+
|
|
180
|
+
Internal changes.
|
|
181
|
+
|
|
182
|
+
#### `@mui/x-tree-view-pro@8.5.3` [](https://mui.com/r/x-pro-svg-link 'Pro plan')
|
|
183
|
+
|
|
184
|
+
Same changes as in `@mui/x-tree-view@8.5.3`.
|
|
185
|
+
|
|
186
|
+
### Codemod
|
|
187
|
+
|
|
188
|
+
#### `@mui/x-codemod@8.5.3`
|
|
189
|
+
|
|
190
|
+
Internal changes.
|
|
191
|
+
|
|
192
|
+
### Docs
|
|
193
|
+
|
|
194
|
+
- [docs] Fix 404 in charts docs (#18440) @alexfauquette
|
|
195
|
+
- [docs][pickers] Fix adapter version resolving when opening demo to edit (#18363) @LukasTy
|
|
196
|
+
|
|
197
|
+
### Core
|
|
198
|
+
|
|
199
|
+
- [core] Fix pnpm valelint error (#18420) @oliviertassinari
|
|
200
|
+
|
|
201
|
+
### Miscellaneous
|
|
202
|
+
|
|
203
|
+
- [code-infra] Add back a `Playwright` renovate group (#18397) @LukasTy
|
|
204
|
+
- [code-infra] Setup `CODEOWNERS` for charts repositories (#18418) @JCQuintas
|
|
205
|
+
- [code-infra] Strengthen `URL` usage for test config (#18444) @LukasTy
|
|
206
|
+
- [code-infra] Use `vitest` bundled types (#17758) @JCQuintas
|
|
207
|
+
- [infra] Stabilise tests by removing babel and plugins from vitest (#18341) @JCQuintas
|
|
208
|
+
- [infra] Add automated release PR creation script (#18345) @michelengelen
|
|
209
|
+
|
|
8
210
|
## 8.5.2
|
|
9
211
|
|
|
10
212
|
_Jun 12, 2025_
|
|
@@ -94,7 +296,7 @@ Same changes as in `@mui/x-tree-view@8.5.2`.
|
|
|
94
296
|
- [code-infra] Revert `React` to `19.0.0` (#18265) @LukasTy
|
|
95
297
|
- [code-infra] Use `catalog` for reused dependencies (#18302) @LukasTy
|
|
96
298
|
- [infra] Remove unused karma/mocha deps and files (#18340) @JCQuintas
|
|
97
|
-
- [infra] Update
|
|
299
|
+
- [infra] Update GitHub label references to use 'scope' instead of 'component' (#18260) @michelengelen
|
|
98
300
|
- [infra] Use a single browser server in CI (#18230) @JCQuintas
|
|
99
301
|
|
|
100
302
|
## 8.5.1
|
|
@@ -189,15 +391,6 @@ Same changes as in `@mui/x-tree-view@8.5.1`.
|
|
|
189
391
|
|
|
190
392
|
### Core
|
|
191
393
|
|
|
192
|
-
- chore(deps): bump @next/eslint-plugin-next to 15.3.3 (#18155) @renovate[bot]
|
|
193
|
-
- chore(deps): bump @types/lodash to ^4.17.17 (#17990) @renovate[bot]
|
|
194
|
-
- chore(deps): bump babel (#18157) @renovate[bot]
|
|
195
|
-
- chore(deps): bump eslint to ^9.28.0 (#17352) @renovate[bot]
|
|
196
|
-
- chore(deps): bump material ui (#17802) @renovate[bot]
|
|
197
|
-
- chore(deps): bump next to ^15.3.3 (#18159) @renovate[bot]
|
|
198
|
-
- chore(deps): bump ossf/scorecard-action action to v2.4.2 (#18160) @renovate[bot]
|
|
199
|
-
- chore(deps): bump react-router to ^7.6.1 (#18162) @renovate[bot]
|
|
200
|
-
- chore(deps): bump yargs to ^18.0.0 (#18169) @renovate[bot]
|
|
201
394
|
- [code-infra] Different approach to console testing for `processRowUpdate` (#18213) @JCQuintas
|
|
202
395
|
- [code-infra] Fix act warnings in DataGrid/toolbar (#18207) @JCQuintas
|
|
203
396
|
- [code-infra] Remove `istanbul` references (#18194) @JCQuintas
|
|
@@ -4641,7 +4834,6 @@ No changes since `@mui/x-charts@7.22.2`.
|
|
|
4641
4834
|
- [docs] Add `next` version links (#15423) @LukasTy
|
|
4642
4835
|
- [docs] Use the `loading` state in the demos (#15538) @cherniavskii
|
|
4643
4836
|
- [docs] Add data caching to lazy loaded detail panel demo (#15506) @cherniavskii
|
|
4644
|
-
|
|
4645
4837
|
- [code-infra] Tentative fix for Argos flaky screenshot tests (#15399) @JCQuintas
|
|
4646
4838
|
- [docs-infra] Transpile `.ts` demo files (#15421) @KenanYusuf
|
|
4647
4839
|
- [core] Clarify release version bump strategy (#15536) @cherniavskii
|
|
@@ -22,6 +22,7 @@ var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
|
22
22
|
var _xLicense = require("@mui/x-license");
|
|
23
23
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
24
24
|
var _warning = require("@mui/x-internals/warning");
|
|
25
|
+
var _hooks = require("@mui/x-date-pickers/hooks");
|
|
25
26
|
var _dateRangeCalendarClasses = require("./dateRangeCalendarClasses");
|
|
26
27
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
27
28
|
var _dateRangeManager = require("../internals/utils/date-range-manager");
|
|
@@ -36,7 +37,7 @@ var _DateRangePickerDay2 = require("../DateRangePickerDay2");
|
|
|
36
37
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
37
38
|
const _excluded = ["value", "defaultValue", "referenceDate", "onChange", "className", "classes", "disableFuture", "disablePast", "minDate", "maxDate", "shouldDisableDate", "reduceAnimations", "onMonthChange", "rangePosition", "defaultRangePosition", "onRangePositionChange", "calendars", "currentMonthCalendarPosition", "slots", "slotProps", "loading", "renderLoading", "disableHighlightToday", "focusedView", "onFocusedViewChange", "readOnly", "disabled", "showDaysOutsideCurrentMonth", "dayOfWeekFormatter", "disableAutoMonthSwitching", "autoFocus", "fixedWeekNumber", "disableDragEditing", "displayWeekNumber", "timezone", "availableRangePositions", "views", "view", "openTo", "onViewChange"],
|
|
38
39
|
_excluded2 = ["isDragging", "rangeDragDay", "draggingDatePosition"];
|
|
39
|
-
const releaseInfo = "
|
|
40
|
+
const releaseInfo = "MTc1MDk3NTIwMDAwMA==";
|
|
40
41
|
const DateRangeCalendarRoot = (0, _styles.styled)('div', {
|
|
41
42
|
name: 'MuiDateRangeCalendar',
|
|
42
43
|
slot: 'Root'
|
|
@@ -194,7 +195,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
194
195
|
focusedView: focusedViewProp,
|
|
195
196
|
onFocusedViewChange
|
|
196
197
|
});
|
|
197
|
-
const
|
|
198
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
198
199
|
const id = (0, _useId.default)();
|
|
199
200
|
const {
|
|
200
201
|
rangePosition,
|
|
@@ -215,7 +216,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
215
216
|
newRange
|
|
216
217
|
} = (0, _dateRangeManager.calculateRangeChange)({
|
|
217
218
|
newDate,
|
|
218
|
-
|
|
219
|
+
adapter,
|
|
219
220
|
range: value,
|
|
220
221
|
rangePosition,
|
|
221
222
|
allowRangeFlip,
|
|
@@ -226,7 +227,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
226
227
|
if (isNextSectionAvailable) {
|
|
227
228
|
setRangePosition(nextSelection);
|
|
228
229
|
}
|
|
229
|
-
const isFullRangeSelected = rangePosition === 'end' && (0, _dateUtils.isRangeValid)(
|
|
230
|
+
const isFullRangeSelected = rangePosition === 'end' && (0, _dateUtils.isRangeValid)(adapter, newRange);
|
|
230
231
|
setValueAndGoToNextView(newRange, isFullRangeSelected || !isNextSectionAvailable ? 'finish' : 'partial', view);
|
|
231
232
|
});
|
|
232
233
|
const handleDrop = (0, _useEventCallback.default)(newDate => {
|
|
@@ -236,12 +237,12 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
236
237
|
|
|
237
238
|
// Range going for the start of the start day to the end of the end day.
|
|
238
239
|
// This makes sure that `isWithinRange` works with any time in the start and end day.
|
|
239
|
-
const valueDayRange = React.useMemo(() => [!
|
|
240
|
+
const valueDayRange = React.useMemo(() => [!adapter.isValid(value[0]) ? value[0] : adapter.startOfDay(value[0]), !adapter.isValid(value[1]) ? value[1] : adapter.endOfDay(value[1])], [value, adapter]);
|
|
240
241
|
const _useDragRange = (0, _useDragRange2.useDragRange)({
|
|
241
242
|
disableDragEditing: shouldDisableDragEditing,
|
|
242
243
|
onDrop: handleDrop,
|
|
243
244
|
onDatePositionChange: handleDatePositionChange,
|
|
244
|
-
|
|
245
|
+
adapter,
|
|
245
246
|
dateRange: valueDayRange,
|
|
246
247
|
timezone
|
|
247
248
|
}),
|
|
@@ -263,14 +264,14 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
263
264
|
return [null, null];
|
|
264
265
|
}
|
|
265
266
|
const newRange = (0, _dateRangeManager.calculateRangeChange)({
|
|
266
|
-
|
|
267
|
+
adapter,
|
|
267
268
|
range: valueDayRange,
|
|
268
269
|
newDate: rangeDragDay,
|
|
269
270
|
rangePosition,
|
|
270
271
|
allowRangeFlip: true
|
|
271
272
|
}).newRange;
|
|
272
|
-
return newRange[0] !== null && newRange[1] !== null ? [
|
|
273
|
-
}, [rangePosition, rangeDragDay,
|
|
273
|
+
return newRange[0] !== null && newRange[1] !== null ? [adapter.startOfDay(newRange[0]), adapter.endOfDay(newRange[1])] : newRange;
|
|
274
|
+
}, [rangePosition, rangeDragDay, adapter, valueDayRange]);
|
|
274
275
|
const wrappedShouldDisableDate = React.useMemo(() => {
|
|
275
276
|
if (!shouldDisableDate) {
|
|
276
277
|
return undefined;
|
|
@@ -293,24 +294,24 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
293
294
|
shouldDisableDate: wrappedShouldDisableDate,
|
|
294
295
|
timezone,
|
|
295
296
|
getCurrentMonthFromVisibleDate: (visibleDate, prevMonth) => {
|
|
296
|
-
const firstVisibleMonth =
|
|
297
|
-
const lastVisibleMonth =
|
|
297
|
+
const firstVisibleMonth = adapter.addMonths(prevMonth, 1 - currentMonthCalendarPosition);
|
|
298
|
+
const lastVisibleMonth = adapter.endOfMonth(adapter.addMonths(firstVisibleMonth, calendars - 1));
|
|
298
299
|
|
|
299
300
|
// The new focused day is inside the visible calendars,
|
|
300
301
|
// Do not change the current month
|
|
301
|
-
if (
|
|
302
|
+
if (adapter.isWithinRange(visibleDate, [firstVisibleMonth, lastVisibleMonth])) {
|
|
302
303
|
return prevMonth;
|
|
303
304
|
}
|
|
304
305
|
|
|
305
306
|
// The new focused day is after the last visible month,
|
|
306
307
|
// Move the current month so that the new focused day is inside the first visible month
|
|
307
|
-
if (
|
|
308
|
-
return
|
|
308
|
+
if (adapter.isAfter(visibleDate, lastVisibleMonth)) {
|
|
309
|
+
return adapter.startOfMonth(adapter.addMonths(visibleDate, currentMonthCalendarPosition - 1));
|
|
309
310
|
}
|
|
310
311
|
|
|
311
312
|
// The new focused day is before the first visible month,
|
|
312
313
|
// Move the current month so that the new focused day is inside the last visible month
|
|
313
|
-
return
|
|
314
|
+
return adapter.startOfMonth(adapter.addMonths(visibleDate, currentMonthCalendarPosition - calendars));
|
|
314
315
|
}
|
|
315
316
|
});
|
|
316
317
|
const CalendarHeader = slots?.calendarHeader ?? _PickersRangeCalendarHeader.PickersRangeCalendarHeader;
|
|
@@ -343,7 +344,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
343
344
|
const prevValue = React.useRef(null);
|
|
344
345
|
React.useEffect(() => {
|
|
345
346
|
const date = rangePosition === 'start' ? value[0] : value[1];
|
|
346
|
-
if (!
|
|
347
|
+
if (!adapter.isValid(date)) {
|
|
347
348
|
return;
|
|
348
349
|
}
|
|
349
350
|
const prevDate = rangePosition === 'start' ? prevValue.current?.[0] : prevValue.current?.[1];
|
|
@@ -351,16 +352,16 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
351
352
|
|
|
352
353
|
// The current date did not change, this call comes either from a `rangePosition` change or a change in the other date.
|
|
353
354
|
// In both cases, we don't want to change the visible month(s).
|
|
354
|
-
if (disableAutoMonthSwitching && prevDate &&
|
|
355
|
+
if (disableAutoMonthSwitching && prevDate && adapter.isEqual(prevDate, date)) {
|
|
355
356
|
return;
|
|
356
357
|
}
|
|
357
358
|
const displayingMonthRange = calendars - currentMonthCalendarPosition;
|
|
358
|
-
const currentMonthNumber =
|
|
359
|
-
const requestedMonthNumber =
|
|
360
|
-
if (!
|
|
359
|
+
const currentMonthNumber = adapter.getMonth(calendarState.currentMonth);
|
|
360
|
+
const requestedMonthNumber = adapter.getMonth(date);
|
|
361
|
+
if (!adapter.isSameYear(calendarState.currentMonth, date) || requestedMonthNumber < currentMonthNumber || requestedMonthNumber > currentMonthNumber + displayingMonthRange) {
|
|
361
362
|
const newMonth = rangePosition === 'start' ? date :
|
|
362
363
|
// If need to focus end, scroll to the state when "end" is displaying in the last calendar
|
|
363
|
-
|
|
364
|
+
adapter.addMonths(date, -displayingMonthRange);
|
|
364
365
|
setVisibleDate({
|
|
365
366
|
target: newMonth,
|
|
366
367
|
reason: 'controlled-value-change'
|
|
@@ -384,7 +385,7 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
384
385
|
onMouseLeave: () => setRangePreviewDay(null)
|
|
385
386
|
}), []);
|
|
386
387
|
const previewingRange = (0, _dateRangeManager.calculateRangePreview)({
|
|
387
|
-
|
|
388
|
+
adapter,
|
|
388
389
|
range: valueDayRange,
|
|
389
390
|
newDate: rangePreviewDay,
|
|
390
391
|
rangePosition
|
|
@@ -393,12 +394,12 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
393
394
|
let cleanNewRangePreviewDay;
|
|
394
395
|
if (valueDayRange[0] == null && valueDayRange[1] == null) {
|
|
395
396
|
cleanNewRangePreviewDay = null;
|
|
396
|
-
} else if ((0, _dateUtils.isWithinRange)(
|
|
397
|
+
} else if ((0, _dateUtils.isWithinRange)(adapter, newRangePreviewDay, valueDayRange)) {
|
|
397
398
|
cleanNewRangePreviewDay = null;
|
|
398
399
|
} else {
|
|
399
400
|
cleanNewRangePreviewDay = newRangePreviewDay;
|
|
400
401
|
}
|
|
401
|
-
if (!(0, _internals.areDatesEqual)(
|
|
402
|
+
if (!(0, _internals.areDatesEqual)(adapter, cleanNewRangePreviewDay, rangePreviewDay)) {
|
|
402
403
|
setRangePreviewDay(cleanNewRangePreviewDay);
|
|
403
404
|
}
|
|
404
405
|
});
|
|
@@ -411,8 +412,8 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
411
412
|
day,
|
|
412
413
|
isDaySelected
|
|
413
414
|
} = dayOwnerState;
|
|
414
|
-
const isSelectedStartDate = (0, _dateUtils.isStartOfRange)(
|
|
415
|
-
const isSelectedEndDate = (0, _dateUtils.isEndOfRange)(
|
|
415
|
+
const isSelectedStartDate = (0, _dateUtils.isStartOfRange)(adapter, day, valueDayRange);
|
|
416
|
+
const isSelectedEndDate = (0, _dateUtils.isEndOfRange)(adapter, day, valueDayRange);
|
|
416
417
|
const shouldInitDragging = !shouldDisableDragEditing && valueDayRange[0] && valueDayRange[1];
|
|
417
418
|
const isElementDraggable = shouldInitDragging && (isSelectedStartDate || isSelectedEndDate);
|
|
418
419
|
let datePosition;
|
|
@@ -421,15 +422,15 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
421
422
|
} else if (isSelectedEndDate) {
|
|
422
423
|
datePosition = 'end';
|
|
423
424
|
}
|
|
424
|
-
const isStartOfHighlighting = isDragging ? (0, _dateUtils.isStartOfRange)(
|
|
425
|
-
const isEndOfHighlighting = isDragging ? (0, _dateUtils.isEndOfRange)(
|
|
425
|
+
const isStartOfHighlighting = isDragging ? (0, _dateUtils.isStartOfRange)(adapter, day, draggingRange) : isSelectedStartDate;
|
|
426
|
+
const isEndOfHighlighting = isDragging ? (0, _dateUtils.isEndOfRange)(adapter, day, draggingRange) : isSelectedEndDate;
|
|
426
427
|
return (0, _extends2.default)({
|
|
427
|
-
isPreviewing: shouldHavePreview ? (0, _dateUtils.isWithinRange)(
|
|
428
|
-
isStartOfPreviewing: shouldHavePreview ? (0, _dateUtils.isStartOfRange)(
|
|
429
|
-
isEndOfPreviewing: shouldHavePreview ? (0, _dateUtils.isEndOfRange)(
|
|
430
|
-
isHighlighting: (0, _dateUtils.isWithinRange)(
|
|
428
|
+
isPreviewing: shouldHavePreview ? (0, _dateUtils.isWithinRange)(adapter, day, previewingRange) : false,
|
|
429
|
+
isStartOfPreviewing: shouldHavePreview ? (0, _dateUtils.isStartOfRange)(adapter, day, previewingRange) : false,
|
|
430
|
+
isEndOfPreviewing: shouldHavePreview ? (0, _dateUtils.isEndOfRange)(adapter, day, previewingRange) : false,
|
|
431
|
+
isHighlighting: (0, _dateUtils.isWithinRange)(adapter, day, isDragging ? draggingRange : valueDayRange),
|
|
431
432
|
isStartOfHighlighting,
|
|
432
|
-
isEndOfHighlighting: isDragging ? (0, _dateUtils.isEndOfRange)(
|
|
433
|
+
isEndOfHighlighting: isDragging ? (0, _dateUtils.isEndOfRange)(adapter, day, draggingRange) : isSelectedEndDate,
|
|
433
434
|
onMouseEnter: shouldHavePreview ? handleDayMouseEnter : undefined,
|
|
434
435
|
// apply selected styling to the dragging start or end day
|
|
435
436
|
isVisuallySelected: isDaySelected || isDragging && (isStartOfHighlighting || isEndOfHighlighting),
|
|
@@ -448,11 +449,11 @@ const DateRangeCalendar = exports.DateRangeCalendar = /*#__PURE__*/React.forward
|
|
|
448
449
|
(0, _warning.warnOnce)(['MUI X: 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.']);
|
|
449
450
|
}
|
|
450
451
|
}
|
|
451
|
-
const firstMonth =
|
|
452
|
+
const firstMonth = adapter.addMonths(calendarState.currentMonth, 1 - currentMonthCalendarPosition);
|
|
452
453
|
return Array.from({
|
|
453
454
|
length: calendars
|
|
454
|
-
}).map((_, index) =>
|
|
455
|
-
}, [
|
|
455
|
+
}).map((_, index) => adapter.addMonths(firstMonth, index));
|
|
456
|
+
}, [adapter, calendarState.currentMonth, calendars, currentMonthCalendarPosition]);
|
|
456
457
|
const hasFocus = focusedView !== null;
|
|
457
458
|
const prevOpenViewRef = React.useRef(view);
|
|
458
459
|
React.useEffect(() => {
|
|
@@ -4,7 +4,7 @@ import { PickerRangeValue } from '@mui/x-date-pickers/internals';
|
|
|
4
4
|
import { RangePosition } from "../models/index.js";
|
|
5
5
|
interface UseDragRangeParams {
|
|
6
6
|
disableDragEditing?: boolean;
|
|
7
|
-
|
|
7
|
+
adapter: MuiPickersAdapter;
|
|
8
8
|
setRangeDragDay: (value: PickerValidDate | null) => void;
|
|
9
9
|
setIsDragging: (value: boolean) => void;
|
|
10
10
|
isDragging: boolean;
|
|
@@ -31,7 +31,7 @@ interface UseDragRangeResponse extends UseDragRangeEvents {
|
|
|
31
31
|
}
|
|
32
32
|
export declare const useDragRange: ({
|
|
33
33
|
disableDragEditing,
|
|
34
|
-
|
|
34
|
+
adapter,
|
|
35
35
|
onDatePositionChange,
|
|
36
36
|
onDrop,
|
|
37
37
|
dateRange,
|
|
@@ -11,13 +11,13 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
var React = _interopRequireWildcard(require("react"));
|
|
12
12
|
var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallback"));
|
|
13
13
|
var _dateUtils = require("../internals/utils/date-utils");
|
|
14
|
-
const resolveDateFromTarget = (target,
|
|
14
|
+
const resolveDateFromTarget = (target, adapter, timezone) => {
|
|
15
15
|
const timestampString = target.dataset.timestamp;
|
|
16
16
|
if (!timestampString) {
|
|
17
17
|
return null;
|
|
18
18
|
}
|
|
19
19
|
const timestamp = +timestampString;
|
|
20
|
-
return
|
|
20
|
+
return adapter.date(new Date(timestamp).toISOString(), timezone);
|
|
21
21
|
};
|
|
22
22
|
const isSameAsDraggingDate = event => {
|
|
23
23
|
const timestampString = event.target.dataset.timestamp;
|
|
@@ -50,7 +50,7 @@ const resolveElementFromTouch = (event, ignoreTouchTarget) => {
|
|
|
50
50
|
return null;
|
|
51
51
|
};
|
|
52
52
|
const useDragRangeEvents = ({
|
|
53
|
-
|
|
53
|
+
adapter,
|
|
54
54
|
setRangeDragDay,
|
|
55
55
|
setIsDragging,
|
|
56
56
|
isDragging,
|
|
@@ -71,12 +71,12 @@ const useDragRangeEvents = ({
|
|
|
71
71
|
return false;
|
|
72
72
|
}
|
|
73
73
|
const shouldInitDragging = !disableDragEditing && !!dateRange[0] && !!dateRange[1];
|
|
74
|
-
const isSelectedStartDate = (0, _dateUtils.isStartOfRange)(
|
|
75
|
-
const isSelectedEndDate = (0, _dateUtils.isEndOfRange)(
|
|
74
|
+
const isSelectedStartDate = (0, _dateUtils.isStartOfRange)(adapter, day, dateRange);
|
|
75
|
+
const isSelectedEndDate = (0, _dateUtils.isEndOfRange)(adapter, day, dateRange);
|
|
76
76
|
return shouldInitDragging && (isSelectedStartDate || isSelectedEndDate);
|
|
77
77
|
};
|
|
78
78
|
const handleDragStart = (0, _useEventCallback.default)(event => {
|
|
79
|
-
const newDate = resolveDateFromTarget(event.target,
|
|
79
|
+
const newDate = resolveDateFromTarget(event.target, adapter, timezone);
|
|
80
80
|
if (!isElementDraggable(newDate)) {
|
|
81
81
|
return;
|
|
82
82
|
}
|
|
@@ -100,7 +100,7 @@ const useDragRangeEvents = ({
|
|
|
100
100
|
if (!target) {
|
|
101
101
|
return;
|
|
102
102
|
}
|
|
103
|
-
const newDate = resolveDateFromTarget(target,
|
|
103
|
+
const newDate = resolveDateFromTarget(target, adapter, timezone);
|
|
104
104
|
if (!isElementDraggable(newDate)) {
|
|
105
105
|
return;
|
|
106
106
|
}
|
|
@@ -113,14 +113,14 @@ const useDragRangeEvents = ({
|
|
|
113
113
|
event.preventDefault();
|
|
114
114
|
event.stopPropagation();
|
|
115
115
|
event.dataTransfer.dropEffect = 'move';
|
|
116
|
-
setRangeDragDay(resolveDateFromTarget(event.target,
|
|
116
|
+
setRangeDragDay(resolveDateFromTarget(event.target, adapter, timezone));
|
|
117
117
|
});
|
|
118
118
|
const handleTouchMove = (0, _useEventCallback.default)(event => {
|
|
119
119
|
const target = resolveElementFromTouch(event);
|
|
120
120
|
if (!target) {
|
|
121
121
|
return;
|
|
122
122
|
}
|
|
123
|
-
const newDate = resolveDateFromTarget(target,
|
|
123
|
+
const newDate = resolveDateFromTarget(target, adapter, timezone);
|
|
124
124
|
if (newDate) {
|
|
125
125
|
setRangeDragDay(newDate);
|
|
126
126
|
}
|
|
@@ -167,7 +167,7 @@ const useDragRangeEvents = ({
|
|
|
167
167
|
|
|
168
168
|
// make sure the focused element is the element where touch ended
|
|
169
169
|
target.focus();
|
|
170
|
-
const newDate = resolveDateFromTarget(target,
|
|
170
|
+
const newDate = resolveDateFromTarget(target, adapter, timezone);
|
|
171
171
|
if (newDate) {
|
|
172
172
|
onDrop(newDate);
|
|
173
173
|
}
|
|
@@ -194,7 +194,7 @@ const useDragRangeEvents = ({
|
|
|
194
194
|
if (isSameAsDraggingDate(event)) {
|
|
195
195
|
return;
|
|
196
196
|
}
|
|
197
|
-
const newDate = resolveDateFromTarget(event.target,
|
|
197
|
+
const newDate = resolveDateFromTarget(event.target, adapter, timezone);
|
|
198
198
|
if (newDate) {
|
|
199
199
|
onDrop(newDate);
|
|
200
200
|
}
|
|
@@ -213,7 +213,7 @@ const useDragRangeEvents = ({
|
|
|
213
213
|
};
|
|
214
214
|
const useDragRange = ({
|
|
215
215
|
disableDragEditing,
|
|
216
|
-
|
|
216
|
+
adapter,
|
|
217
217
|
onDatePositionChange,
|
|
218
218
|
onDrop,
|
|
219
219
|
dateRange,
|
|
@@ -222,24 +222,24 @@ const useDragRange = ({
|
|
|
222
222
|
const [isDragging, setIsDragging] = React.useState(false);
|
|
223
223
|
const [rangeDragDay, setRangeDragDay] = React.useState(null);
|
|
224
224
|
const handleRangeDragDayChange = (0, _useEventCallback.default)(newValue => {
|
|
225
|
-
if (!
|
|
225
|
+
if (!adapter.isEqual(newValue, rangeDragDay)) {
|
|
226
226
|
setRangeDragDay(newValue);
|
|
227
227
|
}
|
|
228
228
|
});
|
|
229
229
|
const draggingDatePosition = React.useMemo(() => {
|
|
230
230
|
const [start, end] = dateRange;
|
|
231
231
|
if (rangeDragDay) {
|
|
232
|
-
if (start &&
|
|
232
|
+
if (start && adapter.isBefore(rangeDragDay, start)) {
|
|
233
233
|
return 'start';
|
|
234
234
|
}
|
|
235
|
-
if (end &&
|
|
235
|
+
if (end && adapter.isAfter(rangeDragDay, end)) {
|
|
236
236
|
return 'end';
|
|
237
237
|
}
|
|
238
238
|
}
|
|
239
239
|
return null;
|
|
240
|
-
}, [dateRange, rangeDragDay,
|
|
240
|
+
}, [dateRange, rangeDragDay, adapter]);
|
|
241
241
|
const dragRangeEvents = useDragRangeEvents({
|
|
242
|
-
|
|
242
|
+
adapter,
|
|
243
243
|
onDatePositionChange,
|
|
244
244
|
onDrop,
|
|
245
245
|
setIsDragging,
|
|
@@ -49,7 +49,7 @@ const DateRangePickerToolbarContainer = (0, _styles.styled)('div', {
|
|
|
49
49
|
* - [DateRangePickerToolbar API](https://mui.com/x/api/date-pickers/date-range-picker-toolbar/)
|
|
50
50
|
*/
|
|
51
51
|
const DateRangePickerToolbar = exports.DateRangePickerToolbar = /*#__PURE__*/React.forwardRef(function DateRangePickerToolbar(inProps, ref) {
|
|
52
|
-
const
|
|
52
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
53
53
|
const props = (0, _styles.useThemeProps)({
|
|
54
54
|
props: inProps,
|
|
55
55
|
name: 'MuiDateRangePickerToolbar'
|
|
@@ -72,12 +72,12 @@ const DateRangePickerToolbar = exports.DateRangePickerToolbar = /*#__PURE__*/Rea
|
|
|
72
72
|
const classes = useUtilityClasses(classesProp);
|
|
73
73
|
|
|
74
74
|
// This can't be a default value when spreading because it breaks the API generation.
|
|
75
|
-
const toolbarFormat = toolbarFormatProp ??
|
|
75
|
+
const toolbarFormat = toolbarFormatProp ?? adapter.formats.shortDate;
|
|
76
76
|
const formatDate = (date, fallback) => {
|
|
77
|
-
if (!
|
|
77
|
+
if (!adapter.isValid(date)) {
|
|
78
78
|
return fallback;
|
|
79
79
|
}
|
|
80
|
-
return
|
|
80
|
+
return adapter.formatByString(date, toolbarFormat);
|
|
81
81
|
};
|
|
82
82
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(DateRangePickerToolbarRoot, (0, _extends2.default)({}, other, {
|
|
83
83
|
toolbarTitle: translations.dateRangePickerToolbarTitle,
|
|
@@ -17,6 +17,7 @@ var _styles = require("@mui/material/styles");
|
|
|
17
17
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
18
18
|
var _internals = require("@mui/x-date-pickers/internals");
|
|
19
19
|
var _PickersDay = require("@mui/x-date-pickers/PickersDay");
|
|
20
|
+
var _hooks = require("@mui/x-date-pickers/hooks");
|
|
20
21
|
var _dateRangePickerDayClasses = require("./dateRangePickerDayClasses");
|
|
21
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
23
|
const _excluded = ["className", "classes", "isEndOfHighlighting", "isEndOfPreviewing", "isHighlighting", "isPreviewing", "isStartOfHighlighting", "isStartOfPreviewing", "isVisuallySelected", "sx", "draggable", "isFirstVisibleCell", "isLastVisibleCell", "day", "selected", "disabled", "today", "outsideCurrentMonth", "disableMargin", "disableHighlightToday", "showDaysOutsideCurrentMonth"];
|
|
@@ -234,8 +235,8 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
|
|
|
234
235
|
showDaysOutsideCurrentMonth
|
|
235
236
|
} = props,
|
|
236
237
|
other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
|
|
237
|
-
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "
|
|
238
|
-
const
|
|
238
|
+
(0, _xLicense.useLicenseVerifier)('x-date-pickers-pro', "MTc1MDk3NTIwMDAwMA==");
|
|
239
|
+
const adapter = (0, _hooks.usePickerAdapter)();
|
|
239
240
|
const shouldRenderHighlight = isHighlighting && !outsideCurrentMonth;
|
|
240
241
|
const shouldRenderPreview = isPreviewing && !outsideCurrentMonth;
|
|
241
242
|
const pickersDayOwnerState = (0, _internals.usePickerDayOwnerState)({
|
|
@@ -259,8 +260,8 @@ const DateRangePickerDayRaw = /*#__PURE__*/React.forwardRef(function DateRangePi
|
|
|
259
260
|
isDayPreviewEnd: isEndOfPreviewing,
|
|
260
261
|
isDayInsidePreview: isPreviewing && !isStartOfPreviewing && !isEndOfPreviewing,
|
|
261
262
|
// Properties specific to the MUI implementation (some might be removed in the next major)
|
|
262
|
-
isDayStartOfMonth:
|
|
263
|
-
isDayEndOfMonth:
|
|
263
|
+
isDayStartOfMonth: adapter.isSameDay(day, adapter.startOfMonth(day)),
|
|
264
|
+
isDayEndOfMonth: adapter.isSameDay(day, adapter.endOfMonth(day)),
|
|
264
265
|
isDayFirstVisibleCell: isFirstVisibleCell,
|
|
265
266
|
isDayLastVisibleCell: isLastVisibleCell,
|
|
266
267
|
isDayFillerCell: outsideCurrentMonth && !showDaysOutsideCurrentMonth
|