@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.
@@ -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
- var formatPrefix = _this.props.format[0];
62
+
59
63
  _this.state = {
60
- timeStr: '',
61
- dateStr: '',
62
64
  str: (0, _util.formatDate)(selectedValue, _this.props.format),
63
65
  hasFocus: false,
64
- localeFormat: formatPrefix,
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
- var timeStr = (0, _util.formatDate)(selectedValue, nextProps.format).split(' ')[0];
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 _state = this.state,
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
- showHourAndMinute ? _react2['default'].createElement(
109
+ _react2['default'].createElement(
253
110
  'div',
254
- { className: prefixCls + '-date-input-wrap', style: { display: 'flex' } },
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.onInputChangeAll,
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
- var _props = _this2.props,
342
- showHourAndMinute = _props.showHourAndMinute,
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 (str) {
359
- var cananderStr = _this2.normalizeDateInput(str, _this2.props.showHourAndMinute);
360
- var _props2 = _this2.props,
361
- disabledDate = _props2.disabledDate,
362
- onChange = _props2.onChange,
363
- selectedValue = _props2.selectedValue;
364
-
365
- var parts = (0, _util.formatDateLocal)(cananderStr, _this2.state.localeFormat);
366
- var hourMinuteStr = (0, _util.validateTime)(_this2.state.timeStr);
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
- if (!str) {
175
+
176
+ if (!calendarStr) {
371
177
  onChange(null);
372
- _this2.setState({ str: 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 _props3 = _this2.props,
434
- onSelect = _props3.onSelect,
435
- value = _props3.value,
436
- disabledDate = _props3.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
  };