@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/dist/rc-calendar.js +459 -436
- package/dist/rc-calendar.js.map +1 -1
- package/dist/rc-calendar.min.js +1 -1
- package/es/Calendar.js +3 -14
- package/es/calendar/CalendarRightPanel.js +8 -17
- package/es/date/DateInput.js +33 -267
- package/es/util/index.js +370 -97
- package/lib/Calendar.js +3 -14
- package/lib/calendar/CalendarRightPanel.js +7 -16
- package/lib/date/DateInput.js +33 -266
- package/lib/util/index.js +378 -105
- package/package.json +1 -2
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
|
7
|
-
|
8
|
-
|
9
|
-
export var
|
10
|
-
|
11
|
-
|
12
|
-
export var
|
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
|
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
|
154
|
-
if (typeof
|
155
|
-
|
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
|
-
|
161
|
-
}
|
162
|
-
|
163
|
-
|
164
|
-
|
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
|
-
|
170
|
-
|
192
|
+
var hour = Number(match[1]);
|
193
|
+
var minute = Number(match[2]);
|
194
|
+
if (hour > 23 || minute > 59) {
|
195
|
+
return getCurrentTime();
|
171
196
|
}
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
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
|
212
|
+
export function validateCalendarYear(yearStr) {
|
185
213
|
var year = yearStr;
|
186
|
-
if (!year || isNaN(year)) return
|
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 :
|
217
|
+
return year ? '20' + year : getCurrentYear();
|
190
218
|
} else if (Number(year) >= 69 && Number(year) < 100) {
|
191
|
-
return year ? '19' + year :
|
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') :
|
225
|
+
return year ? year.padStart(4, '0') : getCurrentYear();
|
198
226
|
}
|
199
227
|
|
200
|
-
export function
|
201
|
-
var
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
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
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
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
|
-
|
227
|
-
|
244
|
+
|
245
|
+
if (isInThirtyOneDaysMonths && isValidDayThirtyOne || isInThirtyDaysMonths && isValidDayThirty) {
|
246
|
+
day = getCurrentDate();
|
247
|
+
month = getCurrentMonth();
|
248
|
+
year = getCurrentYear();
|
228
249
|
}
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
if (
|
236
|
-
|
237
|
-
|
238
|
-
|
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
|
262
|
+
return { day: day, month: month, year: year };
|
246
263
|
}
|
247
264
|
|
248
|
-
export function
|
249
|
-
|
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
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
var
|
257
|
-
var
|
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
|
-
|
260
|
-
|
261
|
-
|
286
|
+
var _validateAndNormalize = validateAndNormalizeDate(dateStr, monthStr, validateYear),
|
287
|
+
day = _validateAndNormalize.day,
|
288
|
+
month = _validateAndNormalize.month;
|
262
289
|
|
263
|
-
|
264
|
-
|
265
|
-
minutes = _trimmedInput$split$m[1];
|
290
|
+
var _validateAndNormalize2 = validateAndNormalizeDate(dateStr, monthStr, validateYear),
|
291
|
+
year = _validateAndNormalize2.year;
|
266
292
|
|
267
|
-
|
268
|
-
|
269
|
-
|
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:
|
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:
|
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,
|
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
|
119
|
-
|
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'];
|