1 | 'use strict';
|
2 |
|
3 | var addDays = require('date-fns/addDays');
|
4 | var addSeconds = require('date-fns/addSeconds');
|
5 | var addMinutes = require('date-fns/addMinutes');
|
6 | var addHours = require('date-fns/addHours');
|
7 | var addWeeks = require('date-fns/addWeeks');
|
8 | var addMonths = require('date-fns/addMonths');
|
9 | var addYears = require('date-fns/addYears');
|
10 | var differenceInYears = require('date-fns/differenceInYears');
|
11 | var differenceInQuarters = require('date-fns/differenceInQuarters');
|
12 | var differenceInMonths = require('date-fns/differenceInMonths');
|
13 | var differenceInWeeks = require('date-fns/differenceInWeeks');
|
14 | var differenceInDays = require('date-fns/differenceInDays');
|
15 | var differenceInHours = require('date-fns/differenceInHours');
|
16 | var differenceInMinutes = require('date-fns/differenceInMinutes');
|
17 | var differenceInSeconds = require('date-fns/differenceInSeconds');
|
18 | var differenceInMilliseconds = require('date-fns/differenceInMilliseconds');
|
19 | var eachDayOfInterval = require('date-fns/eachDayOfInterval');
|
20 | var endOfDay = require('date-fns/endOfDay');
|
21 | var endOfWeek = require('date-fns/endOfWeek');
|
22 | var endOfYear = require('date-fns/endOfYear');
|
23 | var format = require('date-fns/format');
|
24 | var getDate = require('date-fns/getDate');
|
25 | var getDay = require('date-fns/getDay');
|
26 | var getDaysInMonth = require('date-fns/getDaysInMonth');
|
27 | var getHours = require('date-fns/getHours');
|
28 | var getMinutes = require('date-fns/getMinutes');
|
29 | var getMonth = require('date-fns/getMonth');
|
30 | var getSeconds = require('date-fns/getSeconds');
|
31 | var getYear = require('date-fns/getYear');
|
32 | var isAfter = require('date-fns/isAfter');
|
33 | var isBefore = require('date-fns/isBefore');
|
34 | var isEqual = require('date-fns/isEqual');
|
35 | var isSameDay = require('date-fns/isSameDay');
|
36 | var isSameYear = require('date-fns/isSameYear');
|
37 | var isSameMonth = require('date-fns/isSameMonth');
|
38 | var isSameHour = require('date-fns/isSameHour');
|
39 | var isValid = require('date-fns/isValid');
|
40 | var dateFnsParse = require('date-fns/parse');
|
41 | var setDate = require('date-fns/setDate');
|
42 | var setHours = require('date-fns/setHours');
|
43 | var setMinutes = require('date-fns/setMinutes');
|
44 | var setMonth = require('date-fns/setMonth');
|
45 | var setSeconds = require('date-fns/setSeconds');
|
46 | var setYear = require('date-fns/setYear');
|
47 | var startOfDay = require('date-fns/startOfDay');
|
48 | var startOfMonth = require('date-fns/startOfMonth');
|
49 | var endOfMonth = require('date-fns/endOfMonth');
|
50 | var startOfWeek = require('date-fns/startOfWeek');
|
51 | var startOfYear = require('date-fns/startOfYear');
|
52 | var parseISO = require('date-fns/parseISO');
|
53 | var formatISO = require('date-fns/formatISO');
|
54 | var isWithinInterval = require('date-fns/isWithinInterval');
|
55 | var longFormatters = require('date-fns/_lib/format/longFormatters');
|
56 | var defaultLocale = require('date-fns/locale/en-US');
|
57 |
|
58 | function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
59 |
|
60 | var addDays__default = _interopDefaultLegacy(addDays);
|
61 | var addSeconds__default = _interopDefaultLegacy(addSeconds);
|
62 | var addMinutes__default = _interopDefaultLegacy(addMinutes);
|
63 | var addHours__default = _interopDefaultLegacy(addHours);
|
64 | var addWeeks__default = _interopDefaultLegacy(addWeeks);
|
65 | var addMonths__default = _interopDefaultLegacy(addMonths);
|
66 | var addYears__default = _interopDefaultLegacy(addYears);
|
67 | var differenceInYears__default = _interopDefaultLegacy(differenceInYears);
|
68 | var differenceInQuarters__default = _interopDefaultLegacy(differenceInQuarters);
|
69 | var differenceInMonths__default = _interopDefaultLegacy(differenceInMonths);
|
70 | var differenceInWeeks__default = _interopDefaultLegacy(differenceInWeeks);
|
71 | var differenceInDays__default = _interopDefaultLegacy(differenceInDays);
|
72 | var differenceInHours__default = _interopDefaultLegacy(differenceInHours);
|
73 | var differenceInMinutes__default = _interopDefaultLegacy(differenceInMinutes);
|
74 | var differenceInSeconds__default = _interopDefaultLegacy(differenceInSeconds);
|
75 | var differenceInMilliseconds__default = _interopDefaultLegacy(differenceInMilliseconds);
|
76 | var eachDayOfInterval__default = _interopDefaultLegacy(eachDayOfInterval);
|
77 | var endOfDay__default = _interopDefaultLegacy(endOfDay);
|
78 | var endOfWeek__default = _interopDefaultLegacy(endOfWeek);
|
79 | var endOfYear__default = _interopDefaultLegacy(endOfYear);
|
80 | var format__default = _interopDefaultLegacy(format);
|
81 | var getDate__default = _interopDefaultLegacy(getDate);
|
82 | var getDay__default = _interopDefaultLegacy(getDay);
|
83 | var getDaysInMonth__default = _interopDefaultLegacy(getDaysInMonth);
|
84 | var getHours__default = _interopDefaultLegacy(getHours);
|
85 | var getMinutes__default = _interopDefaultLegacy(getMinutes);
|
86 | var getMonth__default = _interopDefaultLegacy(getMonth);
|
87 | var getSeconds__default = _interopDefaultLegacy(getSeconds);
|
88 | var getYear__default = _interopDefaultLegacy(getYear);
|
89 | var isAfter__default = _interopDefaultLegacy(isAfter);
|
90 | var isBefore__default = _interopDefaultLegacy(isBefore);
|
91 | var isEqual__default = _interopDefaultLegacy(isEqual);
|
92 | var isSameDay__default = _interopDefaultLegacy(isSameDay);
|
93 | var isSameYear__default = _interopDefaultLegacy(isSameYear);
|
94 | var isSameMonth__default = _interopDefaultLegacy(isSameMonth);
|
95 | var isSameHour__default = _interopDefaultLegacy(isSameHour);
|
96 | var isValid__default = _interopDefaultLegacy(isValid);
|
97 | var dateFnsParse__default = _interopDefaultLegacy(dateFnsParse);
|
98 | var setDate__default = _interopDefaultLegacy(setDate);
|
99 | var setHours__default = _interopDefaultLegacy(setHours);
|
100 | var setMinutes__default = _interopDefaultLegacy(setMinutes);
|
101 | var setMonth__default = _interopDefaultLegacy(setMonth);
|
102 | var setSeconds__default = _interopDefaultLegacy(setSeconds);
|
103 | var setYear__default = _interopDefaultLegacy(setYear);
|
104 | var startOfDay__default = _interopDefaultLegacy(startOfDay);
|
105 | var startOfMonth__default = _interopDefaultLegacy(startOfMonth);
|
106 | var endOfMonth__default = _interopDefaultLegacy(endOfMonth);
|
107 | var startOfWeek__default = _interopDefaultLegacy(startOfWeek);
|
108 | var startOfYear__default = _interopDefaultLegacy(startOfYear);
|
109 | var parseISO__default = _interopDefaultLegacy(parseISO);
|
110 | var formatISO__default = _interopDefaultLegacy(formatISO);
|
111 | var isWithinInterval__default = _interopDefaultLegacy(isWithinInterval);
|
112 | var longFormatters__default = _interopDefaultLegacy(longFormatters);
|
113 | var defaultLocale__default = _interopDefaultLegacy(defaultLocale);
|
114 |
|
115 | var defaultFormats = {
|
116 | dayOfMonth: "d",
|
117 | fullDate: "PP",
|
118 | fullDateWithWeekday: "PPPP",
|
119 | fullDateTime: "PP p",
|
120 | fullDateTime12h: "PP hh:mm aaa",
|
121 | fullDateTime24h: "PP HH:mm",
|
122 | fullTime: "p",
|
123 | fullTime12h: "hh:mm aaa",
|
124 | fullTime24h: "HH:mm",
|
125 | hours12h: "hh",
|
126 | hours24h: "HH",
|
127 | keyboardDate: "P",
|
128 | keyboardDateTime: "P p",
|
129 | keyboardDateTime12h: "P hh:mm aaa",
|
130 | keyboardDateTime24h: "P HH:mm",
|
131 | minutes: "mm",
|
132 | month: "LLLL",
|
133 | monthAndDate: "MMMM d",
|
134 | monthAndYear: "LLLL yyyy",
|
135 | monthShort: "MMM",
|
136 | weekday: "EEEE",
|
137 | weekdayShort: "EEE",
|
138 | normalDate: "d MMMM",
|
139 | normalDateWithWeekday: "EEE, MMM d",
|
140 | seconds: "ss",
|
141 | shortDate: "MMM d",
|
142 | year: "yyyy",
|
143 | };
|
144 | var DateFnsUtils = (function () {
|
145 | function DateFnsUtils(_a) {
|
146 | var _this = this;
|
147 | var _b = _a === void 0 ? {} : _a, locale = _b.locale, formats = _b.formats;
|
148 | this.lib = "date-fns";
|
149 |
|
150 |
|
151 | this.is12HourCycleInCurrentLocale = function () {
|
152 | if (_this.locale) {
|
153 | return /a/.test(_this.locale.formatLong.time());
|
154 | }
|
155 |
|
156 | return true;
|
157 | };
|
158 | this.getFormatHelperText = function (format) {
|
159 |
|
160 | var longFormatRegexp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
|
161 | var locale = _this.locale || defaultLocale__default["default"];
|
162 | return format
|
163 | .match(longFormatRegexp)
|
164 | .map(function (token) {
|
165 | var firstCharacter = token[0];
|
166 | if (firstCharacter === "p" || firstCharacter === "P") {
|
167 | var longFormatter = longFormatters__default["default"][firstCharacter];
|
168 | return longFormatter(token, locale.formatLong, {});
|
169 | }
|
170 | return token;
|
171 | })
|
172 | .join("")
|
173 | .replace(/(aaa|aa|a)/g, "(a|p)m")
|
174 | .toLocaleLowerCase();
|
175 | };
|
176 | this.parseISO = function (isoString) {
|
177 | return parseISO__default["default"](isoString);
|
178 | };
|
179 | this.toISO = function (value) {
|
180 | return formatISO__default["default"](value, { format: "extended" });
|
181 | };
|
182 | this.getCurrentLocaleCode = function () {
|
183 | var _a;
|
184 | return ((_a = _this.locale) === null || _a === void 0 ? void 0 : _a.code) || "en-US";
|
185 | };
|
186 | this.addSeconds = function (value, count) {
|
187 | return addSeconds__default["default"](value, count);
|
188 | };
|
189 | this.addMinutes = function (value, count) {
|
190 | return addMinutes__default["default"](value, count);
|
191 | };
|
192 | this.addHours = function (value, count) {
|
193 | return addHours__default["default"](value, count);
|
194 | };
|
195 | this.addDays = function (value, count) {
|
196 | return addDays__default["default"](value, count);
|
197 | };
|
198 | this.addWeeks = function (value, count) {
|
199 | return addWeeks__default["default"](value, count);
|
200 | };
|
201 | this.addMonths = function (value, count) {
|
202 | return addMonths__default["default"](value, count);
|
203 | };
|
204 | this.addYears = function (value, count) {
|
205 | return addYears__default["default"](value, count);
|
206 | };
|
207 | this.isValid = function (value) {
|
208 | return isValid__default["default"](_this.date(value));
|
209 | };
|
210 | this.getDiff = function (value, comparing, unit) {
|
211 | switch (unit) {
|
212 | case "years":
|
213 | return differenceInYears__default["default"](value, _this.date(comparing));
|
214 | case "quarters":
|
215 | return differenceInQuarters__default["default"](value, _this.date(comparing));
|
216 | case "months":
|
217 | return differenceInMonths__default["default"](value, _this.date(comparing));
|
218 | case "weeks":
|
219 | return differenceInWeeks__default["default"](value, _this.date(comparing));
|
220 | case "days":
|
221 | return differenceInDays__default["default"](value, _this.date(comparing));
|
222 | case "hours":
|
223 | return differenceInHours__default["default"](value, _this.date(comparing));
|
224 | case "minutes":
|
225 | return differenceInMinutes__default["default"](value, _this.date(comparing));
|
226 | case "seconds":
|
227 | return differenceInSeconds__default["default"](value, _this.date(comparing));
|
228 | default: {
|
229 | return differenceInMilliseconds__default["default"](value, _this.date(comparing));
|
230 | }
|
231 | }
|
232 | };
|
233 | this.isAfter = function (value, comparing) {
|
234 | return isAfter__default["default"](value, comparing);
|
235 | };
|
236 | this.isBefore = function (value, comparing) {
|
237 | return isBefore__default["default"](value, comparing);
|
238 | };
|
239 | this.startOfDay = function (value) {
|
240 | return startOfDay__default["default"](value);
|
241 | };
|
242 | this.endOfDay = function (value) {
|
243 | return endOfDay__default["default"](value);
|
244 | };
|
245 | this.getHours = function (value) {
|
246 | return getHours__default["default"](value);
|
247 | };
|
248 | this.setHours = function (value, count) {
|
249 | return setHours__default["default"](value, count);
|
250 | };
|
251 | this.setMinutes = function (value, count) {
|
252 | return setMinutes__default["default"](value, count);
|
253 | };
|
254 | this.getSeconds = function (value) {
|
255 | return getSeconds__default["default"](value);
|
256 | };
|
257 | this.setSeconds = function (value, count) {
|
258 | return setSeconds__default["default"](value, count);
|
259 | };
|
260 | this.isSameDay = function (value, comparing) {
|
261 | return isSameDay__default["default"](value, comparing);
|
262 | };
|
263 | this.isSameMonth = function (value, comparing) {
|
264 | return isSameMonth__default["default"](value, comparing);
|
265 | };
|
266 | this.isSameYear = function (value, comparing) {
|
267 | return isSameYear__default["default"](value, comparing);
|
268 | };
|
269 | this.isSameHour = function (value, comparing) {
|
270 | return isSameHour__default["default"](value, comparing);
|
271 | };
|
272 | this.startOfYear = function (value) {
|
273 | return startOfYear__default["default"](value);
|
274 | };
|
275 | this.endOfYear = function (value) {
|
276 | return endOfYear__default["default"](value);
|
277 | };
|
278 | this.startOfMonth = function (value) {
|
279 | return startOfMonth__default["default"](value);
|
280 | };
|
281 | this.endOfMonth = function (value) {
|
282 | return endOfMonth__default["default"](value);
|
283 | };
|
284 | this.startOfWeek = function (value) {
|
285 | return startOfWeek__default["default"](value, { locale: _this.locale });
|
286 | };
|
287 | this.endOfWeek = function (value) {
|
288 | return endOfWeek__default["default"](value, { locale: _this.locale });
|
289 | };
|
290 | this.getYear = function (value) {
|
291 | return getYear__default["default"](value);
|
292 | };
|
293 | this.setYear = function (value, count) {
|
294 | return setYear__default["default"](value, count);
|
295 | };
|
296 | this.date = function (value) {
|
297 | if (typeof value === "undefined") {
|
298 | return new Date();
|
299 | }
|
300 | if (value === null) {
|
301 | return null;
|
302 | }
|
303 | return new Date(value);
|
304 | };
|
305 | this.toJsDate = function (value) {
|
306 | return value;
|
307 | };
|
308 | this.parse = function (value, formatString) {
|
309 | if (value === "") {
|
310 | return null;
|
311 | }
|
312 | return dateFnsParse__default["default"](value, formatString, new Date(), { locale: _this.locale });
|
313 | };
|
314 | this.format = function (date, formatKey) {
|
315 | return _this.formatByString(date, _this.formats[formatKey]);
|
316 | };
|
317 | this.formatByString = function (date, formatString) {
|
318 | return format__default["default"](date, formatString, { locale: _this.locale });
|
319 | };
|
320 | this.isEqual = function (date, comparing) {
|
321 | if (date === null && comparing === null) {
|
322 | return true;
|
323 | }
|
324 | return isEqual__default["default"](date, comparing);
|
325 | };
|
326 | this.isNull = function (date) {
|
327 | return date === null;
|
328 | };
|
329 | this.isAfterDay = function (date, value) {
|
330 | return isAfter__default["default"](date, endOfDay__default["default"](value));
|
331 | };
|
332 | this.isBeforeDay = function (date, value) {
|
333 | return isBefore__default["default"](date, startOfDay__default["default"](value));
|
334 | };
|
335 | this.isBeforeYear = function (date, value) {
|
336 | return isBefore__default["default"](date, startOfYear__default["default"](value));
|
337 | };
|
338 | this.isAfterYear = function (date, value) {
|
339 | return isAfter__default["default"](date, endOfYear__default["default"](value));
|
340 | };
|
341 | this.isWithinRange = function (date, _a) {
|
342 | var start = _a[0], end = _a[1];
|
343 | return isWithinInterval__default["default"](date, { start: start, end: end });
|
344 | };
|
345 | this.formatNumber = function (numberToFormat) {
|
346 | return numberToFormat;
|
347 | };
|
348 | this.getMinutes = function (date) {
|
349 | return getMinutes__default["default"](date);
|
350 | };
|
351 | this.getDate = function (date) {
|
352 | return getDate__default["default"](date);
|
353 | };
|
354 | this.setDate = function (date, count) {
|
355 | return setDate__default["default"](date, count);
|
356 | };
|
357 | this.getMonth = function (date) {
|
358 | return getMonth__default["default"](date);
|
359 | };
|
360 | this.getDaysInMonth = function (date) {
|
361 | return getDaysInMonth__default["default"](date);
|
362 | };
|
363 | this.setMonth = function (date, count) {
|
364 | return setMonth__default["default"](date, count);
|
365 | };
|
366 | this.getMeridiemText = function (ampm) {
|
367 | return ampm === "am" ? "AM" : "PM";
|
368 | };
|
369 | this.getNextMonth = function (date) {
|
370 | return addMonths__default["default"](date, 1);
|
371 | };
|
372 | this.getPreviousMonth = function (date) {
|
373 | return addMonths__default["default"](date, -1);
|
374 | };
|
375 | this.getMonthArray = function (date) {
|
376 | var firstMonth = startOfYear__default["default"](date);
|
377 | var monthArray = [firstMonth];
|
378 | while (monthArray.length < 12) {
|
379 | var prevMonth = monthArray[monthArray.length - 1];
|
380 | monthArray.push(_this.getNextMonth(prevMonth));
|
381 | }
|
382 | return monthArray;
|
383 | };
|
384 | this.mergeDateAndTime = function (date, time) {
|
385 | return _this.setSeconds(_this.setMinutes(_this.setHours(date, _this.getHours(time)), _this.getMinutes(time)), _this.getSeconds(time));
|
386 | };
|
387 | this.getWeekdays = function () {
|
388 | var now = new Date();
|
389 | return eachDayOfInterval__default["default"]({
|
390 | start: startOfWeek__default["default"](now, { locale: _this.locale }),
|
391 | end: endOfWeek__default["default"](now, { locale: _this.locale }),
|
392 | }).map(function (day) { return _this.formatByString(day, "EEEEEE"); });
|
393 | };
|
394 | this.getWeekArray = function (date) {
|
395 | var start = startOfWeek__default["default"](startOfMonth__default["default"](date), { locale: _this.locale });
|
396 | var end = endOfWeek__default["default"](endOfMonth__default["default"](date), { locale: _this.locale });
|
397 | var count = 0;
|
398 | var current = start;
|
399 | var nestedWeeks = [];
|
400 | var lastDay = null;
|
401 | while (isBefore__default["default"](current, end)) {
|
402 | var weekNumber = Math.floor(count / 7);
|
403 | nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];
|
404 | var day = getDay__default["default"](current);
|
405 | if (lastDay !== day) {
|
406 | lastDay = day;
|
407 | nestedWeeks[weekNumber].push(current);
|
408 | count += 1;
|
409 | }
|
410 | current = addDays__default["default"](current, 1);
|
411 | }
|
412 | return nestedWeeks;
|
413 | };
|
414 | this.getYearRange = function (start, end) {
|
415 | var startDate = startOfYear__default["default"](start);
|
416 | var endDate = endOfYear__default["default"](end);
|
417 | var years = [];
|
418 | var current = startDate;
|
419 | while (isBefore__default["default"](current, endDate)) {
|
420 | years.push(current);
|
421 | current = addYears__default["default"](current, 1);
|
422 | }
|
423 | return years;
|
424 | };
|
425 | this.locale = locale;
|
426 | this.formats = Object.assign({}, defaultFormats, formats);
|
427 | }
|
428 | return DateFnsUtils;
|
429 | }());
|
430 |
|
431 | module.exports = DateFnsUtils;
|