@zendeskgarden/react-datepickers 8.69.1 → 8.69.3
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 +111 -2445
- package/dist/index.esm.js +20 -2372
- 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.3'
|
|
267
134
|
}).withConfig({
|
|
268
135
|
displayName: "StyledMenu",
|
|
269
136
|
componentId: "sc-1npbkk0-0"
|
|
@@ -674,12 +541,12 @@ const Calendar$1 = React.forwardRef((_ref, ref) => {
|
|
|
674
541
|
dispatch
|
|
675
542
|
} = useDatepickerContext$1();
|
|
676
543
|
const preferredWeekStartsOn = weekStartsOn || getStartOfWeek(locale);
|
|
677
|
-
const monthStartDate =
|
|
678
|
-
const monthEndDate =
|
|
679
|
-
const startDate =
|
|
544
|
+
const monthStartDate = startOfMonth__default.default(state.previewDate);
|
|
545
|
+
const monthEndDate = endOfMonth__default.default(monthStartDate);
|
|
546
|
+
const startDate = startOfWeek__default.default(monthStartDate, {
|
|
680
547
|
weekStartsOn: preferredWeekStartsOn
|
|
681
548
|
});
|
|
682
|
-
const endDate =
|
|
549
|
+
const endDate = endOfWeek__default.default(monthEndDate, {
|
|
683
550
|
weekStartsOn: preferredWeekStartsOn
|
|
684
551
|
});
|
|
685
552
|
const dayLabelFormatter = React.useCallback(date => {
|
|
@@ -688,9 +555,9 @@ const Calendar$1 = React.forwardRef((_ref, ref) => {
|
|
|
688
555
|
});
|
|
689
556
|
return formatter.format(date);
|
|
690
557
|
}, [locale]);
|
|
691
|
-
const dayLabels =
|
|
558
|
+
const dayLabels = eachDayOfInterval__default.default({
|
|
692
559
|
start: startDate,
|
|
693
|
-
end:
|
|
560
|
+
end: addDays__default.default(startDate, 6)
|
|
694
561
|
}).map(date => {
|
|
695
562
|
const formattedDayLabel = dayLabelFormatter(date);
|
|
696
563
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
@@ -700,20 +567,20 @@ const Calendar$1 = React.forwardRef((_ref, ref) => {
|
|
|
700
567
|
isCompact: isCompact
|
|
701
568
|
}, formattedDayLabel));
|
|
702
569
|
});
|
|
703
|
-
const items =
|
|
570
|
+
const items = eachDayOfInterval__default.default({
|
|
704
571
|
start: startDate,
|
|
705
572
|
end: endDate
|
|
706
573
|
}).map((date, itemsIndex) => {
|
|
707
|
-
const formattedDayLabel =
|
|
708
|
-
const isCurrentDate =
|
|
709
|
-
const isPreviousMonth = !
|
|
710
|
-
const isSelected = value &&
|
|
574
|
+
const formattedDayLabel = getDate__default.default(date);
|
|
575
|
+
const isCurrentDate = isToday__default.default(date);
|
|
576
|
+
const isPreviousMonth = !isSameMonth__default.default(date, state.previewDate);
|
|
577
|
+
const isSelected = value && isSameDay__default.default(date, value);
|
|
711
578
|
let isDisabled = false;
|
|
712
579
|
if (minValue !== undefined) {
|
|
713
|
-
isDisabled =
|
|
580
|
+
isDisabled = isBefore__default.default(date, minValue) && !isSameDay__default.default(date, minValue);
|
|
714
581
|
}
|
|
715
582
|
if (maxValue !== undefined) {
|
|
716
|
-
isDisabled = isDisabled ||
|
|
583
|
+
isDisabled = isDisabled || isAfter__default.default(date, maxValue) && !isSameDay__default.default(date, maxValue);
|
|
717
584
|
}
|
|
718
585
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
719
586
|
key: `day-${itemsIndex}`,
|
|
@@ -749,2187 +616,6 @@ const Calendar$1 = React.forwardRef((_ref, ref) => {
|
|
|
749
616
|
});
|
|
750
617
|
Calendar$1.displayName = 'Calendar';
|
|
751
618
|
|
|
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
619
|
function parseInputValue$1(_ref) {
|
|
2934
620
|
let {
|
|
2935
621
|
inputValue,
|
|
@@ -2939,16 +625,16 @@ function parseInputValue$1(_ref) {
|
|
|
2939
625
|
return customParseDate(inputValue);
|
|
2940
626
|
}
|
|
2941
627
|
const MINIMUM_DATE = new Date(1001, 0, 0);
|
|
2942
|
-
let tryParseDate =
|
|
2943
|
-
if (
|
|
628
|
+
let tryParseDate = parse__default.default(inputValue, 'P', new Date());
|
|
629
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
2944
630
|
return tryParseDate;
|
|
2945
631
|
}
|
|
2946
|
-
tryParseDate =
|
|
2947
|
-
if (
|
|
632
|
+
tryParseDate = parse__default.default(inputValue, 'PP', new Date());
|
|
633
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
2948
634
|
return tryParseDate;
|
|
2949
635
|
}
|
|
2950
|
-
tryParseDate =
|
|
2951
|
-
if (
|
|
636
|
+
tryParseDate = parse__default.default(inputValue, 'PPP', new Date());
|
|
637
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
2952
638
|
return tryParseDate;
|
|
2953
639
|
}
|
|
2954
640
|
return new Date(NaN);
|
|
@@ -3002,7 +688,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3002
688
|
}
|
|
3003
689
|
case 'PREVIEW_NEXT_MONTH':
|
|
3004
690
|
{
|
|
3005
|
-
const previewDate =
|
|
691
|
+
const previewDate = addMonths__default.default(state.previewDate, 1);
|
|
3006
692
|
return {
|
|
3007
693
|
...state,
|
|
3008
694
|
previewDate
|
|
@@ -3010,7 +696,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3010
696
|
}
|
|
3011
697
|
case 'PREVIEW_PREVIOUS_MONTH':
|
|
3012
698
|
{
|
|
3013
|
-
const previewDate =
|
|
699
|
+
const previewDate = subMonths__default.default(state.previewDate, 1);
|
|
3014
700
|
return {
|
|
3015
701
|
...state,
|
|
3016
702
|
previewDate
|
|
@@ -3023,7 +709,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3023
709
|
inputValue,
|
|
3024
710
|
customParseDate
|
|
3025
711
|
});
|
|
3026
|
-
if (onChange && currentDate &&
|
|
712
|
+
if (onChange && currentDate && isValid__default.default(currentDate) && !isSameDay__default.default(value, currentDate)) {
|
|
3027
713
|
onChange(currentDate);
|
|
3028
714
|
}
|
|
3029
715
|
return {
|
|
@@ -3065,7 +751,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3065
751
|
locale,
|
|
3066
752
|
formatDate
|
|
3067
753
|
});
|
|
3068
|
-
if (onChange && action.value &&
|
|
754
|
+
if (onChange && action.value && isValid__default.default(action.value) && !isSameDay__default.default(value, action.value)) {
|
|
3069
755
|
onChange(action.value);
|
|
3070
756
|
}
|
|
3071
757
|
return {
|
|
@@ -3081,7 +767,7 @@ const datepickerReducer = _ref3 => {
|
|
|
3081
767
|
};
|
|
3082
768
|
function retrieveInitialState$1(initialProps) {
|
|
3083
769
|
let previewDate = initialProps.value;
|
|
3084
|
-
if (previewDate === undefined || !
|
|
770
|
+
if (previewDate === undefined || !isValid__default.default(previewDate)) {
|
|
3085
771
|
previewDate = new Date();
|
|
3086
772
|
}
|
|
3087
773
|
let inputValue = '';
|
|
@@ -3284,20 +970,6 @@ Datepicker.defaultProps = {
|
|
|
3284
970
|
locale: 'en-US'
|
|
3285
971
|
};
|
|
3286
972
|
|
|
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
973
|
function formatValue(_ref) {
|
|
3302
974
|
let {
|
|
3303
975
|
value,
|
|
@@ -3305,7 +977,7 @@ function formatValue(_ref) {
|
|
|
3305
977
|
formatDate
|
|
3306
978
|
} = _ref;
|
|
3307
979
|
let stringValue = '';
|
|
3308
|
-
if (value !== undefined &&
|
|
980
|
+
if (value !== undefined && isValid__default.default(value)) {
|
|
3309
981
|
if (formatDate) {
|
|
3310
982
|
stringValue = formatDate(value);
|
|
3311
983
|
} else {
|
|
@@ -3323,16 +995,16 @@ function parseInputValue(_ref2) {
|
|
|
3323
995
|
inputValue
|
|
3324
996
|
} = _ref2;
|
|
3325
997
|
const MINIMUM_DATE = new Date(1001, 0, 0);
|
|
3326
|
-
let tryParseDate =
|
|
3327
|
-
if (
|
|
998
|
+
let tryParseDate = parse__default.default(inputValue || '', 'P', new Date());
|
|
999
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
3328
1000
|
return tryParseDate;
|
|
3329
1001
|
}
|
|
3330
|
-
tryParseDate =
|
|
3331
|
-
if (
|
|
1002
|
+
tryParseDate = parse__default.default(inputValue || '', 'PP', new Date());
|
|
1003
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
3332
1004
|
return tryParseDate;
|
|
3333
1005
|
}
|
|
3334
|
-
tryParseDate =
|
|
3335
|
-
if (
|
|
1006
|
+
tryParseDate = parse__default.default(inputValue || '', 'PPP', new Date());
|
|
1007
|
+
if (isValid__default.default(tryParseDate) && !isBefore__default.default(tryParseDate, MINIMUM_DATE)) {
|
|
3336
1008
|
return tryParseDate;
|
|
3337
1009
|
}
|
|
3338
1010
|
return new Date(NaN);
|
|
@@ -3351,10 +1023,10 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3351
1023
|
{
|
|
3352
1024
|
let previewDate = state.previewDate;
|
|
3353
1025
|
if (startValue) {
|
|
3354
|
-
if (
|
|
1026
|
+
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
1027
|
previewDate = state.previewDate;
|
|
3356
1028
|
} else {
|
|
3357
|
-
previewDate =
|
|
1029
|
+
previewDate = startOfMonth__default.default(startValue);
|
|
3358
1030
|
}
|
|
3359
1031
|
}
|
|
3360
1032
|
return {
|
|
@@ -3368,10 +1040,10 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3368
1040
|
{
|
|
3369
1041
|
let previewDate = state.previewDate;
|
|
3370
1042
|
if (endValue) {
|
|
3371
|
-
if (
|
|
1043
|
+
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
1044
|
previewDate = state.previewDate;
|
|
3373
1045
|
} else {
|
|
3374
|
-
previewDate =
|
|
1046
|
+
previewDate = startOfMonth__default.default(endValue);
|
|
3375
1047
|
}
|
|
3376
1048
|
}
|
|
3377
1049
|
return {
|
|
@@ -3440,10 +1112,10 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3440
1112
|
});
|
|
3441
1113
|
let previewDate = state.previewDate;
|
|
3442
1114
|
if (action.value) {
|
|
3443
|
-
if (
|
|
1115
|
+
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
1116
|
previewDate = state.previewDate;
|
|
3445
1117
|
} else {
|
|
3446
|
-
previewDate =
|
|
1118
|
+
previewDate = startOfMonth__default.default(action.value);
|
|
3447
1119
|
}
|
|
3448
1120
|
}
|
|
3449
1121
|
return {
|
|
@@ -3462,10 +1134,10 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3462
1134
|
});
|
|
3463
1135
|
let previewDate = state.previewDate;
|
|
3464
1136
|
if (action.value) {
|
|
3465
|
-
if (
|
|
1137
|
+
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
1138
|
previewDate = state.previewDate;
|
|
3467
1139
|
} else {
|
|
3468
|
-
previewDate =
|
|
1140
|
+
previewDate = startOfMonth__default.default(action.value);
|
|
3469
1141
|
}
|
|
3470
1142
|
}
|
|
3471
1143
|
return {
|
|
@@ -3477,7 +1149,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3477
1149
|
}
|
|
3478
1150
|
case 'CLICK_DATE':
|
|
3479
1151
|
if (state.isStartFocused) {
|
|
3480
|
-
if (endValue !== undefined && (
|
|
1152
|
+
if (endValue !== undefined && (isBefore__default.default(action.value, endValue) || isSameDay__default.default(action.value, endValue))) {
|
|
3481
1153
|
return {
|
|
3482
1154
|
...state,
|
|
3483
1155
|
startInputValue: formatValue({
|
|
@@ -3493,7 +1165,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3493
1165
|
endInputValue: undefined
|
|
3494
1166
|
};
|
|
3495
1167
|
} else if (state.isEndFocused) {
|
|
3496
|
-
if (startValue !== undefined && (
|
|
1168
|
+
if (startValue !== undefined && (isAfter__default.default(action.value, startValue) || isSameDay__default.default(action.value, startValue))) {
|
|
3497
1169
|
return {
|
|
3498
1170
|
...state,
|
|
3499
1171
|
endInputValue: formatValue({
|
|
@@ -3516,7 +1188,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3516
1188
|
endInputValue: undefined
|
|
3517
1189
|
};
|
|
3518
1190
|
} else if (endValue === undefined) {
|
|
3519
|
-
if (
|
|
1191
|
+
if (isBefore__default.default(action.value, startValue)) {
|
|
3520
1192
|
return {
|
|
3521
1193
|
...state,
|
|
3522
1194
|
startInputValue: formatValue({
|
|
@@ -3554,7 +1226,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3554
1226
|
};
|
|
3555
1227
|
case 'PREVIEW_NEXT_MONTH':
|
|
3556
1228
|
{
|
|
3557
|
-
const previewDate =
|
|
1229
|
+
const previewDate = addMonths__default.default(state.previewDate, 1);
|
|
3558
1230
|
return {
|
|
3559
1231
|
...state,
|
|
3560
1232
|
previewDate,
|
|
@@ -3563,7 +1235,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3563
1235
|
}
|
|
3564
1236
|
case 'PREVIEW_PREVIOUS_MONTH':
|
|
3565
1237
|
{
|
|
3566
|
-
const previewDate =
|
|
1238
|
+
const previewDate = subMonths__default.default(state.previewDate, 1);
|
|
3567
1239
|
return {
|
|
3568
1240
|
...state,
|
|
3569
1241
|
previewDate,
|
|
@@ -3577,7 +1249,7 @@ const datepickerRangeReducer = _ref3 => {
|
|
|
3577
1249
|
};
|
|
3578
1250
|
function retrieveInitialState(initialProps) {
|
|
3579
1251
|
let previewDate = initialProps.startValue;
|
|
3580
|
-
if (previewDate === undefined || !
|
|
1252
|
+
if (previewDate === undefined || !isValid__default.default(previewDate)) {
|
|
3581
1253
|
previewDate = new Date();
|
|
3582
1254
|
}
|
|
3583
1255
|
const startInputValue = formatValue({
|
|
@@ -3639,7 +1311,7 @@ const Start = props => {
|
|
|
3639
1311
|
dispatch({
|
|
3640
1312
|
type: 'START_BLUR'
|
|
3641
1313
|
});
|
|
3642
|
-
if (parsedDate &&
|
|
1314
|
+
if (parsedDate && isValid__default.default(parsedDate) && !isSameDay__default.default(parsedDate, startValue)) {
|
|
3643
1315
|
onChange && onChange({
|
|
3644
1316
|
startValue: parsedDate,
|
|
3645
1317
|
endValue
|
|
@@ -3704,7 +1376,7 @@ const End = props => {
|
|
|
3704
1376
|
inputValue: state.endInputValue
|
|
3705
1377
|
});
|
|
3706
1378
|
}
|
|
3707
|
-
if (onChange && parsedDate &&
|
|
1379
|
+
if (onChange && parsedDate && isValid__default.default(parsedDate) && !isSameDay__default.default(parsedDate, endValue)) {
|
|
3708
1380
|
onChange && onChange({
|
|
3709
1381
|
startValue,
|
|
3710
1382
|
endValue: parsedDate
|
|
@@ -3749,12 +1421,6 @@ function _extends() {
|
|
|
3749
1421
|
return _extends.apply(this, arguments);
|
|
3750
1422
|
}
|
|
3751
1423
|
|
|
3752
|
-
function subDays(dirtyDate, dirtyAmount) {
|
|
3753
|
-
requiredArgs(2, arguments);
|
|
3754
|
-
var amount = toInteger(dirtyAmount);
|
|
3755
|
-
return addDays(dirtyDate, -amount);
|
|
3756
|
-
}
|
|
3757
|
-
|
|
3758
1424
|
const Month = React.forwardRef((_ref, ref) => {
|
|
3759
1425
|
let {
|
|
3760
1426
|
displayDate,
|
|
@@ -3793,17 +1459,17 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3793
1459
|
return formatter.format(date);
|
|
3794
1460
|
}, [locale]);
|
|
3795
1461
|
const preferredWeekStartsOn = weekStartsOn || getStartOfWeek(locale);
|
|
3796
|
-
const monthStartDate =
|
|
3797
|
-
const monthEndDate =
|
|
3798
|
-
const startDate =
|
|
1462
|
+
const monthStartDate = startOfMonth__default.default(displayDate);
|
|
1463
|
+
const monthEndDate = endOfMonth__default.default(monthStartDate);
|
|
1464
|
+
const startDate = startOfWeek__default.default(monthStartDate, {
|
|
3799
1465
|
weekStartsOn: preferredWeekStartsOn
|
|
3800
1466
|
});
|
|
3801
|
-
const endDate =
|
|
1467
|
+
const endDate = endOfWeek__default.default(monthEndDate, {
|
|
3802
1468
|
weekStartsOn: preferredWeekStartsOn
|
|
3803
1469
|
});
|
|
3804
|
-
const dayLabels =
|
|
1470
|
+
const dayLabels = eachDayOfInterval__default.default({
|
|
3805
1471
|
start: startDate,
|
|
3806
|
-
end:
|
|
1472
|
+
end: addDays__default.default(startDate, 6)
|
|
3807
1473
|
}).map(date => {
|
|
3808
1474
|
const formattedDayLabel = dayLabelFormatter(date);
|
|
3809
1475
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
@@ -3813,13 +1479,13 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3813
1479
|
isCompact: isCompact
|
|
3814
1480
|
}, formattedDayLabel));
|
|
3815
1481
|
});
|
|
3816
|
-
const items =
|
|
1482
|
+
const items = eachDayOfInterval__default.default({
|
|
3817
1483
|
start: startDate,
|
|
3818
1484
|
end: endDate
|
|
3819
1485
|
}).map((date, itemsIndex) => {
|
|
3820
1486
|
const formattedDayLabel = dayFormatter(date);
|
|
3821
|
-
const isCurrentDate =
|
|
3822
|
-
const isPreviousMonth = !
|
|
1487
|
+
const isCurrentDate = isToday__default.default(date);
|
|
1488
|
+
const isPreviousMonth = !isSameMonth__default.default(date, displayDate);
|
|
3823
1489
|
if (isPreviousMonth) {
|
|
3824
1490
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
3825
1491
|
key: `day-${itemsIndex}`,
|
|
@@ -3832,41 +1498,41 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3832
1498
|
}
|
|
3833
1499
|
let isSelected = false;
|
|
3834
1500
|
if (startValue !== undefined) {
|
|
3835
|
-
isSelected =
|
|
1501
|
+
isSelected = isSameDay__default.default(date, startValue);
|
|
3836
1502
|
}
|
|
3837
1503
|
if (endValue !== undefined) {
|
|
3838
|
-
isSelected = isSelected ||
|
|
1504
|
+
isSelected = isSelected || isSameDay__default.default(date, endValue);
|
|
3839
1505
|
}
|
|
3840
1506
|
let isDisabled = false;
|
|
3841
1507
|
if (minValue !== undefined) {
|
|
3842
|
-
isDisabled =
|
|
1508
|
+
isDisabled = isBefore__default.default(date, minValue) && !isSameDay__default.default(date, minValue);
|
|
3843
1509
|
}
|
|
3844
1510
|
if (maxValue !== undefined) {
|
|
3845
|
-
isDisabled = isDisabled ||
|
|
1511
|
+
isDisabled = isDisabled || isAfter__default.default(date, maxValue) && !isSameDay__default.default(date, maxValue);
|
|
3846
1512
|
}
|
|
3847
1513
|
let isHighlighted = false;
|
|
3848
1514
|
if (startValue !== undefined && endValue !== undefined) {
|
|
3849
|
-
isHighlighted = (
|
|
1515
|
+
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
1516
|
} else if (startValue !== undefined && state.hoverDate !== undefined) {
|
|
3851
|
-
isHighlighted = (
|
|
1517
|
+
isHighlighted = (isAfter__default.default(date, startValue) || isSameDay__default.default(date, startValue)) && (isBefore__default.default(date, state.hoverDate) || isSameDay__default.default(date, state.hoverDate));
|
|
3852
1518
|
}
|
|
3853
|
-
const isHighlightStart = isHighlighted && startValue &&
|
|
3854
|
-
const isHighlightEnd = isHighlighted && endValue &&
|
|
3855
|
-
let isInvalidDateRange = endValue && startValue &&
|
|
1519
|
+
const isHighlightStart = isHighlighted && startValue && isSameDay__default.default(date, startValue) || false;
|
|
1520
|
+
const isHighlightEnd = isHighlighted && endValue && isSameDay__default.default(date, endValue) || state.hoverDate && isSameDay__default.default(date, state.hoverDate) && !isBefore__default.default(date, endValue) || false;
|
|
1521
|
+
let isInvalidDateRange = endValue && startValue && compareAsc__default.default(endValue, startValue) === -1 || false;
|
|
3856
1522
|
if (minValue) {
|
|
3857
1523
|
if (startValue) {
|
|
3858
|
-
isInvalidDateRange = isInvalidDateRange ||
|
|
1524
|
+
isInvalidDateRange = isInvalidDateRange || compareAsc__default.default(startValue, subDays__default.default(minValue, 1)) === -1;
|
|
3859
1525
|
}
|
|
3860
1526
|
if (endValue) {
|
|
3861
|
-
isInvalidDateRange = isInvalidDateRange ||
|
|
1527
|
+
isInvalidDateRange = isInvalidDateRange || compareAsc__default.default(endValue, subDays__default.default(minValue, 1)) === -1;
|
|
3862
1528
|
}
|
|
3863
1529
|
}
|
|
3864
1530
|
if (maxValue) {
|
|
3865
1531
|
if (startValue) {
|
|
3866
|
-
isInvalidDateRange = isInvalidDateRange ||
|
|
1532
|
+
isInvalidDateRange = isInvalidDateRange || compareAsc__default.default(startValue, maxValue) === 1;
|
|
3867
1533
|
}
|
|
3868
1534
|
if (endValue) {
|
|
3869
|
-
isInvalidDateRange = isInvalidDateRange ||
|
|
1535
|
+
isInvalidDateRange = isInvalidDateRange || compareAsc__default.default(endValue, maxValue) === 1;
|
|
3870
1536
|
}
|
|
3871
1537
|
}
|
|
3872
1538
|
return React__namespace.default.createElement(StyledCalendarItem, {
|
|
@@ -3890,7 +1556,7 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3890
1556
|
});
|
|
3891
1557
|
if (onChange) {
|
|
3892
1558
|
if (state.isStartFocused) {
|
|
3893
|
-
if (endValue !== undefined && (
|
|
1559
|
+
if (endValue !== undefined && (isBefore__default.default(date, endValue) || isSameDay__default.default(date, endValue))) {
|
|
3894
1560
|
onChange({
|
|
3895
1561
|
startValue: date,
|
|
3896
1562
|
endValue
|
|
@@ -3902,7 +1568,7 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3902
1568
|
});
|
|
3903
1569
|
}
|
|
3904
1570
|
} else if (state.isEndFocused) {
|
|
3905
|
-
if (startValue !== undefined && (
|
|
1571
|
+
if (startValue !== undefined && (isAfter__default.default(date, startValue) || isSameDay__default.default(date, startValue))) {
|
|
3906
1572
|
onChange({
|
|
3907
1573
|
startValue,
|
|
3908
1574
|
endValue: date
|
|
@@ -3919,7 +1585,7 @@ const Month = React.forwardRef((_ref, ref) => {
|
|
|
3919
1585
|
endValue: undefined
|
|
3920
1586
|
});
|
|
3921
1587
|
} else if (endValue === undefined) {
|
|
3922
|
-
if (
|
|
1588
|
+
if (isBefore__default.default(date, startValue)) {
|
|
3923
1589
|
onChange({
|
|
3924
1590
|
startValue: date,
|
|
3925
1591
|
endValue: undefined
|
|
@@ -3994,12 +1660,12 @@ const Calendar = React.forwardRef((props, ref) => {
|
|
|
3994
1660
|
return React__namespace.default.createElement(StyledRangeCalendar, _extends({
|
|
3995
1661
|
ref: ref,
|
|
3996
1662
|
"data-garden-id": "datepickers.range",
|
|
3997
|
-
"data-garden-version": '8.69.
|
|
1663
|
+
"data-garden-version": '8.69.3'
|
|
3998
1664
|
}, props), React__namespace.default.createElement(Month, {
|
|
3999
1665
|
displayDate: state.previewDate,
|
|
4000
1666
|
isNextHidden: true
|
|
4001
1667
|
}), React__namespace.default.createElement(Month, {
|
|
4002
|
-
displayDate:
|
|
1668
|
+
displayDate: addMonths__default.default(state.previewDate, 1),
|
|
4003
1669
|
isPreviousHidden: true
|
|
4004
1670
|
}));
|
|
4005
1671
|
});
|