@seafile/seafile-calendar 0.0.29-alpha15 → 0.0.29-alpha19

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.
Files changed (163) hide show
  1. package/assets/index.css +1177 -0
  2. package/dist/rc-calendar.js +1 -0
  3. package/dist/rc-calendar.js.map +1 -1
  4. package/dist/rc-calendar.min.js +1 -1
  5. package/es/Calendar.js +445 -0
  6. package/es/FullCalendar.js +182 -0
  7. package/es/MonthCalendar.js +135 -0
  8. package/es/Picker.js +246 -0
  9. package/es/RangeCalendar.js +876 -0
  10. package/es/calendar/CalendarFooter.js +93 -0
  11. package/es/calendar/CalendarHeader.js +257 -0
  12. package/es/calendar/CalendarRightPanel.js +135 -0
  13. package/es/calendar/OkButton.js +22 -0
  14. package/es/calendar/TimePickerButton.js +28 -0
  15. package/es/calendar/TodayButton.js +28 -0
  16. package/es/date/DateConstants.js +19 -0
  17. package/es/date/DateInput.js +249 -0
  18. package/es/date/DateTBody.js +280 -0
  19. package/es/date/DateTHead.js +86 -0
  20. package/es/date/DateTable.js +32 -0
  21. package/es/decade/DecadePanel.js +181 -0
  22. package/es/full-calendar/CalendarHeader.js +180 -0
  23. package/es/index.js +3 -0
  24. package/es/locale/ar_EG.js +27 -0
  25. package/es/locale/bg_BG.js +27 -0
  26. package/es/locale/ca_ES.js +27 -0
  27. package/es/locale/cs_CZ.js +27 -0
  28. package/es/locale/da_DK.js +27 -0
  29. package/es/locale/de_DE.js +27 -0
  30. package/es/locale/el_GR.js +27 -0
  31. package/es/locale/en_GB.js +27 -0
  32. package/es/locale/en_US.js +28 -0
  33. package/es/locale/es_ES.js +27 -0
  34. package/es/locale/et_EE.js +27 -0
  35. package/es/locale/fa_IR.js +27 -0
  36. package/es/locale/fi_FI.js +27 -0
  37. package/es/locale/fr_BE.js +27 -0
  38. package/es/locale/fr_FR.js +27 -0
  39. package/es/locale/he_IL.js +28 -0
  40. package/es/locale/hi_IN.js +28 -0
  41. package/es/locale/hr_HR.js +28 -0
  42. package/es/locale/hu_HU.js +27 -0
  43. package/es/locale/id_ID.js +28 -0
  44. package/es/locale/is_IS.js +27 -0
  45. package/es/locale/it_IT.js +27 -0
  46. package/es/locale/ja_JP.js +26 -0
  47. package/es/locale/kn_IN.js +28 -0
  48. package/es/locale/ko_KR.js +27 -0
  49. package/es/locale/ku_IQ.js +27 -0
  50. package/es/locale/lv_LV.js +27 -0
  51. package/es/locale/mm_MM.js +28 -0
  52. package/es/locale/mn_MN.js +28 -0
  53. package/es/locale/ms_MY.js +27 -0
  54. package/es/locale/nb_NO.js +27 -0
  55. package/es/locale/nl_BE.js +27 -0
  56. package/es/locale/nl_NL.js +27 -0
  57. package/es/locale/pl_PL.js +27 -0
  58. package/es/locale/pt_BR.js +27 -0
  59. package/es/locale/pt_PT.js +27 -0
  60. package/es/locale/ro_RO.js +28 -0
  61. package/es/locale/ru_RU.js +27 -0
  62. package/es/locale/sk_SK.js +27 -0
  63. package/es/locale/sl_SI.js +27 -0
  64. package/es/locale/sr_RS.js +27 -0
  65. package/es/locale/sv_SE.js +27 -0
  66. package/es/locale/ta_IN.js +28 -0
  67. package/es/locale/th_TH.js +27 -0
  68. package/es/locale/tr_TR.js +27 -0
  69. package/es/locale/ug_CN.js +26 -0
  70. package/es/locale/uk_UA.js +27 -0
  71. package/es/locale/vi_VN.js +28 -0
  72. package/es/locale/zh_CN.js +27 -0
  73. package/es/locale/zh_TW.js +26 -0
  74. package/es/mixin/CalendarMixin.js +123 -0
  75. package/es/mixin/CommonMixin.js +85 -0
  76. package/es/month/MonthPanel.js +154 -0
  77. package/es/month/MonthTable.js +156 -0
  78. package/es/picker/placements.js +35 -0
  79. package/es/range-calendar/CalendarPart.js +151 -0
  80. package/es/util/dayjs.js +17 -0
  81. package/es/util/index.js +564 -0
  82. package/es/util/toTime.js +21 -0
  83. package/es/year/YearPanel.js +194 -0
  84. package/lib/Calendar.js +508 -0
  85. package/lib/FullCalendar.js +221 -0
  86. package/lib/MonthCalendar.js +172 -0
  87. package/lib/Picker.js +283 -0
  88. package/lib/RangeCalendar.js +925 -0
  89. package/lib/calendar/CalendarFooter.js +134 -0
  90. package/lib/calendar/CalendarHeader.js +290 -0
  91. package/lib/calendar/CalendarRightPanel.js +160 -0
  92. package/lib/calendar/OkButton.js +32 -0
  93. package/lib/calendar/TimePickerButton.js +41 -0
  94. package/lib/calendar/TodayButton.js +39 -0
  95. package/lib/date/DateConstants.js +23 -0
  96. package/lib/date/DateInput.js +281 -0
  97. package/lib/date/DateTBody.js +307 -0
  98. package/lib/date/DateTHead.js +106 -0
  99. package/lib/date/DateTable.js +54 -0
  100. package/lib/decade/DecadePanel.js +207 -0
  101. package/lib/full-calendar/CalendarHeader.js +201 -0
  102. package/lib/index.js +12 -0
  103. package/lib/locale/ar_EG.js +31 -0
  104. package/lib/locale/bg_BG.js +31 -0
  105. package/lib/locale/ca_ES.js +31 -0
  106. package/lib/locale/cs_CZ.js +31 -0
  107. package/lib/locale/da_DK.js +31 -0
  108. package/lib/locale/de_DE.js +31 -0
  109. package/lib/locale/el_GR.js +31 -0
  110. package/lib/locale/en_GB.js +31 -0
  111. package/lib/locale/en_US.js +32 -0
  112. package/lib/locale/es_ES.js +31 -0
  113. package/lib/locale/et_EE.js +31 -0
  114. package/lib/locale/fa_IR.js +31 -0
  115. package/lib/locale/fi_FI.js +31 -0
  116. package/lib/locale/fr_BE.js +31 -0
  117. package/lib/locale/fr_FR.js +31 -0
  118. package/lib/locale/he_IL.js +32 -0
  119. package/lib/locale/hi_IN.js +32 -0
  120. package/lib/locale/hr_HR.js +32 -0
  121. package/lib/locale/hu_HU.js +31 -0
  122. package/lib/locale/id_ID.js +32 -0
  123. package/lib/locale/is_IS.js +31 -0
  124. package/lib/locale/it_IT.js +31 -0
  125. package/lib/locale/ja_JP.js +30 -0
  126. package/lib/locale/kn_IN.js +32 -0
  127. package/lib/locale/ko_KR.js +31 -0
  128. package/lib/locale/ku_IQ.js +31 -0
  129. package/lib/locale/lv_LV.js +31 -0
  130. package/lib/locale/mm_MM.js +32 -0
  131. package/lib/locale/mn_MN.js +32 -0
  132. package/lib/locale/ms_MY.js +31 -0
  133. package/lib/locale/nb_NO.js +31 -0
  134. package/lib/locale/nl_BE.js +31 -0
  135. package/lib/locale/nl_NL.js +31 -0
  136. package/lib/locale/pl_PL.js +31 -0
  137. package/lib/locale/pt_BR.js +31 -0
  138. package/lib/locale/pt_PT.js +31 -0
  139. package/lib/locale/ro_RO.js +32 -0
  140. package/lib/locale/ru_RU.js +31 -0
  141. package/lib/locale/sk_SK.js +31 -0
  142. package/lib/locale/sl_SI.js +31 -0
  143. package/lib/locale/sr_RS.js +31 -0
  144. package/lib/locale/sv_SE.js +31 -0
  145. package/lib/locale/ta_IN.js +32 -0
  146. package/lib/locale/th_TH.js +31 -0
  147. package/lib/locale/tr_TR.js +31 -0
  148. package/lib/locale/ug_CN.js +30 -0
  149. package/lib/locale/uk_UA.js +31 -0
  150. package/lib/locale/vi_VN.js +32 -0
  151. package/lib/locale/zh_CN.js +31 -0
  152. package/lib/locale/zh_TW.js +30 -0
  153. package/lib/mixin/CalendarMixin.js +153 -0
  154. package/lib/mixin/CommonMixin.js +106 -0
  155. package/lib/month/MonthPanel.js +179 -0
  156. package/lib/month/MonthTable.js +181 -0
  157. package/lib/picker/placements.js +39 -0
  158. package/lib/range-calendar/CalendarPart.js +184 -0
  159. package/lib/util/dayjs.js +46 -0
  160. package/lib/util/index.js +601 -0
  161. package/lib/util/toTime.js +28 -0
  162. package/lib/year/YearPanel.js +219 -0
  163. package/package.json +1 -1
