@seafile/seafile-calendar 0.0.29-gzc32 → 0.0.29-prop3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/util/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  exports.__esModule = true;
4
- exports.DATE_FORMATS = exports.currentTime = exports.stringCurrentMonth = exports.stringCurrentDate = exports.currentYear = exports.currentMonth = exports.currentDate = undefined;
4
+ exports.isLeapYear = exports.DATE_FORMATS = exports.currentTime = exports.stringCurrentMonth = exports.stringCurrentDate = exports.currentYear = exports.currentMonth = exports.currentDate = undefined;
5
5
 
6
6
  var _extends2 = require('babel-runtime/helpers/extends');
7
7
 
@@ -17,17 +17,15 @@ exports.isTimeValidByConfig = isTimeValidByConfig;
17
17
  exports.isTimeValid = isTimeValid;
18
18
  exports.isAllowedDate = isAllowedDate;
19
19
  exports.formatDate = formatDate;
20
- exports.formatDateLocal = formatDateLocal;
20
+ exports.validateCalendarDay = validateCalendarDay;
21
+ exports.tokenizeFormattedDate = tokenizeFormattedDate;
21
22
  exports.hasSpecialChar = hasSpecialChar;
22
- exports.isValidMonth = isValidMonth;
23
- exports.isValidDay = isValidDay;
24
- exports.fullValidYear = fullValidYear;
25
- exports.delimate = delimate;
26
- exports.getDateFormatByStr = getDateFormatByStr;
27
- exports.isCurrentYear = isCurrentYear;
28
23
  exports.validateTime = validateTime;
29
- exports.checkSpecialBetweenDigits = checkSpecialBetweenDigits;
30
- exports.normalizeDateInput = normalizeDateInput;
24
+ exports.delimate = delimate;
25
+ exports.validateCalendarYear = validateCalendarYear;
26
+ exports.validateCalendarDayAndMonth = validateCalendarDayAndMonth;
27
+ exports.getDatePart = getDatePart;
28
+ exports.initializeStr = initializeStr;
31
29
 
32
30
  var _dayjs = require('dayjs');
33
31
 
@@ -158,7 +156,28 @@ function formatDate(value, format) {
158
156
  return value.format(format);
159
157
  }
160
158
 
