@zendeskgarden/react-datepickers 8.69.2 → 8.69.3

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