@@ -0,0 +1,564 @@
1
+ import _extends from 'babel-runtime/helpers/extends';
2
+ import dayjs from 'dayjs';
3
+ import utc from 'dayjs/plugin/utc';
4
+
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 stringCurrentDate = String(currentDate).padStart(2, '0');
10
+ export var stringCurrentMonth = String(currentMonth).padStart(2, '0');
11
+ export var currentTime = dayjs().format('HH:mm');
12
+
13
+ export var DATE_FORMATS = {
14
+ ISO: 'YYYY-MM-DD',
15
+ ISOAndTime: 'YYYY-MM-DD HH:mm',
16
+ US: 'M/D/YYYY',
17
+ USAndTime: 'M/D/YYYY HH:mm',
18
+ European: 'DD/MM/YYYY',
19
+ EuropeanAndTime: 'DD/MM/YYYY HH:mm',
20
+ Germany_Russia_etc: 'DD.MM.YYYY',
21
+ Germany_Russia_etcAndTime: 'DD.MM.YYYY HH:mm'
22
+ };
23
+
24
+ var defaultDisabledTime = {
25
+ disabledHours: function disabledHours() {
26
+ return [];
27
+ },
28
+ disabledMinutes: function disabledMinutes() {
29
+ return [];
30
+ },
31
+ disabledSeconds: function disabledSeconds() {
32
+ return [];
33
+ }
34
+ };
35
+
36
+ export function getTodayTime(value) {
37
+ var today = dayjs();
38
+ today = today.locale(value.locale()).utcOffset(value.utcOffset());
39
+ return today;
40
+ }
41
+
42
+ export function getTitleString(value) {
43
+ return value.format('LL');
44
+ }
45
+
46
+ export function getTodayTimeStr(value) {
47
+ var today = getTodayTime(value);
48
+ return getTitleString(today);
49
+ }
50
+
51
+ export function getMonthName(month) {
52
+ var locale = month.locale();
53
+ var localeData = month.localeData();
54
+ return localeData[locale === 'zh-cn' ? 'months' : 'monthsShort'](month);
55
+ }
56
+
57
+ export function syncTime(from, to) {
58
+ if (!dayjs.isDayjs(from) || !dayjs.isDayjs(to)) return;
59
+ to = to.hour(from.hour());
60
+ to = to.minute(from.minute());
61
+ to = to.second(from.second());
62
+ to = to.millisecond(from.millisecond());
63
+ }
64
+
65
+ export function getTimeConfig(value, disabledTime) {
66
+ var disabledTimeConfig = disabledTime ? disabledTime(value) : {};
67
+ disabledTimeConfig = _extends({}, defaultDisabledTime, disabledTimeConfig);
68
+ return disabledTimeConfig;
69
+ }
70
+
71
+ export function isTimeValidByConfig(value, disabledTimeConfig) {
72
+ var invalidTime = false;
73
+ if (value) {
74
+ var hour = value.hour();
75
+ var minutes = value.minute();
76
+ var seconds = value.second();
77
+ var disabledHours = disabledTimeConfig.disabledHours();
78
+ if (disabledHours.indexOf(hour) === -1) {
79
+ var disabledMinutes = disabledTimeConfig.disabledMinutes(hour);
80
+ if (disabledMinutes.indexOf(minutes) === -1) {
81
+ var disabledSeconds = disabledTimeConfig.disabledSeconds(hour, minutes);
82
+ invalidTime = disabledSeconds.indexOf(seconds) !== -1;
83
+ } else {
84
+ invalidTime = true;
85
+ }
86
+ } else {
87
+ invalidTime = true;
88
+ }
89
+ }
90
+ return !invalidTime;
91
+ }
92
+
93
+ export function isTimeValid(value, disabledTime) {
94
+ var disabledTimeConfig = getTimeConfig(value, disabledTime);
95
+ return isTimeValidByConfig(value, disabledTimeConfig);
96
+ }
97
+
98
+ export function isAllowedDate(value, disabledDate, disabledTime) {
99
+ if (disabledDate) {
100
+ if (disabledDate(value)) {
101
+ return false;
102
+ }
103
+ }
104
+ if (disabledTime) {
105
+ if (!isTimeValid(value, disabledTime)) {
106
+ return false;
107
+ }
108
+ }
109
+ return true;
110
+ }
111
+
112
+ export function formatDate(value, format) {
113
+ if (!value) {
114
+ return '';
115
+ }
116
+
117
+ if (Array.isArray(format)) {
118
+ format = format[0];
119
+ }
120
+
121
+ return value.format(format);
122
+ }
123
+
124
+ export function formatDateLocal(formatStr, format) {
125
+ var str = formatStr || '';
126
+ var cleanStr = void 0;
127
+ switch (format) {
128
+ case DATE_FORMATS.ISO:
129
+ case DATE_FORMATS.ISOAndTime:
130
+ cleanStr = str.replace(/[^0-9]+/g, '-');
131
+ return cleanStr.split('-').filter(Boolean).map(String);
132
+ case DATE_FORMATS.US:
133
+ case DATE_FORMATS.USAndTime:
134
+ case DATE_FORMATS.European:
135
+ case DATE_FORMATS.EuropeanAndTime:
136
+ cleanStr = str.replace(/[^0-9]+/g, '/');
137
+ return cleanStr.split('/').filter(Boolean).map(String);
138
+ case DATE_FORMATS.Germany_Russia_etc:
139
+ case DATE_FORMATS.Germany_Russia_etcAndTime:
140
+ cleanStr = str.replace(/[^0-9]+/g, '.');
141
+ return cleanStr.split('.').filter(Boolean).map(String);
142
+ default:
143
+ return [];
144
+ }
145
+ }
146
+
147
+ export function hasSpecialChar(str) {
148
+ var matches = str.match(/[^0-9]/g);
149
+ return matches ? matches.length : 0;
150
+ }
151
+
152
+ export function isValidMonth(monthStr) {
153
+ if (typeof monthStr === 'undefined' || monthStr === null) return currentMonth;
154
+ if (!/^\d+$/.test(Number(monthStr))) return currentMonth;
155
+ var month = Number(monthStr);
156
+ if (month >= 1 && month <= 12) {
157
+ return monthStr;
158
+ }
159
+ return currentMonth;
160
+ }
161
+
162
+ export function isValidDay(dayStr) {
163
+ if (!/^\d+$/.test(dayStr)) return false;
164
+ var day = Number(dayStr);
165
+ if ([1, 3, 5, 7, 8, 10, 12].includes(currentMonth)) {
166
+ return day >= 1 && day <= 31;
167
+ }
168
+ if ([4, 6, 9, 11].includes(currentMonth)) {
169
+ return day >= 1 && day <= 30;
170
+ }
171
+ if (currentMonth === 2) {
172
+ var isLeapYear = function isLeapYear(year) {
173
+ return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
174
+ };
175
+ var year = currentYear;
176
+ if (isLeapYear(year)) {
177
+ return day >= 1 && day <= 29;
178
+ }
179
+ return day >= 1 && day <= 28;
180
+ }
181
+ }
182
+
183
+ export function fullValidYear(yearStr) {
184
+ var year = yearStr;
185
+ if (!year || isNaN(year)) return currentYear;
186
+ if (year.length === 2) {
187
+ if (Number(year) >= 0 && Number(year) < 69) {
188
+ return year ? '20' + year : currentYear;
189
+ } else if (Number(year) >= 69 && Number(year) < 100) {
190
+ return year ? '19' + year : currentYear;
191
+ }
192
+ }
193
+ if (year.length === 4) {
194
+ return year;
195
+ }
196
+ return year ? year.padStart(4, '0') : currentYear;
197
+ }
198
+
199
+ export function delimate(formatPrefix) {
200
+ var delimiter = void 0;
201
+ if (formatPrefix === DATE_FORMATS.Germany_Russia_etc || formatPrefix === DATE_FORMATS.Germany_Russia_etcAndTime) {
202
+ delimiter = '.';
203
+ } else if (formatPrefix === DATE_FORMATS.ISO || formatPrefix === DATE_FORMATS.ISOAndTime) {
204
+ delimiter = '-';
205
+ } else {
206
+ delimiter = '/';
207
+ }
208
+ return delimiter;
209
+ }
210
+
211
+ export function getDateFormatByStr(str, format) {
212
+ var cananderStr = str || '';
213
+ var delimiter = delimate(format);
214
+ var parts = cananderStr.split(delimiter);
215
+ if (parts.length !== 3) return format;
216
+ if (format === DATE_FORMATS.ISO) {
217
+ return DATE_FORMATS.ISO;
218
+ }
219
+ if (format === DATE_FORMATS.ISOAndTime) {
220
+ return DATE_FORMATS.ISOAndTime;
221
+ }
222
+ if (format === DATE_FORMATS.US) {
223
+ return DATE_FORMATS.US;
224
+ }
225
+ if (format === DATE_FORMATS.USAndTime) {
226
+ return DATE_FORMATS.USAndTime;
227
+ }
228
+ if (format === DATE_FORMATS.European || format === DATE_FORMATS.Germany_Russia_etc) {
229
+ var day = parts[0],
230
+ month = parts[1];
231
+
232
+ var dayLen = day.length;
233
+ var monthLen = month.length;
234
+ if (dayLen === 2 && monthLen === 2) {
235
+ return 'DD' + delimiter + 'MM' + delimiter + 'YYYY';
236
+ } else if (dayLen === 2 && monthLen === 1) {
237
+ return 'DD' + delimiter + 'M' + delimiter + 'YYYY';
238
+ } else if (dayLen === 1 && monthLen === 2) {
239
+ return 'D' + delimiter + 'MM' + delimiter + 'YYYY';
240
+ } else if (dayLen === 1 && monthLen === 1) {
241
+ return 'D' + delimiter + 'M' + delimiter + 'YYYY';
242
+ }
243
+ }
244
+ if (format === DATE_FORMATS.EuropeanAndTime || format === DATE_FORMATS.Germany_Russia_etcAndTime) {
245
+ var _day = parts[0],
246
+ _month = parts[1];
247
+
248
+ var _dayLen = _day.length;
249
+ var _monthLen = _month.length;
250
+ if (_dayLen === 2 && _monthLen === 2) {
251
+ return 'DD' + delimiter + 'MM' + delimiter + 'YYYY HH:mm';
252
+ } else if (_dayLen === 2 && _monthLen === 1) {
253
+ return 'DD' + delimiter + 'M' + delimiter + 'YYYY HH:mm';
254
+ } else if (_dayLen === 1 && _monthLen === 2) {
255
+ return 'D' + delimiter + 'MM' + delimiter + 'YYYY HH:mm';
256
+ } else if (_dayLen === 1 && _monthLen === 1) {
257
+ return 'D' + delimiter + 'M' + delimiter + 'YYYY HH:mm';
258
+ }
259
+ }
260
+ return format;
261
+ }
262
+
263
+ export function isCurrentYear(year, month, day) {
264
+ return Number(month) >= 1 && Number(month) <= 12 && Number(day) >= 1 && Number(day) <= 31 ? year : currentYear; // eslint-disable-line max-len
265
+ }
266
+
267
+ export function validateTime(inputTime) {
268
+ if (!inputTime || typeof inputTime !== 'string') {
269
+ return currentTime;
270
+ }
271
+ var trimmed = inputTime.trim();
272
+ var timeRegex = /^(\d{2}):(\d{2})$/;
273
+ var match = trimmed.match(timeRegex);
274
+ if (!match) {
275
+ return currentTime;
276
+ }
277
+ var hour = Number(match[1]);
278
+ var minute = Number(match[2]);
279
+ if (hour > 23 || minute > 59) {
280
+ return currentTime;
281
+ }
282
+ return match[1] + ':' + match[2];
283
+ }
284
+
285
+ export function checkSpecialBetweenDigits(str) {
286
+ var regex = /^\d+[^0-9]\d+$/;
287
+ return regex.test(str);
288
+ }
289
+
290
+ function getDatePart(str) {
291
+ if (typeof str !== 'string') return '';
292
+ var parts = str.trim().split(/\s+/);
293
+ return parts[0];
294
+ }
295
+
296
+ export function normalizeDateInput(str, localeFormat, delimiter) {
297
+ var day = void 0;
298
+ var month = void 0;
299
+ var year = void 0;
300
+ var time = currentTime;
301
+ var parts = formatDateLocal(str, localeFormat, DATE_FORMATS);
302
+ if (localeFormat === DATE_FORMATS.ISO) {
303
+ var hasSpecial = hasSpecialChar(str);
304
+ var numStr = str.replace(/[^0-9]/g, '');
305
+ if (numStr.length === 7) {
306
+ year = numStr.slice(0, 4);
307
+ month = numStr.slice(4, 6).padStart(2, '0');
308
+ day = numStr.slice(6, 7).padStart(2, '0');
309
+ if (!isValidDay(day)) {
310
+ return year + '-' + stringCurrentMonth + '-' + stringCurrentDate;
311
+ }
312
+ return year + '-' + month + '-' + day;
313
+ }
314
+ if (hasSpecial) {
315
+ year = fullValidYear(parts[0]);
316
+ month = Number(parts[1]);
317
+ day = Number(parts[2]);
318
+ if (month >= 1 && month <= 12) {
319
+ if (isValidDay(day)) {
320
+ return year + '-' + String(month).padStart(2, '0') + '-' + String(day).padStart(2, '0');
321
+ }
322
+ return year + '-' + String(month).padStart(2, '0') + '-01';
323
+ }
324
+ if ((month >= 13 || month < 1) && isNaN(day)) {
325
+ return year + '-' + stringCurrentMonth + '-' + stringCurrentDate;
326
+ }
327
+ if ((month >= 13 || month < 1) && day) {
328
+ return String(currentYear) + '-' + stringCurrentMonth + '-' + stringCurrentDate;
329
+ }
330
+ if (!month && !day) {
331
+ return year + '-01-01';
332
+ }
333
+ }
334
+ if (str.length >= 1 && str.length <= 8) {
335
+ year = fullValidYear(str.slice(0, 4));
336
+ month = str.slice(4, 6);
337
+ day = Number(str.slice(6, 8));
338
+ if (str.length === 5 && Number(month) < 1) {
339
+ return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ';
340
+ }
341
+ if (str.length === 6 && Number(month) < 1) {
342
+ return year + '-' + stringCurrentMonth + '-' + stringCurrentDate;
343
+ }
344
+ if (str.length === 7) {
345
+ if (!isValidDay(day)) {
346
+ return year + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + stringCurrentDate;
347
+ }
348
+ return year + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0'); // eslint-disable-line max-len
349
+ }
350
+ if (str.length === 8) {
351
+ if (!isValidDay(day)) {
352
+ return isCurrentYear(year, month, day) + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + stringCurrentDate; // eslint-disable-line max-len
353
+ }
354
+ return isCurrentYear(year, month, day) + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0'); // eslint-disable-line max-len
355
+ }
356
+ if (Number(month) >= 1 && Number(month) <= 12 && isValidDay(day)) {
357
+ return year + '-' + month.padStart(2, '0') + '-' + String(day).padStart(2, '0');
358
+ }
359
+ return year + '-' + (month ? month.padStart(2, '0') : '01') + '-' + (day ? String(day).padStart(2, '0') : '01'); // eslint-disable-line max-len
360
+ }
361
+ return currentYear + '/' + stringCurrentMonth + '/' + stringCurrentDate;
362
+ }
363
+ if (localeFormat === DATE_FORMATS.ISOAndTime) {
364
+ var unNormalDate = getDatePart(str);
365
+ var unNormalDateParts = formatDateLocal(unNormalDate, localeFormat, DATE_FORMATS);
366
+ var _hasSpecial = hasSpecialChar(unNormalDate);
367
+ var _numStr = unNormalDate.replace(/[^0-9]/g, '');
368
+ if (_numStr.length === 7) {
369
+ year = _numStr.slice(0, 4);
370
+ month = _numStr.slice(4, 6).padStart(2, '0');
371
+ day = _numStr.slice(6, 7).padStart(2, '0');
372
+ if (parts.length === 3) {
373
+ time = validateTime(parts[1] + ':' + parts[2]);
374
+ }
375
+ if (parts.length === 4) {
376
+ time = validateTime(parts[2] + ':' + parts[3]);
377
+ }
378
+ if (parts.length === 5) {
379
+ time = validateTime(parts[3] + ':' + parts[4]);
380
+ }
381
+ if (!isValidDay(day)) {
382
+ return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time;
383
+ }
384
+ return year + '-' + month + '-' + day + ' ' + time;
385
+ }
386
+ if (_hasSpecial) {
387
+ if (unNormalDateParts.length < 3) {
388
+ parts.splice(2, 0, '1');
389
+ }
390
+ year = fullValidYear(parts[0]);
391
+ month = Number(parts[1]);
392
+ day = Number(parts[2]);
393
+ time = validateTime(parts[3] + ':' + parts[4]);
394
+ if (month >= 1 && month <= 12) {
395
+ if (isValidDay(day)) {
396
+ return year + '-' + String(month).padStart(2, '0') + '-' + String(day).padStart(2, '0') + ' ' + time; // eslint-disable-line max-len
397
+ }
398
+ return year + '-' + String(month).padStart(2, '0') + '-01 ' + time;
399
+ }
400
+ if ((month >= 13 || month < 1) && isNaN(day)) {
401
+ return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time; // eslint-disable-line max-len
402
+ }
403
+ if ((month >= 13 || month < 1) && day) {
404
+ return String(currentYear) + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time; // eslint-disable-line max-len
405
+ }
406
+ if (!month && !day) {
407
+ return year + '-01-01 ' + time;
408
+ }
409
+ }
410
+ if (unNormalDate.length >= 1 && unNormalDate.length <= 8) {
411
+ year = fullValidYear(unNormalDate.slice(0, 4));
412
+ month = unNormalDate.slice(4, 6);
413
+ day = Number(unNormalDate.slice(6, 8));
414
+ var timeParts = formatDateLocal(str, localeFormat, DATE_FORMATS);
415
+ time = validateTime(timeParts[1] + ':' + timeParts[2]);
416
+ if (unNormalDate.length === 5 && Number(month) < 1) {
417
+ return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time;
418
+ }
419
+ if (unNormalDate.length === 6 && Number(month) < 1) {
420
+ return year + '-' + stringCurrentMonth + '-' + stringCurrentDate + ' ' + time;
421
+ }
422
+ if (unNormalDate.length === 7) {
423
+ if (!isValidDay(day)) {
424
+ return year + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + stringCurrentDate + ' ' + time; // eslint-disable-line max-len
425
+ }
426
+ return year + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0') + ' ' + time; // eslint-disable-line max-len
427
+ }
428
+ if (unNormalDate.length === 8) {
429
+ if (!isValidDay(day)) {
430
+ return isCurrentYear(year, month, day) + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + stringCurrentDate + ' ' + time; // eslint-disable-line max-len
431
+ }
432
+ return isCurrentYear(year, month, day) + '-' + String(isValidMonth(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0') + ' ' + time; // eslint-disable-line max-len
433
+ }
434
+ if (Number(month) >= 1 && Number(month) <= 12 && isValidDay(day)) {
435
+ return year + '-' + month.padStart(2, '0') + '-' + String(day).padStart(2, '0') + ' ' + time;
436
+ }
437
+ return year + '-' + (month ? month.padStart(2, '0') : '01') + '-' + (day ? String(day).padStart(2, '0') : '01') + ' ' + time; // eslint-disable-line max-len
438
+ }
439
+ return currentYear + '/' + stringCurrentMonth + '/' + stringCurrentDate + ' ' + time;
440
+ }
441
+ if (localeFormat === DATE_FORMATS.US) {
442
+ var _hasSpecial2 = hasSpecialChar(str);
443
+ if (_hasSpecial2) {
444
+ month = Number(parts[0]);
445
+ day = Number(parts[1]);
446
+ year = fullValidYear(parts[2]);
447
+ if (month >= 1 && month <= 12 && isValidDay(day)) {
448
+ return month + '/' + day + '/' + year;
449
+ }
450
+ return currentMonth + '/' + currentDate + '/' + currentYear;
451
+ }
452
+ if (str.length >= 1 && str.length <= 8) {
453
+ month = Number(str.slice(0, 2));
454
+ day = Number(str.slice(2, 4));
455
+ year = fullValidYear(str.slice(4, str.length));
456
+ if (month >= 1 && month <= 12) {
457
+ if (isValidDay(day)) {
458
+ return month + '/' + day + '/' + year;
459
+ }
460
+ if (!day) {
461
+ return month + '/1/' + year;
462
+ }
463
+ return currentMonth + '/' + currentDate + '/' + currentYear;
464
+ }
465
+ }
466
+ return currentMonth + '/' + currentDate + '/' + currentYear;
467
+ }
468
+ if (localeFormat === DATE_FORMATS.USAndTime) {
469
+ var _unNormalDate = getDatePart(str);
470
+ var _unNormalDateParts = formatDateLocal(_unNormalDate, localeFormat, DATE_FORMATS);
471
+ var _hasSpecial3 = hasSpecialChar(_unNormalDate);
472
+ if (_hasSpecial3) {
473
+ if (_unNormalDateParts.length < 3) {
474
+ parts.splice(2, 0, String(currentYear));
475
+ }
476
+ month = Number(parts[0]);
477
+ day = Number(parts[1]);
478
+ year = fullValidYear(parts[2]);
479
+ time = validateTime(parts[3] + ':' + parts[4]);
480
+ if (month >= 1 && month <= 12 && isValidDay(day)) {
481
+ return month + '/' + day + '/' + year + ' ' + time;
482
+ }
483
+ return currentMonth + '/' + currentDate + '/' + currentYear + ' ' + time;
484
+ }
485
+ if (_unNormalDate.length >= 1 && _unNormalDate.length <= 8) {
486
+ month = Number(_unNormalDate.slice(0, 2));
487
+ day = Number(_unNormalDate.slice(2, 4));
488
+ year = fullValidYear(_unNormalDate.slice(4, _unNormalDate.length));
489
+ var _timeParts = formatDateLocal(str, localeFormat, DATE_FORMATS);
490
+ time = validateTime(_timeParts[1] + ':' + _timeParts[2]);
491
+ if (month >= 1 && month <= 12) {
492
+ if (isValidDay(day)) {
493
+ return month + '/' + day + '/' + year + ' ' + time;
494
+ }
495
+ if (!day) {
496
+ return month + '/1/' + year + ' ' + time;
497
+ }
498
+ return currentMonth + '/' + currentDate + '/' + currentYear + ' ' + time;
499
+ }
500
+ }
501
+ return currentMonth + '/' + currentDate + '/' + currentYear + ' ' + time;
502
+ }
503
+ if (localeFormat === DATE_FORMATS.European || localeFormat === DATE_FORMATS.Germany_Russia_etc) {
504
+ var _hasSpecial4 = hasSpecialChar(str);
505
+ if (_hasSpecial4) {
506
+ day = parts[0];
507
+ month = parts[1];
508
+ year = fullValidYear(parts[2]);
509
+ if (isValidDay(day) && Number(month) >= 1 && Number(month) <= 12) {
510
+ return '' + Number(day) + delimiter + Number(month) + delimiter + year;
511
+ }
512
+ return '' + currentDate + delimiter + currentMonth + delimiter + currentYear;
513
+ }
514
+ if (str.length >= 1 && str.length <= 8) {
515
+ day = Number(str.slice(0, 2));
516
+ var monthStr = str.slice(2, 4);
517
+ month = isValidMonth(monthStr);
518
+ var yearStr = str.slice(4, str.length);
519
+ year = fullValidYear(yearStr);
520
+
521
+ if (isValidDay(day)) {
522
+ if (Number(monthStr) < 1 && Number(monthStr) > 12) {
523
+ return '' + currentDate + delimiter + currentMonth + delimiter + currentYear;
524
+ }
525
+ return '' + Number(day) + delimiter + Number(month) + delimiter + year;
526
+ }
527
+ }
528
+ return '' + currentDate + delimiter + currentMonth + delimiter + currentYear;
529
+ }
530
+ if (localeFormat === DATE_FORMATS.EuropeanAndTime || localeFormat === DATE_FORMATS.Germany_Russia_etcAndTime) {
531
+ var _unNormalDate2 = getDatePart(str);
532
+ var _unNormalDateParts2 = formatDateLocal(_unNormalDate2, localeFormat, DATE_FORMATS);
533
+ var _hasSpecial5 = hasSpecialChar(_unNormalDate2);
534
+ if (_hasSpecial5) {
535
+ if (_unNormalDateParts2.length < 3) {
536
+ parts.splice(2, 0, String(currentYear));
537
+ }
538
+ day = parts[0];
539
+ month = parts[1];
540
+ year = fullValidYear(parts[2]);
541
+ time = validateTime(parts[3] + ':' + parts[4]);
542
+ if (isValidDay(day) && Number(month) >= 1 && Number(month) <= 12) {
543
+ return '' + Number(day) + delimiter + Number(month) + delimiter + year + ' ' + time;
544
+ }
545
+ return '' + currentDate + delimiter + currentMonth + delimiter + currentYear + ' ' + time;
546
+ }
547
+ if (_unNormalDate2.length >= 1 && _unNormalDate2.length <= 8) {
548
+ day = Number(_unNormalDate2.slice(0, 2));
549
+ var _monthStr = _unNormalDate2.slice(2, 4);
550
+ month = isValidMonth(_monthStr);
551
+ var _yearStr = _unNormalDate2.slice(4, _unNormalDate2.length);
552
+ year = fullValidYear(_yearStr);
553
+ var _timeParts2 = formatDateLocal(str, localeFormat, DATE_FORMATS);
554
+ time = validateTime(_timeParts2[1] + ':' + _timeParts2[2]);
555
+ if (isValidDay(day)) {
556
+ if (Number(_monthStr) < 1 && Number(_monthStr) > 12) {
557
+ return '' + currentDate + delimiter + currentMonth + delimiter + currentYear + ' ' + time;
558
+ }
559
+ return '' + Number(day) + delimiter + Number(month) + delimiter + year + ' ' + time;
560
+ }
561
+ }
562
+ return '' + currentDate + delimiter + currentMonth + delimiter + currentYear + ' ' + time;
563
+ }
564
+ }
@@ -0,0 +1,21 @@
1
+ export function goStartMonth(time) {
2
+ return time.clone().startOf('month');
3
+ }
4
+
5
+ export function goEndMonth(time) {
6
+ return time.clone().endOf('month');
7
+ }
8
+
9
+ export function goTime(time, direction, unit) {
10
+ return time.clone().add(direction, unit);
11
+ }
12
+
13
+ export function includesTime() {
14
+ var timeList = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
15
+ var time = arguments[1];
16
+ var unit = arguments[2];
17
+
18
+ return timeList.some(function (t) {
19
+ return t.isSame(time, unit);
20
+ });
21
+ }