1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| import { daysInMonth } from '../units/month';
| import {
| YEAR,
| MONTH,
| DATE,
| HOUR,
| MINUTE,
| SECOND,
| MILLISECOND,
| WEEK,
| WEEKDAY,
| } from '../units/constants';
| import getParsingFlags from '../create/parsing-flags';
|
| export default function checkOverflow(m) {
| var overflow,
| a = m._a;
|
| if (a && getParsingFlags(m).overflow === -2) {
| overflow =
| a[MONTH] < 0 || a[MONTH] > 11
| ? MONTH
| : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])
| ? DATE
| : a[HOUR] < 0 ||
| a[HOUR] > 24 ||
| (a[HOUR] === 24 &&
| (a[MINUTE] !== 0 ||
| a[SECOND] !== 0 ||
| a[MILLISECOND] !== 0))
| ? HOUR
| : a[MINUTE] < 0 || a[MINUTE] > 59
| ? MINUTE
| : a[SECOND] < 0 || a[SECOND] > 59
| ? SECOND
| : a[MILLISECOND] < 0 || a[MILLISECOND] > 999
| ? MILLISECOND
| : -1;
|
| if (
| getParsingFlags(m)._overflowDayOfYear &&
| (overflow < YEAR || overflow > DATE)
| ) {
| overflow = DATE;
| }
| if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
| overflow = WEEK;
| }
| if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
| overflow = WEEKDAY;
| }
|
| getParsingFlags(m).overflow = overflow;
| }
|
| return m;
| }
|
|