@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/lib/date/DateInput.js
CHANGED
@@ -40,6 +40,10 @@ var _util = require('../util');
|
|
40
40
|
|
41
41
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
42
42
|
|
43
|
+
var customParseFormat = require('dayjs/plugin/customParseFormat');
|
44
|
+
|
45
|
+
_dayjs2['default'].extend(customParseFormat);
|
46
|
+
|
43
47
|
var cachedSelectionStart = void 0;
|
44
48
|
var cachedSelectionEnd = void 0;
|
45
49
|
var dateInputInstance = void 0;
|
@@ -55,15 +59,11 @@ var DateInput = function (_React$Component) {
|
|
55
59
|
_initialiseProps.call(_this);
|
56
60
|
|
57
61
|
var selectedValue = props.selectedValue;
|
58
|
-
|
62
|
+
|
59
63
|
_this.state = {
|
60
|
-
timeStr: '',
|
61
|
-
dateStr: '',
|
62
64
|
str: (0, _util.formatDate)(selectedValue, _this.props.format),
|
63
65
|
hasFocus: false,
|
64
|
-
|
65
|
-
delimiter: (0, _util.delimate)(formatPrefix),
|
66
|
-
cananderIput: ''
|
66
|
+
localFormat: _this.props.format[0]
|
67
67
|
};
|
68
68
|
return _this;
|
69
69
|
}
|
@@ -84,34 +84,9 @@ var DateInput = function (_React$Component) {
|
|
84
84
|
// when popup show, click body will call this, bug!
|
85
85
|
var selectedValue = nextProps.selectedValue;
|
86
86
|
if (!state.hasFocus) {
|
87
|
-
|
88
|
-
var parts = timeStr.split(state.delimiter);
|
89
|
-
var timeParts = (0, _util.formatDate)(selectedValue, nextProps.format).split(' ')[1];
|
90
|
-
if (parts.length === 3) {
|
91
|
-
if (state.localeFormat === _util.DATE_FORMATS.ISO) {
|
92
|
-
newState = { str: parts[0].padStart(4, 0) + '-' + parts[1] + '-' + parts[2] };
|
93
|
-
} else if (state.localeFormat === _util.DATE_FORMATS.ISOAndTime) {
|
94
|
-
newState = {
|
95
|
-
str: parts[0].padStart(4, 0) + '-' + parts[1] + '-' + parts[2] + ' ' + (nextProps.showHourAndMinute ? timeParts : ''), // eslint-disable-line max-len
|
96
|
-
dateStr: parts[0].padStart(4, 0) + '-' + parts[1] + '-' + parts[2]
|
97
|
-
};
|
98
|
-
} else if (state.localeFormat === _util.DATE_FORMATS.US) {
|
99
|
-
newState = { str: Number(parts[0]) + '/' + Number(parts[1]) + '/' + parts[2].padStart(4, 0) };
|
100
|
-
} else if (state.localeFormat === _util.DATE_FORMATS.USAndTime) {
|
101
|
-
newState = {
|
102
|
-
str: Number(parts[0]) + '/' + Number(parts[1]) + '/' + parts[2].padStart(4, 0) + ' ' + (nextProps.showHourAndMinute ? timeParts : ''), // eslint-disable-line max-len
|
103
|
-
dateStr: Number(parts[0]) + '/' + Number(parts[1]) + '/' + parts[2].padStart(4, 0)
|
104
|
-
};
|
105
|
-
} else if (state.localeFormat === _util.DATE_FORMATS.European || state.localeFormat === _util.DATE_FORMATS.Germany_Russia_etc) {
|
106
|
-
newState = { str: '' + Number(parts[0]) + state.delimiter + Number(parts[1]) + state.delimiter + parts[2].padStart(4, 0) }; // eslint-disable-line max-len
|
107
|
-
} else if (state.localeFormat === _util.DATE_FORMATS.EuropeanAndTime || state.localeFormat === _util.DATE_FORMATS.Germany_Russia_etcAndTime) {
|
108
|
-
newState = {
|
109
|
-
str: '' + Number(parts[0]) + state.delimiter + Number(parts[1]) + state.delimiter + parts[2].padStart(4, 0) + ' ' + (nextProps.showHourAndMinute ? timeParts : ''), // eslint-disable-line max-len
|
110
|
-
dateStr: '' + Number(parts[0]) + state.delimiter + Number(parts[1]) + state.delimiter + parts[2].padStart(4, 0) // eslint-disable-line max-len
|
111
|
-
};
|
112
|
-
}
|
113
|
-
}
|
87
|
+
newState = { str: (0, _util.formatDate)(selectedValue, nextProps.format) };
|
114
88
|
}
|
89
|
+
|
115
90
|
return newState;
|
116
91
|
};
|
117
92
|
|
@@ -119,181 +94,28 @@ var DateInput = function (_React$Component) {
|
|
119
94
|
return dateInputInstance;
|
120
95
|
};
|
121
96
|
|
122
|
-
DateInput.prototype.normalizeDateInput = function normalizeDateInput(str) {
|
123
|
-
var day = void 0;
|
124
|
-
var month = void 0;
|
125
|
-
var year = void 0;
|
126
|
-
var parts = (0, _util.formatDateLocal)(str, this.state.localeFormat, _util.DATE_FORMATS);
|
127
|
-
var delimiter = this.state.delimiter;
|
128
|
-
var hasSpecial = (0, _util.hasSpecialChar)(str);
|
129
|
-
if (this.state.localeFormat === _util.DATE_FORMATS.ISO || this.state.localeFormat === _util.DATE_FORMATS.ISOAndTime) {
|
130
|
-
var numStr = str.replace(/[^0-9]/g, '');
|
131
|
-
if (numStr.length === 7) {
|
132
|
-
year = numStr.slice(0, 4);
|
133
|
-
month = numStr.slice(4, 6).padStart(2, '0');
|
134
|
-
day = numStr.slice(6, 7).padStart(2, '0');
|
135
|
-
if (!(0, _util.isValidDay)(day)) {
|
136
|
-
return year + '-' + _util.stringCurrentMonth + '-' + _util.stringCurrentDate;
|
137
|
-
}
|
138
|
-
return year + '-' + month + '-' + day;
|
139
|
-
}
|
140
|
-
if (hasSpecial) {
|
141
|
-
year = (0, _util.fullValidYear)(parts[0]);
|
142
|
-
month = Number(parts[1]);
|
143
|
-
day = Number(parts[2]);
|
144
|
-
if (month >= 1 && month <= 12) {
|
145
|
-
if ((0, _util.isValidDay)(day)) {
|
146
|
-
return year + '-' + String(month).padStart(2, '0') + '-' + String(day).padStart(2, '0');
|
147
|
-
}
|
148
|
-
return year + '-' + String(month).padStart(2, '0') + '-01';
|
149
|
-
}
|
150
|
-
if ((month >= 13 || month < 1) && isNaN(day)) {
|
151
|
-
return year + '-' + _util.stringCurrentMonth + '-' + _util.stringCurrentDate;
|
152
|
-
}
|
153
|
-
if (!month && !day) {
|
154
|
-
return year + '-01-01';
|
155
|
-
}
|
156
|
-
}
|
157
|
-
if (str.length >= 1 && str.length <= 8) {
|
158
|
-
year = (0, _util.fullValidYear)(str.slice(0, 4));
|
159
|
-
month = str.slice(4, 6);
|
160
|
-
day = Number(str.slice(6, 8));
|
161
|
-
if (str.length === 5 && Number(month) < 1) {
|
162
|
-
return year + '-' + _util.stringCurrentMonth + '-' + _util.stringCurrentDate + ' ';
|
163
|
-
}
|
164
|
-
if (str.length === 6 && Number(month) < 1) {
|
165
|
-
return year + '-' + _util.stringCurrentMonth + '-' + _util.stringCurrentDate;
|
166
|
-
}
|
167
|
-
if (str.length === 7) {
|
168
|
-
if (!(0, _util.isValidDay)(day)) {
|
169
|
-
return year + '-' + String((0, _util.isValidMonth)(month)).padStart(2, '0') + '-' + _util.stringCurrentDate;
|
170
|
-
}
|
171
|
-
return year + '-' + String((0, _util.isValidMonth)(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0'); // eslint-disable-line max-len
|
172
|
-
}
|
173
|
-
if (str.length === 8) {
|
174
|
-
if (!(0, _util.isValidDay)(day)) {
|
175
|
-
return (0, _util.isCurrentYear)(year, month, day) + '-' + String((0, _util.isValidMonth)(month)).padStart(2, '0') + '-' + _util.stringCurrentDate; // eslint-disable-line max-len
|
176
|
-
}
|
177
|
-
return (0, _util.isCurrentYear)(year, month, day) + '-' + String((0, _util.isValidMonth)(month)).padStart(2, '0') + '-' + String(day).padStart(2, '0'); // eslint-disable-line max-len
|
178
|
-
}
|
179
|
-
if (Number(month) >= 1 && Number(month) <= 12 && (0, _util.isValidDay)(day)) {
|
180
|
-
return year + '-' + month.padStart(2, '0') + '-' + String(day).padStart(2, '0');
|
181
|
-
}
|
182
|
-
return year + '-' + (month ? month.padStart(2, '0') : '01') + '-' + (day ? String(day).padStart(2, '0') : '01'); // eslint-disable-line max-len
|
183
|
-
}
|
184
|
-
return _util.currentYear + '/' + _util.stringCurrentMonth + '/' + _util.stringCurrentDate;
|
185
|
-
}
|
186
|
-
if (this.state.localeFormat === _util.DATE_FORMATS.US || this.state.localeFormat === _util.DATE_FORMATS.USAndTime) {
|
187
|
-
if (hasSpecial) {
|
188
|
-
month = Number(parts[0]);
|
189
|
-
day = Number(parts[1]);
|
190
|
-
year = (0, _util.fullValidYear)(parts[2]);
|
191
|
-
if (month >= 1 && month <= 12 && (0, _util.isValidDay)(day)) {
|
192
|
-
return month + '/' + day + '/' + year;
|
193
|
-
}
|
194
|
-
return _util.currentMonth + '/' + _util.currentDate + '/' + _util.currentYear;
|
195
|
-
}
|
196
|
-
if (str.length >= 1 && str.length <= 8) {
|
197
|
-
month = Number(str.slice(0, 2));
|
198
|
-
day = Number(str.slice(2, 4));
|
199
|
-
year = (0, _util.fullValidYear)(str.slice(4, str.length));
|
200
|
-
if (month >= 1 && month <= 12) {
|
201
|
-
if ((0, _util.isValidDay)(day)) {
|
202
|
-
return month + '/' + day + '/' + year;
|
203
|
-
}
|
204
|
-
if (!day) {
|
205
|
-
return month + '/1/' + year;
|
206
|
-
}
|
207
|
-
return _util.currentMonth + '/' + _util.currentDate + '/' + _util.currentYear;
|
208
|
-
}
|
209
|
-
}
|
210
|
-
return _util.currentMonth + '/' + _util.currentDate + '/' + _util.currentYear;
|
211
|
-
}
|
212
|
-
if (this.state.localeFormat === _util.DATE_FORMATS.European || this.state.localeFormat === _util.DATE_FORMATS.EuropeanAndTime || this.state.localeFormat === _util.DATE_FORMATS.Germany_Russia_etcAndTime || this.state.localeFormat === _util.DATE_FORMATS.Germany_Russia_etc) {
|
213
|
-
if (hasSpecial) {
|
214
|
-
day = parts[0];
|
215
|
-
month = parts[1];
|
216
|
-
year = (0, _util.fullValidYear)(parts[2]);
|
217
|
-
if ((0, _util.isValidDay)(day) && Number(month) >= 1 && Number(month) <= 12) {
|
218
|
-
return '' + Number(day) + delimiter + Number(month) + delimiter + year;
|
219
|
-
}
|
220
|
-
return '' + _util.currentDate + delimiter + _util.currentMonth + delimiter + _util.currentYear;
|
221
|
-
}
|
222
|
-
if (str.length >= 1 && str.length <= 8) {
|
223
|
-
day = Number(str.slice(0, 2));
|
224
|
-
var monthStr = str.slice(2, 4);
|
225
|
-
month = (0, _util.isValidMonth)(monthStr);
|
226
|
-
var yearStr = str.slice(4, str.length);
|
227
|
-
year = (0, _util.fullValidYear)(yearStr);
|
228
|
-
if (Number(monthStr) >= 1 && Number(monthStr) <= 12 && (0, _util.isValidDay)(day)) {
|
229
|
-
return '' + Number(day) + delimiter + Number(month) + delimiter + year;
|
230
|
-
}
|
231
|
-
}
|
232
|
-
return '' + _util.currentDate + delimiter + _util.currentMonth + delimiter + _util.currentYear;
|
233
|
-
}
|
234
|
-
};
|
235
|
-
|
236
97
|
DateInput.prototype.render = function render() {
|
237
98
|
var props = this.props;
|
238
|
-
var
|
239
|
-
str = _state.str,
|
240
|
-
dateStr = _state.dateStr,
|
241
|
-
timeStr = _state.timeStr;
|
99
|
+
var str = this.state.str;
|
242
100
|
var locale = props.locale,
|
243
101
|
prefixCls = props.prefixCls,
|
244
102
|
placeholder = props.placeholder,
|
245
103
|
clearIcon = props.clearIcon,
|
246
|
-
inputMode = props.inputMode
|
247
|
-
showHourAndMinute = props.showHourAndMinute;
|
104
|
+
inputMode = props.inputMode;
|
248
105
|
|
249
106
|
return _react2['default'].createElement(
|
250
107
|
'div',
|
251
108
|
{ className: prefixCls + '-input-wrap' },
|
252
|
-
|
109
|
+
_react2['default'].createElement(
|
253
110
|
'div',
|
254
|
-
{ className: prefixCls + '-date-input-wrap'
|
255
|
-
_react2['default'].createElement(
|
256
|
-
'div',
|
257
|
-
null,
|
258
|
-
_react2['default'].createElement('input', {
|
259
|
-
ref: this.saveDateInput,
|
260
|
-
className: prefixCls + '-input',
|
261
|
-
value: dateStr,
|
262
|
-
disabled: props.disabled,
|
263
|
-
placeholder: placeholder.slice(0, 10),
|
264
|
-
onChange: this.onInputChangeDate,
|
265
|
-
onKeyDown: this.onKeyDown,
|
266
|
-
onFocus: this.onFocus,
|
267
|
-
onBlur: this.onBlur,
|
268
|
-
inputMode: inputMode
|
269
|
-
})
|
270
|
-
),
|
271
|
-
_react2['default'].createElement(
|
272
|
-
'div',
|
273
|
-
null,
|
274
|
-
_react2['default'].createElement('input', {
|
275
|
-
ref: this.saveDateInput,
|
276
|
-
className: prefixCls + '-input',
|
277
|
-
value: timeStr,
|
278
|
-
disabled: props.disabled,
|
279
|
-
placeholder: 'HH:mm',
|
280
|
-
onChange: this.onInputChangeHourMinute,
|
281
|
-
onKeyDown: this.onKeyDown,
|
282
|
-
onFocus: this.onFocus,
|
283
|
-
onBlur: this.TimeBlure,
|
284
|
-
inputMode: inputMode
|
285
|
-
})
|
286
|
-
)
|
287
|
-
) : _react2['default'].createElement(
|
288
|
-
'div',
|
289
|
-
{ className: prefixCls + '-date-input-wrap', style: { display: 'flex' } },
|
111
|
+
{ className: prefixCls + '-date-input-wrap' },
|
290
112
|
_react2['default'].createElement('input', {
|
291
113
|
ref: this.saveDateInput,
|
292
114
|
className: prefixCls + '-input',
|
293
115
|
value: str,
|
294
116
|
disabled: props.disabled,
|
295
117
|
placeholder: placeholder,
|
296
|
-
onChange: this.
|
118
|
+
onChange: this.onInputChange,
|
297
119
|
onKeyDown: this.onKeyDown,
|
298
120
|
onFocus: this.onFocus,
|
299
121
|
onBlur: this.onBlur,
|
@@ -329,65 +151,37 @@ DateInput.propTypes = {
|
|
329
151
|
onSelect: _propTypes2['default'].func,
|
330
152
|
selectedValue: _propTypes2['default'].object,
|
331
153
|
clearIcon: _propTypes2['default'].node,
|
332
|
-
inputMode: _propTypes2['default'].string
|
333
|
-
showHourAndMinute: _propTypes2['default'].bool,
|
334
|
-
onChangeCananderIput: _propTypes2['default'].func
|
154
|
+
inputMode: _propTypes2['default'].string
|
335
155
|
};
|
336
156
|
|
337
157
|
var _initialiseProps = function _initialiseProps() {
|
338
158
|
var _this2 = this;
|
339
159
|
|
340
160
|
this.onClear = function () {
|
341
|
-
|
342
|
-
|
343
|
-
onClear = _props.onClear;
|
344
|
-
|
345
|
-
if (showHourAndMinute) {
|
346
|
-
_this2.setState({
|
347
|
-
dateStr: '',
|
348
|
-
timeStr: ''
|
349
|
-
});
|
350
|
-
} else {
|
351
|
-
_this2.setState({
|
352
|
-
str: ''
|
353
|
-
});
|
354
|
-
}
|
355
|
-
onClear(null);
|
161
|
+
_this2.setState({ str: '' });
|
162
|
+
_this2.props.onClear(null);
|
356
163
|
};
|
357
164
|
|
358
|
-
this.onInputChange = function (
|
359
|
-
var
|
360
|
-
var
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
_this2.setState({ timeStr: hourMinuteStr });
|
368
|
-
cananderStr = cananderStr + ' ' + hourMinuteStr;
|
165
|
+
this.onInputChange = function (event) {
|
166
|
+
var str = event.target.value;
|
167
|
+
var calendarStr = (0, _util.initializeStr)(str, _this2.state.localFormat) || '';
|
168
|
+
var _props = _this2.props,
|
169
|
+
disabledDate = _props.disabledDate,
|
170
|
+
format = _props.format,
|
171
|
+
onChange = _props.onChange,
|
172
|
+
selectedValue = _props.selectedValue;
|
173
|
+
|
369
174
|
// 没有内容,合法并直接退出
|
370
|
-
|
175
|
+
|
176
|
+
if (!calendarStr) {
|
371
177
|
onChange(null);
|
372
|
-
_this2.setState({ str:
|
178
|
+
_this2.setState({ str: '' });
|
373
179
|
return;
|
374
180
|
}
|
375
|
-
|
376
|
-
var format = (0, _util.getDateFormatByStr)(cananderStr, _this2.state.localeFormat);
|
377
|
-
var parsed = (0, _dayjs2['default'])(cananderStr, format);
|
181
|
+
var parsed = (0, _dayjs2['default'])(calendarStr, format[0]);
|
378
182
|
var value = _this2.props.value.clone();
|
379
183
|
value = value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());
|
380
184
|
|
381
|
-
if (_this2.state.localeFormat === _util.DATE_FORMATS.ISO || _this2.state.localeFormat === _util.DATE_FORMATS.ISOAndTime) {
|
382
|
-
if (parts[0] && parts[0].length === 4 && (parts[0].slice(0, 3) === '000' || parts[0].slice(0, 2) === '00')) {
|
383
|
-
value.year(parts[0]);
|
384
|
-
}
|
385
|
-
}
|
386
|
-
if (_this2.state.localeFormat === _util.DATE_FORMATS.European || _this2.state.localeFormat === _util.DATE_FORMATS.EuropeanAndTime || _this2.state.localeFormat === _util.DATE_FORMATS.US || _this2.state.localeFormat === _util.DATE_FORMATS.USAndTime || _this2.state.localeFormat === _util.DATE_FORMATS.Germany_Russia_etc || _this2.state.localeFormat === _util.DATE_FORMATS.Germany_Russia_etcAndTime) {
|
387
|
-
if (parts[2] && parts[2].length === 4 && (parts[2].slice(0, 3) === '000' || parts[2].slice(0, 2) === '00')) {
|
388
|
-
value.year(parts[2]);
|
389
|
-
}
|
390
|
-
}
|
391
185
|
if (!value || disabledDate && disabledDate(value)) {
|
392
186
|
_this2.setState({ str: str });
|
393
187
|
return;
|
@@ -399,22 +193,6 @@ var _initialiseProps = function _initialiseProps() {
|
|
399
193
|
}
|
400
194
|
};
|
401
195
|
|
402
|
-
this.onInputChangeAll = function (event) {
|
403
|
-
var str = event.target.value;
|
404
|
-
_this2.onInputChange(str);
|
405
|
-
};
|
406
|
-
|
407
|
-
this.onInputChangeDate = function (event) {
|
408
|
-
var dateStr = event.target.value;
|
409
|
-
_this2.setState({ dateStr: dateStr });
|
410
|
-
_this2.onInputChange(dateStr);
|
411
|
-
};
|
412
|
-
|
413
|
-
this.onInputChangeHourMinute = function (e) {
|
414
|
-
var timeStr = e.target.value;
|
415
|
-
_this2.setState({ timeStr: timeStr });
|
416
|
-
};
|
417
|
-
|
418
196
|
this.onFocus = function () {
|
419
197
|
_this2.setState({ hasFocus: true });
|
420
198
|
};
|
@@ -430,10 +208,10 @@ var _initialiseProps = function _initialiseProps() {
|
|
430
208
|
|
431
209
|
this.onKeyDown = function (event) {
|
432
210
|
var keyCode = event.keyCode;
|
433
|
-
var
|
434
|
-
onSelect =
|
435
|
-
value =
|
436
|
-
disabledDate =
|
211
|
+
var _props2 = _this2.props,
|
212
|
+
onSelect = _props2.onSelect,
|
213
|
+
value = _props2.value,
|
214
|
+
disabledDate = _props2.disabledDate;
|
437
215
|
|
438
216
|
if (keyCode === _KeyCode2['default'].ENTER && onSelect) {
|
439
217
|
var validateDate = !disabledDate || !disabledDate(value);
|
@@ -454,17 +232,6 @@ var _initialiseProps = function _initialiseProps() {
|
|
454
232
|
}
|
455
233
|
};
|
456
234
|
|
457
|
-
this.TimeBlure = function () {
|
458
|
-
var hourMinuteStr = (0, _util.validateTime)(_this2.state.timeStr);
|
459
|
-
_this2.setState({ timeStr: hourMinuteStr }, function () {
|
460
|
-
_this2.onInputChange(_this2.state.str);
|
461
|
-
});
|
462
|
-
};
|
463
|
-
|
464
|
-
this.focusTimeInput = function (timeStr) {
|
465
|
-
_this2.setState({ timeStr: timeStr });
|
466
|
-
};
|
467
|
-
|
468
235
|
this.saveDateInput = function (dateInput) {
|
469
236
|
dateInputInstance = dateInput;
|
470
237
|
};
|