@zendeskgarden/react-datepickers 8.69.2 → 8.69.4

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