@seafile/seafile-calendar 0.0.30-beta.3 → 0.0.30-beta.5

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/es/util/index.js CHANGED
@@ -3,13 +3,18 @@ import dayjs from 'dayjs';
3
3
  import utc from 'dayjs/plugin/utc';
4
4
 
5
5
  dayjs.extend(utc);
6
- export var currentDate = dayjs().date();
7
- export var currentMonth = dayjs().month() + 1;
8
- export var currentYear = dayjs().year();
9
- export var nowTime = dayjs().format('HH:mm');
10
- export var stringCurrentDate = String(currentDate).padStart(2, '0');
11
- export var stringCurrentMonth = String(currentMonth).padStart(2, '0');
12
- export var currentTime = dayjs().format('HH:mm');
6
+ export var getCurrentDate = function getCurrentDate() {
7
+ return dayjs().date();
8
+ };
9
+ export var getCurrentMonth = function getCurrentMonth() {
10
+ return dayjs().month() + 1;
11
+ };
12
+ export var getCurrentYear = function getCurrentYear() {
13
+ return dayjs().year();
14
+ };
15
+ export var getCurrentTime = function getCurrentTime() {
16
+ return dayjs().format('HH:mm');
17
+ };
13
18
 
14
19
  export var DATE_FORMATS = {
15
20
  ISO: 'YYYY-MM-DD',
@@ -122,7 +127,31 @@ export function formatDate(value, format) {
122
127
  return value.format(format);
123
128
  }
124
129
 
125
- export function formatDateLocal(formatStr, format) {
130
+ export var isLeapYear = function isLeapYear(year) {
131
+ return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
132
+ };
133
+
134
+ export function validateCalendarDay(dayStr) {
135
+ if (!/^\d+$/.test(dayStr)) return false;
136
+ var day = Number(dayStr);
137
+ var MONTHS_WITH_31_DAYS = [1, 3, 5, 7, 8, 10, 12];
138
+ var MONTHS_WITH_30_DAYS = [4, 6, 9, 11];
139
+ if (MONTHS_WITH_31_DAYS.includes(getCurrentMonth())) {
140
+ return day >= 1 && day <= 31;
141
+ }
142
+ if (MONTHS_WITH_30_DAYS.includes(getCurrentMonth())) {
143
+ return day >= 1 && day <= 30;
144
+ }
145
+ if (getCurrentMonth() === 2) {
146
+ var year = getCurrentYear();
147
+ if (isLeapYear(year)) {
148
+ return day >= 1 && day <= 29;
149
+ }
150
+ return day >= 1 && day <= 28;
151
+ }
152
+ }
153
+
154
+ export function tokenizeFormattedDate(formatStr, format) {
126
155
  var str = formatStr || '';
127
156
  var cleanStr = void 0;
128
157
  switch (format) {
@@ -150,123 +179,367 @@ export function hasSpecialChar(str) {
150
179
  return matches ? matches.length : 0;
151
180
  }
152
181
 
153
- export function isValidMonth(monthStr) {
154
- if (typeof monthStr === 'undefined' || monthStr === null) return currentMonth;
155
- if (!/^\d+$/.test(Number(monthStr))) return currentMonth;
156
- var month = Number(monthStr);
157
- if (month >= 1 && month <= 12) {
158
- return monthStr;
182
+ export function validateTime(inputTime) {
183
+ if (!inputTime || typeof inputTime !== 'string') {
184
+ return getCurrentTime();
159
185
  }
160
- return currentMonth;
161
- }
162
-
163
- export function isValidDay(dayStr) {
164
- if (!/^\d+$/.test(dayStr)) return false;
165
- var day = Number(dayStr);
166
- if ([1, 3, 5, 7, 8, 10, 12].includes(currentMonth)) {
167
- return day >= 1 && day <= 31;
186
+ var trimmed = inputTime.trim();
187
+ var timeRegex = /^(\d{2}):(\d{2})$/;
188
+ var match = trimmed.match(timeRegex);
189
+ if (!match) {
190
+ return getCurrentTime();
168
191
  }
169
- if ([4, 6, 9, 11].includes(currentMonth)) {
170
- return day >= 1 && day <= 30;
192
+ var hour = Number(match[1]);
193
+ var minute = Number(match[2]);
194
+ if (hour > 23 || minute > 59) {
195
+ return getCurrentTime();
171
196
  }
172
- if (currentMonth === 2) {
173
- var isLeapYear = function isLeapYear(year) {
174
- return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
175
- };
176
- var year = currentYear;
177
- if (isLeapYear(year)) {
178
- return day >= 1 && day <= 29;
179
- }
180
- return day >= 1 && day <= 28;
197
+ return match[1] + ':' + match[2];
198
+ }
199
+
200
+ export function delimate(format) {
201
+ var delimiter = void 0;
202
+ if (format === DATE_FORMATS.Germany_Russia_etc || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
203
+ delimiter = '.';
204
+ } else if (format === DATE_FORMATS.ISO || format === DATE_FORMATS.ISOAndTime) {
205
+ delimiter = '-';
206
+ } else {
207
+ delimiter = '/';
181
208
  }
209
+ return delimiter;
182
210
  }
183
211
 
184
- export function fullValidYear(yearStr) {
212
+ export function validateCalendarYear(yearStr) {
185
213
  var year = yearStr;
186
- if (!year || isNaN(year)) return currentYear;
214
+ if (!year || isNaN(year)) return getCurrentYear();
187
215
  if (year.length === 2) {
188
216
  if (Number(year) >= 0 && Number(year) < 69) {
189
- return year ? '20' + year : currentYear;
217
+ return year ? '20' + year : getCurrentYear();
190
218
  } else if (Number(year) >= 69 && Number(year) < 100) {
191
- return year ? '19' + year : currentYear;
219
+ return year ? '19' + year : getCurrentYear();
192
220
  }
193
221
  }
194
222
  if (year.length === 4) {
195
223
  return year;
196
224
  }
197
- return year ? year.padStart(4, '0') : currentYear;
225
+ return year ? year.padStart(4, '0') : getCurrentYear();
198
226
  }
199
227
 
200
- export function delimate(formatPrefix) {
201
- var delimiter = void 0;
202
- if (formatPrefix === DATE_FORMATS.Germany_Russia_etc || formatPrefix === DATE_FORMATS.Germany_Russia_etcAndTime) {
203
- delimiter = '.';
204
- } else if (formatPrefix === DATE_FORMATS.ISO || formatPrefix === DATE_FORMATS.ISOAndTime) {
205
- delimiter = '-';
206
- } else {
207
- delimiter = '/';
208
- }
209
- return delimiter;
210
- }
228
+ export function validateAndNormalizeDate(dayStr, monthStr, yearStr) {
229
+ var day = Number(dayStr);
230
+ var month = Number(monthStr);
231
+ var year = yearStr;
232
+ var isInThirtyOneDaysMonths = [1, 3, 5, 7, 8, 10, 12].includes(month);
233
+ var isInThirtyDaysMonths = [4, 6, 9, 11].includes(month);
234
+ var isValidDayThirtyOne = day < 1 || day > 31;
235
+ var isValidDayThirty = day < 1 || day > 30;
236
+ var isValidDayTwentyNight = day < 1 || day > 29;
237
+ var isValidDayTwentyEight = day < 1 || day > 28;
211
238
 
212
- export function getDateFormatByStr(str, format) {
213
- var cananderStr = str || '';
214
- var delimiter = delimate(format);
215
- var parts = cananderStr.split(delimiter);
216
- if (parts.length !== 3) return format;
217
- if (format === DATE_FORMATS.ISO) {
218
- return DATE_FORMATS.ISO;
219
- }
220
- if (format === DATE_FORMATS.ISOAndTime) {
221
- return DATE_FORMATS.ISOAndTime;
222
- }
223
- if (format === DATE_FORMATS.US) {
224
- return DATE_FORMATS.US;
239
+ if (month > 12 || month < 0 || !month) {
240
+ day = getCurrentDate();
241
+ month = getCurrentMonth();
242
+ year = getCurrentYear();
225
243
  }
226
- if (format === DATE_FORMATS.USAndTime) {
227
- return DATE_FORMATS.USAndTime;
244
+
245
+ if (isInThirtyOneDaysMonths && isValidDayThirtyOne || isInThirtyDaysMonths && isValidDayThirty) {
246
+ day = getCurrentDate();
247
+ month = getCurrentMonth();
248
+ year = getCurrentYear();
228
249
  }
229
- if (format === DATE_FORMATS.European || format === DATE_FORMATS.Germany_Russia_etc || format === DATE_FORMATS.Germany_Russia_etcAndTime || format === DATE_FORMATS.EuropeanAndTime) {
230
- var day = parts[0],
231
- month = parts[1];
232
-
233
- var dayLen = day.length;
234
- var monthLen = month.length;
235
- if (dayLen === 2 && monthLen === 2) {
236
- return 'DD' + delimiter + 'MM' + delimiter + 'YYYY HH:mm';
237
- } else if (dayLen === 2 && monthLen === 1) {
238
- return 'DD' + delimiter + 'M' + delimiter + 'YYYY HH:mm';
239
- } else if (dayLen === 1 && monthLen === 2) {
240
- return 'D' + delimiter + 'MM' + delimiter + 'YYYY HH:mm';
241
- } else if (dayLen === 1 && monthLen === 1) {
242
- return 'D' + delimiter + 'M' + delimiter + 'YYYY HH:mm';
250
+
251
+ if (month === 2) {
252
+ if (isLeapYear(year) && isValidDayTwentyNight) {
253
+ day = getCurrentDate();
254
+ month = getCurrentMonth();
255
+ year = getCurrentYear();
256
+ } else if (isValidDayTwentyEight) {
257
+ day = getCurrentDate();
258
+ month = getCurrentMonth();
259
+ year = getCurrentYear();
243
260
  }
244
261
  }
245
- return format;
262
+ return { day: day, month: month, year: year };
246
263
  }
247
264
 
248
- export function isCurrentYear(year, month, day) {
249
- return Number(month) >= 1 && Number(month) <= 12 && Number(day) >= 1 && Number(day) <= 31 ? year : currentYear; // eslint-disable-line max-len
265
+ export function getDatePart(str) {
266
+ if (typeof str !== 'string') return '';
267
+ var parts = str.trim().split(/\s+/);
268
+ return parts[0];
250
269
  }
251
270
 
252
- export function validateTime(inputTime) {
253
- if (!inputTime || typeof inputTime !== 'string') {
254
- return currentTime;
255
- }
256
- var trimmedInput = inputTime.trim();
257
- var timeRegex = /^([0-1]?[0-9]|2[0-3]):([0-5][0-9])$/;
271
+ export function initializeStr(str, format) {
272
+ var inputStr = str;
273
+ var inputStrLength = inputStr.length;
274
+ var time = getCurrentTime();
275
+ var hasSpecial = hasSpecialChar(inputStr);
276
+ var formattedArray = tokenizeFormattedDate(inputStr, format);
277
+ var dateDelimater = delimate(format);
278
+ if (format === DATE_FORMATS.ISO) {
279
+ var numStr = inputStr.replace(/[^0-9]/g, '');
280
+ if (numStr.length === 7 || numStr.length === 8) {
281
+ var yearStr = numStr.slice(0, 4);
282
+ var monthStr = numStr.slice(4, 6) || '01';
283
+ var dateStr = numStr.slice(6, numStr.length) || '01';
284
+ var validateYear = validateCalendarYear(yearStr);
258
285
 
259
- if (!timeRegex.test(trimmedInput)) {
260
- return currentTime;
261
- }
286
+ var _validateAndNormalize = validateAndNormalizeDate(dateStr, monthStr, validateYear),
287
+ day = _validateAndNormalize.day,
288
+ month = _validateAndNormalize.month;
262
289
 
263
- var _trimmedInput$split$m = trimmedInput.split(':').map(Number),
264
- hours = _trimmedInput$split$m[0],
265
- minutes = _trimmedInput$split$m[1];
290
+ var _validateAndNormalize2 = validateAndNormalizeDate(dateStr, monthStr, validateYear),
291
+ year = _validateAndNormalize2.year;
266
292
 
267
- var parsedTime = dayjs().hour(hours).minute(minutes);
268
- if (!parsedTime.isValid()) {
269
- return currentTime;
293
+ day = String(day).padStart(2, 0);
294
+ month = String(month).padStart(2, 0);
295
+ return '' + year + dateDelimater + month + dateDelimater + day;
296
+ }
297
+ if (hasSpecial) {
298
+ var _validateYear = validateCalendarYear(formattedArray[0]);
299
+
300
+ var _validateAndNormalize3 = validateAndNormalizeDate(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear),
301
+ _day = _validateAndNormalize3.day,
302
+ _month = _validateAndNormalize3.month; // eslint-disable-line max-len
303
+
304
+
305
+ var _validateAndNormalize4 = validateAndNormalizeDate(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear),
306
+ _year = _validateAndNormalize4.year; // eslint-disable-line max-len
307
+
308
+
309
+ _day = String(_day).padStart(2, 0);
310
+ _month = String(_month).padStart(2, 0);
311
+ return '' + _year + dateDelimater + _month + dateDelimater + _day;
312
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
313
+ var _yearStr = inputStr.slice(0, 4);
314
+ var _monthStr = inputStr.slice(4, 6) || '01';
315
+ var _dateStr = inputStr.slice(6, 8) || '01';
316
+ var _validateYear2 = validateCalendarYear(_yearStr);
317
+
318
+ var _validateAndNormalize5 = validateAndNormalizeDate(_dateStr, _monthStr, _validateYear2),
319
+ _day2 = _validateAndNormalize5.day,
320
+ _month2 = _validateAndNormalize5.month;
321
+
322
+ var _validateAndNormalize6 = validateAndNormalizeDate(_dateStr, _monthStr, _validateYear2),
323
+ _year2 = _validateAndNormalize6.year;
324
+
325
+ _day2 = String(_day2).padStart(2, 0);
326
+ _month2 = String(_month2).padStart(2, 0);
327
+ return '' + _year2 + dateDelimater + _month2 + dateDelimater + _day2;
328
+ } else if (inputStrLength > 8) {
329
+ return '' + getCurrentYear() + dateDelimater + String(getCurrentMonth()).padStart(2, 0) + dateDelimater + String(getCurrentDate()).padStart(2, 0); // eslint-disable-line max-len
330
+ }
331
+ } else if (format === DATE_FORMATS.ISOAndTime) {
332
+ var datePart = getDatePart(inputStr);
333
+ var formattedDateArray = tokenizeFormattedDate(datePart, format);
334
+ var isDateSpecial = hasSpecialChar(datePart);
335
+ var _numStr = datePart.replace(/[^0-9]/g, '');
336
+ if (_numStr.length === 7 || _numStr.length === 8) {
337
+ var _yearStr2 = _numStr.slice(0, 4);
338
+ var _monthStr2 = _numStr.slice(4, 6) || '01';
339
+ var _dateStr2 = _numStr.slice(6, _numStr.length) || '01';
340
+ if (formattedArray.length === 3) {
341
+ time = validateTime(formattedArray[1] + ':' + formattedArray[2]);
342
+ }
343
+ if (formattedArray.length === 4) {
344
+ time = validateTime(formattedArray[2] + ':' + formattedArray[3]);
345
+ }
346
+ if (formattedArray.length === 5) {
347
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
348
+ }
349
+ var _validateYear3 = validateCalendarYear(_yearStr2);
350
+
351
+ var _validateAndNormalize7 = validateAndNormalizeDate(_dateStr2, _monthStr2, _validateYear3),
352
+ _day3 = _validateAndNormalize7.day,
353
+ _month3 = _validateAndNormalize7.month;
354
+
355
+ var _validateAndNormalize8 = validateAndNormalizeDate(_dateStr2, _monthStr2, _validateYear3),
356
+ _year3 = _validateAndNormalize8.year;
357
+
358
+ _day3 = String(_day3).padStart(2, 0);
359
+ _month3 = String(_month3).padStart(2, 0);
360
+ return '' + _year3 + dateDelimater + _month3 + dateDelimater + _day3 + ' ' + time;
361
+ }
362
+ if (isDateSpecial) {
363
+ if (formattedDateArray.length < 3) {
364
+ formattedArray.splice(2, 0, '01');
365
+ }
366
+ var _validateYear4 = validateCalendarYear(formattedArray[0]);
367
+
368
+ var _validateAndNormalize9 = validateAndNormalizeDate(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear4),
369
+ _day4 = _validateAndNormalize9.day,
370
+ _month4 = _validateAndNormalize9.month; // eslint-disable-line max-len
371
+
372
+
373
+ var _validateAndNormalize10 = validateAndNormalizeDate(formattedArray[2] || '01', formattedArray[1] || '01', _validateYear4),
374
+ _year4 = _validateAndNormalize10.year; // eslint-disable-line max-len
375
+
376
+
377
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
378
+ _day4 = String(_day4).padStart(2, 0);
379
+ _month4 = String(_month4).padStart(2, 0);
380
+ return '' + _year4 + dateDelimater + _month4 + dateDelimater + _day4 + ' ' + time;
381
+ } else if (datePart.length >= 1 && datePart.length <= 8) {
382
+ var _yearStr3 = datePart.slice(0, 4);
383
+ var _monthStr3 = datePart.slice(4, 6) || '01';
384
+ var _dateStr3 = datePart.slice(6, 8) || '01';
385
+ var timeParts = tokenizeFormattedDate(inputStr, format);
386
+ time = validateTime(timeParts[1] + ':' + timeParts[2]);
387
+ var _validateYear5 = validateCalendarYear(_yearStr3);
388
+
389
+ var _validateAndNormalize11 = validateAndNormalizeDate(_dateStr3, _monthStr3, _validateYear5),
390
+ _day5 = _validateAndNormalize11.day,
391
+ _month5 = _validateAndNormalize11.month;
392
+
393
+ var _validateAndNormalize12 = validateAndNormalizeDate(_dateStr3, _monthStr3, _validateYear5),
394
+ _year5 = _validateAndNormalize12.year;
395
+
396
+ _day5 = String(_day5).padStart(2, 0);
397
+ _month5 = String(_month5).padStart(2, 0);
398
+ return '' + _year5 + dateDelimater + _month5 + dateDelimater + _day5 + ' ' + time;
399
+ } else if (datePart.length > 8) {
400
+ return '' + getCurrentYear() + dateDelimater + String(getCurrentMonth()).padStart(2, 0) + dateDelimater + String(getCurrentDate()).padStart(2, 0) + ' ' + getCurrentTime(); // eslint-disable-line max-len
401
+ }
402
+ } else if (format === DATE_FORMATS.US) {
403
+ if (hasSpecial) {
404
+ var _validateYear6 = validateCalendarYear(formattedArray[2]);
405
+
406
+ var _validateAndNormalize13 = validateAndNormalizeDate(formattedArray[1] || '1', formattedArray[0], _validateYear6),
407
+ _day6 = _validateAndNormalize13.day,
408
+ _month6 = _validateAndNormalize13.month,
409
+ _year6 = _validateAndNormalize13.year; // eslint-disable-line max-len
410
+
411
+
412
+ return '' + _month6 + dateDelimater + _day6 + dateDelimater + _year6;
413
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
414
+ var _monthStr4 = inputStr.slice(0, 2);
415
+ var _dateStr4 = inputStr.slice(2, 4) || '1';
416
+ var _yearStr4 = inputStr.slice(4, inputStr.length);
417
+ var _validateYear7 = validateCalendarYear(_yearStr4);
418
+
419
+ var _validateAndNormalize14 = validateAndNormalizeDate(_dateStr4, _monthStr4, _validateYear7),
420
+ _day7 = _validateAndNormalize14.day,
421
+ _month7 = _validateAndNormalize14.month,
422
+ _year7 = _validateAndNormalize14.year;
423
+
424
+ return '' + _month7 + dateDelimater + _day7 + dateDelimater + _year7; // eslint-disable-line max-len
425
+ } else if (inputStrLength > 8) {
426
+ return '' + String(getCurrentMonth()).padStart(2, 0) + dateDelimater + String(getCurrentDate()).padStart(2, 0) + dateDelimater + getCurrentYear(); // eslint-disable-line max-len
427
+ }
428
+ } else if (format === DATE_FORMATS.USAndTime) {
429
+ var _datePart = getDatePart(inputStr);
430
+ var _formattedDateArray = tokenizeFormattedDate(_datePart, format);
431
+ var _isDateSpecial = hasSpecialChar(_datePart);
432
+ if (_isDateSpecial) {
433
+ if (_formattedDateArray.length < 3) {
434
+ formattedArray.splice(2, 0, String(getCurrentYear()));
435
+ }
436
+ var _validateYear8 = validateCalendarYear(formattedArray[2]);
437
+
438
+ var _validateAndNormalize15 = validateAndNormalizeDate(formattedArray[1] || '1', formattedArray[0], _validateYear8),
439
+ _day8 = _validateAndNormalize15.day,
440
+ _month8 = _validateAndNormalize15.month,
441
+ _year8 = _validateAndNormalize15.year; // eslint-disable-line max-len
442
+
443
+
444
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
445
+ return '' + _month8 + dateDelimater + _day8 + dateDelimater + _year8 + ' ' + time;
446
+ } else if (_datePart.length >= 1 && _datePart.length <= 8) {
447
+ var _monthStr5 = _datePart.slice(0, 2);
448
+ var _dateStr5 = _datePart.slice(2, 4) || '1';
449
+ var _yearStr5 = _datePart.slice(4, _datePart.length);
450
+ var _validateYear9 = validateCalendarYear(_yearStr5); // eslint-disable-line max-len
451
+
452
+ var _validateAndNormalize16 = validateAndNormalizeDate(_dateStr5, _monthStr5, _validateYear9),
453
+ _day9 = _validateAndNormalize16.day,
454
+ _month9 = _validateAndNormalize16.month,
455
+ _year9 = _validateAndNormalize16.year;
456
+
457
+ var _timeParts = tokenizeFormattedDate(inputStr, format);
458
+ time = validateTime(_timeParts[1] + ':' + _timeParts[2]) || getCurrentTime();
459
+ return '' + _month9 + dateDelimater + _day9 + dateDelimater + _year9 + ' ' + time;
460
+ } else if (_datePart.length > 8) {
461
+ return '' + String(getCurrentMonth()).padStart(2, 0) + dateDelimater + String(getCurrentDate()).padStart(2, 0) + dateDelimater + getCurrentYear() + ' ' + getCurrentTime(); // eslint-disable-line max-len
462
+ }
463
+ } else if (format === DATE_FORMATS.European || format === DATE_FORMATS.Germany_Russia_etc) {
464
+ if (hasSpecial) {
465
+ var _validateYear10 = validateCalendarYear(formattedArray[2]);
466
+
467
+ var _validateAndNormalize17 = validateAndNormalizeDate(formattedArray[0], formattedArray[1], _validateYear10),
468
+ _day10 = _validateAndNormalize17.day,
469
+ _month10 = _validateAndNormalize17.month; // eslint-disable-line max-len
470
+
471
+
472
+ var _validateAndNormalize18 = validateAndNormalizeDate(formattedArray[0], formattedArray[1], _validateYear10),
473
+ _year10 = _validateAndNormalize18.year; // eslint-disable-line max-len
474
+
475
+
476
+ _day10 = String(_day10).padStart(2, 0);
477
+ _month10 = String(_month10).padStart(2, 0);
478
+ return '' + _day10 + dateDelimater + _month10 + dateDelimater + _year10;
479
+ } else if (inputStrLength >= 1 && inputStrLength <= 8) {
480
+ var _dateStr6 = inputStr.slice(0, 2);
481
+ var _monthStr6 = inputStr.slice(2, 4);
482
+ var _yearStr6 = inputStr.slice(4, inputStr.length);
483
+ var _validateYear11 = validateCalendarYear(_yearStr6);
484
+
485
+ var _validateAndNormalize19 = validateAndNormalizeDate(_dateStr6, _monthStr6, _validateYear11),
486
+ _year11 = _validateAndNormalize19.year; // eslint-disable-line max-len
487
+
488
+
489
+ var _validateAndNormalize20 = validateAndNormalizeDate(_dateStr6, _monthStr6, _validateYear11),
490
+ _day11 = _validateAndNormalize20.day,
491
+ _month11 = _validateAndNormalize20.month; // eslint-disable-line max-len
492
+
493
+
494
+ _day11 = String(_day11).padStart(2, 0);
495
+ _month11 = String(_month11).padStart(2, 0);
496
+ return '' + _day11 + dateDelimater + _month11 + dateDelimater + _year11;
497
+ } else if (inputStrLength > 8) {
498
+ return '' + String(getCurrentDate()).padStart(2, 0) + dateDelimater + String(getCurrentMonth()).padStart(2, 0) + dateDelimater + getCurrentYear(); // eslint-disable-line max-len
499
+ }
500
+ } else if (format === DATE_FORMATS.EuropeanAndTime || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
501
+ var _datePart2 = getDatePart(inputStr);
502
+ var _formattedDateArray2 = tokenizeFormattedDate(_datePart2, format);
503
+ var _isDateSpecial2 = hasSpecialChar(_datePart2);
504
+ if (_isDateSpecial2) {
505
+ if (_formattedDateArray2.length < 3) {
506
+ formattedArray.splice(2, 0, String(getCurrentYear()));
507
+ }
508
+ var _validateYear12 = validateCalendarYear(formattedArray[2]);
509
+
510
+ var _validateAndNormalize21 = validateAndNormalizeDate(formattedArray[0], formattedArray[1], _validateYear12),
511
+ _day12 = _validateAndNormalize21.day,
512
+ _month12 = _validateAndNormalize21.month; // eslint-disable-line max-len
513
+
514
+
515
+ var _validateAndNormalize22 = validateAndNormalizeDate(formattedArray[0], formattedArray[1], _validateYear12),
516
+ _year12 = _validateAndNormalize22.year; // eslint-disable-line max-len
517
+
518
+
519
+ time = validateTime(formattedArray[3] + ':' + formattedArray[4]);
520
+ _day12 = String(_day12).padStart(2, 0);
521
+ _month12 = String(_month12).padStart(2, 0);
522
+ return '' + _day12 + dateDelimater + _month12 + dateDelimater + _year12 + ' ' + time;
523
+ } else if (_datePart2.length >= 1 && _datePart2.length <= 8) {
524
+ var _dateStr7 = _datePart2.slice(0, 2);
525
+ var _monthStr7 = _datePart2.slice(2, 4);
526
+ var _yearStr7 = _datePart2.slice(4, _datePart2.length);
527
+ var _timeParts2 = tokenizeFormattedDate(inputStr, format);
528
+ time = validateTime(_timeParts2[1] + ':' + _timeParts2[2]);
529
+ var _validateYear13 = validateCalendarYear(_yearStr7);
530
+
531
+ var _validateAndNormalize23 = validateAndNormalizeDate(_dateStr7, _monthStr7, _validateYear13),
532
+ _day13 = _validateAndNormalize23.day,
533
+ _month13 = _validateAndNormalize23.month;
534
+
535
+ var _validateAndNormalize24 = validateAndNormalizeDate(_dateStr7, _monthStr7, _validateYear13),
536
+ _year13 = _validateAndNormalize24.year;
537
+
538
+ _day13 = String(_day13).padStart(2, 0);
539
+ _month13 = String(_month13).padStart(2, 0);
540
+ return '' + _day13 + dateDelimater + _month13 + dateDelimater + _year13 + ' ' + time;
541
+ } else if (_datePart2.length > 8) {
542
+ return '' + String(getCurrentDate()).padStart(2, 0) + dateDelimater + String(getCurrentMonth()).padStart(2, 0) + dateDelimater + getCurrentYear() + ' ' + getCurrentTime(); // eslint-disable-line max-len
543
+ }
270
544
  }
271
- return parsedTime.format('HH:mm');
272
545
  }
package/lib/Calendar.js CHANGED
@@ -110,7 +110,6 @@ var Calendar = function (_React$Component) {
110
110
  value: getMomentObjectIfValid(props.value) || getMomentObjectIfValid(props.defaultValue) || (0, _dayjs2['default'])(),
111
111
  selectedValue: props.selectedValue || props.defaultSelectedValue
112
112
  };
113
- _this.dateInputRef = _react2['default'].createRef();
114
113
  return _this;
115
114
  }
116
115
 
@@ -181,14 +180,14 @@ var Calendar = function (_React$Component) {
181
180
 
182
181
  timePickerEle = _react2['default'].cloneElement(timePicker, timePickerProps);
183
182
  }
183
+ var calendarInputPlaceholder = dateInputPlaceholder || (Array.isArray(this.getFormat()) ? this.getFormat()[0] : this.getFormat());
184
184
 
185
185
  var dateInputElement = props.showDateInput ? _react2['default'].createElement(_DateInput2['default'], {
186
- ref: this.dateInputRef,
187
186
  format: this.getFormat(),
188
187
  key: 'date-input',
189
188
  value: value,
190
189
  locale: locale,
191
- placeholder: dateInputPlaceholder || this.getFormat()[0],
190
+ placeholder: calendarInputPlaceholder,
192
191
  showClear: true,
193
192
  disabledTime: disabledTime,
194
193
  disabledDate: disabledDate,
@@ -198,8 +197,7 @@ var Calendar = function (_React$Component) {
198
197
  onChange: this.onDateInputChange,
199
198
  onSelect: this.onDateInputSelect,
200
199
  clearIcon: clearIcon,
201
- inputMode: inputMode,
202
- showHourAndMinute: showHourAndMinute
200
+ inputMode: inputMode
203
201
  }) : null;
204
202
 
205
203
  var children = [];
@@ -282,7 +280,6 @@ var Calendar = function (_React$Component) {
282
280
  onSelect: this.onDateTableSelect,
283
281
  onClickRightPanelTime: onClickRightPanelTime,
284
282
  defaultMinutesTime: this.props.defaultMinutesTime,
285
- showHourAndMinute: showHourAndMinute,
286
283
  format: this.getFormat()
287
284
  })
288
285
  )
@@ -458,8 +455,6 @@ var _initialiseProps = function _initialiseProps() {
458
455
  (0, _util.syncTime)(timePickerDefaultValue, value);
459
456
  }
460
457
  }
461
- var time = String(value.hour()).padStart(2, 0) + ':' + String(value.minute()).padStart(2, 0);
462
- _this2.focusTimeInput(time);
463
458
  _this2.onSelect(value);
464
459
  };
465
460
 
@@ -492,12 +487,6 @@ var _initialiseProps = function _initialiseProps() {
492
487
  return _reactDom2['default'].findDOMNode(_this2);
493
488
  };
494
489
 
495
- this.focusTimeInput = function (value) {
496
- if (_this2.dateInputRef.current) {
497
- _this2.dateInputRef.current.focusTimeInput(value);
498
- }
499
- };
500
-
501
490
  this.openTimePicker = function () {
502
491
  _this2.onPanelChange(null, 'time');
503
492
  };
@@ -65,9 +65,10 @@ var CalendarRightPanel = function (_React$Component) {
65
65
  _this.timeRef.current.scrollBy(0, 200);
66
66
  };
67
67
 
68
+ var format = Array.isArray(_this.props.format) ? _this.props.format[0] : _this.props.format;
68
69
  _this.state = {
69
70
  highlightTime: _this.props.value || null,
70
- localeFormat: _this.props.format[0]
71
+ localeFormat: format
71
72
  };
72
73
  _this.timeRef = _react2['default'].createRef();
73
74
  _this.times = _this.getTimes();
@@ -90,13 +91,9 @@ var CalendarRightPanel = function (_React$Component) {
90
91
  var _props = this.props,
91
92
  value = _props.value,
92
93
  prefixCls = _props.prefixCls,
93
- locale = _props.locale,
94
- showHourAndMinute = _props.showHourAndMinute;
94
+ locale = _props.locale;
95
95
 
96
- var selectedDate = value.format().slice(0, 10);
97
- if (showHourAndMinute) {
98
- selectedDate = value.format().slice(0, String(value.format()).indexOf('T')).padStart(10, 0);
99
- }
96
+ var selectedDate = value.format().slice(0, String(value.format()).indexOf('T'));
100
97
  var highlight = this.state.highlightTime;
101
98
  var highlightTime = highlight ? highlight.format().slice(11, 16) : null;
102
99
  var isZhcn = locale && locale.today === '今天';
@@ -115,13 +112,8 @@ var CalendarRightPanel = function (_React$Component) {
115
112
  'ul',
116
113
  null,
117
114
  this.times.map(function (time) {
118
- var current = (0, _dayjs2['default'])(selectedDate + ' ' + time);
119
- if (showHourAndMinute) {
120
- var parts = (0, _util.formatDateLocal)(selectedDate, _this2.state.localeFormat);
121
- if (parts[0] && parts[0].length === 4 && (parts[0].slice(0, 3) === '000' || parts[0].slice(0, 2) === '00')) {
122
- current.year(parts[0]);
123
- }
124
- }
115
+ var parts = (0, _util.tokenizeFormattedDate)(selectedDate, _this2.state.localeFormat);
116
+ var current = (0, _dayjs2['default'])(selectedDate + ' ' + time).year(parts[0]).month(parts[1] - 1).date(parts[2]); // eslint-disable-line max-len
125
117
  current = isZhcn ? current.locale('zh-cn') : current.locale('en-gb');
126
118
  return _react2['default'].createElement(
127
119
  'li',
@@ -153,8 +145,7 @@ CalendarRightPanel.propTypes = {
153
145
  onClickRightPanelTime: _propTypes2['default'].func,
154
146
  locale: _propTypes2['default'].object,
155
147
  defaultMinutesTime: _propTypes2['default'].string,
156
- format: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)]),
157
- showHourAndMinute: _propTypes2['default'].bool
148
+ format: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)])
158
149
  };
159
150
  exports['default'] = CalendarRightPanel;
160
151
  module.exports = exports['default'];