@zendeskgarden/react-datepickers 8.69.1 → 8.69.3

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