161
- function formatDateLocal(formatStr, format) {
159
+ function validateCalendarDay(dayStr) {
160
+ if (!/^\d+$/.test(dayStr)) return false;
161
+ var day = Number(dayStr);
162
+ if ([1, 3, 5, 7, 8, 10, 12].includes(currentMonth)) {
163
+ return day >= 1 && day <= 31;
164
+ }
165
+ if ([4, 6, 9, 11].includes(currentMonth)) {
166
+ return day >= 1 && day <= 30;
167
+ }
168
+ if (currentMonth === 2) {
169
+ var _isLeapYear = function _isLeapYear(year) {
170
+ return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
171
+ };
172
+ var year = currentYear;
173
+ if (_isLeapYear(year)) {
174
+ return day >= 1 && day <= 29;
175
+ }
176
+ return day >= 1 && day <= 28;
177
+ }
178
+ }
179
+
180
+ function tokenizeFormattedDate(formatStr, format) {
162
181
  var str = formatStr || '';
163
182
  var cleanStr = void 0;
164
183
  switch (format) {
@@ -186,38 +205,37 @@ function hasSpecialChar(str) {
186
205
  return matches ? matches.length : 0;
187
206
  }
188
207
 
189
- function isValidMonth(monthStr) {
190
- if (typeof monthStr === 'undefined' || monthStr === null) return currentMonth;
191
- if (!/^\d+$/.test(Number(monthStr))) return currentMonth;
192
- var month = Number(monthStr);
193
- if (month >= 1 && month <= 12) {
194
- return monthStr;
208
+ function validateTime(inputTime) {
209
+ if (!inputTime || typeof inputTime !== 'string') {
210
+ return currentTime;
195
211
  }
196
- return currentMonth;
197
- }
198
-
199
- function isValidDay(dayStr) {
200
- if (!/^\d+$/.test(dayStr)) return false;
201
- var day = Number(dayStr);
202
- if ([1, 3, 5, 7, 8, 10, 12].includes(currentMonth)) {
203
- return day >= 1 && day <= 31;
212
+ var trimmed = inputTime.trim();
213
+ var timeRegex = /^(\d{2}):(\d{2})$/;
214
+ var match = trimmed.match(timeRegex);
215
+ if (!match) {
216
+ return currentTime;
204
217
  }
205
- if ([4, 6, 9, 11].includes(currentMonth)) {
206
- return day >= 1 && day <= 30;
218
+ var hour = Number(match[1]);
219
+ var minute = Number(match[2]);
220
+ if (hour > 23 || minute > 59) {
221
+ return currentTime;
207
222
  }
208
- if (currentMonth === 2) {
209
- var isLeapYear = function isLeapYear(year) {
210
- return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
211
- };
212
- var year = currentYear;
213
- if (isLeapYear(year)) {
214
- return day >= 1 && day <= 29;
215
- }
216
- return day >= 1 && day <= 28;
223
+ return match[1] + ':' + match[2];
224
+ }
225
+
226
+ function delimate(format) {
227
+ var delimiter = void 0;
228
+ if (format === DATE_FORMATS.Germany_Russia_etc || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
229
+ delimiter = '.';
230
+ } else if (format === DATE_FORMATS.ISO || format === DATE_FORMATS.ISOAndTime) {
231
+ delimiter = '-';
232
+ } else {
233
+ delimiter = '/';
217
234
  }
235
+ return delimiter;
218
236
  }
219
237
 
220
- function fullValidYear(yearStr) {
238
+ function validateCalendarYear(yearStr) {
221
239
  var year = yearStr;
222
240
  if (!year || isNaN(year)) return currentYear;
223
241
  if (year.length === 2) {
@@ -233,95 +251,45 @@ function fullValidYear(yearStr) {
233
251
  return year ? year.padStart(4, '0') : currentYear;
234
252
  }
235
253
 
236
- function delimate(formatPrefix) {
237
- var delimiter = void 0;
238
- if (formatPrefix === DATE_FORMATS.Germany_Russia_etc || formatPrefix === DATE_FORMATS.Germany_Russia_etcAndTime) {
239
- delimiter = '.';
240
- } else if (formatPrefix === DATE_FORMATS.ISO || formatPrefix === DATE_FORMATS.ISOAndTime) {
241
- delimiter = '-';
242
- } else {
243
- delimiter = '/';
244
- }
245
- return delimiter;
246
- }
254
+ var isLeapYear = exports.isLeapYear = function isLeapYear(year) {
255
+ return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
256
+ };
247
257
 
248
- function getDateFormatByStr(str, format) {
249
- var cananderStr = str || '';
250
- var delimiter = delimate(format);
251
- var parts = cananderStr.split(delimiter);
252
- if (parts.length !== 3) return format;
253
- if (format === DATE_FORMATS.ISO) {
254
- return DATE_FORMATS.ISO;
255
- }
256
- if (format === DATE_FORMATS.ISOAndTime) {
257
- return DATE_FORMATS.ISOAndTime;
258
- }
259
- if (format === DATE_FORMATS.US) {
260
- return DATE_FORMATS.US;
261
- }
262
- if (format === DATE_FORMATS.USAndTime) {
263
- return DATE_FORMATS.USAndTime;
264
- }
265
- if (format === DATE_FORMATS.European || format === DATE_FORMATS.Germany_Russia_etc) {
266
- var day = parts[0],
267
- month = parts[1];
268
-
269
- var dayLen = day.length;
270
- var monthLen = month.length;
271
- if (dayLen === 2 && monthLen === 2) {
272
- return 'DD' + delimiter + 'MM' + delimiter + 'YYYY';
273
- } else if (dayLen === 2 && monthLen === 1) {
274
- return 'DD' + delimiter + 'M' + delimiter + 'YYYY';
275
- } else if (dayLen === 1 && monthLen === 2) {
276
- return 'D' + delimiter + 'MM' + delimiter + 'YYYY';
277
- } else if (dayLen === 1 && monthLen === 1) {
278
- return 'D' + delimiter + 'M' + delimiter + 'YYYY';
279
- }
280
- }
281
- if (format === DATE_FORMATS.EuropeanAndTime || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
282
- var _day = parts[0],
283
- _month = parts[1];
284
-
285
- var _dayLen = _day.length;
286
- var _monthLen = _month.length;
287
- if (_dayLen === 2 && _monthLen === 2) {
288
- return 'DD' + delimiter + 'MM' + delimiter + 'YYYY HH:mm';
289
- } else if (_dayLen === 2 && _monthLen === 1) {
290
- return 'DD' + delimiter + 'M' + delimiter + 'YYYY HH:mm';
291
- } else if (_dayLen === 1 && _monthLen === 2) {
292
- return 'D' + delimiter + 'MM' + delimiter + 'YYYY HH:mm';
293
- } else if (_dayLen === 1 && _monthLen === 1) {
294
- return 'D' + delimiter + 'M' + delimiter + 'YYYY HH:mm';
295
- }
258
+ function validateCalendarDayAndMonth(dayStr, monthStr, yearStr) {
259
+ var day = Number(dayStr);
260
+ var month = Number(monthStr);
261
+ var year = yearStr;
262
+ var isInThirtyOneDaysMonths = [1, 3, 5, 7, 8, 10, 12].includes(month);
263
+ var isInThirtyDaysMonths = [4, 6, 9, 11].includes(month);
264
+ var isValidDayThirtyOne = day < 1 || day > 31;
265
+ var isValidDayThirty = day < 1 || day > 30;
266
+ var isValidDayTwentyNight = day < 1 || day > 29;
267
+ var isValidDayTwentyEight = day < 1 || day > 28;
268
+
269
+ if (month > 12 || month < 0 || !month) {
270
+ day = currentDate;
271
+ month = currentMonth;
272
+ year = currentYear;
296
273
  }
297
- return format;
298
- }
299
274
 
300
- function isCurrentYear(year, month, day) {
301
- return Number(month) >= 1 && Number(month) <= 12 && Number(day) >= 1 && Number(day) <= 31 ? year : currentYear; // eslint-disable-line max-len
302
- }
303
-
304
- function validateTime(inputTime) {
305
- if (!inputTime || typeof inputTime !== 'string') {
306
- return currentTime;
307
- }
308
- var trimmed = inputTime.trim();
309
- var timeRegex = /^(\d{2}):(\d{2})$/;
310
- var match = trimmed.match(timeRegex);
311
- if (!match) {
312
- return currentTime;
275
+ if (isInThirtyOneDaysMonths && isValidDayThirtyOne || isInThirtyDaysMonths && isValidDayThirty) {
276
+ day = currentDate;
277
+ month = currentMonth;
278
+ year = currentYear;
313
279
  }
314
- var hour = Number(match[1]);
315
- var minute = Number(match[2]);
316
- if (hour > 23 || minute > 59) {
317
- return currentTime;
318
- }
319
- return match[1] + ':' + match[2];
320
- }
321
280
 
322
- function checkSpecialBetweenDigits(str) {
323
- var regex = /^\d+[^0-9]\d+$/;
324
- return regex.test(str);
281
+ if (month === 2) {
282
+ if (isLeapYear(year) && isValidDayTwentyNight) {
283
+ day = currentDate;
284
+ month = currentMonth;
285
+ year = currentYear;
286
+ } else if (isValidDayTwentyEight) {
287
+ day = currentDate;
288
+ month = currentMonth;
289
+ year = currentYear;
290
+ }
291
+ }
292
+ return { day: day, month: month, year: year };
325
293
  }
326
294
 
327
295
  function getDatePart(str) {
@@ -330,272 +298,233 @@ function getDatePart(str) {
330
298
  return parts[0];
331
299
  }
332
300
 
333
- function normalizeDateInput(str, localeFormat, delimiter) {
334
- var day = void 0;
335
- var month = void 0;
336
- var year = void 0;
301
+ function initializeStr(str, format) {
302
+ var inputStr = str;
303
+ var inputStrLength = inputStr.length;
337
304
  var time = currentTime;
338
- var parts = formatDateLocal(str, localeFormat, DATE_FORMATS);
339
- if (localeFormat === DATE_FORMATS.ISO) {
340
- var hasSpecial = hasSpecialChar(str);
341
- var numStr = str.replace(/[^0-9]/g, '');
342
- if (numStr.length === 7) {
343
- year = numStr.slice(0, 4);
344
- month = numStr.slice(4, 6).padStart(2, '0');
345
- day = numStr.slice(6, 7).padStart(2, '0');
346
- if (!isValidDay(day)) {
347
- return year + '-' + stringCurrentMonth + '-' + stringCurrentDate;
348
- }
349
- return year + '-' + month + '-' + day;
350
- }
305
+ var hasSpecial = hasSpecialChar(inputStr);
306
+ var formattedArray = tokenizeFormattedDate(inputStr, format, DATE_FORMATS);
307
+ var dateDelimater = delimate(format);
308
+ if (format === DATE_FORMATS.ISO) {
351
309
  if (hasSpecial) {
352
- year = fullValidYear(parts[0]);
353
- month = Number(parts[1]);
354
- day = Number(parts[2]);
355
- if (month >= 1 && month <= 12) {
356
- if (isValidDay(day)) {
357
- return year + '-' + String(month).padStart(2, '0') + '-' + String(day).padStart(2, '0');
358
- }
359
- return year + '-' + String(month).padStart(2, '0') + '-01';
360
- }
361
- if ((month >= 13 || month < 1) && isNaN(day)) {
362
- return year + '-' + stringCurrentMonth + '-' + stringCurrentDate;
363
- }
364
- if ((month >= 13 || month < 1) && day) {
365
- return String(currentYear) + '-' + stringCurrentMonth + '-' + stringCurrentDate;
366
- }
367
- if (!month && !day) {
368
- return year + '-01-01';
369
- }
370
- }
371
- if (str.length >= 1 && str.length <= 8) {
372
- year = fullValidYear(str.slice(0, 4));
373
- month = str.slice(4, 6);
374
- day = Number(str.slice(6, 8));
375
- if (str.length === 5 && Number(month) < 1) {
376
- return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ';
377
- }
378
- if (str.length === 6 && Number(month) < 1) {
379
- return year + '-' + stringCurrentMonth + '-' + stringCurrentDate;
380
- }
381
- if (str.length === 7) {
382
- if (!isValidDay(day)) {
383
- return year + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + stringCurrentDate;
384
- }
385
- return year + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0'); // eslint-disable-line max-len
386
- }
387
- if (str.length === 8) {
388
- if (!isValidDay(day)) {
389
- return isCurrentYear(year, month, day) + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + stringCurrentDate; // eslint-disable-line max-len
390
- }
391
- return isCurrentYear(year, month, day) + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0'); // eslint-disable-line max-len
392
- }
393
- if (Number(month) >= 1 && Number(month) <= 12 && isValidDay(day)) {
394
- return year + '-' + month.padStart(2, '0') + '-' + String(day).padStart(2, '0');
395
- }
396
- return year + '-' + (month ? month.padStart(2, '0') : '01') + '-' + (day ? String(day).padStart(2, '0') : '01'); // eslint-disable-line max-len
397
- }
398
- return currentYear + '/' + stringCurrentMonth + '/' + stringCurrentDate;
399
- }
400
- if (localeFormat === DATE_FORMATS.ISOAndTime) {
401
- var unNormalDate = getDatePart(str);
402
- var unNormalDateParts = formatDateLocal(unNormalDate, localeFormat, DATE_FORMATS);
403
- var _hasSpecial = hasSpecialChar(unNormalDate);
404
- var _numStr = unNormalDate.replace(/[^0-9]/g, '');
405
- if (_numStr.length === 7) {
406
- year = _numStr.slice(0, 4);
407
- month = _numStr.slice(4, 6).padStart(2, '0');
408
- day = _numStr.slice(6, 7).padStart(2, '0');
409
- if (parts.length === 3) {
410
- time = validateTime(parts[1] + ':' + parts[2]);
411
- }
412
- if (parts.length === 4) {
413
- time = validateTime(parts[2] + ':' + parts[3]);
414
- }
415
- if (parts.length === 5) {
416
- time = validateTime(parts[3] + ':' + parts[4]);
417
- }
418
- if (!isValidDay(day)) {
419
- return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time;
420
- }
421
- return year + '-' + month + '-' + day + ' ' + time;
422
- }
423
- if (_hasSpecial) {
424
- if (unNormalDateParts.length < 3) {
425
- parts.splice(2, 0, '1');
426
- }
427
- year = fullValidYear(parts[0]);
428
- month = Number(parts[1]);
429
- day = Number(parts[2]);
430
- time = validateTime(parts[3] + ':' + parts[4]);
431
- if (month >= 1 && month <= 12) {
432
- if (isValidDay(day)) {
433
- return year + '-' + String(month).padStart(2, '0') + '-' + String(day).padStart(2, '0') + ' ' + time; // eslint-disable-line max-len
434
- }
435
- return year + '-' + String(month).padStart(2, '0') + '-01 ' + time;
436
- }
437
- if ((month >= 13 || month < 1) && isNaN(day)) {
438
- return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time; // eslint-disable-line max-len
439
- }
440
- if ((month >= 13 || month < 1) && day) {
441
- return String(currentYear) + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time; // eslint-disable-line max-len
442
- }
443
- if (!month && !day) {
444
- return year + '-01-01 ' + time;
445
- }
310
+ var validateYear = validateCalendarYear(formattedArray[0]);
311
+
312
+ var _validateCalendarDayA = validateCalendarDayAndMonth(formattedArray[2] || '01', formattedArray[1] || '01', validateYear),
313
+ day = _validateCalendarDayA.day,
314
+ month = _validateCalendarDayA.month; // eslint-disable-line max-len
315
+
316
+
317
+ var _validateCalendarDayA2 = validateCalendarDayAndMonth(formattedArray[2] || '01', formattedArray[1] || '01', validateYear),
318
+ year = _validateCalendarDayA2.year; // eslint-disable-line max-len
319
+
320
+
321
+ day = String(day).padStart(2, 0);
322
+ month = String(month).padStart(2, 0);
323
+ return '' + year + dateDelimater + month + dateDelimater + day;
324
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
325
+ var yearStr = inputStr.slice(0, 4);
326
+ var monthStr = inputStr.slice(4, 6) || '01';
327
+ var dateStr = inputStr.slice(6, 8) || '01';
328
+ var _validateYear = validateCalendarYear(yearStr);
329
+
330
+ var _validateCalendarDayA3 = validateCalendarDayAndMonth(dateStr, monthStr, _validateYear),
331
+ _day = _validateCalendarDayA3.day,
332
+ _month = _validateCalendarDayA3.month;
333
+
334
+ var _validateCalendarDayA4 = validateCalendarDayAndMonth(dateStr, monthStr, _validateYear),
335
+ _year = _validateCalendarDayA4.year;
336
+
337
+ _day = String(_day).padStart(2, 0);
338
+ _month = String(_month).padStart(2, 0);
339
+ return '' + _year + dateDelimater + _month + dateDelimater + _day;
340
+ } else if (inputStrLength > 8) {
341
+ return '' + currentYear + dateDelimater + String(currentMonth).padStart(2, 0) + dateDelimater + String(currentDate).padStart(2, 0); // eslint-disable-line max-len
446
342
  }
447
- if (unNormalDate.length >= 1 && unNormalDate.length <= 8) {
448
- year = fullValidYear(unNormalDate.slice(0, 4));
449
- month = unNormalDate.slice(4, 6);
450
- day = Number(unNormalDate.slice(6, 8));
451
- var timeParts = formatDateLocal(str, localeFormat, DATE_FORMATS);
343
+ } else if (format === DATE_FORMATS.ISOAndTime) {
344
+ var datePart = getDatePart(inputStr);
345
+ var formattedDateArray = tokenizeFormattedDate(datePart, format);
346
+ var isDateSpecial = hasSpecialChar(datePart);
347
+ if (isDateSpecial) {
348
+ if (formattedDateArray.length < 3) {
349
+ formattedArray.splice(2, 0, '01');
350
+ }
351
+ var _validateYear2 = validateCalendarYear(formattedArray[0]);
352
+
353
+ var _validateCalendarDayA5 = validateCalendarDayAndMonth(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear2),
354
+ _day2 = _validateCalendarDayA5.day,
355
+ _month2 = _validateCalendarDayA5.month; // eslint-disable-line max-len
356
+
357
+
358
+ var _validateCalendarDayA6 = validateCalendarDayAndMonth(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear2),
359
+ _year2 = _validateCalendarDayA6.year; // eslint-disable-line max-len
360
+
361
+
362
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
363
+ _day2 = String(_day2).padStart(2, 0);
364
+ _month2 = String(_month2).padStart(2, 0);
365
+ return '' + _year2 + dateDelimater + _month2 + dateDelimater + _day2 + ' ' + time;
366
+ } else if (datePart.length >= 1 && datePart.length <= 8) {
367
+ var _yearStr = datePart.slice(0, 4);
368
+ var _monthStr = datePart.slice(4, 6) || '01';
369
+ var _dateStr = datePart.slice(6, 8) || '01';
370
+ var timeParts = tokenizeFormattedDate(inputStr, format);
452
371
  time = validateTime(timeParts[1] + ':' + timeParts[2]);
453
- if (unNormalDate.length === 5 && Number(month) < 1) {
454
- return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time;
455
- }
456
- if (unNormalDate.length === 6 && Number(month) < 1) {
457
- return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time;
458
- }
459
- if (unNormalDate.length === 7) {
460
- if (!isValidDay(day)) {
461
- return year + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + stringCurrentDate + ' ' + time; // eslint-disable-line max-len
462
- }
463
- return year + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0') + ' ' + time; // eslint-disable-line max-len
464
- }
465
- if (unNormalDate.length === 8) {
466
- if (!isValidDay(day)) {
467
- return isCurrentYear(year, month, day) + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + stringCurrentDate + ' ' + time; // eslint-disable-line max-len
468
- }
469
- return isCurrentYear(year, month, day) + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0') + ' ' + time; // eslint-disable-line max-len
470
- }
471
- if (Number(month) >= 1 && Number(month) <= 12 && isValidDay(day)) {
472
- return year + '-' + month.padStart(2, '0') + '-' + String(day).padStart(2, '0') + ' ' + time;
473
- }
474
- return year + '-' + (month ? month.padStart(2, '0') : '01') + '-' + (day ? String(day).padStart(2, '0') : '01') + ' ' + time; // eslint-disable-line max-len
475
- }
476
- return currentYear + '/' + stringCurrentMonth + '/' + stringCurrentDate + ' ' + time;
477
- }
478
- if (localeFormat === DATE_FORMATS.US) {
479
- var _hasSpecial2 = hasSpecialChar(str);
480
- if (_hasSpecial2) {
481
- month = Number(parts[0]);
482
- day = Number(parts[1]);
483
- year = fullValidYear(parts[2]);
484
- if (month >= 1 && month <= 12 && isValidDay(day)) {
485
- return month + '/' + day + '/' + year;
486
- }
487
- return currentMonth + '/' + currentDate + '/' + currentYear;
488
- }
489
- if (str.length >= 1 && str.length <= 8) {
490
- month = Number(str.slice(0, 2));
491
- day = Number(str.slice(2, 4));
492
- year = fullValidYear(str.slice(4, str.length));
493
- if (month >= 1 && month <= 12) {
494
- if (isValidDay(day)) {
495
- return month + '/' + day + '/' + year;
496
- }
497
- if (!day) {
498
- return month + '/1/' + year;
499
- }
500
- return currentMonth + '/' + currentDate + '/' + currentYear;
501
- }
502
- }
503
- return currentMonth + '/' + currentDate + '/' + currentYear;
504
- }
505
- if (localeFormat === DATE_FORMATS.USAndTime) {
506
- var _unNormalDate = getDatePart(str);
507
- var _unNormalDateParts = formatDateLocal(_unNormalDate, localeFormat, DATE_FORMATS);
508
- var _hasSpecial3 = hasSpecialChar(_unNormalDate);
509
- if (_hasSpecial3) {
510
- if (_unNormalDateParts.length < 3) {
511
- parts.splice(2, 0, String(currentYear));
512
- }
513
- month = Number(parts[0]);
514
- day = Number(parts[1]);
515
- year = fullValidYear(parts[2]);
516
- time = validateTime(parts[3] + ':' + parts[4]);
517
- if (month >= 1 && month <= 12 && isValidDay(day)) {
518
- return month + '/' + day + '/' + year + ' ' + time;
519
- }
520
- return currentMonth + '/' + currentDate + '/' + currentYear + ' ' + time;
521
- }
522
- if (_unNormalDate.length >= 1 && _unNormalDate.length <= 8) {
523
- month = Number(_unNormalDate.slice(0, 2));
524
- day = Number(_unNormalDate.slice(2, 4));
525
- year = fullValidYear(_unNormalDate.slice(4, _unNormalDate.length));
526
- var _timeParts = formatDateLocal(str, localeFormat, DATE_FORMATS);
527
- time = validateTime(_timeParts[1] + ':' + _timeParts[2]);
528
- if (month >= 1 && month <= 12) {
529
- if (isValidDay(day)) {
530
- return month + '/' + day + '/' + year + ' ' + time;
531
- }
532
- if (!day) {
533
- return month + '/1/' + year + ' ' + time;
534
- }
535
- return currentMonth + '/' + currentDate + '/' + currentYear + ' ' + time;
536
- }
372
+ var _validateYear3 = validateCalendarYear(_yearStr);
373
+
374
+ var _validateCalendarDayA7 = validateCalendarDayAndMonth(_dateStr, _monthStr, _validateYear3),
375
+ _day3 = _validateCalendarDayA7.day,
376
+ _month3 = _validateCalendarDayA7.month;
377
+
378
+ var _validateCalendarDayA8 = validateCalendarDayAndMonth(_dateStr, _monthStr, _validateYear3),
379
+ _year3 = _validateCalendarDayA8.year;
380
+
381
+ _day3 = String(_day3).padStart(2, 0);
382
+ _month3 = String(_month3).padStart(2, 0);
383
+ return '' + _year3 + dateDelimater + _month3 + dateDelimater + _day3 + ' ' + time;
384
+ } else if (datePart.length > 8) {
385
+ return '' + currentYear + dateDelimater + String(currentMonth).padStart(2, 0) + dateDelimater + String(currentDate).padStart(2, 0) + ' ' + currentTime; // eslint-disable-line max-len
537
386
  }
538
- return currentMonth + '/' + currentDate + '/' + currentYear + ' ' + time;
539
- }
540
- if (localeFormat === DATE_FORMATS.European || localeFormat === DATE_FORMATS.Germany_Russia_etc) {
541
- var _hasSpecial4 = hasSpecialChar(str);
542
- if (_hasSpecial4) {
543
- day = parts[0];
544
- month = parts[1];
545
- year = fullValidYear(parts[2]);
546
- if (isValidDay(day) && Number(month) >= 1 && Number(month) <= 12) {
547
- return '' + Number(day) + delimiter + Number(month) + delimiter + year;
548
- }
549
- return '' + currentDate + delimiter + currentMonth + delimiter + currentYear;
387
+ } else if (format === DATE_FORMATS.US) {
388
+ if (hasSpecial) {
389
+ var _validateYear4 = validateCalendarYear(formattedArray[2]);
390
+
391
+ var _validateCalendarDayA9 = validateCalendarDayAndMonth(formattedArray[1] || '1', formattedArray[0], _validateYear4),
392
+ _day4 = _validateCalendarDayA9.day,
393
+ _month4 = _validateCalendarDayA9.month,
394
+ _year4 = _validateCalendarDayA9.year; // eslint-disable-line max-len
395
+
396
+
397
+ return '' + _month4 + dateDelimater + _day4 + dateDelimater + _year4;
398
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
399
+ var _monthStr2 = inputStr.slice(0, 2);
400
+ var _dateStr2 = inputStr.slice(2, 4) || '1';
401
+ var _yearStr2 = inputStr.slice(4, inputStr.length);
402
+ var _validateYear5 = validateCalendarYear(_yearStr2);
403
+
404
+ var _validateCalendarDayA10 = validateCalendarDayAndMonth(_dateStr2, _monthStr2, _validateYear5),
405
+ _day5 = _validateCalendarDayA10.day,
406
+ _month5 = _validateCalendarDayA10.month,
407
+ _year5 = _validateCalendarDayA10.year;
408
+
409
+ return '' + _month5 + dateDelimater + _day5 + dateDelimater + _year5; // eslint-disable-line max-len
410
+ } else if (inputStrLength > 8) {
411
+ return '' + String(currentMonth).padStart(2, 0) + dateDelimater + String(currentDate).padStart(2, 0) + dateDelimater + currentYear; // eslint-disable-line max-len
550
412
  }
551
- if (str.length >= 1 && str.length <= 8) {
552
- day = Number(str.slice(0, 2));
553
- var monthStr = str.slice(2, 4);
554
- month = isValidMonth(monthStr);
555
- var yearStr = str.slice(4, str.length);
556
- year = fullValidYear(yearStr);
557
-
558
- if (isValidDay(day)) {
559
- if (Number(monthStr) < 1 && Number(monthStr) > 12) {
560
- return '' + currentDate + delimiter + currentMonth + delimiter + currentYear;
561
- }
562
- return '' + Number(day) + delimiter + Number(month) + delimiter + year;
563
- }
413
+ } else if (format === DATE_FORMATS.USAndTime) {
414
+ var _datePart = getDatePart(inputStr);
415
+ var _formattedDateArray = tokenizeFormattedDate(_datePart, format);
416
+ var _isDateSpecial = hasSpecialChar(_datePart);
417
+ if (_isDateSpecial) {
418
+ if (_formattedDateArray.length < 3) {
419
+ formattedArray.splice(2, 0, String(currentYear));
420
+ }
421
+ var _validateYear6 = validateCalendarYear(formattedArray[2]);
422
+
423
+ var _validateCalendarDayA11 = validateCalendarDayAndMonth(formattedArray[1] || '1', formattedArray[0], _validateYear6),
424
+ _day6 = _validateCalendarDayA11.day,
425
+ _month6 = _validateCalendarDayA11.month,
426
+ _year6 = _validateCalendarDayA11.year; // eslint-disable-line max-len
427
+
428
+
429
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
430
+ return '' + _month6 + dateDelimater + _day6 + dateDelimater + _year6 + ' ' + time;
431
+ } else if (_datePart.length >= 1 && _datePart.length <= 8) {
432
+ var _monthStr3 = _datePart.slice(0, 2);
433
+ var _dateStr3 = _datePart.slice(2, 4) || '1';
434
+ var _yearStr3 = _datePart.slice(4, _datePart.length);
435
+ var _validateYear7 = validateCalendarYear(_yearStr3); // eslint-disable-line max-len
436
+
437
+ var _validateCalendarDayA12 = validateCalendarDayAndMonth(_dateStr3, _monthStr3, _validateYear7),
438
+ _day7 = _validateCalendarDayA12.day,
439
+ _month7 = _validateCalendarDayA12.month,
440
+ _year7 = _validateCalendarDayA12.year;
441
+
442
+ var _timeParts = tokenizeFormattedDate(inputStr, format);
443
+ time = validateTime(_timeParts[1] + ':' + _timeParts[2]) || currentTime;
444
+ return '' + _month7 + dateDelimater + _day7 + dateDelimater + _year7 + ' ' + time;
445
+ } else if (_datePart.length > 8) {
446
+ return '' + String(currentMonth).padStart(2, 0) + dateDelimater + String(currentDate).padStart(2, 0) + dateDelimater + currentYear + ' ' + currentTime; // eslint-disable-line max-len
564
447
  }
565
- return '' + currentDate + delimiter + currentMonth + delimiter + currentYear;
566
- }
567
- if (localeFormat === DATE_FORMATS.EuropeanAndTime || localeFormat === DATE_FORMATS.Germany_Russia_etcAndTime) {
568
- var _unNormalDate2 = getDatePart(str);
569
- var _unNormalDateParts2 = formatDateLocal(_unNormalDate2, localeFormat, DATE_FORMATS);
570
- var _hasSpecial5 = hasSpecialChar(_unNormalDate2);
571
- if (_hasSpecial5) {
572
- if (_unNormalDateParts2.length < 3) {
573
- parts.splice(2, 0, String(currentYear));
574
- }
575
- day = parts[0];
576
- month = parts[1];
577
- year = fullValidYear(parts[2]);
578
- time = validateTime(parts[3] + ':' + parts[4]);
579
- if (isValidDay(day) && Number(month) >= 1 && Number(month) <= 12) {
580
- return '' + Number(day) + delimiter + Number(month) + delimiter + year + ' ' + time;
581
- }
582
- return '' + currentDate + delimiter + currentMonth + delimiter + currentYear + ' ' + time;
448
+ } else if (format === DATE_FORMATS.European || format === DATE_FORMATS.Germany_Russia_etc) {
449
+ if (hasSpecial) {
450
+ var _validateYear8 = validateCalendarYear(formattedArray[2]);
451
+
452
+ var _validateCalendarDayA13 = validateCalendarDayAndMonth(formattedArray[0], formattedArray[1], _validateYear8),
453
+ _day8 = _validateCalendarDayA13.day,
454
+ _month8 = _validateCalendarDayA13.month; // eslint-disable-line max-len
455
+
456
+
457
+ var _validateCalendarDayA14 = validateCalendarDayAndMonth(formattedArray[0], formattedArray[1], _validateYear8),
458
+ _year8 = _validateCalendarDayA14.year; // eslint-disable-line max-len
459
+
460
+
461
+ _day8 = String(_day8).padStart(2, 0);
462
+ _month8 = String(_month8).padStart(2, 0);
463
+ return '' + _day8 + dateDelimater + _month8 + dateDelimater + _year8;
464
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
465
+ var _dateStr4 = inputStr.slice(0, 2);
466
+ var _monthStr4 = inputStr.slice(2, 4);
467
+ var _yearStr4 = inputStr.slice(4, inputStr.length);
468
+ var _validateYear9 = validateCalendarYear(_yearStr4);
469
+
470
+ var _validateCalendarDayA15 = validateCalendarDayAndMonth(_dateStr4, _monthStr4, _validateYear9),
471
+ _year9 = _validateCalendarDayA15.year; // eslint-disable-line max-len
472
+
473
+
474
+ var _validateCalendarDayA16 = validateCalendarDayAndMonth(_dateStr4, _monthStr4, _validateYear9),
475
+ _day9 = _validateCalendarDayA16.day,
476
+ _month9 = _validateCalendarDayA16.month; // eslint-disable-line max-len
477
+
478
+
479
+ _day9 = String(_day9).padStart(2, 0);
480
+ _month9 = String(_month9).padStart(2, 0);
481
+ return '' + _day9 + dateDelimater + _month9 + dateDelimater + _year9;
482
+ } else if (inputStrLength > 8) {
483
+ return '' + String(currentDate).padStart(2, 0) + dateDelimater + String(currentMonth).padStart(2, 0) + dateDelimater + currentYear; // eslint-disable-line max-len
583
484
  }
584
- if (_unNormalDate2.length >= 1 && _unNormalDate2.length <= 8) {
585
- day = Number(_unNormalDate2.slice(0, 2));
586
- var _monthStr = _unNormalDate2.slice(2, 4);
587
- month = isValidMonth(_monthStr);
588
- var _yearStr = _unNormalDate2.slice(4, _unNormalDate2.length);
589
- year = fullValidYear(_yearStr);
590
- var _timeParts2 = formatDateLocal(str, localeFormat, DATE_FORMATS);
485
+ } else if (format === DATE_FORMATS.EuropeanAndTime || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
486
+ var _datePart2 = getDatePart(inputStr);
487
+ var _formattedDateArray2 = tokenizeFormattedDate(_datePart2, format);
488
+ var _isDateSpecial2 = hasSpecialChar(_datePart2);
489
+ if (_isDateSpecial2) {
490
+ if (_formattedDateArray2.length < 3) {
491
+ formattedArray.splice(2, 0, String(currentYear));
492
+ }
493
+ var _validateYear10 = validateCalendarYear(formattedArray[2]);
494
+
495
+ var _validateCalendarDayA17 = validateCalendarDayAndMonth(formattedArray[0], formattedArray[1], _validateYear10),
496
+ _day10 = _validateCalendarDayA17.day,
497
+ _month10 = _validateCalendarDayA17.month; // eslint-disable-line max-len
498
+
499
+
500
+ var _validateCalendarDayA18 = validateCalendarDayAndMonth(formattedArray[0], formattedArray[1], _validateYear10),
501
+ _year10 = _validateCalendarDayA18.year; // eslint-disable-line max-len
502
+
503
+
504
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
505
+ _day10 = String(_day10).padStart(2, 0);
506
+ _month10 = String(_month10).padStart(2, 0);
507
+ return '' + _day10 + dateDelimater + _month10 + dateDelimater + _year10 + ' ' + time;
508
+ } else if (_datePart2.length >= 1 && _datePart2.length <= 8) {
509
+ var _dateStr5 = _datePart2.slice(0, 2);
510
+ var _monthStr5 = _datePart2.slice(2, 4);
511
+ var _yearStr5 = _datePart2.slice(4, _datePart2.length);
512
+ var _timeParts2 = tokenizeFormattedDate(inputStr, format);
591
513
  time = validateTime(_timeParts2[1] + ':' + _timeParts2[2]);
592
- if (isValidDay(day)) {
593
- if (Number(_monthStr) < 1 && Number(_monthStr) > 12) {
594
- return '' + currentDate + delimiter + currentMonth + delimiter + currentYear + ' ' + time;
595
- }
596
- return '' + Number(day) + delimiter + Number(month) + delimiter + year + ' ' + time;
597
- }
514
+ var _validateYear11 = validateCalendarYear(_yearStr5);
515
+
516
+ var _validateCalendarDayA19 = validateCalendarDayAndMonth(_dateStr5, _monthStr5, _validateYear11),
517
+ _day11 = _validateCalendarDayA19.day,
518
+ _month11 = _validateCalendarDayA19.month;
519
+
520
+ var _validateCalendarDayA20 = validateCalendarDayAndMonth(_dateStr5, _monthStr5, _validateYear11),
521
+ _year11 = _validateCalendarDayA20.year;
522
+
523
+ _day11 = String(_day11).padStart(2, 0);
524
+ _month11 = String(_month11).padStart(2, 0);
525
+ return '' + _day11 + dateDelimater + _month11 + dateDelimater + _year11 + ' ' + time;
526
+ } else if (_datePart2.length > 8) {
527
+ return '' + String(currentDate).padStart(2, 0) + dateDelimater + String(currentMonth).padStart(2, 0) + dateDelimater + currentYear + ' ' + currentTime; // eslint-disable-line max-len
598
528
  }
599
- return '' + currentDate + delimiter + currentMonth + delimiter + currentYear + ' ' + time;
600
529
  }
601
530
  }