@zendeskgarden/react-datepickers 8.69.2 → 8.69.4
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/dist/index.cjs.js +112 -2449
- package/dist/index.esm.js +21 -2376
- package/dist/typings/elements/Datepicker/Datepicker.d.ts +12 -12
- package/dist/typings/elements/Datepicker/components/Calendar.d.ts +18 -18
- package/dist/typings/elements/Datepicker/components/MonthSelector.d.ts +13 -13
- package/dist/typings/elements/Datepicker/utils/datepicker-reducer.d.ts +43 -43
- package/dist/typings/elements/Datepicker/utils/garden-placements.d.ts +21 -21
- package/dist/typings/elements/Datepicker/utils/useDatepickerContext.d.ts +18 -18
- package/dist/typings/elements/DatepickerRange/DatepickerRange.d.ts +35 -35
- package/dist/typings/elements/DatepickerRange/components/Calendar.d.ts +11 -11
- package/dist/typings/elements/DatepickerRange/components/End.d.ts +11 -11
- package/dist/typings/elements/DatepickerRange/components/Month.d.ts +14 -14
- package/dist/typings/elements/DatepickerRange/components/Start.d.ts +11 -11
- package/dist/typings/elements/DatepickerRange/utils/datepicker-range-reducer.d.ts +71 -71
- package/dist/typings/elements/DatepickerRange/utils/useDatepickerRangeContext.d.ts +33 -33
- package/dist/typings/index.d.ts +11 -11
- package/dist/typings/styled/StyledCalendar.d.ts +13 -13
- package/dist/typings/styled/StyledCalendarItem.d.ts +15 -15
- package/dist/typings/styled/StyledDatepicker.d.ts +14 -14
- package/dist/typings/styled/StyledDay.d.ts +16 -16
- package/dist/typings/styled/StyledDayLabel.d.ts +11 -11
- package/dist/typings/styled/StyledHeader.d.ts +11 -11
- package/dist/typings/styled/StyledHeaderLabel.d.ts +11 -11
- package/dist/typings/styled/StyledHeaderPaddle.d.ts +13 -13
- package/dist/typings/styled/StyledHighlight.d.ts +16 -16
- package/dist/typings/styled/StyledMenu.d.ts +10 -10
- package/dist/typings/styled/StyledMenuWrapper.d.ts +15 -15
- package/dist/typings/styled/StyledRangeCalendar.d.ts +9 -9
- package/dist/typings/styled/index.d.ts +18 -18
- package/dist/typings/types/index.d.ts +112 -112
- package/dist/typings/utils/calendar-utils.d.ts +19 -19
- package/package.json +3 -3
package/dist/index.cjs.js
CHANGED
|
@@ -12,7 +12,25 @@ var PropTypes = require('prop-types');
|
|
|
12
12
|
var styled = require('styled-components');
|
|
13
13
|
var reactPopper = require('react-popper');
|
|
14
14
|
var containerUtilities = require('@zendeskgarden/container-utilities');
|
|
15
|
+
var startOfMonth = require('date-fns/startOfMonth');
|
|
16
|
+
var endOfMonth = require('date-fns/endOfMonth');
|
|
17
|
+
var startOfWeek = require('date-fns/startOfWeek');
|
|
18
|
+
var endOfWeek = require('date-fns/endOfWeek');
|
|
19
|
+
var eachDayOfInterval = require('date-fns/eachDayOfInterval');
|
|
20
|
+
var addDays = require('date-fns/addDays');
|
|
21
|
+
var isToday = require('date-fns/isToday');
|
|
22
|
+
var isSameDay = require('date-fns/isSameDay');
|
|
23
|
+
var isSameMonth = require('date-fns/isSameMonth');
|
|
24
|
+
var isBefore = require('date-fns/isBefore');
|
|
25
|
+
var isAfter = require('date-fns/isAfter');
|
|
26
|
+
var getDate = require('date-fns/getDate');
|
|
15
27
|
var reactTheming = require('@zendeskgarden/react-theming');
|
|
28
|
+
var addMonths = require('date-fns/addMonths');
|
|
29
|
+
var subMonths = require('date-fns/subMonths');
|
|
30
|
+
var isValid = require('date-fns/isValid');
|
|
31
|
+
var parse = require('date-fns/parse');
|
|
32
|
+
var compareAsc = require('date-fns/compareAsc');
|
|
33
|
+
var subDays = require('date-fns/subDays');
|
|
16
34
|
|
|
17
35
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
36
|
|
|
@@ -37,6 +55,24 @@ function _interopNamespace(e) {
|
|
|
37
55
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
38
56
|
var PropTypes__default = /*#__PURE__*/_interopDefault(PropTypes);
|
|
39
57
|
var styled__default = /*#__PURE__*/_interopDefault(styled);
|
|
58
|
+
var startOfMonth__default = /*#__PURE__*/_interopDefault(startOfMonth);
|
|
59
|
+
var endOfMonth__default = /*#__PURE__*/_interopDefault(endOfMonth);
|
|
60
|
+
var startOfWeek__default = /*#__PURE__*/_interopDefault(startOfWeek);
|
|
61
|
+
var endOfWeek__default = /*#__PURE__*/_interopDefault(endOfWeek);
|
|
62
|
+
var eachDayOfInterval__default = /*#__PURE__*/_interopDefault(eachDayOfInterval);
|
|
63
|
+
var addDays__default = /*#__PURE__*/_interopDefault(addDays);
|
|
64
|
+
var isToday__default = /*#__PURE__*/_interopDefault(isToday);
|
|
65
|
+
var isSameDay__default = /*#__PURE__*/_interopDefault(isSameDay);
|
|
66
|
+
var isSameMonth__default = /*#__PURE__*/_interopDefault(isSameMonth);
|
|
67
|
+
var isBefore__default = /*#__PURE__*/_interopDefault(isBefore);
|
|
68
|
+
var isAfter__default = /*#__PURE__*/_interopDefault(isAfter);
|
|
69
|
+
var getDate__default = /*#__PURE__*/_interopDefault(getDate);
|
|
70
|
+
var addMonths__default = /*#__PURE__*/_interopDefault(addMonths);
|
|
71
|
+
var subMonths__default = /*#__PURE__*/_interopDefault(subMonths);
|
|
72
|
+
var isValid__default = /*#__PURE__*/_interopDefault(isValid);
|
|
73
|
+
var parse__default = /*#__PURE__*/_interopDefault(parse);
|
|
74
|
+
var compareAsc__default = /*#__PURE__*/_interopDefault(compareAsc);
|
|
75
|
+
var subDays__default = /*#__PURE__*/_interopDefault(subDays);
|
|
40
76
|
|
|
41
77
|
const WEEK_STARTS_ON = [0, 1, 2, 3, 4, 5, 6];
|
|
42
78
|
const SHARED_PLACEMENT = ['auto', 'top', 'top-start', 'top-end', 'bottom', 'bottom-start', 'bottom-end'];
|
|
@@ -91,179 +127,10 @@ function getMenuPosition(popperPlacement) {
|
|
|
91
127
|
return popperPlacement ? popperPlacement.split('-')[0] : 'bottom';
|
|
92
128
|
}
|
|
93
129
|
|
|
94
|
-
function requiredArgs(required, args) {
|
|
95
|
-
if (args.length < required) {
|
|
96
|
-
throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function toDate(argument) {
|
|
101
|
-
requiredArgs(1, arguments);
|
|
102
|
-
var argStr = Object.prototype.toString.call(argument);
|
|
103
|
-
if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {
|
|
104
|
-
return new Date(argument.getTime());
|
|
105
|
-
} else if (typeof argument === 'number' || argStr === '[object Number]') {
|
|
106
|
-
return new Date(argument);
|
|
107
|
-
} else {
|
|
108
|
-
if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {
|
|
109
|
-
console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule");
|
|
110
|
-
console.warn(new Error().stack);
|
|
111
|
-
}
|
|
112
|
-
return new Date(NaN);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
function startOfMonth(dirtyDate) {
|
|
117
|
-
requiredArgs(1, arguments);
|
|
118
|
-
var date = toDate(dirtyDate);
|
|
119
|
-
date.setDate(1);
|
|
120
|
-
date.setHours(0, 0, 0, 0);
|
|
121
|
-
return date;
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
function endOfMonth(dirtyDate) {
|
|
125
|
-
requiredArgs(1, arguments);
|
|
126
|
-
var date = toDate(dirtyDate);
|
|
127
|
-
var month = date.getMonth();
|
|
128
|
-
date.setFullYear(date.getFullYear(), month + 1, 0);
|
|
129
|
-
date.setHours(23, 59, 59, 999);
|
|
130
|
-
return date;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function toInteger(dirtyNumber) {
|
|
134
|
-
if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {
|
|
135
|
-
return NaN;
|
|
136
|
-
}
|
|
137
|
-
var number = Number(dirtyNumber);
|
|
138
|
-
if (isNaN(number)) {
|
|
139
|
-
return number;
|
|
140
|
-
}
|
|
141
|
-
return number < 0 ? Math.ceil(number) : Math.floor(number);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
function startOfWeek(dirtyDate, dirtyOptions) {
|
|
145
|
-
requiredArgs(1, arguments);
|
|
146
|
-
var options = dirtyOptions || {};
|
|
147
|
-
var locale = options.locale;
|
|
148
|
-
var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;
|
|
149
|
-
var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);
|
|
150
|
-
var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);
|
|
151
|
-
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
|
|
152
|
-
throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
|
|
153
|
-
}
|
|
154
|
-
var date = toDate(dirtyDate);
|
|
155
|
-
var day = date.getDay();
|
|
156
|
-
var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
157
|
-
date.setDate(date.getDate() - diff);
|
|
158
|
-
date.setHours(0, 0, 0, 0);
|
|
159
|
-
return date;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
function endOfWeek(dirtyDate, dirtyOptions) {
|
|
163
|
-
requiredArgs(1, arguments);
|
|
164
|
-
var options = dirtyOptions || {};
|
|
165
|
-
var locale = options.locale;
|
|
166
|
-
var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;
|
|
167
|
-
var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);
|
|
168
|
-
var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);
|
|
169
|
-
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
|
|
170
|
-
throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
|
|
171
|
-
}
|
|
172
|
-
var date = toDate(dirtyDate);
|
|
173
|
-
var day = date.getDay();
|
|
174
|
-
var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);
|
|
175
|
-
date.setDate(date.getDate() + diff);
|
|
176
|
-
date.setHours(23, 59, 59, 999);
|
|
177
|
-
return date;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
function eachDayOfInterval(dirtyInterval, options) {
|
|
181
|
-
requiredArgs(1, arguments);
|
|
182
|
-
var interval = dirtyInterval || {};
|
|
183
|
-
var startDate = toDate(interval.start);
|
|
184
|
-
var endDate = toDate(interval.end);
|
|
185
|
-
var endTime = endDate.getTime();
|
|
186
|
-
if (!(startDate.getTime() <= endTime)) {
|
|
187
|
-
throw new RangeError('Invalid interval');
|
|
188
|
-
}
|
|
189
|
-
var dates = [];
|
|
190
|
-
var currentDate = startDate;
|
|
191
|
-
currentDate.setHours(0, 0, 0, 0);
|
|
192
|
-
var step = options && 'step' in options ? Number(options.step) : 1;
|
|
193
|
-
if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');
|
|
194
|
-
while (currentDate.getTime() <= endTime) {
|
|
195
|
-
dates.push(toDate(currentDate));
|
|
196
|
-
currentDate.setDate(currentDate.getDate() + step);
|
|
197
|
-
currentDate.setHours(0, 0, 0, 0);
|
|
198
|
-
}
|
|
199
|
-
return dates;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
function addDays(dirtyDate, dirtyAmount) {
|
|
203
|
-
requiredArgs(2, arguments);
|
|
204
|
-
var date = toDate(dirtyDate);
|
|
205
|
-
var amount = toInteger(dirtyAmount);
|
|
206
|
-
if (isNaN(amount)) {
|
|
207
|
-
return new Date(NaN);
|
|
208
|
-
}
|
|
209
|
-
if (!amount) {
|
|
210
|
-
return date;
|
|
211
|
-
}
|
|
212
|
-
date.setDate(date.getDate() + amount);
|
|
213
|
-
return date;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
function startOfDay(dirtyDate) {
|
|
217
|
-
requiredArgs(1, arguments);
|
|
218
|
-
var date = toDate(dirtyDate);
|
|
219
|
-
date.setHours(0, 0, 0, 0);
|
|
220
|
-
return date;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
function isSameDay(dirtyDateLeft, dirtyDateRight) {
|
|
224
|
-
requiredArgs(2, arguments);
|
|
225
|
-
var dateLeftStartOfDay = startOfDay(dirtyDateLeft);
|
|
226
|
-
var dateRightStartOfDay = startOfDay(dirtyDateRight);
|
|
227
|
-
return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
function isToday(dirtyDate) {
|
|
231
|
-
requiredArgs(1, arguments);
|
|
232
|
-
return isSameDay(dirtyDate, Date.now());
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
function isSameMonth(dirtyDateLeft, dirtyDateRight) {
|
|
236
|
-
requiredArgs(2, arguments);
|
|
237
|
-
var dateLeft = toDate(dirtyDateLeft);
|
|
238
|
-
var dateRight = toDate(dirtyDateRight);
|
|
239
|
-
return dateLeft.getFullYear() === dateRight.getFullYear() && dateLeft.getMonth() === dateRight.getMonth();
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
function isBefore(dirtyDate, dirtyDateToCompare) {
|
|
243
|
-
requiredArgs(2, arguments);
|
|
244
|
-
var date = toDate(dirtyDate);
|
|
245
|
-
var dateToCompare = toDate(dirtyDateToCompare);
|
|
246
|
-
return date.getTime() < dateToCompare.getTime();
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
function isAfter(dirtyDate, dirtyDateToCompare) {
|
|
250
|
-
requiredArgs(2, arguments);
|
|
251
|
-
var date = toDate(dirtyDate);
|
|
252
|
-
var dateToCompare = toDate(dirtyDateToCompare);
|
|
253
|
-
return date.getTime() > dateToCompare.getTime();
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
function getDate(dirtyDate) {
|
|
257
|
-
requiredArgs(1, arguments);
|
|
258
|
-
var date = toDate(dirtyDate);
|
|
259
|
-
var dayOfMonth = date.getDate();
|
|
260
|
-
return dayOfMonth;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
130
|
const COMPONENT_ID$b = 'datepickers.menu';
|
|
264
131
|
const StyledMenu = styled__default.default.div.attrs({
|
|
265
132
|
'data-garden-id': COMPONENT_ID$b,
|
|
266
|
-
'data-garden-version': '8.69.
|
|
133
|
+
'data-garden-version': '8.69.4'
|
|
267
134
|
}).withConfig({
|
|
268
135
|
displayName: "StyledMenu",
|
|
269
136
|
componentId: "sc-1npbkk0-0"
|
|
@@ -446,10 +313,7 @@ const retrieveColor = _ref2 => {
|
|
|
446
313
|
isHighlighted,
|
|
447
314
|
theme
|
|
448
315
|
} = _ref2;
|
|
449
|
-
|
|
450
|
-
return styled.css(["background-color:", ";"], reactTheming.getColor('primaryHue', 600, theme, 0.08));
|
|
451
|
-
}
|
|
452
|
-
return styled.css([""]);
|
|
316
|
+
return styled.css(["background-color:", ";"], isHighlighted && reactTheming.getColor('primaryHue', 600, theme, 0.08));
|
|
453
317
|
};
|
|
454
318
|
const StyledHighlight = styled__default.default.div.attrs({
|
|
455
319
|
'data-garden-id': COMPONENT_ID$1
|
|
@@ -674,12 +538,12 @@ const Calendar$1 = React.forwardRef((_ref, ref) => {
|
|
|
674
538
|
dispatch
|
|
675
539
|
} = useDatepickerContext$1();
|
|
676
540
|
const preferredWeekStartsOn = weekStartsOn || getStartOfWeek(locale);
|
|
677
|
-
const monthStartDate =
|
|
678
|
-
const monthEndDate =
|
|
679
|
-
const startDate =
|
|
541
|
+
const monthStartDate = startOfMonth__default.default(state.previewDate);
|
|
542
|
+
const monthEndDate = endOfMonth__default.default(monthStartDate);
|
|
543
|
+
const startDate = startOfWeek__default.default(monthStartDate, {
|
|
680
544
|
weekStartsOn: preferredWeekStartsOn
|
|
681
545
|
});
|
|
682
|
-
const endDate =
|
|
546
|
+
const endDate = endOfWeek__default.default(monthEndDate, {
|
|
683
547
|
weekStartsOn: preferredWeekStartsOn
|
|
684
548
|
});
|
|
685
549
|
const dayLabelFormatter = React.useCallback(date => {
|
|
@@ -688,9 +552,9 @@ const Calendar$1 = React.forwardRef((_ref, ref) => {
|
|
|
688
552
|
});
|
|
689
553
|
return formatter.format(date);
|
|
690
554
|
}, [locale]);
|
|
691
|
-
const dayLabels =
|
|
555
|
+
const dayLabels = eachDayOfInterval__default.default({
|
|
692
556
|
start: startDate,
|
|
693
|
-
end:
|
|
557
|
+
end: addDays__default.default(startDate, 6)
|
|
694
558
|
}).map(date => {
|
|
695
559
|
const formattedDayLabel = dayLabelFormatter(date);
|
|
696
560
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
@@ -700,20 +564,20 @@ const Calendar$1 = React.forwardRef((_ref, ref) => {
|
|
|
700
564
|
isCompact: isCompact
|
|
701
565
|
}, formattedDayLabel));
|
|
702
566
|
});
|
|
703
|
-
const items =
|
|
567
|
+
const items = eachDayOfInterval__default.default({
|
|
704
568
|
start: startDate,
|
|
705
569
|
end: endDate
|
|
706
570
|
}).map((date, itemsIndex) => {
|
|
707
|
-
const formattedDayLabel =
|
|
708
|
-
const isCurrentDate =
|
|
709
|
-
const isPreviousMonth = !
|
|
710
|
-
const isSelected = value &&
|
|
571
|
+
const formattedDayLabel = getDate__default.default(date);
|
|
572
|
+
const isCurrentDate = isToday__default.default(date);
|
|
573
|
+
const isPreviousMonth = !isSameMonth__default.default(date, state.previewDate);
|
|
574
|
+
const isSelected = value && isSameDay__default.default(date, value);
|
|
711
575
|
let isDisabled = false;
|
|
712
576
|
if (minValue !== undefined) {
|
|
713
|
-
isDisabled =
|
|
577
|
+
isDisabled = isBefore__default.default(date, minValue) && !isSameDay__default.default(date, minValue);
|
|
714
578
|
}
|
|
715
579
|
if (maxValue !== undefined) {
|
|
716
|
-
isDisabled = isDisabled ||
|
|
580
|
+
isDisabled = isDisabled || isAfter__default.default(date, maxValue) && !isSameDay__default.default(date, maxValue);
|
|
717
581
|
}
|
|
718
582
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
719
583
|
key: `day-${itemsIndex}`,
|
|
@@ -749,2187 +613,6 @@ const Calendar$1 = React.forwardRef((_ref, ref) => {
|
|
|
749
613
|
});
|
|
750
614
|
Calendar$1.displayName = 'Calendar';
|
|
751
615
|
|
|
752
|
-
function addMonths(dirtyDate, dirtyAmount) {
|
|
753
|
-
requiredArgs(2, arguments);
|
|
754
|
-
var date = toDate(dirtyDate);
|
|
755
|
-
var amount = toInteger(dirtyAmount);
|
|
756
|
-
if (isNaN(amount)) {
|
|
757
|
-
return new Date(NaN);
|
|
758
|
-
}
|
|
759
|
-
if (!amount) {
|
|
760
|
-
return date;
|
|
761
|
-
}
|
|
762
|
-
var dayOfMonth = date.getDate();
|
|
763
|
-
var endOfDesiredMonth = new Date(date.getTime());
|
|
764
|
-
endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);
|
|
765
|
-
var daysInMonth = endOfDesiredMonth.getDate();
|
|
766
|
-
if (dayOfMonth >= daysInMonth) {
|
|
767
|
-
return endOfDesiredMonth;
|
|
768
|
-
} else {
|
|
769
|
-
date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);
|
|
770
|
-
return date;
|
|
771
|
-
}
|
|
772
|
-
}
|
|
773
|
-
|
|
774
|
-
function subMonths(dirtyDate, dirtyAmount) {
|
|
775
|
-
requiredArgs(2, arguments);
|
|
776
|
-
var amount = toInteger(dirtyAmount);
|
|
777
|
-
return addMonths(dirtyDate, -amount);
|
|
778
|
-
}
|
|
779
|
-
|
|
780
|
-
function isValid(dirtyDate) {
|
|
781
|
-
requiredArgs(1, arguments);
|
|
782
|
-
var date = toDate(dirtyDate);
|
|
783
|
-
return !isNaN(date);
|
|
784
|
-
}
|
|
785
|
-
|
|
786
|
-
var formatDistanceLocale = {
|
|
787
|
-
lessThanXSeconds: {
|
|
788
|
-
one: 'less than a second',
|
|
789
|
-
other: 'less than {{count}} seconds'
|
|
790
|
-
},
|
|
791
|
-
xSeconds: {
|
|
792
|
-
one: '1 second',
|
|
793
|
-
other: '{{count}} seconds'
|
|
794
|
-
},
|
|
795
|
-
halfAMinute: 'half a minute',
|
|
796
|
-
lessThanXMinutes: {
|
|
797
|
-
one: 'less than a minute',
|
|
798
|
-
other: 'less than {{count}} minutes'
|
|
799
|
-
},
|
|
800
|
-
xMinutes: {
|
|
801
|
-
one: '1 minute',
|
|
802
|
-
other: '{{count}} minutes'
|
|
803
|
-
},
|
|
804
|
-
aboutXHours: {
|
|
805
|
-
one: 'about 1 hour',
|
|
806
|
-
other: 'about {{count}} hours'
|
|
807
|
-
},
|
|
808
|
-
xHours: {
|
|
809
|
-
one: '1 hour',
|
|
810
|
-
other: '{{count}} hours'
|
|
811
|
-
},
|
|
812
|
-
xDays: {
|
|
813
|
-
one: '1 day',
|
|
814
|
-
other: '{{count}} days'
|
|
815
|
-
},
|
|
816
|
-
aboutXWeeks: {
|
|
817
|
-
one: 'about 1 week',
|
|
818
|
-
other: 'about {{count}} weeks'
|
|
819
|
-
},
|
|
820
|
-
xWeeks: {
|
|
821
|
-
one: '1 week',
|
|
822
|
-
other: '{{count}} weeks'
|
|
823
|
-
},
|
|
824
|
-
aboutXMonths: {
|
|
825
|
-
one: 'about 1 month',
|
|
826
|
-
other: 'about {{count}} months'
|
|
827
|
-
},
|
|
828
|
-
xMonths: {
|
|
829
|
-
one: '1 month',
|
|
830
|
-
other: '{{count}} months'
|
|
831
|
-
},
|
|
832
|
-
aboutXYears: {
|
|
833
|
-
one: 'about 1 year',
|
|
834
|
-
other: 'about {{count}} years'
|
|
835
|
-
},
|
|
836
|
-
xYears: {
|
|
837
|
-
one: '1 year',
|
|
838
|
-
other: '{{count}} years'
|
|
839
|
-
},
|
|
840
|
-
overXYears: {
|
|
841
|
-
one: 'over 1 year',
|
|
842
|
-
other: 'over {{count}} years'
|
|
843
|
-
},
|
|
844
|
-
almostXYears: {
|
|
845
|
-
one: 'almost 1 year',
|
|
846
|
-
other: 'almost {{count}} years'
|
|
847
|
-
}
|
|
848
|
-
};
|
|
849
|
-
function formatDistance(token, count, options) {
|
|
850
|
-
options = options || {};
|
|
851
|
-
var result;
|
|
852
|
-
if (typeof formatDistanceLocale[token] === 'string') {
|
|
853
|
-
result = formatDistanceLocale[token];
|
|
854
|
-
} else if (count === 1) {
|
|
855
|
-
result = formatDistanceLocale[token].one;
|
|
856
|
-
} else {
|
|
857
|
-
result = formatDistanceLocale[token].other.replace('{{count}}', count);
|
|
858
|
-
}
|
|
859
|
-
if (options.addSuffix) {
|
|
860
|
-
if (options.comparison > 0) {
|
|
861
|
-
return 'in ' + result;
|
|
862
|
-
} else {
|
|
863
|
-
return result + ' ago';
|
|
864
|
-
}
|
|
865
|
-
}
|
|
866
|
-
return result;
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
function buildFormatLongFn(args) {
|
|
870
|
-
return function () {
|
|
871
|
-
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
872
|
-
var width = options.width ? String(options.width) : args.defaultWidth;
|
|
873
|
-
var format = args.formats[width] || args.formats[args.defaultWidth];
|
|
874
|
-
return format;
|
|
875
|
-
};
|
|
876
|
-
}
|
|
877
|
-
|
|
878
|
-
var dateFormats = {
|
|
879
|
-
full: 'EEEE, MMMM do, y',
|
|
880
|
-
long: 'MMMM do, y',
|
|
881
|
-
medium: 'MMM d, y',
|
|
882
|
-
short: 'MM/dd/yyyy'
|
|
883
|
-
};
|
|
884
|
-
var timeFormats = {
|
|
885
|
-
full: 'h:mm:ss a zzzz',
|
|
886
|
-
long: 'h:mm:ss a z',
|
|
887
|
-
medium: 'h:mm:ss a',
|
|
888
|
-
short: 'h:mm a'
|
|
889
|
-
};
|
|
890
|
-
var dateTimeFormats = {
|
|
891
|
-
full: "{{date}} 'at' {{time}}",
|
|
892
|
-
long: "{{date}} 'at' {{time}}",
|
|
893
|
-
medium: '{{date}}, {{time}}',
|
|
894
|
-
short: '{{date}}, {{time}}'
|
|
895
|
-
};
|
|
896
|
-
var formatLong = {
|
|
897
|
-
date: buildFormatLongFn({
|
|
898
|
-
formats: dateFormats,
|
|
899
|
-
defaultWidth: 'full'
|
|
900
|
-
}),
|
|
901
|
-
time: buildFormatLongFn({
|
|
902
|
-
formats: timeFormats,
|
|
903
|
-
defaultWidth: 'full'
|
|
904
|
-
}),
|
|
905
|
-
dateTime: buildFormatLongFn({
|
|
906
|
-
formats: dateTimeFormats,
|
|
907
|
-
defaultWidth: 'full'
|
|
908
|
-
})
|
|
909
|
-
};
|
|
910
|
-
var formatLong$1 = formatLong;
|
|
911
|
-
|
|
912
|
-
var formatRelativeLocale = {
|
|
913
|
-
lastWeek: "'last' eeee 'at' p",
|
|
914
|
-
yesterday: "'yesterday at' p",
|
|
915
|
-
today: "'today at' p",
|
|
916
|
-
tomorrow: "'tomorrow at' p",
|
|
917
|
-
nextWeek: "eeee 'at' p",
|
|
918
|
-
other: 'P'
|
|
919
|
-
};
|
|
920
|
-
function formatRelative(token, _date, _baseDate, _options) {
|
|
921
|
-
return formatRelativeLocale[token];
|
|
922
|
-
}
|
|
923
|
-
|
|
924
|
-
function buildLocalizeFn(args) {
|
|
925
|
-
return function (dirtyIndex, dirtyOptions) {
|
|
926
|
-
var options = dirtyOptions || {};
|
|
927
|
-
var context = options.context ? String(options.context) : 'standalone';
|
|
928
|
-
var valuesArray;
|
|
929
|
-
if (context === 'formatting' && args.formattingValues) {
|
|
930
|
-
var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
|
931
|
-
var width = options.width ? String(options.width) : defaultWidth;
|
|
932
|
-
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
|
933
|
-
} else {
|
|
934
|
-
var _defaultWidth = args.defaultWidth;
|
|
935
|
-
var _width = options.width ? String(options.width) : args.defaultWidth;
|
|
936
|
-
valuesArray = args.values[_width] || args.values[_defaultWidth];
|
|
937
|
-
}
|
|
938
|
-
var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;
|
|
939
|
-
return valuesArray[index];
|
|
940
|
-
};
|
|
941
|
-
}
|
|
942
|
-
|
|
943
|
-
var eraValues = {
|
|
944
|
-
narrow: ['B', 'A'],
|
|
945
|
-
abbreviated: ['BC', 'AD'],
|
|
946
|
-
wide: ['Before Christ', 'Anno Domini']
|
|
947
|
-
};
|
|
948
|
-
var quarterValues = {
|
|
949
|
-
narrow: ['1', '2', '3', '4'],
|
|
950
|
-
abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
|
|
951
|
-
wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']
|
|
952
|
-
};
|
|
953
|
-
var monthValues = {
|
|
954
|
-
narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
|
|
955
|
-
abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
|
|
956
|
-
wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
|
|
957
|
-
};
|
|
958
|
-
var dayValues = {
|
|
959
|
-
narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
|
|
960
|
-
short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],
|
|
961
|
-
abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
|
962
|
-
wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
|
|
963
|
-
};
|
|
964
|
-
var dayPeriodValues = {
|
|
965
|
-
narrow: {
|
|
966
|
-
am: 'a',
|
|
967
|
-
pm: 'p',
|
|
968
|
-
midnight: 'mi',
|
|
969
|
-
noon: 'n',
|
|
970
|
-
morning: 'morning',
|
|
971
|
-
afternoon: 'afternoon',
|
|
972
|
-
evening: 'evening',
|
|
973
|
-
night: 'night'
|
|
974
|
-
},
|
|
975
|
-
abbreviated: {
|
|
976
|
-
am: 'AM',
|
|
977
|
-
pm: 'PM',
|
|
978
|
-
midnight: 'midnight',
|
|
979
|
-
noon: 'noon',
|
|
980
|
-
morning: 'morning',
|
|
981
|
-
afternoon: 'afternoon',
|
|
982
|
-
evening: 'evening',
|
|
983
|
-
night: 'night'
|
|
984
|
-
},
|
|
985
|
-
wide: {
|
|
986
|
-
am: 'a.m.',
|
|
987
|
-
pm: 'p.m.',
|
|
988
|
-
midnight: 'midnight',
|
|
989
|
-
noon: 'noon',
|
|
990
|
-
morning: 'morning',
|
|
991
|
-
afternoon: 'afternoon',
|
|
992
|
-
evening: 'evening',
|
|
993
|
-
night: 'night'
|
|
994
|
-
}
|
|
995
|
-
};
|
|
996
|
-
var formattingDayPeriodValues = {
|
|
997
|
-
narrow: {
|
|
998
|
-
am: 'a',
|
|
999
|
-
pm: 'p',
|
|
1000
|
-
midnight: 'mi',
|
|
1001
|
-
noon: 'n',
|
|
1002
|
-
morning: 'in the morning',
|
|
1003
|
-
afternoon: 'in the afternoon',
|
|
1004
|
-
evening: 'in the evening',
|
|
1005
|
-
night: 'at night'
|
|
1006
|
-
},
|
|
1007
|
-
abbreviated: {
|
|
1008
|
-
am: 'AM',
|
|
1009
|
-
pm: 'PM',
|
|
1010
|
-
midnight: 'midnight',
|
|
1011
|
-
noon: 'noon',
|
|
1012
|
-
morning: 'in the morning',
|
|
1013
|
-
afternoon: 'in the afternoon',
|
|
1014
|
-
evening: 'in the evening',
|
|
1015
|
-
night: 'at night'
|
|
1016
|
-
},
|
|
1017
|
-
wide: {
|
|
1018
|
-
am: 'a.m.',
|
|
1019
|
-
pm: 'p.m.',
|
|
1020
|
-
midnight: 'midnight',
|
|
1021
|
-
noon: 'noon',
|
|
1022
|
-
morning: 'in the morning',
|
|
1023
|
-
afternoon: 'in the afternoon',
|
|
1024
|
-
evening: 'in the evening',
|
|
1025
|
-
night: 'at night'
|
|
1026
|
-
}
|
|
1027
|
-
};
|
|
1028
|
-
function ordinalNumber(dirtyNumber, _dirtyOptions) {
|
|
1029
|
-
var number = Number(dirtyNumber);
|
|
1030
|
-
var rem100 = number % 100;
|
|
1031
|
-
if (rem100 > 20 || rem100 < 10) {
|
|
1032
|
-
switch (rem100 % 10) {
|
|
1033
|
-
case 1:
|
|
1034
|
-
return number + 'st';
|
|
1035
|
-
case 2:
|
|
1036
|
-
return number + 'nd';
|
|
1037
|
-
case 3:
|
|
1038
|
-
return number + 'rd';
|
|
1039
|
-
}
|
|
1040
|
-
}
|
|
1041
|
-
return number + 'th';
|
|
1042
|
-
}
|
|
1043
|
-
var localize = {
|
|
1044
|
-
ordinalNumber: ordinalNumber,
|
|
1045
|
-
era: buildLocalizeFn({
|
|
1046
|
-
values: eraValues,
|
|
1047
|
-
defaultWidth: 'wide'
|
|
1048
|
-
}),
|
|
1049
|
-
quarter: buildLocalizeFn({
|
|
1050
|
-
values: quarterValues,
|
|
1051
|
-
defaultWidth: 'wide',
|
|
1052
|
-
argumentCallback: function (quarter) {
|
|
1053
|
-
return Number(quarter) - 1;
|
|
1054
|
-
}
|
|
1055
|
-
}),
|
|
1056
|
-
month: buildLocalizeFn({
|
|
1057
|
-
values: monthValues,
|
|
1058
|
-
defaultWidth: 'wide'
|
|
1059
|
-
}),
|
|
1060
|
-
day: buildLocalizeFn({
|
|
1061
|
-
values: dayValues,
|
|
1062
|
-
defaultWidth: 'wide'
|
|
1063
|
-
}),
|
|
1064
|
-
dayPeriod: buildLocalizeFn({
|
|
1065
|
-
values: dayPeriodValues,
|
|
1066
|
-
defaultWidth: 'wide',
|
|
1067
|
-
formattingValues: formattingDayPeriodValues,
|
|
1068
|
-
defaultFormattingWidth: 'wide'
|
|
1069
|
-
})
|
|
1070
|
-
};
|
|
1071
|
-
var localize$1 = localize;
|
|
1072
|
-
|
|
1073
|
-
function buildMatchPatternFn(args) {
|
|
1074
|
-
return function (string) {
|
|
1075
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
1076
|
-
var matchResult = string.match(args.matchPattern);
|
|
1077
|
-
if (!matchResult) return null;
|
|
1078
|
-
var matchedString = matchResult[0];
|
|
1079
|
-
var parseResult = string.match(args.parsePattern);
|
|
1080
|
-
if (!parseResult) return null;
|
|
1081
|
-
var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
|
|
1082
|
-
value = options.valueCallback ? options.valueCallback(value) : value;
|
|
1083
|
-
var rest = string.slice(matchedString.length);
|
|
1084
|
-
return {
|
|
1085
|
-
value: value,
|
|
1086
|
-
rest: rest
|
|
1087
|
-
};
|
|
1088
|
-
};
|
|
1089
|
-
}
|
|
1090
|
-
|
|
1091
|
-
function buildMatchFn(args) {
|
|
1092
|
-
return function (string) {
|
|
1093
|
-
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
1094
|
-
var width = options.width;
|
|
1095
|
-
var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
|
|
1096
|
-
var matchResult = string.match(matchPattern);
|
|
1097
|
-
if (!matchResult) {
|
|
1098
|
-
return null;
|
|
1099
|
-
}
|
|
1100
|
-
var matchedString = matchResult[0];
|
|
1101
|
-
var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
|
|
1102
|
-
var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {
|
|
1103
|
-
return pattern.test(matchedString);
|
|
1104
|
-
}) : findKey(parsePatterns, function (pattern) {
|
|
1105
|
-
return pattern.test(matchedString);
|
|
1106
|
-
});
|
|
1107
|
-
var value;
|
|
1108
|
-
value = args.valueCallback ? args.valueCallback(key) : key;
|
|
1109
|
-
value = options.valueCallback ? options.valueCallback(value) : value;
|
|
1110
|
-
var rest = string.slice(matchedString.length);
|
|
1111
|
-
return {
|
|
1112
|
-
value: value,
|
|
1113
|
-
rest: rest
|
|
1114
|
-
};
|
|
1115
|
-
};
|
|
1116
|
-
}
|
|
1117
|
-
function findKey(object, predicate) {
|
|
1118
|
-
for (var key in object) {
|
|
1119
|
-
if (object.hasOwnProperty(key) && predicate(object[key])) {
|
|
1120
|
-
return key;
|
|
1121
|
-
}
|
|
1122
|
-
}
|
|
1123
|
-
return undefined;
|
|
1124
|
-
}
|
|
1125
|
-
function findIndex(array, predicate) {
|
|
1126
|
-
for (var key = 0; key < array.length; key++) {
|
|
1127
|
-
if (predicate(array[key])) {
|
|
1128
|
-
return key;
|
|
1129
|
-
}
|
|
1130
|
-
}
|
|
1131
|
-
return undefined;
|
|
1132
|
-
}
|
|
1133
|
-
|
|
1134
|
-
var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
|
|
1135
|
-
var parseOrdinalNumberPattern = /\d+/i;
|
|
1136
|
-
var matchEraPatterns = {
|
|
1137
|
-
narrow: /^(b|a)/i,
|
|
1138
|
-
abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
|
|
1139
|
-
wide: /^(before christ|before common era|anno domini|common era)/i
|
|
1140
|
-
};
|
|
1141
|
-
var parseEraPatterns = {
|
|
1142
|
-
any: [/^b/i, /^(a|c)/i]
|
|
1143
|
-
};
|
|
1144
|
-
var matchQuarterPatterns = {
|
|
1145
|
-
narrow: /^[1234]/i,
|
|
1146
|
-
abbreviated: /^q[1234]/i,
|
|
1147
|
-
wide: /^[1234](th|st|nd|rd)? quarter/i
|
|
1148
|
-
};
|
|
1149
|
-
var parseQuarterPatterns = {
|
|
1150
|
-
any: [/1/i, /2/i, /3/i, /4/i]
|
|
1151
|
-
};
|
|
1152
|
-
var matchMonthPatterns = {
|
|
1153
|
-
narrow: /^[jfmasond]/i,
|
|
1154
|
-
abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
|
|
1155
|
-
wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
|
|
1156
|
-
};
|
|
1157
|
-
var parseMonthPatterns = {
|
|
1158
|
-
narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],
|
|
1159
|
-
any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]
|
|
1160
|
-
};
|
|
1161
|
-
var matchDayPatterns = {
|
|
1162
|
-
narrow: /^[smtwf]/i,
|
|
1163
|
-
short: /^(su|mo|tu|we|th|fr|sa)/i,
|
|
1164
|
-
abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
|
|
1165
|
-
wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
|
|
1166
|
-
};
|
|
1167
|
-
var parseDayPatterns = {
|
|
1168
|
-
narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
|
|
1169
|
-
any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
|
|
1170
|
-
};
|
|
1171
|
-
var matchDayPeriodPatterns = {
|
|
1172
|
-
narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
|
|
1173
|
-
any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
|
|
1174
|
-
};
|
|
1175
|
-
var parseDayPeriodPatterns = {
|
|
1176
|
-
any: {
|
|
1177
|
-
am: /^a/i,
|
|
1178
|
-
pm: /^p/i,
|
|
1179
|
-
midnight: /^mi/i,
|
|
1180
|
-
noon: /^no/i,
|
|
1181
|
-
morning: /morning/i,
|
|
1182
|
-
afternoon: /afternoon/i,
|
|
1183
|
-
evening: /evening/i,
|
|
1184
|
-
night: /night/i
|
|
1185
|
-
}
|
|
1186
|
-
};
|
|
1187
|
-
var match = {
|
|
1188
|
-
ordinalNumber: buildMatchPatternFn({
|
|
1189
|
-
matchPattern: matchOrdinalNumberPattern,
|
|
1190
|
-
parsePattern: parseOrdinalNumberPattern,
|
|
1191
|
-
valueCallback: function (value) {
|
|
1192
|
-
return parseInt(value, 10);
|
|
1193
|
-
}
|
|
1194
|
-
}),
|
|
1195
|
-
era: buildMatchFn({
|
|
1196
|
-
matchPatterns: matchEraPatterns,
|
|
1197
|
-
defaultMatchWidth: 'wide',
|
|
1198
|
-
parsePatterns: parseEraPatterns,
|
|
1199
|
-
defaultParseWidth: 'any'
|
|
1200
|
-
}),
|
|
1201
|
-
quarter: buildMatchFn({
|
|
1202
|
-
matchPatterns: matchQuarterPatterns,
|
|
1203
|
-
defaultMatchWidth: 'wide',
|
|
1204
|
-
parsePatterns: parseQuarterPatterns,
|
|
1205
|
-
defaultParseWidth: 'any',
|
|
1206
|
-
valueCallback: function (index) {
|
|
1207
|
-
return index + 1;
|
|
1208
|
-
}
|
|
1209
|
-
}),
|
|
1210
|
-
month: buildMatchFn({
|
|
1211
|
-
matchPatterns: matchMonthPatterns,
|
|
1212
|
-
defaultMatchWidth: 'wide',
|
|
1213
|
-
parsePatterns: parseMonthPatterns,
|
|
1214
|
-
defaultParseWidth: 'any'
|
|
1215
|
-
}),
|
|
1216
|
-
day: buildMatchFn({
|
|
1217
|
-
matchPatterns: matchDayPatterns,
|
|
1218
|
-
defaultMatchWidth: 'wide',
|
|
1219
|
-
parsePatterns: parseDayPatterns,
|
|
1220
|
-
defaultParseWidth: 'any'
|
|
1221
|
-
}),
|
|
1222
|
-
dayPeriod: buildMatchFn({
|
|
1223
|
-
matchPatterns: matchDayPeriodPatterns,
|
|
1224
|
-
defaultMatchWidth: 'any',
|
|
1225
|
-
parsePatterns: parseDayPeriodPatterns,
|
|
1226
|
-
defaultParseWidth: 'any'
|
|
1227
|
-
})
|
|
1228
|
-
};
|
|
1229
|
-
var match$1 = match;
|
|
1230
|
-
|
|
1231
|
-
var locale = {
|
|
1232
|
-
code: 'en-US',
|
|
1233
|
-
formatDistance: formatDistance,
|
|
1234
|
-
formatLong: formatLong$1,
|
|
1235
|
-
formatRelative: formatRelative,
|
|
1236
|
-
localize: localize$1,
|
|
1237
|
-
match: match$1,
|
|
1238
|
-
options: {
|
|
1239
|
-
weekStartsOn: 0
|
|
1240
|
-
,
|
|
1241
|
-
firstWeekContainsDate: 1
|
|
1242
|
-
}
|
|
1243
|
-
};
|
|
1244
|
-
var defaultLocale = locale;
|
|
1245
|
-
|
|
1246
|
-
function addMilliseconds(dirtyDate, dirtyAmount) {
|
|
1247
|
-
requiredArgs(2, arguments);
|
|
1248
|
-
var timestamp = toDate(dirtyDate).getTime();
|
|
1249
|
-
var amount = toInteger(dirtyAmount);
|
|
1250
|
-
return new Date(timestamp + amount);
|
|
1251
|
-
}
|
|
1252
|
-
|
|
1253
|
-
function subMilliseconds(dirtyDate, dirtyAmount) {
|
|
1254
|
-
requiredArgs(2, arguments);
|
|
1255
|
-
var amount = toInteger(dirtyAmount);
|
|
1256
|
-
return addMilliseconds(dirtyDate, -amount);
|
|
1257
|
-
}
|
|
1258
|
-
|
|
1259
|
-
function assign(target, dirtyObject) {
|
|
1260
|
-
if (target == null) {
|
|
1261
|
-
throw new TypeError('assign requires that input parameter not be null or undefined');
|
|
1262
|
-
}
|
|
1263
|
-
dirtyObject = dirtyObject || {};
|
|
1264
|
-
for (var property in dirtyObject) {
|
|
1265
|
-
if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {
|
|
1266
|
-
target[property] = dirtyObject[property];
|
|
1267
|
-
}
|
|
1268
|
-
}
|
|
1269
|
-
return target;
|
|
1270
|
-
}
|
|
1271
|
-
|
|
1272
|
-
function dateLongFormatter(pattern, formatLong) {
|
|
1273
|
-
switch (pattern) {
|
|
1274
|
-
case 'P':
|
|
1275
|
-
return formatLong.date({
|
|
1276
|
-
width: 'short'
|
|
1277
|
-
});
|
|
1278
|
-
case 'PP':
|
|
1279
|
-
return formatLong.date({
|
|
1280
|
-
width: 'medium'
|
|
1281
|
-
});
|
|
1282
|
-
case 'PPP':
|
|
1283
|
-
return formatLong.date({
|
|
1284
|
-
width: 'long'
|
|
1285
|
-
});
|
|
1286
|
-
case 'PPPP':
|
|
1287
|
-
default:
|
|
1288
|
-
return formatLong.date({
|
|
1289
|
-
width: 'full'
|
|
1290
|
-
});
|
|
1291
|
-
}
|
|
1292
|
-
}
|
|
1293
|
-
function timeLongFormatter(pattern, formatLong) {
|
|
1294
|
-
switch (pattern) {
|
|
1295
|
-
case 'p':
|
|
1296
|
-
return formatLong.time({
|
|
1297
|
-
width: 'short'
|
|
1298
|
-
});
|
|
1299
|
-
case 'pp':
|
|
1300
|
-
return formatLong.time({
|
|
1301
|
-
width: 'medium'
|
|
1302
|
-
});
|
|
1303
|
-
case 'ppp':
|
|
1304
|
-
return formatLong.time({
|
|
1305
|
-
width: 'long'
|
|
1306
|
-
});
|
|
1307
|
-
case 'pppp':
|
|
1308
|
-
default:
|
|
1309
|
-
return formatLong.time({
|
|
1310
|
-
width: 'full'
|
|
1311
|
-
});
|
|
1312
|
-
}
|
|
1313
|
-
}
|
|
1314
|
-
function dateTimeLongFormatter(pattern, formatLong) {
|
|
1315
|
-
var matchResult = pattern.match(/(P+)(p+)?/);
|
|
1316
|
-
var datePattern = matchResult[1];
|
|
1317
|
-
var timePattern = matchResult[2];
|
|
1318
|
-
if (!timePattern) {
|
|
1319
|
-
return dateLongFormatter(pattern, formatLong);
|
|
1320
|
-
}
|
|
1321
|
-
var dateTimeFormat;
|
|
1322
|
-
switch (datePattern) {
|
|
1323
|
-
case 'P':
|
|
1324
|
-
dateTimeFormat = formatLong.dateTime({
|
|
1325
|
-
width: 'short'
|
|
1326
|
-
});
|
|
1327
|
-
break;
|
|
1328
|
-
case 'PP':
|
|
1329
|
-
dateTimeFormat = formatLong.dateTime({
|
|
1330
|
-
width: 'medium'
|
|
1331
|
-
});
|
|
1332
|
-
break;
|
|
1333
|
-
case 'PPP':
|
|
1334
|
-
dateTimeFormat = formatLong.dateTime({
|
|
1335
|
-
width: 'long'
|
|
1336
|
-
});
|
|
1337
|
-
break;
|
|
1338
|
-
case 'PPPP':
|
|
1339
|
-
default:
|
|
1340
|
-
dateTimeFormat = formatLong.dateTime({
|
|
1341
|
-
width: 'full'
|
|
1342
|
-
});
|
|
1343
|
-
break;
|
|
1344
|
-
}
|
|
1345
|
-
return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));
|
|
1346
|
-
}
|
|
1347
|
-
var longFormatters = {
|
|
1348
|
-
p: timeLongFormatter,
|
|
1349
|
-
P: dateTimeLongFormatter
|
|
1350
|
-
};
|
|
1351
|
-
var longFormatters$1 = longFormatters;
|
|
1352
|
-
|
|
1353
|
-
function getTimezoneOffsetInMilliseconds(date) {
|
|
1354
|
-
var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));
|
|
1355
|
-
utcDate.setUTCFullYear(date.getFullYear());
|
|
1356
|
-
return date.getTime() - utcDate.getTime();
|
|
1357
|
-
}
|
|
1358
|
-
|
|
1359
|
-
var protectedDayOfYearTokens = ['D', 'DD'];
|
|
1360
|
-
var protectedWeekYearTokens = ['YY', 'YYYY'];
|
|
1361
|
-
function isProtectedDayOfYearToken(token) {
|
|
1362
|
-
return protectedDayOfYearTokens.indexOf(token) !== -1;
|
|
1363
|
-
}
|
|
1364
|
-
function isProtectedWeekYearToken(token) {
|
|
1365
|
-
return protectedWeekYearTokens.indexOf(token) !== -1;
|
|
1366
|
-
}
|
|
1367
|
-
function throwProtectedError(token, format, input) {
|
|
1368
|
-
if (token === 'YYYY') {
|
|
1369
|
-
throw new RangeError("Use `yyyy` instead of `YYYY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr"));
|
|
1370
|
-
} else if (token === 'YY') {
|
|
1371
|
-
throw new RangeError("Use `yy` instead of `YY` (in `".concat(format, "`) for formatting years to the input `").concat(input, "`; see: https://git.io/fxCyr"));
|
|
1372
|
-
} else if (token === 'D') {
|
|
1373
|
-
throw new RangeError("Use `d` instead of `D` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr"));
|
|
1374
|
-
} else if (token === 'DD') {
|
|
1375
|
-
throw new RangeError("Use `dd` instead of `DD` (in `".concat(format, "`) for formatting days of the month to the input `").concat(input, "`; see: https://git.io/fxCyr"));
|
|
1376
|
-
}
|
|
1377
|
-
}
|
|
1378
|
-
|
|
1379
|
-
function startOfUTCWeek(dirtyDate, dirtyOptions) {
|
|
1380
|
-
requiredArgs(1, arguments);
|
|
1381
|
-
var options = dirtyOptions || {};
|
|
1382
|
-
var locale = options.locale;
|
|
1383
|
-
var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;
|
|
1384
|
-
var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);
|
|
1385
|
-
var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);
|
|
1386
|
-
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
|
|
1387
|
-
throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
|
|
1388
|
-
}
|
|
1389
|
-
var date = toDate(dirtyDate);
|
|
1390
|
-
var day = date.getUTCDay();
|
|
1391
|
-
var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
1392
|
-
date.setUTCDate(date.getUTCDate() - diff);
|
|
1393
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1394
|
-
return date;
|
|
1395
|
-
}
|
|
1396
|
-
|
|
1397
|
-
function getUTCWeekYear(dirtyDate, dirtyOptions) {
|
|
1398
|
-
requiredArgs(1, arguments);
|
|
1399
|
-
var date = toDate(dirtyDate, dirtyOptions);
|
|
1400
|
-
var year = date.getUTCFullYear();
|
|
1401
|
-
var options = dirtyOptions || {};
|
|
1402
|
-
var locale = options.locale;
|
|
1403
|
-
var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;
|
|
1404
|
-
var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);
|
|
1405
|
-
var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);
|
|
1406
|
-
if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
|
|
1407
|
-
throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
|
|
1408
|
-
}
|
|
1409
|
-
var firstWeekOfNextYear = new Date(0);
|
|
1410
|
-
firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);
|
|
1411
|
-
firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);
|
|
1412
|
-
var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);
|
|
1413
|
-
var firstWeekOfThisYear = new Date(0);
|
|
1414
|
-
firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);
|
|
1415
|
-
firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);
|
|
1416
|
-
var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);
|
|
1417
|
-
if (date.getTime() >= startOfNextYear.getTime()) {
|
|
1418
|
-
return year + 1;
|
|
1419
|
-
} else if (date.getTime() >= startOfThisYear.getTime()) {
|
|
1420
|
-
return year;
|
|
1421
|
-
} else {
|
|
1422
|
-
return year - 1;
|
|
1423
|
-
}
|
|
1424
|
-
}
|
|
1425
|
-
|
|
1426
|
-
function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {
|
|
1427
|
-
requiredArgs(2, arguments);
|
|
1428
|
-
var options = dirtyOptions || {};
|
|
1429
|
-
var locale = options.locale;
|
|
1430
|
-
var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;
|
|
1431
|
-
var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);
|
|
1432
|
-
var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);
|
|
1433
|
-
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
|
|
1434
|
-
throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
|
|
1435
|
-
}
|
|
1436
|
-
var date = toDate(dirtyDate);
|
|
1437
|
-
var day = toInteger(dirtyDay);
|
|
1438
|
-
var currentDay = date.getUTCDay();
|
|
1439
|
-
var remainder = day % 7;
|
|
1440
|
-
var dayIndex = (remainder + 7) % 7;
|
|
1441
|
-
var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
|
|
1442
|
-
date.setUTCDate(date.getUTCDate() + diff);
|
|
1443
|
-
return date;
|
|
1444
|
-
}
|
|
1445
|
-
|
|
1446
|
-
function setUTCISODay(dirtyDate, dirtyDay) {
|
|
1447
|
-
requiredArgs(2, arguments);
|
|
1448
|
-
var day = toInteger(dirtyDay);
|
|
1449
|
-
if (day % 7 === 0) {
|
|
1450
|
-
day = day - 7;
|
|
1451
|
-
}
|
|
1452
|
-
var weekStartsOn = 1;
|
|
1453
|
-
var date = toDate(dirtyDate);
|
|
1454
|
-
var currentDay = date.getUTCDay();
|
|
1455
|
-
var remainder = day % 7;
|
|
1456
|
-
var dayIndex = (remainder + 7) % 7;
|
|
1457
|
-
var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;
|
|
1458
|
-
date.setUTCDate(date.getUTCDate() + diff);
|
|
1459
|
-
return date;
|
|
1460
|
-
}
|
|
1461
|
-
|
|
1462
|
-
function startOfUTCISOWeek(dirtyDate) {
|
|
1463
|
-
requiredArgs(1, arguments);
|
|
1464
|
-
var weekStartsOn = 1;
|
|
1465
|
-
var date = toDate(dirtyDate);
|
|
1466
|
-
var day = date.getUTCDay();
|
|
1467
|
-
var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
1468
|
-
date.setUTCDate(date.getUTCDate() - diff);
|
|
1469
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1470
|
-
return date;
|
|
1471
|
-
}
|
|
1472
|
-
|
|
1473
|
-
function getUTCISOWeekYear(dirtyDate) {
|
|
1474
|
-
requiredArgs(1, arguments);
|
|
1475
|
-
var date = toDate(dirtyDate);
|
|
1476
|
-
var year = date.getUTCFullYear();
|
|
1477
|
-
var fourthOfJanuaryOfNextYear = new Date(0);
|
|
1478
|
-
fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);
|
|
1479
|
-
fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);
|
|
1480
|
-
var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);
|
|
1481
|
-
var fourthOfJanuaryOfThisYear = new Date(0);
|
|
1482
|
-
fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);
|
|
1483
|
-
fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);
|
|
1484
|
-
var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);
|
|
1485
|
-
if (date.getTime() >= startOfNextYear.getTime()) {
|
|
1486
|
-
return year + 1;
|
|
1487
|
-
} else if (date.getTime() >= startOfThisYear.getTime()) {
|
|
1488
|
-
return year;
|
|
1489
|
-
} else {
|
|
1490
|
-
return year - 1;
|
|
1491
|
-
}
|
|
1492
|
-
}
|
|
1493
|
-
|
|
1494
|
-
function startOfUTCISOWeekYear(dirtyDate) {
|
|
1495
|
-
requiredArgs(1, arguments);
|
|
1496
|
-
var year = getUTCISOWeekYear(dirtyDate);
|
|
1497
|
-
var fourthOfJanuary = new Date(0);
|
|
1498
|
-
fourthOfJanuary.setUTCFullYear(year, 0, 4);
|
|
1499
|
-
fourthOfJanuary.setUTCHours(0, 0, 0, 0);
|
|
1500
|
-
var date = startOfUTCISOWeek(fourthOfJanuary);
|
|
1501
|
-
return date;
|
|
1502
|
-
}
|
|
1503
|
-
|
|
1504
|
-
var MILLISECONDS_IN_WEEK$1 = 604800000;
|
|
1505
|
-
function getUTCISOWeek(dirtyDate) {
|
|
1506
|
-
requiredArgs(1, arguments);
|
|
1507
|
-
var date = toDate(dirtyDate);
|
|
1508
|
-
var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();
|
|
1509
|
-
return Math.round(diff / MILLISECONDS_IN_WEEK$1) + 1;
|
|
1510
|
-
}
|
|
1511
|
-
|
|
1512
|
-
function setUTCISOWeek(dirtyDate, dirtyISOWeek) {
|
|
1513
|
-
requiredArgs(2, arguments);
|
|
1514
|
-
var date = toDate(dirtyDate);
|
|
1515
|
-
var isoWeek = toInteger(dirtyISOWeek);
|
|
1516
|
-
var diff = getUTCISOWeek(date) - isoWeek;
|
|
1517
|
-
date.setUTCDate(date.getUTCDate() - diff * 7);
|
|
1518
|
-
return date;
|
|
1519
|
-
}
|
|
1520
|
-
|
|
1521
|
-
function startOfUTCWeekYear(dirtyDate, dirtyOptions) {
|
|
1522
|
-
requiredArgs(1, arguments);
|
|
1523
|
-
var options = dirtyOptions || {};
|
|
1524
|
-
var locale = options.locale;
|
|
1525
|
-
var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;
|
|
1526
|
-
var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);
|
|
1527
|
-
var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);
|
|
1528
|
-
var year = getUTCWeekYear(dirtyDate, dirtyOptions);
|
|
1529
|
-
var firstWeek = new Date(0);
|
|
1530
|
-
firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);
|
|
1531
|
-
firstWeek.setUTCHours(0, 0, 0, 0);
|
|
1532
|
-
var date = startOfUTCWeek(firstWeek, dirtyOptions);
|
|
1533
|
-
return date;
|
|
1534
|
-
}
|
|
1535
|
-
|
|
1536
|
-
var MILLISECONDS_IN_WEEK = 604800000;
|
|
1537
|
-
function getUTCWeek(dirtyDate, options) {
|
|
1538
|
-
requiredArgs(1, arguments);
|
|
1539
|
-
var date = toDate(dirtyDate);
|
|
1540
|
-
var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();
|
|
1541
|
-
return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;
|
|
1542
|
-
}
|
|
1543
|
-
|
|
1544
|
-
function setUTCWeek(dirtyDate, dirtyWeek, options) {
|
|
1545
|
-
requiredArgs(2, arguments);
|
|
1546
|
-
var date = toDate(dirtyDate);
|
|
1547
|
-
var week = toInteger(dirtyWeek);
|
|
1548
|
-
var diff = getUTCWeek(date, options) - week;
|
|
1549
|
-
date.setUTCDate(date.getUTCDate() - diff * 7);
|
|
1550
|
-
return date;
|
|
1551
|
-
}
|
|
1552
|
-
|
|
1553
|
-
var MILLISECONDS_IN_HOUR = 3600000;
|
|
1554
|
-
var MILLISECONDS_IN_MINUTE = 60000;
|
|
1555
|
-
var MILLISECONDS_IN_SECOND = 1000;
|
|
1556
|
-
var numericPatterns = {
|
|
1557
|
-
month: /^(1[0-2]|0?\d)/,
|
|
1558
|
-
date: /^(3[0-1]|[0-2]?\d)/,
|
|
1559
|
-
dayOfYear: /^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,
|
|
1560
|
-
week: /^(5[0-3]|[0-4]?\d)/,
|
|
1561
|
-
hour23h: /^(2[0-3]|[0-1]?\d)/,
|
|
1562
|
-
hour24h: /^(2[0-4]|[0-1]?\d)/,
|
|
1563
|
-
hour11h: /^(1[0-1]|0?\d)/,
|
|
1564
|
-
hour12h: /^(1[0-2]|0?\d)/,
|
|
1565
|
-
minute: /^[0-5]?\d/,
|
|
1566
|
-
second: /^[0-5]?\d/,
|
|
1567
|
-
singleDigit: /^\d/,
|
|
1568
|
-
twoDigits: /^\d{1,2}/,
|
|
1569
|
-
threeDigits: /^\d{1,3}/,
|
|
1570
|
-
fourDigits: /^\d{1,4}/,
|
|
1571
|
-
anyDigitsSigned: /^-?\d+/,
|
|
1572
|
-
singleDigitSigned: /^-?\d/,
|
|
1573
|
-
twoDigitsSigned: /^-?\d{1,2}/,
|
|
1574
|
-
threeDigitsSigned: /^-?\d{1,3}/,
|
|
1575
|
-
fourDigitsSigned: /^-?\d{1,4}/
|
|
1576
|
-
};
|
|
1577
|
-
var timezonePatterns = {
|
|
1578
|
-
basicOptionalMinutes: /^([+-])(\d{2})(\d{2})?|Z/,
|
|
1579
|
-
basic: /^([+-])(\d{2})(\d{2})|Z/,
|
|
1580
|
-
basicOptionalSeconds: /^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,
|
|
1581
|
-
extended: /^([+-])(\d{2}):(\d{2})|Z/,
|
|
1582
|
-
extendedOptionalSeconds: /^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/
|
|
1583
|
-
};
|
|
1584
|
-
function parseNumericPattern(pattern, string, valueCallback) {
|
|
1585
|
-
var matchResult = string.match(pattern);
|
|
1586
|
-
if (!matchResult) {
|
|
1587
|
-
return null;
|
|
1588
|
-
}
|
|
1589
|
-
var value = parseInt(matchResult[0], 10);
|
|
1590
|
-
return {
|
|
1591
|
-
value: valueCallback ? valueCallback(value) : value,
|
|
1592
|
-
rest: string.slice(matchResult[0].length)
|
|
1593
|
-
};
|
|
1594
|
-
}
|
|
1595
|
-
function parseTimezonePattern(pattern, string) {
|
|
1596
|
-
var matchResult = string.match(pattern);
|
|
1597
|
-
if (!matchResult) {
|
|
1598
|
-
return null;
|
|
1599
|
-
}
|
|
1600
|
-
if (matchResult[0] === 'Z') {
|
|
1601
|
-
return {
|
|
1602
|
-
value: 0,
|
|
1603
|
-
rest: string.slice(1)
|
|
1604
|
-
};
|
|
1605
|
-
}
|
|
1606
|
-
var sign = matchResult[1] === '+' ? 1 : -1;
|
|
1607
|
-
var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;
|
|
1608
|
-
var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;
|
|
1609
|
-
var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;
|
|
1610
|
-
return {
|
|
1611
|
-
value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),
|
|
1612
|
-
rest: string.slice(matchResult[0].length)
|
|
1613
|
-
};
|
|
1614
|
-
}
|
|
1615
|
-
function parseAnyDigitsSigned(string, valueCallback) {
|
|
1616
|
-
return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);
|
|
1617
|
-
}
|
|
1618
|
-
function parseNDigits(n, string, valueCallback) {
|
|
1619
|
-
switch (n) {
|
|
1620
|
-
case 1:
|
|
1621
|
-
return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);
|
|
1622
|
-
case 2:
|
|
1623
|
-
return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);
|
|
1624
|
-
case 3:
|
|
1625
|
-
return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);
|
|
1626
|
-
case 4:
|
|
1627
|
-
return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);
|
|
1628
|
-
default:
|
|
1629
|
-
return parseNumericPattern(new RegExp('^\\d{1,' + n + '}'), string, valueCallback);
|
|
1630
|
-
}
|
|
1631
|
-
}
|
|
1632
|
-
function parseNDigitsSigned(n, string, valueCallback) {
|
|
1633
|
-
switch (n) {
|
|
1634
|
-
case 1:
|
|
1635
|
-
return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);
|
|
1636
|
-
case 2:
|
|
1637
|
-
return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);
|
|
1638
|
-
case 3:
|
|
1639
|
-
return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);
|
|
1640
|
-
case 4:
|
|
1641
|
-
return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);
|
|
1642
|
-
default:
|
|
1643
|
-
return parseNumericPattern(new RegExp('^-?\\d{1,' + n + '}'), string, valueCallback);
|
|
1644
|
-
}
|
|
1645
|
-
}
|
|
1646
|
-
function dayPeriodEnumToHours(enumValue) {
|
|
1647
|
-
switch (enumValue) {
|
|
1648
|
-
case 'morning':
|
|
1649
|
-
return 4;
|
|
1650
|
-
case 'evening':
|
|
1651
|
-
return 17;
|
|
1652
|
-
case 'pm':
|
|
1653
|
-
case 'noon':
|
|
1654
|
-
case 'afternoon':
|
|
1655
|
-
return 12;
|
|
1656
|
-
case 'am':
|
|
1657
|
-
case 'midnight':
|
|
1658
|
-
case 'night':
|
|
1659
|
-
default:
|
|
1660
|
-
return 0;
|
|
1661
|
-
}
|
|
1662
|
-
}
|
|
1663
|
-
function normalizeTwoDigitYear(twoDigitYear, currentYear) {
|
|
1664
|
-
var isCommonEra = currentYear > 0;
|
|
1665
|
-
var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;
|
|
1666
|
-
var result;
|
|
1667
|
-
if (absCurrentYear <= 50) {
|
|
1668
|
-
result = twoDigitYear || 100;
|
|
1669
|
-
} else {
|
|
1670
|
-
var rangeEnd = absCurrentYear + 50;
|
|
1671
|
-
var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;
|
|
1672
|
-
var isPreviousCentury = twoDigitYear >= rangeEnd % 100;
|
|
1673
|
-
result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);
|
|
1674
|
-
}
|
|
1675
|
-
return isCommonEra ? result : 1 - result;
|
|
1676
|
-
}
|
|
1677
|
-
var DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
1678
|
-
var DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
1679
|
-
function isLeapYearIndex(year) {
|
|
1680
|
-
return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
|
|
1681
|
-
}
|
|
1682
|
-
var parsers = {
|
|
1683
|
-
G: {
|
|
1684
|
-
priority: 140,
|
|
1685
|
-
parse: function (string, token, match, _options) {
|
|
1686
|
-
switch (token) {
|
|
1687
|
-
case 'G':
|
|
1688
|
-
case 'GG':
|
|
1689
|
-
case 'GGG':
|
|
1690
|
-
return match.era(string, {
|
|
1691
|
-
width: 'abbreviated'
|
|
1692
|
-
}) || match.era(string, {
|
|
1693
|
-
width: 'narrow'
|
|
1694
|
-
});
|
|
1695
|
-
case 'GGGGG':
|
|
1696
|
-
return match.era(string, {
|
|
1697
|
-
width: 'narrow'
|
|
1698
|
-
});
|
|
1699
|
-
case 'GGGG':
|
|
1700
|
-
default:
|
|
1701
|
-
return match.era(string, {
|
|
1702
|
-
width: 'wide'
|
|
1703
|
-
}) || match.era(string, {
|
|
1704
|
-
width: 'abbreviated'
|
|
1705
|
-
}) || match.era(string, {
|
|
1706
|
-
width: 'narrow'
|
|
1707
|
-
});
|
|
1708
|
-
}
|
|
1709
|
-
},
|
|
1710
|
-
set: function (date, flags, value, _options) {
|
|
1711
|
-
flags.era = value;
|
|
1712
|
-
date.setUTCFullYear(value, 0, 1);
|
|
1713
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1714
|
-
return date;
|
|
1715
|
-
},
|
|
1716
|
-
incompatibleTokens: ['R', 'u', 't', 'T']
|
|
1717
|
-
},
|
|
1718
|
-
y: {
|
|
1719
|
-
priority: 130,
|
|
1720
|
-
parse: function (string, token, match, _options) {
|
|
1721
|
-
var valueCallback = function (year) {
|
|
1722
|
-
return {
|
|
1723
|
-
year: year,
|
|
1724
|
-
isTwoDigitYear: token === 'yy'
|
|
1725
|
-
};
|
|
1726
|
-
};
|
|
1727
|
-
switch (token) {
|
|
1728
|
-
case 'y':
|
|
1729
|
-
return parseNDigits(4, string, valueCallback);
|
|
1730
|
-
case 'yo':
|
|
1731
|
-
return match.ordinalNumber(string, {
|
|
1732
|
-
unit: 'year',
|
|
1733
|
-
valueCallback: valueCallback
|
|
1734
|
-
});
|
|
1735
|
-
default:
|
|
1736
|
-
return parseNDigits(token.length, string, valueCallback);
|
|
1737
|
-
}
|
|
1738
|
-
},
|
|
1739
|
-
validate: function (_date, value, _options) {
|
|
1740
|
-
return value.isTwoDigitYear || value.year > 0;
|
|
1741
|
-
},
|
|
1742
|
-
set: function (date, flags, value, _options) {
|
|
1743
|
-
var currentYear = date.getUTCFullYear();
|
|
1744
|
-
if (value.isTwoDigitYear) {
|
|
1745
|
-
var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);
|
|
1746
|
-
date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);
|
|
1747
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1748
|
-
return date;
|
|
1749
|
-
}
|
|
1750
|
-
var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;
|
|
1751
|
-
date.setUTCFullYear(year, 0, 1);
|
|
1752
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1753
|
-
return date;
|
|
1754
|
-
},
|
|
1755
|
-
incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']
|
|
1756
|
-
},
|
|
1757
|
-
Y: {
|
|
1758
|
-
priority: 130,
|
|
1759
|
-
parse: function (string, token, match, _options) {
|
|
1760
|
-
var valueCallback = function (year) {
|
|
1761
|
-
return {
|
|
1762
|
-
year: year,
|
|
1763
|
-
isTwoDigitYear: token === 'YY'
|
|
1764
|
-
};
|
|
1765
|
-
};
|
|
1766
|
-
switch (token) {
|
|
1767
|
-
case 'Y':
|
|
1768
|
-
return parseNDigits(4, string, valueCallback);
|
|
1769
|
-
case 'Yo':
|
|
1770
|
-
return match.ordinalNumber(string, {
|
|
1771
|
-
unit: 'year',
|
|
1772
|
-
valueCallback: valueCallback
|
|
1773
|
-
});
|
|
1774
|
-
default:
|
|
1775
|
-
return parseNDigits(token.length, string, valueCallback);
|
|
1776
|
-
}
|
|
1777
|
-
},
|
|
1778
|
-
validate: function (_date, value, _options) {
|
|
1779
|
-
return value.isTwoDigitYear || value.year > 0;
|
|
1780
|
-
},
|
|
1781
|
-
set: function (date, flags, value, options) {
|
|
1782
|
-
var currentYear = getUTCWeekYear(date, options);
|
|
1783
|
-
if (value.isTwoDigitYear) {
|
|
1784
|
-
var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);
|
|
1785
|
-
date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);
|
|
1786
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1787
|
-
return startOfUTCWeek(date, options);
|
|
1788
|
-
}
|
|
1789
|
-
var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;
|
|
1790
|
-
date.setUTCFullYear(year, 0, options.firstWeekContainsDate);
|
|
1791
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1792
|
-
return startOfUTCWeek(date, options);
|
|
1793
|
-
},
|
|
1794
|
-
incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']
|
|
1795
|
-
},
|
|
1796
|
-
R: {
|
|
1797
|
-
priority: 130,
|
|
1798
|
-
parse: function (string, token, _match, _options) {
|
|
1799
|
-
if (token === 'R') {
|
|
1800
|
-
return parseNDigitsSigned(4, string);
|
|
1801
|
-
}
|
|
1802
|
-
return parseNDigitsSigned(token.length, string);
|
|
1803
|
-
},
|
|
1804
|
-
set: function (_date, _flags, value, _options) {
|
|
1805
|
-
var firstWeekOfYear = new Date(0);
|
|
1806
|
-
firstWeekOfYear.setUTCFullYear(value, 0, 4);
|
|
1807
|
-
firstWeekOfYear.setUTCHours(0, 0, 0, 0);
|
|
1808
|
-
return startOfUTCISOWeek(firstWeekOfYear);
|
|
1809
|
-
},
|
|
1810
|
-
incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']
|
|
1811
|
-
},
|
|
1812
|
-
u: {
|
|
1813
|
-
priority: 130,
|
|
1814
|
-
parse: function (string, token, _match, _options) {
|
|
1815
|
-
if (token === 'u') {
|
|
1816
|
-
return parseNDigitsSigned(4, string);
|
|
1817
|
-
}
|
|
1818
|
-
return parseNDigitsSigned(token.length, string);
|
|
1819
|
-
},
|
|
1820
|
-
set: function (date, _flags, value, _options) {
|
|
1821
|
-
date.setUTCFullYear(value, 0, 1);
|
|
1822
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1823
|
-
return date;
|
|
1824
|
-
},
|
|
1825
|
-
incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']
|
|
1826
|
-
},
|
|
1827
|
-
Q: {
|
|
1828
|
-
priority: 120,
|
|
1829
|
-
parse: function (string, token, match, _options) {
|
|
1830
|
-
switch (token) {
|
|
1831
|
-
case 'Q':
|
|
1832
|
-
case 'QQ':
|
|
1833
|
-
return parseNDigits(token.length, string);
|
|
1834
|
-
case 'Qo':
|
|
1835
|
-
return match.ordinalNumber(string, {
|
|
1836
|
-
unit: 'quarter'
|
|
1837
|
-
});
|
|
1838
|
-
case 'QQQ':
|
|
1839
|
-
return match.quarter(string, {
|
|
1840
|
-
width: 'abbreviated',
|
|
1841
|
-
context: 'formatting'
|
|
1842
|
-
}) || match.quarter(string, {
|
|
1843
|
-
width: 'narrow',
|
|
1844
|
-
context: 'formatting'
|
|
1845
|
-
});
|
|
1846
|
-
case 'QQQQQ':
|
|
1847
|
-
return match.quarter(string, {
|
|
1848
|
-
width: 'narrow',
|
|
1849
|
-
context: 'formatting'
|
|
1850
|
-
});
|
|
1851
|
-
case 'QQQQ':
|
|
1852
|
-
default:
|
|
1853
|
-
return match.quarter(string, {
|
|
1854
|
-
width: 'wide',
|
|
1855
|
-
context: 'formatting'
|
|
1856
|
-
}) || match.quarter(string, {
|
|
1857
|
-
width: 'abbreviated',
|
|
1858
|
-
context: 'formatting'
|
|
1859
|
-
}) || match.quarter(string, {
|
|
1860
|
-
width: 'narrow',
|
|
1861
|
-
context: 'formatting'
|
|
1862
|
-
});
|
|
1863
|
-
}
|
|
1864
|
-
},
|
|
1865
|
-
validate: function (_date, value, _options) {
|
|
1866
|
-
return value >= 1 && value <= 4;
|
|
1867
|
-
},
|
|
1868
|
-
set: function (date, _flags, value, _options) {
|
|
1869
|
-
date.setUTCMonth((value - 1) * 3, 1);
|
|
1870
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1871
|
-
return date;
|
|
1872
|
-
},
|
|
1873
|
-
incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']
|
|
1874
|
-
},
|
|
1875
|
-
q: {
|
|
1876
|
-
priority: 120,
|
|
1877
|
-
parse: function (string, token, match, _options) {
|
|
1878
|
-
switch (token) {
|
|
1879
|
-
case 'q':
|
|
1880
|
-
case 'qq':
|
|
1881
|
-
return parseNDigits(token.length, string);
|
|
1882
|
-
case 'qo':
|
|
1883
|
-
return match.ordinalNumber(string, {
|
|
1884
|
-
unit: 'quarter'
|
|
1885
|
-
});
|
|
1886
|
-
case 'qqq':
|
|
1887
|
-
return match.quarter(string, {
|
|
1888
|
-
width: 'abbreviated',
|
|
1889
|
-
context: 'standalone'
|
|
1890
|
-
}) || match.quarter(string, {
|
|
1891
|
-
width: 'narrow',
|
|
1892
|
-
context: 'standalone'
|
|
1893
|
-
});
|
|
1894
|
-
case 'qqqqq':
|
|
1895
|
-
return match.quarter(string, {
|
|
1896
|
-
width: 'narrow',
|
|
1897
|
-
context: 'standalone'
|
|
1898
|
-
});
|
|
1899
|
-
case 'qqqq':
|
|
1900
|
-
default:
|
|
1901
|
-
return match.quarter(string, {
|
|
1902
|
-
width: 'wide',
|
|
1903
|
-
context: 'standalone'
|
|
1904
|
-
}) || match.quarter(string, {
|
|
1905
|
-
width: 'abbreviated',
|
|
1906
|
-
context: 'standalone'
|
|
1907
|
-
}) || match.quarter(string, {
|
|
1908
|
-
width: 'narrow',
|
|
1909
|
-
context: 'standalone'
|
|
1910
|
-
});
|
|
1911
|
-
}
|
|
1912
|
-
},
|
|
1913
|
-
validate: function (_date, value, _options) {
|
|
1914
|
-
return value >= 1 && value <= 4;
|
|
1915
|
-
},
|
|
1916
|
-
set: function (date, _flags, value, _options) {
|
|
1917
|
-
date.setUTCMonth((value - 1) * 3, 1);
|
|
1918
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1919
|
-
return date;
|
|
1920
|
-
},
|
|
1921
|
-
incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']
|
|
1922
|
-
},
|
|
1923
|
-
M: {
|
|
1924
|
-
priority: 110,
|
|
1925
|
-
parse: function (string, token, match, _options) {
|
|
1926
|
-
var valueCallback = function (value) {
|
|
1927
|
-
return value - 1;
|
|
1928
|
-
};
|
|
1929
|
-
switch (token) {
|
|
1930
|
-
case 'M':
|
|
1931
|
-
return parseNumericPattern(numericPatterns.month, string, valueCallback);
|
|
1932
|
-
case 'MM':
|
|
1933
|
-
return parseNDigits(2, string, valueCallback);
|
|
1934
|
-
case 'Mo':
|
|
1935
|
-
return match.ordinalNumber(string, {
|
|
1936
|
-
unit: 'month',
|
|
1937
|
-
valueCallback: valueCallback
|
|
1938
|
-
});
|
|
1939
|
-
case 'MMM':
|
|
1940
|
-
return match.month(string, {
|
|
1941
|
-
width: 'abbreviated',
|
|
1942
|
-
context: 'formatting'
|
|
1943
|
-
}) || match.month(string, {
|
|
1944
|
-
width: 'narrow',
|
|
1945
|
-
context: 'formatting'
|
|
1946
|
-
});
|
|
1947
|
-
case 'MMMMM':
|
|
1948
|
-
return match.month(string, {
|
|
1949
|
-
width: 'narrow',
|
|
1950
|
-
context: 'formatting'
|
|
1951
|
-
});
|
|
1952
|
-
case 'MMMM':
|
|
1953
|
-
default:
|
|
1954
|
-
return match.month(string, {
|
|
1955
|
-
width: 'wide',
|
|
1956
|
-
context: 'formatting'
|
|
1957
|
-
}) || match.month(string, {
|
|
1958
|
-
width: 'abbreviated',
|
|
1959
|
-
context: 'formatting'
|
|
1960
|
-
}) || match.month(string, {
|
|
1961
|
-
width: 'narrow',
|
|
1962
|
-
context: 'formatting'
|
|
1963
|
-
});
|
|
1964
|
-
}
|
|
1965
|
-
},
|
|
1966
|
-
validate: function (_date, value, _options) {
|
|
1967
|
-
return value >= 0 && value <= 11;
|
|
1968
|
-
},
|
|
1969
|
-
set: function (date, _flags, value, _options) {
|
|
1970
|
-
date.setUTCMonth(value, 1);
|
|
1971
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
1972
|
-
return date;
|
|
1973
|
-
},
|
|
1974
|
-
incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']
|
|
1975
|
-
},
|
|
1976
|
-
L: {
|
|
1977
|
-
priority: 110,
|
|
1978
|
-
parse: function (string, token, match, _options) {
|
|
1979
|
-
var valueCallback = function (value) {
|
|
1980
|
-
return value - 1;
|
|
1981
|
-
};
|
|
1982
|
-
switch (token) {
|
|
1983
|
-
case 'L':
|
|
1984
|
-
return parseNumericPattern(numericPatterns.month, string, valueCallback);
|
|
1985
|
-
case 'LL':
|
|
1986
|
-
return parseNDigits(2, string, valueCallback);
|
|
1987
|
-
case 'Lo':
|
|
1988
|
-
return match.ordinalNumber(string, {
|
|
1989
|
-
unit: 'month',
|
|
1990
|
-
valueCallback: valueCallback
|
|
1991
|
-
});
|
|
1992
|
-
case 'LLL':
|
|
1993
|
-
return match.month(string, {
|
|
1994
|
-
width: 'abbreviated',
|
|
1995
|
-
context: 'standalone'
|
|
1996
|
-
}) || match.month(string, {
|
|
1997
|
-
width: 'narrow',
|
|
1998
|
-
context: 'standalone'
|
|
1999
|
-
});
|
|
2000
|
-
case 'LLLLL':
|
|
2001
|
-
return match.month(string, {
|
|
2002
|
-
width: 'narrow',
|
|
2003
|
-
context: 'standalone'
|
|
2004
|
-
});
|
|
2005
|
-
case 'LLLL':
|
|
2006
|
-
default:
|
|
2007
|
-
return match.month(string, {
|
|
2008
|
-
width: 'wide',
|
|
2009
|
-
context: 'standalone'
|
|
2010
|
-
}) || match.month(string, {
|
|
2011
|
-
width: 'abbreviated',
|
|
2012
|
-
context: 'standalone'
|
|
2013
|
-
}) || match.month(string, {
|
|
2014
|
-
width: 'narrow',
|
|
2015
|
-
context: 'standalone'
|
|
2016
|
-
});
|
|
2017
|
-
}
|
|
2018
|
-
},
|
|
2019
|
-
validate: function (_date, value, _options) {
|
|
2020
|
-
return value >= 0 && value <= 11;
|
|
2021
|
-
},
|
|
2022
|
-
set: function (date, _flags, value, _options) {
|
|
2023
|
-
date.setUTCMonth(value, 1);
|
|
2024
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
2025
|
-
return date;
|
|
2026
|
-
},
|
|
2027
|
-
incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']
|
|
2028
|
-
},
|
|
2029
|
-
w: {
|
|
2030
|
-
priority: 100,
|
|
2031
|
-
parse: function (string, token, match, _options) {
|
|
2032
|
-
switch (token) {
|
|
2033
|
-
case 'w':
|
|
2034
|
-
return parseNumericPattern(numericPatterns.week, string);
|
|
2035
|
-
case 'wo':
|
|
2036
|
-
return match.ordinalNumber(string, {
|
|
2037
|
-
unit: 'week'
|
|
2038
|
-
});
|
|
2039
|
-
default:
|
|
2040
|
-
return parseNDigits(token.length, string);
|
|
2041
|
-
}
|
|
2042
|
-
},
|
|
2043
|
-
validate: function (_date, value, _options) {
|
|
2044
|
-
return value >= 1 && value <= 53;
|
|
2045
|
-
},
|
|
2046
|
-
set: function (date, _flags, value, options) {
|
|
2047
|
-
return startOfUTCWeek(setUTCWeek(date, value, options), options);
|
|
2048
|
-
},
|
|
2049
|
-
incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']
|
|
2050
|
-
},
|
|
2051
|
-
I: {
|
|
2052
|
-
priority: 100,
|
|
2053
|
-
parse: function (string, token, match, _options) {
|
|
2054
|
-
switch (token) {
|
|
2055
|
-
case 'I':
|
|
2056
|
-
return parseNumericPattern(numericPatterns.week, string);
|
|
2057
|
-
case 'Io':
|
|
2058
|
-
return match.ordinalNumber(string, {
|
|
2059
|
-
unit: 'week'
|
|
2060
|
-
});
|
|
2061
|
-
default:
|
|
2062
|
-
return parseNDigits(token.length, string);
|
|
2063
|
-
}
|
|
2064
|
-
},
|
|
2065
|
-
validate: function (_date, value, _options) {
|
|
2066
|
-
return value >= 1 && value <= 53;
|
|
2067
|
-
},
|
|
2068
|
-
set: function (date, _flags, value, options) {
|
|
2069
|
-
return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);
|
|
2070
|
-
},
|
|
2071
|
-
incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']
|
|
2072
|
-
},
|
|
2073
|
-
d: {
|
|
2074
|
-
priority: 90,
|
|
2075
|
-
subPriority: 1,
|
|
2076
|
-
parse: function (string, token, match, _options) {
|
|
2077
|
-
switch (token) {
|
|
2078
|
-
case 'd':
|
|
2079
|
-
return parseNumericPattern(numericPatterns.date, string);
|
|
2080
|
-
case 'do':
|
|
2081
|
-
return match.ordinalNumber(string, {
|
|
2082
|
-
unit: 'date'
|
|
2083
|
-
});
|
|
2084
|
-
default:
|
|
2085
|
-
return parseNDigits(token.length, string);
|
|
2086
|
-
}
|
|
2087
|
-
},
|
|
2088
|
-
validate: function (date, value, _options) {
|
|
2089
|
-
var year = date.getUTCFullYear();
|
|
2090
|
-
var isLeapYear = isLeapYearIndex(year);
|
|
2091
|
-
var month = date.getUTCMonth();
|
|
2092
|
-
if (isLeapYear) {
|
|
2093
|
-
return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];
|
|
2094
|
-
} else {
|
|
2095
|
-
return value >= 1 && value <= DAYS_IN_MONTH[month];
|
|
2096
|
-
}
|
|
2097
|
-
},
|
|
2098
|
-
set: function (date, _flags, value, _options) {
|
|
2099
|
-
date.setUTCDate(value);
|
|
2100
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
2101
|
-
return date;
|
|
2102
|
-
},
|
|
2103
|
-
incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']
|
|
2104
|
-
},
|
|
2105
|
-
D: {
|
|
2106
|
-
priority: 90,
|
|
2107
|
-
subPriority: 1,
|
|
2108
|
-
parse: function (string, token, match, _options) {
|
|
2109
|
-
switch (token) {
|
|
2110
|
-
case 'D':
|
|
2111
|
-
case 'DD':
|
|
2112
|
-
return parseNumericPattern(numericPatterns.dayOfYear, string);
|
|
2113
|
-
case 'Do':
|
|
2114
|
-
return match.ordinalNumber(string, {
|
|
2115
|
-
unit: 'date'
|
|
2116
|
-
});
|
|
2117
|
-
default:
|
|
2118
|
-
return parseNDigits(token.length, string);
|
|
2119
|
-
}
|
|
2120
|
-
},
|
|
2121
|
-
validate: function (date, value, _options) {
|
|
2122
|
-
var year = date.getUTCFullYear();
|
|
2123
|
-
var isLeapYear = isLeapYearIndex(year);
|
|
2124
|
-
if (isLeapYear) {
|
|
2125
|
-
return value >= 1 && value <= 366;
|
|
2126
|
-
} else {
|
|
2127
|
-
return value >= 1 && value <= 365;
|
|
2128
|
-
}
|
|
2129
|
-
},
|
|
2130
|
-
set: function (date, _flags, value, _options) {
|
|
2131
|
-
date.setUTCMonth(0, value);
|
|
2132
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
2133
|
-
return date;
|
|
2134
|
-
},
|
|
2135
|
-
incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']
|
|
2136
|
-
},
|
|
2137
|
-
E: {
|
|
2138
|
-
priority: 90,
|
|
2139
|
-
parse: function (string, token, match, _options) {
|
|
2140
|
-
switch (token) {
|
|
2141
|
-
case 'E':
|
|
2142
|
-
case 'EE':
|
|
2143
|
-
case 'EEE':
|
|
2144
|
-
return match.day(string, {
|
|
2145
|
-
width: 'abbreviated',
|
|
2146
|
-
context: 'formatting'
|
|
2147
|
-
}) || match.day(string, {
|
|
2148
|
-
width: 'short',
|
|
2149
|
-
context: 'formatting'
|
|
2150
|
-
}) || match.day(string, {
|
|
2151
|
-
width: 'narrow',
|
|
2152
|
-
context: 'formatting'
|
|
2153
|
-
});
|
|
2154
|
-
case 'EEEEE':
|
|
2155
|
-
return match.day(string, {
|
|
2156
|
-
width: 'narrow',
|
|
2157
|
-
context: 'formatting'
|
|
2158
|
-
});
|
|
2159
|
-
case 'EEEEEE':
|
|
2160
|
-
return match.day(string, {
|
|
2161
|
-
width: 'short',
|
|
2162
|
-
context: 'formatting'
|
|
2163
|
-
}) || match.day(string, {
|
|
2164
|
-
width: 'narrow',
|
|
2165
|
-
context: 'formatting'
|
|
2166
|
-
});
|
|
2167
|
-
case 'EEEE':
|
|
2168
|
-
default:
|
|
2169
|
-
return match.day(string, {
|
|
2170
|
-
width: 'wide',
|
|
2171
|
-
context: 'formatting'
|
|
2172
|
-
}) || match.day(string, {
|
|
2173
|
-
width: 'abbreviated',
|
|
2174
|
-
context: 'formatting'
|
|
2175
|
-
}) || match.day(string, {
|
|
2176
|
-
width: 'short',
|
|
2177
|
-
context: 'formatting'
|
|
2178
|
-
}) || match.day(string, {
|
|
2179
|
-
width: 'narrow',
|
|
2180
|
-
context: 'formatting'
|
|
2181
|
-
});
|
|
2182
|
-
}
|
|
2183
|
-
},
|
|
2184
|
-
validate: function (_date, value, _options) {
|
|
2185
|
-
return value >= 0 && value <= 6;
|
|
2186
|
-
},
|
|
2187
|
-
set: function (date, _flags, value, options) {
|
|
2188
|
-
date = setUTCDay(date, value, options);
|
|
2189
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
2190
|
-
return date;
|
|
2191
|
-
},
|
|
2192
|
-
incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']
|
|
2193
|
-
},
|
|
2194
|
-
e: {
|
|
2195
|
-
priority: 90,
|
|
2196
|
-
parse: function (string, token, match, options) {
|
|
2197
|
-
var valueCallback = function (value) {
|
|
2198
|
-
var wholeWeekDays = Math.floor((value - 1) / 7) * 7;
|
|
2199
|
-
return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;
|
|
2200
|
-
};
|
|
2201
|
-
switch (token) {
|
|
2202
|
-
case 'e':
|
|
2203
|
-
case 'ee':
|
|
2204
|
-
return parseNDigits(token.length, string, valueCallback);
|
|
2205
|
-
case 'eo':
|
|
2206
|
-
return match.ordinalNumber(string, {
|
|
2207
|
-
unit: 'day',
|
|
2208
|
-
valueCallback: valueCallback
|
|
2209
|
-
});
|
|
2210
|
-
case 'eee':
|
|
2211
|
-
return match.day(string, {
|
|
2212
|
-
width: 'abbreviated',
|
|
2213
|
-
context: 'formatting'
|
|
2214
|
-
}) || match.day(string, {
|
|
2215
|
-
width: 'short',
|
|
2216
|
-
context: 'formatting'
|
|
2217
|
-
}) || match.day(string, {
|
|
2218
|
-
width: 'narrow',
|
|
2219
|
-
context: 'formatting'
|
|
2220
|
-
});
|
|
2221
|
-
case 'eeeee':
|
|
2222
|
-
return match.day(string, {
|
|
2223
|
-
width: 'narrow',
|
|
2224
|
-
context: 'formatting'
|
|
2225
|
-
});
|
|
2226
|
-
case 'eeeeee':
|
|
2227
|
-
return match.day(string, {
|
|
2228
|
-
width: 'short',
|
|
2229
|
-
context: 'formatting'
|
|
2230
|
-
}) || match.day(string, {
|
|
2231
|
-
width: 'narrow',
|
|
2232
|
-
context: 'formatting'
|
|
2233
|
-
});
|
|
2234
|
-
case 'eeee':
|
|
2235
|
-
default:
|
|
2236
|
-
return match.day(string, {
|
|
2237
|
-
width: 'wide',
|
|
2238
|
-
context: 'formatting'
|
|
2239
|
-
}) || match.day(string, {
|
|
2240
|
-
width: 'abbreviated',
|
|
2241
|
-
context: 'formatting'
|
|
2242
|
-
}) || match.day(string, {
|
|
2243
|
-
width: 'short',
|
|
2244
|
-
context: 'formatting'
|
|
2245
|
-
}) || match.day(string, {
|
|
2246
|
-
width: 'narrow',
|
|
2247
|
-
context: 'formatting'
|
|
2248
|
-
});
|
|
2249
|
-
}
|
|
2250
|
-
},
|
|
2251
|
-
validate: function (_date, value, _options) {
|
|
2252
|
-
return value >= 0 && value <= 6;
|
|
2253
|
-
},
|
|
2254
|
-
set: function (date, _flags, value, options) {
|
|
2255
|
-
date = setUTCDay(date, value, options);
|
|
2256
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
2257
|
-
return date;
|
|
2258
|
-
},
|
|
2259
|
-
incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']
|
|
2260
|
-
},
|
|
2261
|
-
c: {
|
|
2262
|
-
priority: 90,
|
|
2263
|
-
parse: function (string, token, match, options) {
|
|
2264
|
-
var valueCallback = function (value) {
|
|
2265
|
-
var wholeWeekDays = Math.floor((value - 1) / 7) * 7;
|
|
2266
|
-
return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;
|
|
2267
|
-
};
|
|
2268
|
-
switch (token) {
|
|
2269
|
-
case 'c':
|
|
2270
|
-
case 'cc':
|
|
2271
|
-
return parseNDigits(token.length, string, valueCallback);
|
|
2272
|
-
case 'co':
|
|
2273
|
-
return match.ordinalNumber(string, {
|
|
2274
|
-
unit: 'day',
|
|
2275
|
-
valueCallback: valueCallback
|
|
2276
|
-
});
|
|
2277
|
-
case 'ccc':
|
|
2278
|
-
return match.day(string, {
|
|
2279
|
-
width: 'abbreviated',
|
|
2280
|
-
context: 'standalone'
|
|
2281
|
-
}) || match.day(string, {
|
|
2282
|
-
width: 'short',
|
|
2283
|
-
context: 'standalone'
|
|
2284
|
-
}) || match.day(string, {
|
|
2285
|
-
width: 'narrow',
|
|
2286
|
-
context: 'standalone'
|
|
2287
|
-
});
|
|
2288
|
-
case 'ccccc':
|
|
2289
|
-
return match.day(string, {
|
|
2290
|
-
width: 'narrow',
|
|
2291
|
-
context: 'standalone'
|
|
2292
|
-
});
|
|
2293
|
-
case 'cccccc':
|
|
2294
|
-
return match.day(string, {
|
|
2295
|
-
width: 'short',
|
|
2296
|
-
context: 'standalone'
|
|
2297
|
-
}) || match.day(string, {
|
|
2298
|
-
width: 'narrow',
|
|
2299
|
-
context: 'standalone'
|
|
2300
|
-
});
|
|
2301
|
-
case 'cccc':
|
|
2302
|
-
default:
|
|
2303
|
-
return match.day(string, {
|
|
2304
|
-
width: 'wide',
|
|
2305
|
-
context: 'standalone'
|
|
2306
|
-
}) || match.day(string, {
|
|
2307
|
-
width: 'abbreviated',
|
|
2308
|
-
context: 'standalone'
|
|
2309
|
-
}) || match.day(string, {
|
|
2310
|
-
width: 'short',
|
|
2311
|
-
context: 'standalone'
|
|
2312
|
-
}) || match.day(string, {
|
|
2313
|
-
width: 'narrow',
|
|
2314
|
-
context: 'standalone'
|
|
2315
|
-
});
|
|
2316
|
-
}
|
|
2317
|
-
},
|
|
2318
|
-
validate: function (_date, value, _options) {
|
|
2319
|
-
return value >= 0 && value <= 6;
|
|
2320
|
-
},
|
|
2321
|
-
set: function (date, _flags, value, options) {
|
|
2322
|
-
date = setUTCDay(date, value, options);
|
|
2323
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
2324
|
-
return date;
|
|
2325
|
-
},
|
|
2326
|
-
incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']
|
|
2327
|
-
},
|
|
2328
|
-
i: {
|
|
2329
|
-
priority: 90,
|
|
2330
|
-
parse: function (string, token, match, _options) {
|
|
2331
|
-
var valueCallback = function (value) {
|
|
2332
|
-
if (value === 0) {
|
|
2333
|
-
return 7;
|
|
2334
|
-
}
|
|
2335
|
-
return value;
|
|
2336
|
-
};
|
|
2337
|
-
switch (token) {
|
|
2338
|
-
case 'i':
|
|
2339
|
-
case 'ii':
|
|
2340
|
-
return parseNDigits(token.length, string);
|
|
2341
|
-
case 'io':
|
|
2342
|
-
return match.ordinalNumber(string, {
|
|
2343
|
-
unit: 'day'
|
|
2344
|
-
});
|
|
2345
|
-
case 'iii':
|
|
2346
|
-
return match.day(string, {
|
|
2347
|
-
width: 'abbreviated',
|
|
2348
|
-
context: 'formatting',
|
|
2349
|
-
valueCallback: valueCallback
|
|
2350
|
-
}) || match.day(string, {
|
|
2351
|
-
width: 'short',
|
|
2352
|
-
context: 'formatting',
|
|
2353
|
-
valueCallback: valueCallback
|
|
2354
|
-
}) || match.day(string, {
|
|
2355
|
-
width: 'narrow',
|
|
2356
|
-
context: 'formatting',
|
|
2357
|
-
valueCallback: valueCallback
|
|
2358
|
-
});
|
|
2359
|
-
case 'iiiii':
|
|
2360
|
-
return match.day(string, {
|
|
2361
|
-
width: 'narrow',
|
|
2362
|
-
context: 'formatting',
|
|
2363
|
-
valueCallback: valueCallback
|
|
2364
|
-
});
|
|
2365
|
-
case 'iiiiii':
|
|
2366
|
-
return match.day(string, {
|
|
2367
|
-
width: 'short',
|
|
2368
|
-
context: 'formatting',
|
|
2369
|
-
valueCallback: valueCallback
|
|
2370
|
-
}) || match.day(string, {
|
|
2371
|
-
width: 'narrow',
|
|
2372
|
-
context: 'formatting',
|
|
2373
|
-
valueCallback: valueCallback
|
|
2374
|
-
});
|
|
2375
|
-
case 'iiii':
|
|
2376
|
-
default:
|
|
2377
|
-
return match.day(string, {
|
|
2378
|
-
width: 'wide',
|
|
2379
|
-
context: 'formatting',
|
|
2380
|
-
valueCallback: valueCallback
|
|
2381
|
-
}) || match.day(string, {
|
|
2382
|
-
width: 'abbreviated',
|
|
2383
|
-
context: 'formatting',
|
|
2384
|
-
valueCallback: valueCallback
|
|
2385
|
-
}) || match.day(string, {
|
|
2386
|
-
width: 'short',
|
|
2387
|
-
context: 'formatting',
|
|
2388
|
-
valueCallback: valueCallback
|
|
2389
|
-
}) || match.day(string, {
|
|
2390
|
-
width: 'narrow',
|
|
2391
|
-
context: 'formatting',
|
|
2392
|
-
valueCallback: valueCallback
|
|
2393
|
-
});
|
|
2394
|
-
}
|
|
2395
|
-
},
|
|
2396
|
-
validate: function (_date, value, _options) {
|
|
2397
|
-
return value >= 1 && value <= 7;
|
|
2398
|
-
},
|
|
2399
|
-
set: function (date, _flags, value, options) {
|
|
2400
|
-
date = setUTCISODay(date, value, options);
|
|
2401
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
2402
|
-
return date;
|
|
2403
|
-
},
|
|
2404
|
-
incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']
|
|
2405
|
-
},
|
|
2406
|
-
a: {
|
|
2407
|
-
priority: 80,
|
|
2408
|
-
parse: function (string, token, match, _options) {
|
|
2409
|
-
switch (token) {
|
|
2410
|
-
case 'a':
|
|
2411
|
-
case 'aa':
|
|
2412
|
-
case 'aaa':
|
|
2413
|
-
return match.dayPeriod(string, {
|
|
2414
|
-
width: 'abbreviated',
|
|
2415
|
-
context: 'formatting'
|
|
2416
|
-
}) || match.dayPeriod(string, {
|
|
2417
|
-
width: 'narrow',
|
|
2418
|
-
context: 'formatting'
|
|
2419
|
-
});
|
|
2420
|
-
case 'aaaaa':
|
|
2421
|
-
return match.dayPeriod(string, {
|
|
2422
|
-
width: 'narrow',
|
|
2423
|
-
context: 'formatting'
|
|
2424
|
-
});
|
|
2425
|
-
case 'aaaa':
|
|
2426
|
-
default:
|
|
2427
|
-
return match.dayPeriod(string, {
|
|
2428
|
-
width: 'wide',
|
|
2429
|
-
context: 'formatting'
|
|
2430
|
-
}) || match.dayPeriod(string, {
|
|
2431
|
-
width: 'abbreviated',
|
|
2432
|
-
context: 'formatting'
|
|
2433
|
-
}) || match.dayPeriod(string, {
|
|
2434
|
-
width: 'narrow',
|
|
2435
|
-
context: 'formatting'
|
|
2436
|
-
});
|
|
2437
|
-
}
|
|
2438
|
-
},
|
|
2439
|
-
set: function (date, _flags, value, _options) {
|
|
2440
|
-
date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
|
|
2441
|
-
return date;
|
|
2442
|
-
},
|
|
2443
|
-
incompatibleTokens: ['b', 'B', 'H', 'K', 'k', 't', 'T']
|
|
2444
|
-
},
|
|
2445
|
-
b: {
|
|
2446
|
-
priority: 80,
|
|
2447
|
-
parse: function (string, token, match, _options) {
|
|
2448
|
-
switch (token) {
|
|
2449
|
-
case 'b':
|
|
2450
|
-
case 'bb':
|
|
2451
|
-
case 'bbb':
|
|
2452
|
-
return match.dayPeriod(string, {
|
|
2453
|
-
width: 'abbreviated',
|
|
2454
|
-
context: 'formatting'
|
|
2455
|
-
}) || match.dayPeriod(string, {
|
|
2456
|
-
width: 'narrow',
|
|
2457
|
-
context: 'formatting'
|
|
2458
|
-
});
|
|
2459
|
-
case 'bbbbb':
|
|
2460
|
-
return match.dayPeriod(string, {
|
|
2461
|
-
width: 'narrow',
|
|
2462
|
-
context: 'formatting'
|
|
2463
|
-
});
|
|
2464
|
-
case 'bbbb':
|
|
2465
|
-
default:
|
|
2466
|
-
return match.dayPeriod(string, {
|
|
2467
|
-
width: 'wide',
|
|
2468
|
-
context: 'formatting'
|
|
2469
|
-
}) || match.dayPeriod(string, {
|
|
2470
|
-
width: 'abbreviated',
|
|
2471
|
-
context: 'formatting'
|
|
2472
|
-
}) || match.dayPeriod(string, {
|
|
2473
|
-
width: 'narrow',
|
|
2474
|
-
context: 'formatting'
|
|
2475
|
-
});
|
|
2476
|
-
}
|
|
2477
|
-
},
|
|
2478
|
-
set: function (date, _flags, value, _options) {
|
|
2479
|
-
date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
|
|
2480
|
-
return date;
|
|
2481
|
-
},
|
|
2482
|
-
incompatibleTokens: ['a', 'B', 'H', 'K', 'k', 't', 'T']
|
|
2483
|
-
},
|
|
2484
|
-
B: {
|
|
2485
|
-
priority: 80,
|
|
2486
|
-
parse: function (string, token, match, _options) {
|
|
2487
|
-
switch (token) {
|
|
2488
|
-
case 'B':
|
|
2489
|
-
case 'BB':
|
|
2490
|
-
case 'BBB':
|
|
2491
|
-
return match.dayPeriod(string, {
|
|
2492
|
-
width: 'abbreviated',
|
|
2493
|
-
context: 'formatting'
|
|
2494
|
-
}) || match.dayPeriod(string, {
|
|
2495
|
-
width: 'narrow',
|
|
2496
|
-
context: 'formatting'
|
|
2497
|
-
});
|
|
2498
|
-
case 'BBBBB':
|
|
2499
|
-
return match.dayPeriod(string, {
|
|
2500
|
-
width: 'narrow',
|
|
2501
|
-
context: 'formatting'
|
|
2502
|
-
});
|
|
2503
|
-
case 'BBBB':
|
|
2504
|
-
default:
|
|
2505
|
-
return match.dayPeriod(string, {
|
|
2506
|
-
width: 'wide',
|
|
2507
|
-
context: 'formatting'
|
|
2508
|
-
}) || match.dayPeriod(string, {
|
|
2509
|
-
width: 'abbreviated',
|
|
2510
|
-
context: 'formatting'
|
|
2511
|
-
}) || match.dayPeriod(string, {
|
|
2512
|
-
width: 'narrow',
|
|
2513
|
-
context: 'formatting'
|
|
2514
|
-
});
|
|
2515
|
-
}
|
|
2516
|
-
},
|
|
2517
|
-
set: function (date, _flags, value, _options) {
|
|
2518
|
-
date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);
|
|
2519
|
-
return date;
|
|
2520
|
-
},
|
|
2521
|
-
incompatibleTokens: ['a', 'b', 't', 'T']
|
|
2522
|
-
},
|
|
2523
|
-
h: {
|
|
2524
|
-
priority: 70,
|
|
2525
|
-
parse: function (string, token, match, _options) {
|
|
2526
|
-
switch (token) {
|
|
2527
|
-
case 'h':
|
|
2528
|
-
return parseNumericPattern(numericPatterns.hour12h, string);
|
|
2529
|
-
case 'ho':
|
|
2530
|
-
return match.ordinalNumber(string, {
|
|
2531
|
-
unit: 'hour'
|
|
2532
|
-
});
|
|
2533
|
-
default:
|
|
2534
|
-
return parseNDigits(token.length, string);
|
|
2535
|
-
}
|
|
2536
|
-
},
|
|
2537
|
-
validate: function (_date, value, _options) {
|
|
2538
|
-
return value >= 1 && value <= 12;
|
|
2539
|
-
},
|
|
2540
|
-
set: function (date, _flags, value, _options) {
|
|
2541
|
-
var isPM = date.getUTCHours() >= 12;
|
|
2542
|
-
if (isPM && value < 12) {
|
|
2543
|
-
date.setUTCHours(value + 12, 0, 0, 0);
|
|
2544
|
-
} else if (!isPM && value === 12) {
|
|
2545
|
-
date.setUTCHours(0, 0, 0, 0);
|
|
2546
|
-
} else {
|
|
2547
|
-
date.setUTCHours(value, 0, 0, 0);
|
|
2548
|
-
}
|
|
2549
|
-
return date;
|
|
2550
|
-
},
|
|
2551
|
-
incompatibleTokens: ['H', 'K', 'k', 't', 'T']
|
|
2552
|
-
},
|
|
2553
|
-
H: {
|
|
2554
|
-
priority: 70,
|
|
2555
|
-
parse: function (string, token, match, _options) {
|
|
2556
|
-
switch (token) {
|
|
2557
|
-
case 'H':
|
|
2558
|
-
return parseNumericPattern(numericPatterns.hour23h, string);
|
|
2559
|
-
case 'Ho':
|
|
2560
|
-
return match.ordinalNumber(string, {
|
|
2561
|
-
unit: 'hour'
|
|
2562
|
-
});
|
|
2563
|
-
default:
|
|
2564
|
-
return parseNDigits(token.length, string);
|
|
2565
|
-
}
|
|
2566
|
-
},
|
|
2567
|
-
validate: function (_date, value, _options) {
|
|
2568
|
-
return value >= 0 && value <= 23;
|
|
2569
|
-
},
|
|
2570
|
-
set: function (date, _flags, value, _options) {
|
|
2571
|
-
date.setUTCHours(value, 0, 0, 0);
|
|
2572
|
-
return date;
|
|
2573
|
-
},
|
|
2574
|
-
incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']
|
|
2575
|
-
},
|
|
2576
|
-
K: {
|
|
2577
|
-
priority: 70,
|
|
2578
|
-
parse: function (string, token, match, _options) {
|
|
2579
|
-
switch (token) {
|
|
2580
|
-
case 'K':
|
|
2581
|
-
return parseNumericPattern(numericPatterns.hour11h, string);
|
|
2582
|
-
case 'Ko':
|
|
2583
|
-
return match.ordinalNumber(string, {
|
|
2584
|
-
unit: 'hour'
|
|
2585
|
-
});
|
|
2586
|
-
default:
|
|
2587
|
-
return parseNDigits(token.length, string);
|
|
2588
|
-
}
|
|
2589
|
-
},
|
|
2590
|
-
validate: function (_date, value, _options) {
|
|
2591
|
-
return value >= 0 && value <= 11;
|
|
2592
|
-
},
|
|
2593
|
-
set: function (date, _flags, value, _options) {
|
|
2594
|
-
var isPM = date.getUTCHours() >= 12;
|
|
2595
|
-
if (isPM && value < 12) {
|
|
2596
|
-
date.setUTCHours(value + 12, 0, 0, 0);
|
|
2597
|
-
} else {
|
|
2598
|
-
date.setUTCHours(value, 0, 0, 0);
|
|
2599
|
-
}
|
|
2600
|
-
return date;
|
|
2601
|
-
},
|
|
2602
|
-
incompatibleTokens: ['a', 'b', 'h', 'H', 'k', 't', 'T']
|
|
2603
|
-
},
|
|
2604
|
-
k: {
|
|
2605
|
-
priority: 70,
|
|
2606
|
-
parse: function (string, token, match, _options) {
|
|
2607
|
-
switch (token) {
|
|
2608
|
-
case 'k':
|
|
2609
|
-
return parseNumericPattern(numericPatterns.hour24h, string);
|
|
2610
|
-
case 'ko':
|
|
2611
|
-
return match.ordinalNumber(string, {
|
|
2612
|
-
unit: 'hour'
|
|
2613
|
-
});
|
|
2614
|
-
default:
|
|
2615
|
-
return parseNDigits(token.length, string);
|
|
2616
|
-
}
|
|
2617
|
-
},
|
|
2618
|
-
validate: function (_date, value, _options) {
|
|
2619
|
-
return value >= 1 && value <= 24;
|
|
2620
|
-
},
|
|
2621
|
-
set: function (date, _flags, value, _options) {
|
|
2622
|
-
var hours = value <= 24 ? value % 24 : value;
|
|
2623
|
-
date.setUTCHours(hours, 0, 0, 0);
|
|
2624
|
-
return date;
|
|
2625
|
-
},
|
|
2626
|
-
incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']
|
|
2627
|
-
},
|
|
2628
|
-
m: {
|
|
2629
|
-
priority: 60,
|
|
2630
|
-
parse: function (string, token, match, _options) {
|
|
2631
|
-
switch (token) {
|
|
2632
|
-
case 'm':
|
|
2633
|
-
return parseNumericPattern(numericPatterns.minute, string);
|
|
2634
|
-
case 'mo':
|
|
2635
|
-
return match.ordinalNumber(string, {
|
|
2636
|
-
unit: 'minute'
|
|
2637
|
-
});
|
|
2638
|
-
default:
|
|
2639
|
-
return parseNDigits(token.length, string);
|
|
2640
|
-
}
|
|
2641
|
-
},
|
|
2642
|
-
validate: function (_date, value, _options) {
|
|
2643
|
-
return value >= 0 && value <= 59;
|
|
2644
|
-
},
|
|
2645
|
-
set: function (date, _flags, value, _options) {
|
|
2646
|
-
date.setUTCMinutes(value, 0, 0);
|
|
2647
|
-
return date;
|
|
2648
|
-
},
|
|
2649
|
-
incompatibleTokens: ['t', 'T']
|
|
2650
|
-
},
|
|
2651
|
-
s: {
|
|
2652
|
-
priority: 50,
|
|
2653
|
-
parse: function (string, token, match, _options) {
|
|
2654
|
-
switch (token) {
|
|
2655
|
-
case 's':
|
|
2656
|
-
return parseNumericPattern(numericPatterns.second, string);
|
|
2657
|
-
case 'so':
|
|
2658
|
-
return match.ordinalNumber(string, {
|
|
2659
|
-
unit: 'second'
|
|
2660
|
-
});
|
|
2661
|
-
default:
|
|
2662
|
-
return parseNDigits(token.length, string);
|
|
2663
|
-
}
|
|
2664
|
-
},
|
|
2665
|
-
validate: function (_date, value, _options) {
|
|
2666
|
-
return value >= 0 && value <= 59;
|
|
2667
|
-
},
|
|
2668
|
-
set: function (date, _flags, value, _options) {
|
|
2669
|
-
date.setUTCSeconds(value, 0);
|
|
2670
|
-
return date;
|
|
2671
|
-
},
|
|
2672
|
-
incompatibleTokens: ['t', 'T']
|
|
2673
|
-
},
|
|
2674
|
-
S: {
|
|
2675
|
-
priority: 30,
|
|
2676
|
-
parse: function (string, token, _match, _options) {
|
|
2677
|
-
var valueCallback = function (value) {
|
|
2678
|
-
return Math.floor(value * Math.pow(10, -token.length + 3));
|
|
2679
|
-
};
|
|
2680
|
-
return parseNDigits(token.length, string, valueCallback);
|
|
2681
|
-
},
|
|
2682
|
-
set: function (date, _flags, value, _options) {
|
|
2683
|
-
date.setUTCMilliseconds(value);
|
|
2684
|
-
return date;
|
|
2685
|
-
},
|
|
2686
|
-
incompatibleTokens: ['t', 'T']
|
|
2687
|
-
},
|
|
2688
|
-
X: {
|
|
2689
|
-
priority: 10,
|
|
2690
|
-
parse: function (string, token, _match, _options) {
|
|
2691
|
-
switch (token) {
|
|
2692
|
-
case 'X':
|
|
2693
|
-
return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);
|
|
2694
|
-
case 'XX':
|
|
2695
|
-
return parseTimezonePattern(timezonePatterns.basic, string);
|
|
2696
|
-
case 'XXXX':
|
|
2697
|
-
return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);
|
|
2698
|
-
case 'XXXXX':
|
|
2699
|
-
return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);
|
|
2700
|
-
case 'XXX':
|
|
2701
|
-
default:
|
|
2702
|
-
return parseTimezonePattern(timezonePatterns.extended, string);
|
|
2703
|
-
}
|
|
2704
|
-
},
|
|
2705
|
-
set: function (date, flags, value, _options) {
|
|
2706
|
-
if (flags.timestampIsSet) {
|
|
2707
|
-
return date;
|
|
2708
|
-
}
|
|
2709
|
-
return new Date(date.getTime() - value);
|
|
2710
|
-
},
|
|
2711
|
-
incompatibleTokens: ['t', 'T', 'x']
|
|
2712
|
-
},
|
|
2713
|
-
x: {
|
|
2714
|
-
priority: 10,
|
|
2715
|
-
parse: function (string, token, _match, _options) {
|
|
2716
|
-
switch (token) {
|
|
2717
|
-
case 'x':
|
|
2718
|
-
return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);
|
|
2719
|
-
case 'xx':
|
|
2720
|
-
return parseTimezonePattern(timezonePatterns.basic, string);
|
|
2721
|
-
case 'xxxx':
|
|
2722
|
-
return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);
|
|
2723
|
-
case 'xxxxx':
|
|
2724
|
-
return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);
|
|
2725
|
-
case 'xxx':
|
|
2726
|
-
default:
|
|
2727
|
-
return parseTimezonePattern(timezonePatterns.extended, string);
|
|
2728
|
-
}
|
|
2729
|
-
},
|
|
2730
|
-
set: function (date, flags, value, _options) {
|
|
2731
|
-
if (flags.timestampIsSet) {
|
|
2732
|
-
return date;
|
|
2733
|
-
}
|
|
2734
|
-
return new Date(date.getTime() - value);
|
|
2735
|
-
},
|
|
2736
|
-
incompatibleTokens: ['t', 'T', 'X']
|
|
2737
|
-
},
|
|
2738
|
-
t: {
|
|
2739
|
-
priority: 40,
|
|
2740
|
-
parse: function (string, _token, _match, _options) {
|
|
2741
|
-
return parseAnyDigitsSigned(string);
|
|
2742
|
-
},
|
|
2743
|
-
set: function (_date, _flags, value, _options) {
|
|
2744
|
-
return [new Date(value * 1000), {
|
|
2745
|
-
timestampIsSet: true
|
|
2746
|
-
}];
|
|
2747
|
-
},
|
|
2748
|
-
incompatibleTokens: '*'
|
|
2749
|
-
},
|
|
2750
|
-
T: {
|
|
2751
|
-
priority: 20,
|
|
2752
|
-
parse: function (string, _token, _match, _options) {
|
|
2753
|
-
return parseAnyDigitsSigned(string);
|
|
2754
|
-
},
|
|
2755
|
-
set: function (_date, _flags, value, _options) {
|
|
2756
|
-
return [new Date(value), {
|
|
2757
|
-
timestampIsSet: true
|
|
2758
|
-
}];
|
|
2759
|
-
},
|
|
2760
|
-
incompatibleTokens: '*'
|
|
2761
|
-
}
|
|
2762
|
-
};
|
|
2763
|
-
var parsers$1 = parsers;
|
|
2764
|
-
|
|
2765
|
-
var TIMEZONE_UNIT_PRIORITY = 10;
|
|
2766
|
-
var formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
|
|
2767
|
-
var longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
|
|
2768
|
-
var escapedStringRegExp = /^'([^]*?)'?$/;
|
|
2769
|
-
var doubleQuoteRegExp = /''/g;
|
|
2770
|
-
var notWhitespaceRegExp = /\S/;
|
|
2771
|
-
var unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
|
2772
|
-
function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {
|
|
2773
|
-
requiredArgs(3, arguments);
|
|
2774
|
-
var dateString = String(dirtyDateString);
|
|
2775
|
-
var formatString = String(dirtyFormatString);
|
|
2776
|
-
var options = dirtyOptions || {};
|
|
2777
|
-
var locale = options.locale || defaultLocale;
|
|
2778
|
-
if (!locale.match) {
|
|
2779
|
-
throw new RangeError('locale must contain match property');
|
|
2780
|
-
}
|
|
2781
|
-
var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;
|
|
2782
|
-
var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);
|
|
2783
|
-
var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);
|
|
2784
|
-
if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {
|
|
2785
|
-
throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');
|
|
2786
|
-
}
|
|
2787
|
-
var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;
|
|
2788
|
-
var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);
|
|
2789
|
-
var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn);
|
|
2790
|
-
if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {
|
|
2791
|
-
throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');
|
|
2792
|
-
}
|
|
2793
|
-
if (formatString === '') {
|
|
2794
|
-
if (dateString === '') {
|
|
2795
|
-
return toDate(dirtyReferenceDate);
|
|
2796
|
-
} else {
|
|
2797
|
-
return new Date(NaN);
|
|
2798
|
-
}
|
|
2799
|
-
}
|
|
2800
|
-
var subFnOptions = {
|
|
2801
|
-
firstWeekContainsDate: firstWeekContainsDate,
|
|
2802
|
-
weekStartsOn: weekStartsOn,
|
|
2803
|
-
locale: locale
|
|
2804
|
-
};
|
|
2805
|
-
var setters = [{
|
|
2806
|
-
priority: TIMEZONE_UNIT_PRIORITY,
|
|
2807
|
-
subPriority: -1,
|
|
2808
|
-
set: dateToSystemTimezone,
|
|
2809
|
-
index: 0
|
|
2810
|
-
}];
|
|
2811
|
-
var i;
|
|
2812
|
-
var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {
|
|
2813
|
-
var firstCharacter = substring[0];
|
|
2814
|
-
if (firstCharacter === 'p' || firstCharacter === 'P') {
|
|
2815
|
-
var longFormatter = longFormatters$1[firstCharacter];
|
|
2816
|
-
return longFormatter(substring, locale.formatLong, subFnOptions);
|
|
2817
|
-
}
|
|
2818
|
-
return substring;
|
|
2819
|
-
}).join('').match(formattingTokensRegExp);
|
|
2820
|
-
var usedTokens = [];
|
|
2821
|
-
for (i = 0; i < tokens.length; i++) {
|
|
2822
|
-
var token = tokens[i];
|
|
2823
|
-
if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {
|
|
2824
|
-
throwProtectedError(token, formatString, dirtyDateString);
|
|
2825
|
-
}
|
|
2826
|
-
if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {
|
|
2827
|
-
throwProtectedError(token, formatString, dirtyDateString);
|
|
2828
|
-
}
|
|
2829
|
-
var firstCharacter = token[0];
|
|
2830
|
-
var parser = parsers$1[firstCharacter];
|
|
2831
|
-
if (parser) {
|
|
2832
|
-
var incompatibleTokens = parser.incompatibleTokens;
|
|
2833
|
-
if (Array.isArray(incompatibleTokens)) {
|
|
2834
|
-
var incompatibleToken = void 0;
|
|
2835
|
-
for (var _i = 0; _i < usedTokens.length; _i++) {
|
|
2836
|
-
var usedToken = usedTokens[_i].token;
|
|
2837
|
-
if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {
|
|
2838
|
-
incompatibleToken = usedTokens[_i];
|
|
2839
|
-
break;
|
|
2840
|
-
}
|
|
2841
|
-
}
|
|
2842
|
-
if (incompatibleToken) {
|
|
2843
|
-
throw new RangeError("The format string mustn't contain `".concat(incompatibleToken.fullToken, "` and `").concat(token, "` at the same time"));
|
|
2844
|
-
}
|
|
2845
|
-
} else if (parser.incompatibleTokens === '*' && usedTokens.length) {
|
|
2846
|
-
throw new RangeError("The format string mustn't contain `".concat(token, "` and any other token at the same time"));
|
|
2847
|
-
}
|
|
2848
|
-
usedTokens.push({
|
|
2849
|
-
token: firstCharacter,
|
|
2850
|
-
fullToken: token
|
|
2851
|
-
});
|
|
2852
|
-
var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);
|
|
2853
|
-
if (!parseResult) {
|
|
2854
|
-
return new Date(NaN);
|
|
2855
|
-
}
|
|
2856
|
-
setters.push({
|
|
2857
|
-
priority: parser.priority,
|
|
2858
|
-
subPriority: parser.subPriority || 0,
|
|
2859
|
-
set: parser.set,
|
|
2860
|
-
validate: parser.validate,
|
|
2861
|
-
value: parseResult.value,
|
|
2862
|
-
index: setters.length
|
|
2863
|
-
});
|
|
2864
|
-
dateString = parseResult.rest;
|
|
2865
|
-
} else {
|
|
2866
|
-
if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
|
|
2867
|
-
throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');
|
|
2868
|
-
}
|
|
2869
|
-
if (token === "''") {
|
|
2870
|
-
token = "'";
|
|
2871
|
-
} else if (firstCharacter === "'") {
|
|
2872
|
-
token = cleanEscapedString(token);
|
|
2873
|
-
}
|
|
2874
|
-
if (dateString.indexOf(token) === 0) {
|
|
2875
|
-
dateString = dateString.slice(token.length);
|
|
2876
|
-
} else {
|
|
2877
|
-
return new Date(NaN);
|
|
2878
|
-
}
|
|
2879
|
-
}
|
|
2880
|
-
}
|
|
2881
|
-
if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {
|
|
2882
|
-
return new Date(NaN);
|
|
2883
|
-
}
|
|
2884
|
-
var uniquePrioritySetters = setters.map(function (setter) {
|
|
2885
|
-
return setter.priority;
|
|
2886
|
-
}).sort(function (a, b) {
|
|
2887
|
-
return b - a;
|
|
2888
|
-
}).filter(function (priority, index, array) {
|
|
2889
|
-
return array.indexOf(priority) === index;
|
|
2890
|
-
}).map(function (priority) {
|
|
2891
|
-
return setters.filter(function (setter) {
|
|
2892
|
-
return setter.priority === priority;
|
|
2893
|
-
}).sort(function (a, b) {
|
|
2894
|
-
return b.subPriority - a.subPriority;
|
|
2895
|
-
});
|
|
2896
|
-
}).map(function (setterArray) {
|
|
2897
|
-
return setterArray[0];
|
|
2898
|
-
});
|
|
2899
|
-
var date = toDate(dirtyReferenceDate);
|
|
2900
|
-
if (isNaN(date)) {
|
|
2901
|
-
return new Date(NaN);
|
|
2902
|
-
}
|
|
2903
|
-
var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));
|
|
2904
|
-
var flags = {};
|
|
2905
|
-
for (i = 0; i < uniquePrioritySetters.length; i++) {
|
|
2906
|
-
var setter = uniquePrioritySetters[i];
|
|
2907
|
-
if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {
|
|
2908
|
-
return new Date(NaN);
|
|
2909
|
-
}
|
|
2910
|
-
var result = setter.set(utcDate, flags, setter.value, subFnOptions);
|
|
2911
|
-
if (result[0]) {
|
|
2912
|
-
utcDate = result[0];
|
|
2913
|
-
assign(flags, result[1]);
|
|
2914
|
-
} else {
|
|
2915
|
-
utcDate = result;
|
|
2916
|
-
}
|
|
2917
|
-
}
|
|
2918
|
-
return utcDate;
|
|
2919
|
-
}
|
|
2920
|
-
function dateToSystemTimezone(date, flags) {
|
|
2921
|
-
if (flags.timestampIsSet) {
|
|
2922
|
-
return date;
|
|
2923
|
-
}
|
|
2924
|
-
var convertedDate = new Date(0);
|
|
2925
|
-
convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());
|
|
2926
|
-
convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());
|
|
2927
|
-
return convertedDate;
|
|
2928
|
-
}
|
|
2929
|
-
function cleanEscapedString(input) {
|
|
2930
|
-
return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, "'");
|
|
2931
|
-
}
|
|
2932
|
-
|
|
2933
616
|
function parseInputValue$1(_ref) {
|
|
2934
617
|
let {
|
|
2935
618
|
inputValue,
|
|
@@ -2939,16 +622,16 @@ function parseInputValue$1(_ref) {
|
|
|
2939
622
|
return customParseDate(inputValue);
|
|
2940
623
|
}
|
|
2941
624
|
const MINIMUM_DATE = new Date(1001, 0, 0);
|
|
2942
|
-
let tryParseDate =
|
|
2943
|
-
if (
|
|
625
|
+
let tryParseDate = parse__default.default(inputValue, 'P', new Date());
|
|
626
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
2944
627
|
return tryParseDate;
|
|
2945
628
|
}
|
|
2946
|
-
tryParseDate =
|
|
2947
|
-
if (
|
|
629
|
+
tryParseDate = parse__default.default(inputValue, 'PP', new Date());
|
|
630
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
2948
631
|
return tryParseDate;
|
|
2949
632
|
}
|
|
2950
|
-
tryParseDate =
|
|
2951
|
-
if (
|
|
633
|
+
tryParseDate = parse__default.default(inputValue, 'PPP', new Date());
|
|
634
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
2952
635
|
return tryParseDate;
|
|
2953
636
|
}
|
|
2954
637
|
return new Date(NaN);
|
|
@@ -3002,7 +685,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3002
685
|
}
|
|
3003
686
|
case 'PREVIEW_NEXT_MONTH':
|
|
3004
687
|
{
|
|
3005
|
-
const previewDate =
|
|
688
|
+
const previewDate = addMonths__default.default(state.previewDate, 1);
|
|
3006
689
|
return {
|
|
3007
690
|
...state,
|
|
3008
691
|
previewDate
|
|
@@ -3010,7 +693,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3010
693
|
}
|
|
3011
694
|
case 'PREVIEW_PREVIOUS_MONTH':
|
|
3012
695
|
{
|
|
3013
|
-
const previewDate =
|
|
696
|
+
const previewDate = subMonths__default.default(state.previewDate, 1);
|
|
3014
697
|
return {
|
|
3015
698
|
...state,
|
|
3016
699
|
previewDate
|
|
@@ -3023,7 +706,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3023
706
|
inputValue,
|
|
3024
707
|
customParseDate
|
|
3025
708
|
});
|
|
3026
|
-
if (onChange && currentDate &&
|
|
709
|
+
if (onChange && currentDate && isValid__default.default(currentDate) && !isSameDay__default.default(value, currentDate)) {
|
|
3027
710
|
onChange(currentDate);
|
|
3028
711
|
}
|
|
3029
712
|
return {
|
|
@@ -3065,7 +748,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3065
748
|
locale,
|
|
3066
749
|
formatDate
|
|
3067
750
|
});
|
|
3068
|
-
if (onChange && action.value &&
|
|
751
|
+
if (onChange && action.value && isValid__default.default(action.value) && !isSameDay__default.default(value, action.value)) {
|
|
3069
752
|
onChange(action.value);
|
|
3070
753
|
}
|
|
3071
754
|
return {
|
|
@@ -3081,7 +764,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3081
764
|
};
|
|
3082
765
|
function retrieveInitialState$1(initialProps) {
|
|
3083
766
|
let previewDate = initialProps.value;
|
|
3084
|
-
if (previewDate === undefined || !
|
|
767
|
+
if (previewDate === undefined || !isValid__default.default(previewDate)) {
|
|
3085
768
|
previewDate = new Date();
|
|
3086
769
|
}
|
|
3087
770
|
let inputValue = '';
|
|
@@ -3284,20 +967,6 @@ Datepicker.defaultProps = {
|
|
|
3284
967
|
locale: 'en-US'
|
|
3285
968
|
};
|
|
3286
969
|
|
|
3287
|
-
function compareAsc(dirtyDateLeft, dirtyDateRight) {
|
|
3288
|
-
requiredArgs(2, arguments);
|
|
3289
|
-
var dateLeft = toDate(dirtyDateLeft);
|
|
3290
|
-
var dateRight = toDate(dirtyDateRight);
|
|
3291
|
-
var diff = dateLeft.getTime() - dateRight.getTime();
|
|
3292
|
-
if (diff < 0) {
|
|
3293
|
-
return -1;
|
|
3294
|
-
} else if (diff > 0) {
|
|
3295
|
-
return 1;
|
|
3296
|
-
} else {
|
|
3297
|
-
return diff;
|
|
3298
|
-
}
|
|
3299
|
-
}
|
|
3300
|
-
|
|
3301
970
|
function formatValue(_ref) {
|
|
3302
971
|
let {
|
|
3303
972
|
value,
|
|
@@ -3305,7 +974,7 @@ function formatValue(_ref) {
|
|
|
3305
974
|
formatDate
|
|
3306
975
|
} = _ref;
|
|
3307
976
|
let stringValue = '';
|
|
3308
|
-
if (value !== undefined &&
|
|
977
|
+
if (value !== undefined && isValid__default.default(value)) {
|
|
3309
978
|
if (formatDate) {
|
|
3310
979
|
stringValue = formatDate(value);
|
|
3311
980
|
} else {
|
|
@@ -3323,16 +992,16 @@ function parseInputValue(_ref2) {
|
|
|
3323
992
|
inputValue
|
|
3324
993
|
} = _ref2;
|
|
3325
994
|
const MINIMUM_DATE = new Date(1001, 0, 0);
|
|
3326
|
-
let tryParseDate =
|
|
3327
|
-
if (
|
|
995
|
+
let tryParseDate = parse__default.default(inputValue || '', 'P', new Date());
|
|
996
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
3328
997
|
return tryParseDate;
|
|
3329
998
|
}
|
|
3330
|
-
tryParseDate =
|
|
3331
|
-
if (
|
|
999
|
+
tryParseDate = parse__default.default(inputValue || '', 'PP', new Date());
|
|
1000
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
3332
1001
|
return tryParseDate;
|
|
3333
1002
|
}
|
|
3334
|
-
tryParseDate =
|
|
3335
|
-
if (
|
|
1003
|
+
tryParseDate = parse__default.default(inputValue || '', 'PPP', new Date());
|
|
1004
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
3336
1005
|
return tryParseDate;
|
|
3337
1006
|
}
|
|
3338
1007
|
return new Date(NaN);
|
|
@@ -3351,10 +1020,10 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3351
1020
|
{
|
|
3352
1021
|
let previewDate = state.previewDate;
|
|
3353
1022
|
if (startValue) {
|
|
3354
|
-
if (
|
|
1023
|
+
if (compareAsc__default.default(startValue, startOfMonth__default.default(state.previewDate)) === 1 && compareAsc__default.default(startValue, addMonths__default.default(endOfMonth__default.default(state.previewDate), 1)) === -1) {
|
|
3355
1024
|
previewDate = state.previewDate;
|
|
3356
1025
|
} else {
|
|
3357
|
-
previewDate =
|
|
1026
|
+
previewDate = startOfMonth__default.default(startValue);
|
|
3358
1027
|
}
|
|
3359
1028
|
}
|
|
3360
1029
|
return {
|
|
@@ -3368,10 +1037,10 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3368
1037
|
{
|
|
3369
1038
|
let previewDate = state.previewDate;
|
|
3370
1039
|
if (endValue) {
|
|
3371
|
-
if (
|
|
1040
|
+
if (compareAsc__default.default(endValue, startOfMonth__default.default(state.previewDate)) === 1 && compareAsc__default.default(endValue, addMonths__default.default(endOfMonth__default.default(state.previewDate), 1)) === -1) {
|
|
3372
1041
|
previewDate = state.previewDate;
|
|
3373
1042
|
} else {
|
|
3374
|
-
previewDate =
|
|
1043
|
+
previewDate = startOfMonth__default.default(endValue);
|
|
3375
1044
|
}
|
|
3376
1045
|
}
|
|
3377
1046
|
return {
|
|
@@ -3440,10 +1109,10 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3440
1109
|
});
|
|
3441
1110
|
let previewDate = state.previewDate;
|
|
3442
1111
|
if (action.value) {
|
|
3443
|
-
if (
|
|
1112
|
+
if (compareAsc__default.default(action.value, startOfMonth__default.default(state.previewDate)) === 1 && compareAsc__default.default(action.value, addMonths__default.default(endOfMonth__default.default(state.previewDate), 1)) === -1) {
|
|
3444
1113
|
previewDate = state.previewDate;
|
|
3445
1114
|
} else {
|
|
3446
|
-
previewDate =
|
|
1115
|
+
previewDate = startOfMonth__default.default(action.value);
|
|
3447
1116
|
}
|
|
3448
1117
|
}
|
|
3449
1118
|
return {
|
|
@@ -3462,10 +1131,10 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3462
1131
|
});
|
|
3463
1132
|
let previewDate = state.previewDate;
|
|
3464
1133
|
if (action.value) {
|
|
3465
|
-
if (
|
|
1134
|
+
if (compareAsc__default.default(action.value, startOfMonth__default.default(state.previewDate)) === 1 && compareAsc__default.default(action.value, addMonths__default.default(endOfMonth__default.default(state.previewDate), 1)) === -1) {
|
|
3466
1135
|
previewDate = state.previewDate;
|
|
3467
1136
|
} else {
|
|
3468
|
-
previewDate =
|
|
1137
|
+
previewDate = startOfMonth__default.default(action.value);
|
|
3469
1138
|
}
|
|
3470
1139
|
}
|
|
3471
1140
|
return {
|
|
@@ -3477,7 +1146,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3477
1146
|
}
|
|
3478
1147
|
case 'CLICK_DATE':
|
|
3479
1148
|
if (state.isStartFocused) {
|
|
3480
|
-
if (endValue !== undefined && (
|
|
1149
|
+
if (endValue !== undefined && (isBefore__default.default(action.value, endValue) || isSameDay__default.default(action.value, endValue))) {
|
|
3481
1150
|
return {
|
|
3482
1151
|
...state,
|
|
3483
1152
|
startInputValue: formatValue({
|
|
@@ -3493,7 +1162,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3493
1162
|
endInputValue: undefined
|
|
3494
1163
|
};
|
|
3495
1164
|
} else if (state.isEndFocused) {
|
|
3496
|
-
if (startValue !== undefined && (
|
|
1165
|
+
if (startValue !== undefined && (isAfter__default.default(action.value, startValue) || isSameDay__default.default(action.value, startValue))) {
|
|
3497
1166
|
return {
|
|
3498
1167
|
...state,
|
|
3499
1168
|
endInputValue: formatValue({
|
|
@@ -3516,7 +1185,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3516
1185
|
endInputValue: undefined
|
|
3517
1186
|
};
|
|
3518
1187
|
} else if (endValue === undefined) {
|
|
3519
|
-
if (
|
|
1188
|
+
if (isBefore__default.default(action.value, startValue)) {
|
|
3520
1189
|
return {
|
|
3521
1190
|
...state,
|
|
3522
1191
|
startInputValue: formatValue({
|
|
@@ -3554,7 +1223,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3554
1223
|
};
|
|
3555
1224
|
case 'PREVIEW_NEXT_MONTH':
|
|
3556
1225
|
{
|
|
3557
|
-
const previewDate =
|
|
1226
|
+
const previewDate = addMonths__default.default(state.previewDate, 1);
|
|
3558
1227
|
return {
|
|
3559
1228
|
...state,
|
|
3560
1229
|
previewDate,
|
|
@@ -3563,7 +1232,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3563
1232
|
}
|
|
3564
1233
|
case 'PREVIEW_PREVIOUS_MONTH':
|
|
3565
1234
|
{
|
|
3566
|
-
const previewDate =
|
|
1235
|
+
const previewDate = subMonths__default.default(state.previewDate, 1);
|
|
3567
1236
|
return {
|
|
3568
1237
|
...state,
|
|
3569
1238
|
previewDate,
|
|
@@ -3577,7 +1246,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3577
1246
|
};
|
|
3578
1247
|
function retrieveInitialState(initialProps) {
|
|
3579
1248
|
let previewDate = initialProps.startValue;
|
|
3580
|
-
if (previewDate === undefined || !
|
|
1249
|
+
if (previewDate === undefined || !isValid__default.default(previewDate)) {
|
|
3581
1250
|
previewDate = new Date();
|
|
3582
1251
|
}
|
|
3583
1252
|
const startInputValue = formatValue({
|
|
@@ -3639,7 +1308,7 @@ const Start = props => {
|
|
|
3639
1308
|
dispatch({
|
|
3640
1309
|
type: 'START_BLUR'
|
|
3641
1310
|
});
|
|
3642
|
-
if (parsedDate &&
|
|
1311
|
+
if (parsedDate && isValid__default.default(parsedDate) && !isSameDay__default.default(parsedDate, startValue)) {
|
|
3643
1312
|
onChange && onChange({
|
|
3644
1313
|
startValue: parsedDate,
|
|
3645
1314
|
endValue
|
|
@@ -3704,7 +1373,7 @@ const End = props => {
|
|
|
3704
1373
|
inputValue: state.endInputValue
|
|
3705
1374
|
});
|
|
3706
1375
|
}
|
|
3707
|
-
if (onChange && parsedDate &&
|
|
1376
|
+
if (onChange && parsedDate && isValid__default.default(parsedDate) && !isSameDay__default.default(parsedDate, endValue)) {
|
|
3708
1377
|
onChange && onChange({
|
|
3709
1378
|
startValue,
|
|
3710
1379
|
endValue: parsedDate
|
|
@@ -3749,12 +1418,6 @@ function _extends() {
|
|
|
3749
1418
|
return _extends.apply(this, arguments);
|
|
3750
1419
|
}
|
|
3751
1420
|
|
|
3752
|
-
function subDays(dirtyDate, dirtyAmount) {
|
|
3753
|
-
requiredArgs(2, arguments);
|
|
3754
|
-
var amount = toInteger(dirtyAmount);
|
|
3755
|
-
return addDays(dirtyDate, -amount);
|
|
3756
|
-
}
|
|
3757
|
-
|
|
3758
1421
|
const Month = React.forwardRef((_ref, ref) => {
|
|
3759
1422
|
let {
|
|
3760
1423
|
displayDate,
|
|
@@ -3793,17 +1456,17 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3793
1456
|
return formatter.format(date);
|
|
3794
1457
|
}, [locale]);
|
|
3795
1458
|
const preferredWeekStartsOn = weekStartsOn || getStartOfWeek(locale);
|
|
3796
|
-
const monthStartDate =
|
|
3797
|
-
const monthEndDate =
|
|
3798
|
-
const startDate =
|
|
1459
|
+
const monthStartDate = startOfMonth__default.default(displayDate);
|
|
1460
|
+
const monthEndDate = endOfMonth__default.default(monthStartDate);
|
|
1461
|
+
const startDate = startOfWeek__default.default(monthStartDate, {
|
|
3799
1462
|
weekStartsOn: preferredWeekStartsOn
|
|
3800
1463
|
});
|
|
3801
|
-
const endDate =
|
|
1464
|
+
const endDate = endOfWeek__default.default(monthEndDate, {
|
|
3802
1465
|
weekStartsOn: preferredWeekStartsOn
|
|
3803
1466
|
});
|
|
3804
|
-
const dayLabels =
|
|
1467
|
+
const dayLabels = eachDayOfInterval__default.default({
|
|
3805
1468
|
start: startDate,
|
|
3806
|
-
end:
|
|
1469
|
+
end: addDays__default.default(startDate, 6)
|
|
3807
1470
|
}).map(date => {
|
|
3808
1471
|
const formattedDayLabel = dayLabelFormatter(date);
|
|
3809
1472
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
@@ -3813,13 +1476,13 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3813
1476
|
isCompact: isCompact
|
|
3814
1477
|
}, formattedDayLabel));
|
|
3815
1478
|
});
|
|
3816
|
-
const items =
|
|
1479
|
+
const items = eachDayOfInterval__default.default({
|
|
3817
1480
|
start: startDate,
|
|
3818
1481
|
end: endDate
|
|
3819
1482
|
}).map((date, itemsIndex) => {
|
|
3820
1483
|
const formattedDayLabel = dayFormatter(date);
|
|
3821
|
-
const isCurrentDate =
|
|
3822
|
-
const isPreviousMonth = !
|
|
1484
|
+
const isCurrentDate = isToday__default.default(date);
|
|
1485
|
+
const isPreviousMonth = !isSameMonth__default.default(date, displayDate);
|
|
3823
1486
|
if (isPreviousMonth) {
|
|
3824
1487
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
3825
1488
|
key: `day-${itemsIndex}`,
|
|
@@ -3832,41 +1495,41 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3832
1495
|
}
|
|
3833
1496
|
let isSelected = false;
|
|
3834
1497
|
if (startValue !== undefined) {
|
|
3835
|
-
isSelected =
|
|
1498
|
+
isSelected = isSameDay__default.default(date, startValue);
|
|
3836
1499
|
}
|
|
3837
1500
|
if (endValue !== undefined) {
|
|
3838
|
-
isSelected = isSelected ||
|
|
1501
|
+
isSelected = isSelected || isSameDay__default.default(date, endValue);
|
|
3839
1502
|
}
|
|
3840
1503
|
let isDisabled = false;
|
|
3841
1504
|
if (minValue !== undefined) {
|
|
3842
|
-
isDisabled =
|
|
1505
|
+
isDisabled = isBefore__default.default(date, minValue) && !isSameDay__default.default(date, minValue);
|
|
3843
1506
|
}
|
|
3844
1507
|
if (maxValue !== undefined) {
|
|
3845
|
-
isDisabled = isDisabled ||
|
|
1508
|
+
isDisabled = isDisabled || isAfter__default.default(date, maxValue) && !isSameDay__default.default(date, maxValue);
|
|
3846
1509
|
}
|
|
3847
1510
|
let isHighlighted = false;
|
|
3848
1511
|
if (startValue !== undefined && endValue !== undefined) {
|
|
3849
|
-
isHighlighted = (
|
|
1512
|
+
isHighlighted = (isAfter__default.default(date, startValue) || isSameDay__default.default(date, startValue)) && (isBefore__default.default(date, endValue) || isSameDay__default.default(date, endValue)) && !isSameDay__default.default(startValue, endValue);
|
|
3850
1513
|
} else if (startValue !== undefined && state.hoverDate !== undefined) {
|
|
3851
|
-
isHighlighted = (
|
|
1514
|
+
isHighlighted = (isAfter__default.default(date, startValue) || isSameDay__default.default(date, startValue)) && (isBefore__default.default(date, state.hoverDate) || isSameDay__default.default(date, state.hoverDate));
|
|
3852
1515
|
}
|
|
3853
|
-
const isHighlightStart = isHighlighted && startValue &&
|
|
3854
|
-
const isHighlightEnd = isHighlighted && endValue &&
|
|
3855
|
-
let isInvalidDateRange = endValue && startValue &&
|
|
1516
|
+
const isHighlightStart = isHighlighted && startValue && isSameDay__default.default(date, startValue) || false;
|
|
1517
|
+
const isHighlightEnd = isHighlighted && endValue && isSameDay__default.default(date, endValue) || state.hoverDate && isSameDay__default.default(date, state.hoverDate) && !isBefore__default.default(date, endValue) || false;
|
|
1518
|
+
let isInvalidDateRange = endValue && startValue && compareAsc__default.default(endValue, startValue) === -1 || false;
|
|
3856
1519
|
if (minValue) {
|
|
3857
1520
|
if (startValue) {
|
|
3858
|
-
isInvalidDateRange = isInvalidDateRange ||
|
|
1521
|
+
isInvalidDateRange = isInvalidDateRange || compareAsc__default.default(startValue, subDays__default.default(minValue, 1)) === -1;
|
|
3859
1522
|
}
|
|
3860
1523
|
if (endValue) {
|
|
3861
|
-
isInvalidDateRange = isInvalidDateRange ||
|
|
1524
|
+
isInvalidDateRange = isInvalidDateRange || compareAsc__default.default(endValue, subDays__default.default(minValue, 1)) === -1;
|
|
3862
1525
|
}
|
|
3863
1526
|
}
|
|
3864
1527
|
if (maxValue) {
|
|
3865
1528
|
if (startValue) {
|
|
3866
|
-
isInvalidDateRange = isInvalidDateRange ||
|
|
1529
|
+
isInvalidDateRange = isInvalidDateRange || compareAsc__default.default(startValue, maxValue) === 1;
|
|
3867
1530
|
}
|
|
3868
1531
|
if (endValue) {
|
|
3869
|
-
isInvalidDateRange = isInvalidDateRange ||
|
|
1532
|
+
isInvalidDateRange = isInvalidDateRange || compareAsc__default.default(endValue, maxValue) === 1;
|
|
3870
1533
|
}
|
|
3871
1534
|
}
|
|
3872
1535
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
@@ -3890,7 +1553,7 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3890
1553
|
});
|
|
3891
1554
|
if (onChange) {
|
|
3892
1555
|
if (state.isStartFocused) {
|
|
3893
|
-
if (endValue !== undefined && (
|
|
1556
|
+
if (endValue !== undefined && (isBefore__default.default(date, endValue) || isSameDay__default.default(date, endValue))) {
|
|
3894
1557
|
onChange({
|
|
3895
1558
|
startValue: date,
|
|
3896
1559
|
endValue
|
|
@@ -3902,7 +1565,7 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3902
1565
|
});
|
|
3903
1566
|
}
|
|
3904
1567
|
} else if (state.isEndFocused) {
|
|
3905
|
-
if (startValue !== undefined && (
|
|
1568
|
+
if (startValue !== undefined && (isAfter__default.default(date, startValue) || isSameDay__default.default(date, startValue))) {
|
|
3906
1569
|
onChange({
|
|
3907
1570
|
startValue,
|
|
3908
1571
|
endValue: date
|
|
@@ -3919,7 +1582,7 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3919
1582
|
endValue: undefined
|
|
3920
1583
|
});
|
|
3921
1584
|
} else if (endValue === undefined) {
|
|
3922
|
-
if (
|
|
1585
|
+
if (isBefore__default.default(date, startValue)) {
|
|
3923
1586
|
onChange({
|
|
3924
1587
|
startValue: date,
|
|
3925
1588
|
endValue: undefined
|
|
@@ -3994,12 +1657,12 @@ const Calendar = React.forwardRef((props, ref) => {
|
|
|
3994
1657
|
return React__namespace.default.createElement(StyledRangeCalendar, _extends({
|
|
3995
1658
|
ref: ref,
|
|
3996
1659
|
"data-garden-id": "datepickers.range",
|
|
3997
|
-
"data-garden-version": '8.69.
|
|
1660
|
+
"data-garden-version": '8.69.4'
|
|
3998
1661
|
}, props), React__namespace.default.createElement(Month, {
|
|
3999
1662
|
displayDate: state.previewDate,
|
|
4000
1663
|
isNextHidden: true
|
|
4001
1664
|
}), React__namespace.default.createElement(Month, {
|
|
4002
|
-
displayDate:
|
|
1665
|
+
displayDate: addMonths__default.default(state.previewDate, 1),
|
|
4003
1666
|
isPreviousHidden: true
|
|
4004
1667
|
}));
|
|
4005
1668
|
});
|