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

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
-
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
274
 
304
- function validateTime(inputTime) {
305
- if (!inputTime || typeof inputTime !== 'string') {
306
- return currentTime;
275
+ if (isInThirtyOneDaysMonths && isValidDayThirtyOne || isInThirtyDaysMonths && isValidDayThirty) {
276
+ day = currentDate;
277
+ month = currentMonth;
278
+ year = currentYear;
307
279
  }
308
- var trimmed = inputTime.trim();
309
- var timeRegex = /^(\d{2}):(\d{2})$/;
310
- var match = trimmed.match(timeRegex);
311
- if (!match) {
312
- return currentTime;
313
- }
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,278 @@ 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;
305
+ var hasSpecial = hasSpecialChar(inputStr);
306
+ var formattedArray = tokenizeFormattedDate(inputStr, format, DATE_FORMATS);
307
+ var dateDelimater = delimate(format);
308
+ if (format === DATE_FORMATS.ISO) {
309
+ var numStr = inputStr.replace(/[^0-9]/g, '');
310
+ if (numStr.length === 7 || numStr.length === 8) {
311
+ var yearStr = numStr.slice(0, 4);
312
+ var monthStr = numStr.slice(4, 6) || '01';
313
+ var dateStr = numStr.slice(6, numStr.length) || '01';
314
+ var validateYear = validateCalendarYear(yearStr);
315
+
316
+ var _validateCalendarDayA = validateCalendarDayAndMonth(dateStr, monthStr, validateYear),
317
+ day = _validateCalendarDayA.day,
318
+ month = _validateCalendarDayA.month;
319
+
320
+ var _validateCalendarDayA2 = validateCalendarDayAndMonth(dateStr, monthStr, validateYear),
321
+ year = _validateCalendarDayA2.year;
322
+
323
+ day = String(day).padStart(2, 0);
324
+ month = String(month).padStart(2, 0);
325
+ return '' + year + dateDelimater + month + dateDelimater + day;
350
326
  }
351
327
  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
328
+ var _validateYear = validateCalendarYear(formattedArray[0]);
329
+
330
+ var _validateCalendarDayA3 = validateCalendarDayAndMonth(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear),
331
+ _day = _validateCalendarDayA3.day,
332
+ _month = _validateCalendarDayA3.month; // eslint-disable-line max-len
333
+
334
+
335
+ var _validateCalendarDayA4 = validateCalendarDayAndMonth(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear),
336
+ _year = _validateCalendarDayA4.year; // eslint-disable-line max-len
337
+
338
+
339
+ _day = String(_day).padStart(2, 0);
340
+ _month = String(_month).padStart(2, 0);
341
+ return '' + _year + dateDelimater + _month + dateDelimater + _day;
342
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
343
+ var _yearStr = inputStr.slice(0, 4);
344
+ var _monthStr = inputStr.slice(4, 6) || '01';
345
+ var _dateStr = inputStr.slice(6, 8) || '01';
346
+ var _validateYear2 = validateCalendarYear(_yearStr);
347
+
348
+ var _validateCalendarDayA5 = validateCalendarDayAndMonth(_dateStr, _monthStr, _validateYear2),
349
+ _day2 = _validateCalendarDayA5.day,
350
+ _month2 = _validateCalendarDayA5.month;
351
+
352
+ var _validateCalendarDayA6 = validateCalendarDayAndMonth(_dateStr, _monthStr, _validateYear2),
353
+ _year2 = _validateCalendarDayA6.year;
354
+
355
+ _day2 = String(_day2).padStart(2, 0);
356
+ _month2 = String(_month2).padStart(2, 0);
357
+ return '' + _year2 + dateDelimater + _month2 + dateDelimater + _day2;
358
+ } else if (inputStrLength > 8) {
359
+ return '' + currentYear + dateDelimater + String(currentMonth).padStart(2, 0) + dateDelimater + String(currentDate).padStart(2, 0); // eslint-disable-line max-len
397
360
  }
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;
361
+ } else if (format === DATE_FORMATS.ISOAndTime) {
362
+ var datePart = getDatePart(inputStr);
363
+ var formattedDateArray = tokenizeFormattedDate(datePart, format);
364
+ var isDateSpecial = hasSpecialChar(datePart);
365
+ var _numStr = datePart.replace(/[^0-9]/g, '');
366
+ if (_numStr.length === 7 || _numStr.length === 8) {
367
+ var _yearStr2 = _numStr.slice(0, 4);
368
+ var _monthStr2 = _numStr.slice(4, 6) || '01';
369
+ var _dateStr2 = _numStr.slice(6, _numStr.length) || '01';
370
+ if (formattedArray.length === 3) {
371
+ time = validateTime(formattedArray[1] + ':' + formattedArray[2]);
372
+ }
373
+ if (formattedArray.length === 4) {
374
+ time = validateTime(formattedArray[2] + ':' + formattedArray[3]);
375
+ }
376
+ if (formattedArray.length === 5) {
377
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
378
+ }
379
+ var _validateYear3 = validateCalendarYear(_yearStr2);
380
+
381
+ var _validateCalendarDayA7 = validateCalendarDayAndMonth(_dateStr2, _monthStr2, _validateYear3),
382
+ _day3 = _validateCalendarDayA7.day,
383
+ _month3 = _validateCalendarDayA7.month;
384
+
385
+ var _validateCalendarDayA8 = validateCalendarDayAndMonth(_dateStr2, _monthStr2, _validateYear3),
386
+ _year3 = _validateCalendarDayA8.year;
387
+
388
+ _day3 = String(_day3).padStart(2, 0);
389
+ _month3 = String(_month3).padStart(2, 0);
390
+ return '' + _year3 + dateDelimater + _month3 + dateDelimater + _day3 + ' ' + time;
422
391
  }
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;
392
+ if (isDateSpecial) {
393
+ if (formattedDateArray.length < 3) {
394
+ formattedArray.splice(2, 0, '01');
436
395
  }
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
- }
446
- }
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);
396
+ var _validateYear4 = validateCalendarYear(formattedArray[0]);
397
+
398
+ var _validateCalendarDayA9 = validateCalendarDayAndMonth(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear4),
399
+ _day4 = _validateCalendarDayA9.day,
400
+ _month4 = _validateCalendarDayA9.month; // eslint-disable-line max-len
401
+
402
+
403
+ var _validateCalendarDayA10 = validateCalendarDayAndMonth(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear4),
404
+ _year4 = _validateCalendarDayA10.year; // eslint-disable-line max-len
405
+
406
+
407
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
408
+ _day4 = String(_day4).padStart(2, 0);
409
+ _month4 = String(_month4).padStart(2, 0);
410
+ return '' + _year4 + dateDelimater + _month4 + dateDelimater + _day4 + ' ' + time;
411
+ } else if (datePart.length >= 1 && datePart.length <= 8) {
412
+ var _yearStr3 = datePart.slice(0, 4);
413
+ var _monthStr3 = datePart.slice(4, 6) || '01';
414
+ var _dateStr3 = datePart.slice(6, 8) || '01';
415
+ var timeParts = tokenizeFormattedDate(inputStr, format);
452
416
  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
- }
417
+ var _validateYear5 = validateCalendarYear(_yearStr3);
418
+
419
+ var _validateCalendarDayA11 = validateCalendarDayAndMonth(_dateStr3, _monthStr3, _validateYear5),
420
+ _day5 = _validateCalendarDayA11.day,
421
+ _month5 = _validateCalendarDayA11.month;
422
+
423
+ var _validateCalendarDayA12 = validateCalendarDayAndMonth(_dateStr3, _monthStr3, _validateYear5),
424
+ _year5 = _validateCalendarDayA12.year;
425
+
426
+ _day5 = String(_day5).padStart(2, 0);
427
+ _month5 = String(_month5).padStart(2, 0);
428
+ return '' + _year5 + dateDelimater + _month5 + dateDelimater + _day5 + ' ' + time;
429
+ } else if (datePart.length > 8) {
430
+ return '' + currentYear + dateDelimater + String(currentMonth).padStart(2, 0) + dateDelimater + String(currentDate).padStart(2, 0) + ' ' + currentTime; // eslint-disable-line max-len
537
431
  }
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;
432
+ } else if (format === DATE_FORMATS.US) {
433
+ if (hasSpecial) {
434
+ var _validateYear6 = validateCalendarYear(formattedArray[2]);
435
+
436
+ var _validateCalendarDayA13 = validateCalendarDayAndMonth(formattedArray[1] || '1', formattedArray[0], _validateYear6),
437
+ _day6 = _validateCalendarDayA13.day,
438
+ _month6 = _validateCalendarDayA13.month,
439
+ _year6 = _validateCalendarDayA13.year; // eslint-disable-line max-len
440
+
441
+
442
+ return '' + _month6 + dateDelimater + _day6 + dateDelimater + _year6;
443
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
444
+ var _monthStr4 = inputStr.slice(0, 2);
445
+ var _dateStr4 = inputStr.slice(2, 4) || '1';
446
+ var _yearStr4 = inputStr.slice(4, inputStr.length);
447
+ var _validateYear7 = validateCalendarYear(_yearStr4);
448
+
449
+ var _validateCalendarDayA14 = validateCalendarDayAndMonth(_dateStr4, _monthStr4, _validateYear7),
450
+ _day7 = _validateCalendarDayA14.day,
451
+ _month7 = _validateCalendarDayA14.month,
452
+ _year7 = _validateCalendarDayA14.year;
453
+
454
+ return '' + _month7 + dateDelimater + _day7 + dateDelimater + _year7; // eslint-disable-line max-len
455
+ } else if (inputStrLength > 8) {
456
+ return '' + String(currentMonth).padStart(2, 0) + dateDelimater + String(currentDate).padStart(2, 0) + dateDelimater + currentYear; // eslint-disable-line max-len
550
457
  }
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
- }
458
+ } else if (format === DATE_FORMATS.USAndTime) {
459
+ var _datePart = getDatePart(inputStr);
460
+ var _formattedDateArray = tokenizeFormattedDate(_datePart, format);
461
+ var _isDateSpecial = hasSpecialChar(_datePart);
462
+ if (_isDateSpecial) {
463
+ if (_formattedDateArray.length < 3) {
464
+ formattedArray.splice(2, 0, String(currentYear));
465
+ }
466
+ var _validateYear8 = validateCalendarYear(formattedArray[2]);
467
+
468
+ var _validateCalendarDayA15 = validateCalendarDayAndMonth(formattedArray[1] || '1', formattedArray[0], _validateYear8),
469
+ _day8 = _validateCalendarDayA15.day,
470
+ _month8 = _validateCalendarDayA15.month,
471
+ _year8 = _validateCalendarDayA15.year; // eslint-disable-line max-len
472
+
473
+
474
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
475
+ return '' + _month8 + dateDelimater + _day8 + dateDelimater + _year8 + ' ' + time;
476
+ } else if (_datePart.length >= 1 && _datePart.length <= 8) {
477
+ var _monthStr5 = _datePart.slice(0, 2);
478
+ var _dateStr5 = _datePart.slice(2, 4) || '1';
479
+ var _yearStr5 = _datePart.slice(4, _datePart.length);
480
+ var _validateYear9 = validateCalendarYear(_yearStr5); // eslint-disable-line max-len
481
+
482
+ var _validateCalendarDayA16 = validateCalendarDayAndMonth(_dateStr5, _monthStr5, _validateYear9),
483
+ _day9 = _validateCalendarDayA16.day,
484
+ _month9 = _validateCalendarDayA16.month,
485
+ _year9 = _validateCalendarDayA16.year;
486
+
487
+ var _timeParts = tokenizeFormattedDate(inputStr, format);
488
+ time = validateTime(_timeParts[1] + ':' + _timeParts[2]) || currentTime;
489
+ return '' + _month9 + dateDelimater + _day9 + dateDelimater + _year9 + ' ' + time;
490
+ } else if (_datePart.length > 8) {
491
+ return '' + String(currentMonth).padStart(2, 0) + dateDelimater + String(currentDate).padStart(2, 0) + dateDelimater + currentYear + ' ' + currentTime; // eslint-disable-line max-len
564
492
  }
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;
493
+ } else if (format === DATE_FORMATS.European || format === DATE_FORMATS.Germany_Russia_etc) {
494
+ if (hasSpecial) {
495
+ var _validateYear10 = validateCalendarYear(formattedArray[2]);
496
+
497
+ var _validateCalendarDayA17 = validateCalendarDayAndMonth(formattedArray[0], formattedArray[1], _validateYear10),
498
+ _day10 = _validateCalendarDayA17.day,
499
+ _month10 = _validateCalendarDayA17.month; // eslint-disable-line max-len
500
+
501
+
502
+ var _validateCalendarDayA18 = validateCalendarDayAndMonth(formattedArray[0], formattedArray[1], _validateYear10),
503
+ _year10 = _validateCalendarDayA18.year; // eslint-disable-line max-len
504
+
505
+
506
+ _day10 = String(_day10).padStart(2, 0);
507
+ _month10 = String(_month10).padStart(2, 0);
508
+ return '' + _day10 + dateDelimater + _month10 + dateDelimater + _year10;
509
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
510
+ var _dateStr6 = inputStr.slice(0, 2);
511
+ var _monthStr6 = inputStr.slice(2, 4);
512
+ var _yearStr6 = inputStr.slice(4, inputStr.length);
513
+ var _validateYear11 = validateCalendarYear(_yearStr6);
514
+
515
+ var _validateCalendarDayA19 = validateCalendarDayAndMonth(_dateStr6, _monthStr6, _validateYear11),
516
+ _year11 = _validateCalendarDayA19.year; // eslint-disable-line max-len
517
+
518
+
519
+ var _validateCalendarDayA20 = validateCalendarDayAndMonth(_dateStr6, _monthStr6, _validateYear11),
520
+ _day11 = _validateCalendarDayA20.day,
521
+ _month11 = _validateCalendarDayA20.month; // eslint-disable-line max-len
522
+
523
+
524
+ _day11 = String(_day11).padStart(2, 0);
525
+ _month11 = String(_month11).padStart(2, 0);
526
+ return '' + _day11 + dateDelimater + _month11 + dateDelimater + _year11;
527
+ } else if (inputStrLength > 8) {
528
+ return '' + String(currentDate).padStart(2, 0) + dateDelimater + String(currentMonth).padStart(2, 0) + dateDelimater + currentYear; // eslint-disable-line max-len
583
529
  }
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);
530
+ } else if (format === DATE_FORMATS.EuropeanAndTime || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
531
+ var _datePart2 = getDatePart(inputStr);
532
+ var _formattedDateArray2 = tokenizeFormattedDate(_datePart2, format);
533
+ var _isDateSpecial2 = hasSpecialChar(_datePart2);
534
+ if (_isDateSpecial2) {
535
+ if (_formattedDateArray2.length < 3) {
536
+ formattedArray.splice(2, 0, String(currentYear));
537
+ }
538
+ var _validateYear12 = validateCalendarYear(formattedArray[2]);
539
+
540
+ var _validateCalendarDayA21 = validateCalendarDayAndMonth(formattedArray[0], formattedArray[1], _validateYear12),
541
+ _day12 = _validateCalendarDayA21.day,
542
+ _month12 = _validateCalendarDayA21.month; // eslint-disable-line max-len
543
+
544
+
545
+ var _validateCalendarDayA22 = validateCalendarDayAndMonth(formattedArray[0], formattedArray[1], _validateYear12),
546
+ _year12 = _validateCalendarDayA22.year; // eslint-disable-line max-len
547
+
548
+
549
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
550
+ _day12 = String(_day12).padStart(2, 0);
551
+ _month12 = String(_month12).padStart(2, 0);
552
+ return '' + _day12 + dateDelimater + _month12 + dateDelimater + _year12 + ' ' + time;
553
+ } else if (_datePart2.length >= 1 && _datePart2.length <= 8) {
554
+ var _dateStr7 = _datePart2.slice(0, 2);
555
+ var _monthStr7 = _datePart2.slice(2, 4);
556
+ var _yearStr7 = _datePart2.slice(4, _datePart2.length);
557
+ var _timeParts2 = tokenizeFormattedDate(inputStr, format);
591
558
  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
- }
559
+ var _validateYear13 = validateCalendarYear(_yearStr7);
560
+
561
+ var _validateCalendarDayA23 = validateCalendarDayAndMonth(_dateStr7, _monthStr7, _validateYear13),
562
+ _day13 = _validateCalendarDayA23.day,
563
+ _month13 = _validateCalendarDayA23.month;
564
+
565
+ var _validateCalendarDayA24 = validateCalendarDayAndMonth(_dateStr7, _monthStr7, _validateYear13),
566
+ _year13 = _validateCalendarDayA24.year;
567
+
568
+ _day13 = String(_day13).padStart(2, 0);
569
+ _month13 = String(_month13).padStart(2, 0);
570
+ return '' + _day13 + dateDelimater + _month13 + dateDelimater + _year13 + ' ' + time;
571
+ } else if (_datePart2.length > 8) {
572
+ return '' + String(currentDate).padStart(2, 0) + dateDelimater + String(currentMonth).padStart(2, 0) + dateDelimater + currentYear + ' ' + currentTime; // eslint-disable-line max-len
598
573
  }
599
- return '' + currentDate + delimiter + currentMonth + delimiter + currentYear + ' ' + time;
600
574
  }
601
575
  }