@seafile/seafile-calendar 0.0.31 → 0.0.32-alpha.0

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.
@@ -316,26 +316,28 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
316
316
  /* unused harmony export getCurrentYear */
317
317
  /* unused harmony export getCurrentTime */
318
318
  /* unused harmony export DATE_FORMATS */
319
- /* harmony export (immutable) */ __webpack_exports__["e"] = getTodayTime;
320
- /* harmony export (immutable) */ __webpack_exports__["d"] = getTitleString;
321
- /* harmony export (immutable) */ __webpack_exports__["f"] = getTodayTimeStr;
322
- /* harmony export (immutable) */ __webpack_exports__["b"] = getMonthName;
323
- /* harmony export (immutable) */ __webpack_exports__["i"] = syncTime;
324
- /* harmony export (immutable) */ __webpack_exports__["c"] = getTimeConfig;
319
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CALENDAR_STATUS; });
320
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return syncCurrentTime; });
321
+ /* harmony export (immutable) */ __webpack_exports__["f"] = getTodayTime;
322
+ /* harmony export (immutable) */ __webpack_exports__["e"] = getTitleString;
323
+ /* harmony export (immutable) */ __webpack_exports__["g"] = getTodayTimeStr;
324
+ /* harmony export (immutable) */ __webpack_exports__["c"] = getMonthName;
325
+ /* harmony export (immutable) */ __webpack_exports__["k"] = syncTime;
326
+ /* harmony export (immutable) */ __webpack_exports__["d"] = getTimeConfig;
325
327
  /* unused harmony export isTimeValidByConfig */
326
328
  /* unused harmony export isTimeValid */
327
- /* harmony export (immutable) */ __webpack_exports__["h"] = isAllowedDate;
328
- /* harmony export (immutable) */ __webpack_exports__["a"] = formatDate;
329
+ /* harmony export (immutable) */ __webpack_exports__["i"] = isAllowedDate;
330
+ /* harmony export (immutable) */ __webpack_exports__["b"] = formatDate;
329
331
  /* unused harmony export isLeapYear */
330
332
  /* unused harmony export validateCalendarDay */
331
- /* harmony export (immutable) */ __webpack_exports__["j"] = tokenizeFormattedDate;
333
+ /* harmony export (immutable) */ __webpack_exports__["l"] = tokenizeFormattedDate;
332
334
  /* unused harmony export hasSpecialChar */
333
335
  /* unused harmony export validateTime */
334
336
  /* unused harmony export delimate */
335
337
  /* unused harmony export validateCalendarYear */
336
338
  /* unused harmony export validateAndNormalizeDate */
337
339
  /* unused harmony export getDatePart */
338
- /* harmony export (immutable) */ __webpack_exports__["g"] = initializeStr;
340
+ /* harmony export (immutable) */ __webpack_exports__["h"] = initializeStr;
339
341
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__ = __webpack_require__(26);
340
342
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_babel_runtime_helpers_extends__);
341
343
  /* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_dayjs__ = __webpack_require__(20);
@@ -371,6 +373,18 @@ var DATE_FORMATS = {
371
373
  Germany_Russia_etcAndTime: 'DD.MM.YYYY HH:mm'
372
374
  };
373
375
 
376
+ var CALENDAR_STATUS = {
377
+ SPECIFIC_TIME: 'specific_time',
378
+ CURRENT_TIME: 'current_time'
379
+ };
380
+
381
+ var syncCurrentTime = function syncCurrentTime(date, status) {
382
+ if (status === CALENDAR_STATUS.CURRENT_TIME) {
383
+ return date.hour(__WEBPACK_IMPORTED_MODULE_1_dayjs___default()().hour()).minute(__WEBPACK_IMPORTED_MODULE_1_dayjs___default()().minute()).second(__WEBPACK_IMPORTED_MODULE_1_dayjs___default()().second());
384
+ }
385
+ return date;
386
+ };
387
+
374
388
  var defaultDisabledTime = {
375
389
  disabledHours: function disabledHours() {
376
390
  return [];
@@ -822,7 +836,7 @@ function initializeStr(str, format) {
822
836
  return '' + _day10 + dateDelimater + _month10 + dateDelimater + _year10;
823
837
  } else if (inputStrLength >= 1 && inputStrLength <= 8) {
824
838
  var _dateStr6 = inputStr.slice(0, 2);
825
- var _monthStr6 = inputStr.slice(2, 4);
839
+ var _monthStr6 = inputStr.slice(2, 4) || getCurrentMonth();
826
840
  var _yearStr6 = inputStr.slice(4, inputStr.length);
827
841
  var _validateYear11 = validateCalendarYear(_yearStr6);
828
842
 
@@ -866,7 +880,7 @@ function initializeStr(str, format) {
866
880
  return '' + _day12 + dateDelimater + _month12 + dateDelimater + _year12 + ' ' + time;
867
881
  } else if (_datePart2.length >= 1 && _datePart2.length <= 8) {
868
882
  var _dateStr7 = _datePart2.slice(0, 2);
869
- var _monthStr7 = _datePart2.slice(2, 4);
883
+ var _monthStr7 = _datePart2.slice(2, 4) || getCurrentMonth();
870
884
  var _yearStr7 = _datePart2.slice(4, _datePart2.length);
871
885
  var _timeParts2 = tokenizeFormattedDate(inputStr, format);
872
886
  time = validateTime(_timeParts2[1] + ':' + _timeParts2[2]);
@@ -2760,7 +2774,8 @@ var Calendar = function (_React$Component) {
2760
2774
  _this.state = {
2761
2775
  mode: _this.props.mode || 'date',
2762
2776
  value: getMomentObjectIfValid(props.value) || getMomentObjectIfValid(props.defaultValue) || __WEBPACK_IMPORTED_MODULE_9_dayjs___default()(),
2763
- selectedValue: props.selectedValue || props.defaultSelectedValue
2777
+ selectedValue: props.selectedValue || props.defaultSelectedValue,
2778
+ currentStatus: __WEBPACK_IMPORTED_MODULE_17__util__["a" /* CALENDAR_STATUS */].SPECIFIC_TIME
2764
2779
  };
2765
2780
  return _this;
2766
2781
  }
@@ -2808,10 +2823,11 @@ var Calendar = function (_React$Component) {
2808
2823
  showWeekNumber = props.showWeekNumber;
2809
2824
  var value = state.value,
2810
2825
  selectedValue = state.selectedValue,
2811
- mode = state.mode;
2826
+ mode = state.mode,
2827
+ currentStatus = state.currentStatus;
2812
2828
 
2813
2829
  var showTimePicker = mode === 'time';
2814
- var disabledTimeConfig = showTimePicker && disabledTime && timePicker ? Object(__WEBPACK_IMPORTED_MODULE_17__util__["c" /* getTimeConfig */])(selectedValue, disabledTime) : null;
2830
+ var disabledTimeConfig = showTimePicker && disabledTime && timePicker ? Object(__WEBPACK_IMPORTED_MODULE_17__util__["d" /* getTimeConfig */])(selectedValue, disabledTime) : null;
2815
2831
 
2816
2832
  var timePickerEle = null;
2817
2833
 
@@ -2833,9 +2849,10 @@ var Calendar = function (_React$Component) {
2833
2849
  timePickerEle = __WEBPACK_IMPORTED_MODULE_4_react___default.a.cloneElement(timePicker, timePickerProps);
2834
2850
  }
2835
2851
  var calendarInputPlaceholder = dateInputPlaceholder || (Array.isArray(this.getFormat()) ? this.getFormat()[0] : this.getFormat());
2852
+ var inputFormat = Array.isArray(this.getFormat()) ? this.getFormat() : [this.getFormat()];
2836
2853
 
2837
2854
  var dateInputElement = props.showDateInput ? __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_16__date_DateInput__["a" /* default */], {
2838
- format: this.getFormat(),
2855
+ format: inputFormat,
2839
2856
  key: 'date-input',
2840
2857
  value: value,
2841
2858
  locale: locale,
@@ -2900,7 +2917,8 @@ var Calendar = function (_React$Component) {
2900
2917
  onSelect: this.onDateTableSelect,
2901
2918
  disabledDate: disabledDate,
2902
2919
  showWeekNumber: showWeekNumber,
2903
- firstDayOfWeek: firstDayOfWeek
2920
+ firstDayOfWeek: firstDayOfWeek,
2921
+ currentStatus: currentStatus
2904
2922
  })
2905
2923
  ),
2906
2924
  __WEBPACK_IMPORTED_MODULE_4_react___default.a.createElement(__WEBPACK_IMPORTED_MODULE_12__calendar_CalendarFooter__["a" /* default */], {
@@ -2932,7 +2950,7 @@ var Calendar = function (_React$Component) {
2932
2950
  onSelect: this.onDateTableSelect,
2933
2951
  onClickRightPanelTime: onClickRightPanelTime,
2934
2952
  defaultMinutesTime: this.props.defaultMinutesTime,
2935
- format: this.getFormat()
2953
+ format: inputFormat
2936
2954
  })
2937
2955
  )
2938
2956
  ));
@@ -3075,6 +3093,7 @@ var _initialiseProps = function _initialiseProps() {
3075
3093
  this.onClear = function () {
3076
3094
  _this2.onSelect(null);
3077
3095
  _this2.props.onClear();
3096
+ _this2.setState({ currentStatus: __WEBPACK_IMPORTED_MODULE_17__util__["a" /* CALENDAR_STATUS */].CURRENT_TIME });
3078
3097
  };
3079
3098
 
3080
3099
  this.onOk = function () {
@@ -3101,10 +3120,11 @@ var _initialiseProps = function _initialiseProps() {
3101
3120
  var timePicker = _this2.props.timePicker;
3102
3121
  var selectedValue = _this2.state.selectedValue;
3103
3122
 
3123
+ _this2.setState({ currentStatus: __WEBPACK_IMPORTED_MODULE_17__util__["a" /* CALENDAR_STATUS */].SPECIFIC_TIME });
3104
3124
  if (!selectedValue && timePicker) {
3105
3125
  var timePickerDefaultValue = timePicker.props.defaultValue;
3106
3126
  if (timePickerDefaultValue) {
3107
- Object(__WEBPACK_IMPORTED_MODULE_17__util__["i" /* syncTime */])(timePickerDefaultValue, value);
3127
+ Object(__WEBPACK_IMPORTED_MODULE_17__util__["k" /* syncTime */])(timePickerDefaultValue, value);
3108
3128
  }
3109
3129
  }
3110
3130
  _this2.onSelect(value);
@@ -3113,7 +3133,7 @@ var _initialiseProps = function _initialiseProps() {
3113
3133
  this.onToday = function () {
3114
3134
  var value = _this2.state.value;
3115
3135
 
3116
- var now = Object(__WEBPACK_IMPORTED_MODULE_17__util__["e" /* getTodayTime */])(value);
3136
+ var now = Object(__WEBPACK_IMPORTED_MODULE_17__util__["f" /* getTodayTime */])(value);
3117
3137
  _this2.onSelect(now, {
3118
3138
  source: 'todayButton'
3119
3139
  });
@@ -5316,13 +5336,14 @@ var DateTBody = function (_React$Component) {
5316
5336
  dateRender = props.dateRender,
5317
5337
  disabledDate = props.disabledDate,
5318
5338
  hoverValue = props.hoverValue,
5319
- firstDayOfWeek = props.firstDayOfWeek;
5339
+ firstDayOfWeek = props.firstDayOfWeek,
5340
+ currentStatus = props.currentStatus;
5320
5341
 
5321
5342
  var iIndex = void 0;
5322
5343
  var jIndex = void 0;
5323
5344
  var current = void 0;
5324
5345
  var dateTable = [];
5325
- var today = Object(__WEBPACK_IMPORTED_MODULE_7__util___["e" /* getTodayTime */])(value);
5346
+ var today = Object(__WEBPACK_IMPORTED_MODULE_7__util___["f" /* getTodayTime */])(value);
5326
5347
  var cellClass = prefixCls + '-cell';
5327
5348
  var weekNumberCellClass = prefixCls + '-week-number-cell';
5328
5349
  var dateClass = prefixCls + '-date';
@@ -5384,7 +5405,7 @@ var DateTBody = function (_React$Component) {
5384
5405
  for (jIndex = 0; jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT; jIndex++) {
5385
5406
  var next = null;
5386
5407
  var last = null;
5387
- current = dateTable[passed];
5408
+ current = Object(__WEBPACK_IMPORTED_MODULE_7__util___["j" /* syncCurrentTime */])(dateTable[passed], currentStatus);
5388
5409
  if (jIndex < DATE_ROW_COLUMN_COUNT.DATE_COL_COUNT - 1) {
5389
5410
  next = dateTable[passed + 1];
5390
5411
  }
@@ -5497,7 +5518,7 @@ var DateTBody = function (_React$Component) {
5497
5518
  onClick: disabled ? undefined : props.onSelect.bind(null, current),
5498
5519
  onMouseEnter: disabled ? undefined : props.onDayHover && props.onDayHover.bind(null, current) || undefined,
5499
5520
  role: 'gridcell',
5500
- title: Object(__WEBPACK_IMPORTED_MODULE_7__util___["d" /* getTitleString */])(current),
5521
+ title: Object(__WEBPACK_IMPORTED_MODULE_7__util___["e" /* getTitleString */])(current),
5501
5522
  className: cls
5502
5523
  },
5503
5524
  dateHtml
@@ -5536,7 +5557,8 @@ DateTBody.propTypes = {
5536
5557
  value: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.object,
5537
5558
  hoverValue: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.any,
5538
5559
  showWeekNumber: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.bool,
5539
- firstDayOfWeek: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string
5560
+ firstDayOfWeek: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string,
5561
+ currentStatus: __WEBPACK_IMPORTED_MODULE_4_prop_types___default.a.string
5540
5562
  };
5541
5563
  DateTBody.defaultProps = {
5542
5564
  hoverValue: []
@@ -6067,7 +6089,7 @@ var MonthTable = function (_Component) {
6067
6089
  months[rowIndex] = [];
6068
6090
  for (var colIndex = 0; colIndex < COL; colIndex++) {
6069
6091
  current = current.month(index);
6070
- var content = Object(__WEBPACK_IMPORTED_MODULE_6__util_index__["b" /* getMonthName */])(current);
6092
+ var content = Object(__WEBPACK_IMPORTED_MODULE_6__util_index__["c" /* getMonthName */])(current);
6071
6093
  months[rowIndex][colIndex] = {
6072
6094
  value: index,
6073
6095
  content: content,
@@ -6084,7 +6106,7 @@ var MonthTable = function (_Component) {
6084
6106
 
6085
6107
  var props = this.props;
6086
6108
  var value = this.state.value;
6087
- var today = Object(__WEBPACK_IMPORTED_MODULE_6__util_index__["e" /* getTodayTime */])(value);
6109
+ var today = Object(__WEBPACK_IMPORTED_MODULE_6__util_index__["f" /* getTodayTime */])(value);
6088
6110
  var months = this.months();
6089
6111
  var currentMonth = value.month();
6090
6112
  var prefixCls = props.prefixCls,
@@ -6720,7 +6742,7 @@ function TodayButton(_ref) {
6720
6742
  text = _ref.text;
6721
6743
 
6722
6744
  var localeNow = (!text && timePicker ? locale.now : text) || locale.today;
6723
- var disabledToday = disabledDate && !Object(__WEBPACK_IMPORTED_MODULE_1__util___["h" /* isAllowedDate */])(Object(__WEBPACK_IMPORTED_MODULE_1__util___["e" /* getTodayTime */])(value), disabledDate);
6745
+ var disabledToday = disabledDate && !Object(__WEBPACK_IMPORTED_MODULE_1__util___["i" /* isAllowedDate */])(Object(__WEBPACK_IMPORTED_MODULE_1__util___["f" /* getTodayTime */])(value), disabledDate);
6724
6746
  var isDisabled = disabledToday || disabled;
6725
6747
  var disabledTodayClass = isDisabled ? prefixCls + '-today-btn-disabled' : '';
6726
6748
  return __WEBPACK_IMPORTED_MODULE_0_react___default.a.createElement(
@@ -6729,7 +6751,7 @@ function TodayButton(_ref) {
6729
6751
  className: prefixCls + '-today-btn ' + disabledTodayClass,
6730
6752
  role: 'button',
6731
6753
  onClick: isDisabled ? null : onToday,
6732
- title: Object(__WEBPACK_IMPORTED_MODULE_1__util___["f" /* getTodayTimeStr */])(value)
6754
+ title: Object(__WEBPACK_IMPORTED_MODULE_1__util___["g" /* getTodayTimeStr */])(value)
6733
6755
  },
6734
6756
  localeNow
6735
6757
  );
@@ -6913,7 +6935,7 @@ var CalendarRightPanel = function (_React$Component) {
6913
6935
  'ul',
6914
6936
  null,
6915
6937
  this.times.map(function (time) {
6916
- var parts = Object(__WEBPACK_IMPORTED_MODULE_6__util__["j" /* tokenizeFormattedDate */])(selectedDate, _this2.state.localeFormat);
6938
+ var parts = Object(__WEBPACK_IMPORTED_MODULE_6__util__["l" /* tokenizeFormattedDate */])(selectedDate, _this2.state.localeFormat);
6917
6939
  var current = __WEBPACK_IMPORTED_MODULE_5_dayjs___default()(selectedDate + ' ' + time).year(parts[0]).month(parts[1] - 1).date(parts[2]); // eslint-disable-line max-len
6918
6940
  current = isZhcn ? current.locale('zh-cn') : current.locale('en-gb');
6919
6941
  return __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(
@@ -6988,7 +7010,7 @@ function noop() {}
6988
7010
  function getNowByCurrentStateValue(value) {
6989
7011
  var ret = void 0;
6990
7012
  if (value) {
6991
- ret = Object(__WEBPACK_IMPORTED_MODULE_7__util_index__["e" /* getTodayTime */])(value);
7013
+ ret = Object(__WEBPACK_IMPORTED_MODULE_7__util_index__["f" /* getTodayTime */])(value);
6992
7014
  } else {
6993
7015
  ret = __WEBPACK_IMPORTED_MODULE_6_dayjs___default()();
6994
7016
  }
@@ -7069,7 +7091,7 @@ var calendarMixinWrapper = function calendarMixinWrapper(ComposeComponent) {
7069
7091
  }, _this.isAllowedDate = function (value) {
7070
7092
  var disabledDate = _this.props.disabledDate;
7071
7093
  var disabledTime = _this.props.disabledTime;
7072
- return Object(__WEBPACK_IMPORTED_MODULE_7__util_index__["h" /* isAllowedDate */])(value, disabledDate, disabledTime);
7094
+ return Object(__WEBPACK_IMPORTED_MODULE_7__util_index__["i" /* isAllowedDate */])(value, disabledDate, disabledTime);
7073
7095
  }, _temp), __WEBPACK_IMPORTED_MODULE_1_babel_runtime_helpers_possibleConstructorReturn___default()(_this, _ret);
7074
7096
  }
7075
7097
 
@@ -7267,14 +7289,11 @@ var commonMixinWrapper = function commonMixinWrapper(ComposeComponent) {
7267
7289
 
7268
7290
 
7269
7291
 
7292
+
7270
7293
  var customParseFormat = __webpack_require__(124);
7271
7294
 
7272
7295
  __WEBPACK_IMPORTED_MODULE_8_dayjs___default.a.extend(customParseFormat);
7273
7296
 
7274
- var cachedSelectionStart = void 0;
7275
- var cachedSelectionEnd = void 0;
7276
- var dateInputInstance = void 0;
7277
-
7278
7297
  var DateInput = function (_React$Component) {
7279
7298
  __WEBPACK_IMPORTED_MODULE_2_babel_runtime_helpers_inherits___default()(DateInput, _React$Component);
7280
7299
 
@@ -7288,37 +7307,49 @@ var DateInput = function (_React$Component) {
7288
7307
  var selectedValue = props.selectedValue;
7289
7308
 
7290
7309
  _this.state = {
7291
- str: Object(__WEBPACK_IMPORTED_MODULE_9__util__["a" /* formatDate */])(selectedValue, _this.props.format),
7310
+ str: Object(__WEBPACK_IMPORTED_MODULE_9__util__["b" /* formatDate */])(selectedValue, _this.props.format),
7292
7311
  hasFocus: false,
7312
+ isInputEmpty: false,
7293
7313
  localFormat: _this.props.format[0]
7294
7314
  };
7315
+ _this.dateInputInstance = __WEBPACK_IMPORTED_MODULE_3_react___default.a.createRef();
7316
+ _this.cachedSelectionStart = null;
7317
+ _this.cachedSelectionEnd = null;
7295
7318
  return _this;
7296
7319
  }
7297
7320
 
7321
+ DateInput.prototype.componentDidMount = function componentDidMount() {
7322
+ var _this2 = this;
7323
+
7324
+ setTimeout(function () {
7325
+ _this2.focus();
7326
+ }, 1);
7327
+ };
7328
+
7298
7329
  DateInput.prototype.componentDidUpdate = function componentDidUpdate() {
7299
- if (dateInputInstance && this.state.hasFocus && !(cachedSelectionStart === 0 && cachedSelectionEnd === 0)) {
7300
- dateInputInstance.setSelectionRange(cachedSelectionStart, cachedSelectionEnd);
7330
+ if (this.dateInputInstance.current && this.state.hasFocus && !(this.cachedSelectionStart === 0 && this.cachedSelectionEnd === 0)) {
7331
+ this.dateInputInstance.current.setSelectionRange(this.cachedSelectionStart, this.cachedSelectionEnd);
7301
7332
  }
7302
7333
  };
7303
7334
 
7304
7335
  DateInput.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, state) {
7305
7336
  var newState = {};
7306
7337
 
7307
- if (dateInputInstance) {
7308
- cachedSelectionStart = dateInputInstance.selectionStart;
7309
- cachedSelectionEnd = dateInputInstance.selectionEnd;
7338
+ if (this.dateInputInstance.current) {
7339
+ this.cachedSelectionStart = this.dateInputInstance.current.selectionStart;
7340
+ this.cachedSelectionEnd = this.dateInputInstance.current.selectionEnd;
7310
7341
  }
7311
7342
  // when popup show, click body will call this, bug!
7312
7343
  var selectedValue = nextProps.selectedValue;
7313
7344
  if (!state.hasFocus) {
7314
- newState = { str: Object(__WEBPACK_IMPORTED_MODULE_9__util__["a" /* formatDate */])(selectedValue, nextProps.format) };
7345
+ newState = { str: Object(__WEBPACK_IMPORTED_MODULE_9__util__["b" /* formatDate */])(selectedValue, nextProps.format) };
7315
7346
  }
7316
7347
 
7317
7348
  return newState;
7318
7349
  };
7319
7350
 
7320
7351
  DateInput.getInstance = function getInstance() {
7321
- return dateInputInstance;
7352
+ return this.dateInputInstance.current;
7322
7353
  };
7323
7354
 
7324
7355
  DateInput.prototype.render = function render() {
@@ -7337,7 +7368,7 @@ var DateInput = function (_React$Component) {
7337
7368
  'div',
7338
7369
  { className: prefixCls + '-date-input-wrap' },
7339
7370
  __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement('input', {
7340
- ref: this.saveDateInput,
7371
+ ref: this.dateInputInstance,
7341
7372
  className: prefixCls + '-input',
7342
7373
  value: str,
7343
7374
  disabled: props.disabled,
@@ -7346,10 +7377,11 @@ var DateInput = function (_React$Component) {
7346
7377
  onKeyDown: this.onKeyDown,
7347
7378
  onFocus: this.onFocus,
7348
7379
  onBlur: this.onBlur,
7349
- inputMode: inputMode
7380
+ inputMode: inputMode,
7381
+ tabIndex: '0'
7350
7382
  })
7351
7383
  ),
7352
- props.showClear ? __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(
7384
+ props.showClear && __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement(
7353
7385
  'a',
7354
7386
  {
7355
7387
  role: 'button',
@@ -7357,7 +7389,7 @@ var DateInput = function (_React$Component) {
7357
7389
  onClick: this.onClear
7358
7390
  },
7359
7391
  clearIcon || __WEBPACK_IMPORTED_MODULE_3_react___default.a.createElement('span', { className: prefixCls + '-clear-btn' })
7360
- ) : null
7392
+ )
7361
7393
  );
7362
7394
  };
7363
7395
 
@@ -7382,60 +7414,64 @@ DateInput.propTypes = {
7382
7414
  };
7383
7415
 
7384
7416
  var _initialiseProps = function _initialiseProps() {
7385
- var _this2 = this;
7417
+ var _this3 = this;
7386
7418
 
7387
7419
  this.onClear = function () {
7388
- _this2.setState({ str: '' });
7389
- _this2.props.onClear(null);
7420
+ _this3.setState({ str: '' });
7421
+ _this3.props.onClear(null);
7390
7422
  };
7391
7423
 
7392
7424
  this.onInputChange = function (event) {
7393
7425
  var str = event.target.value;
7394
- var calendarStr = Object(__WEBPACK_IMPORTED_MODULE_9__util__["g" /* initializeStr */])(str, _this2.state.localFormat) || '';
7395
- var _props = _this2.props,
7426
+ var calendarStr = Object(__WEBPACK_IMPORTED_MODULE_9__util__["h" /* initializeStr */])(str, _this3.state.localFormat) || '';
7427
+ var _props = _this3.props,
7396
7428
  disabledDate = _props.disabledDate,
7397
7429
  format = _props.format,
7398
7430
  onChange = _props.onChange,
7399
7431
  selectedValue = _props.selectedValue;
7400
7432
 
7401
- // 没有内容,合法并直接退出
7402
7433
 
7403
- if (!calendarStr) {
7404
- onChange(null);
7405
- _this2.setState({ str: '' });
7434
+ if (!str || !calendarStr) {
7435
+ _this3.setState({ isInputEmpty: true });
7436
+ _this3.onClear();
7406
7437
  return;
7407
7438
  }
7439
+
7440
+ if (_this3.state.isInputEmpty) {
7441
+ _this3.setState({ isInputEmpty: false });
7442
+ }
7443
+
7408
7444
  var parsed = __WEBPACK_IMPORTED_MODULE_8_dayjs___default()(calendarStr, format[0]);
7409
- var value = _this2.props.value.clone();
7445
+ var value = _this3.props.value.clone();
7410
7446
  value = value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());
7411
7447
 
7412
7448
  if (!value || disabledDate && disabledDate(value)) {
7413
- _this2.setState({ str: str });
7449
+ _this3.setState({ str: str });
7414
7450
  return;
7415
7451
  }
7416
7452
 
7417
7453
  if (selectedValue !== value || selectedValue && value && !selectedValue.isSame(value)) {
7418
- _this2.setState({ str: str });
7454
+ _this3.setState({ str: str });
7419
7455
  onChange(value);
7420
7456
  }
7421
7457
  };
7422
7458
 
7423
7459
  this.onFocus = function () {
7424
- _this2.setState({ hasFocus: true });
7460
+ _this3.setState({ hasFocus: true });
7425
7461
  };
7426
7462
 
7427
7463
  this.onBlur = function () {
7428
- _this2.setState(function (prevState, prevProps) {
7464
+ _this3.setState(function (prevState, prevProps) {
7429
7465
  return {
7430
7466
  hasFocus: false,
7431
- str: Object(__WEBPACK_IMPORTED_MODULE_9__util__["a" /* formatDate */])(prevProps.value, prevProps.format)
7467
+ str: Object(__WEBPACK_IMPORTED_MODULE_9__util__["b" /* formatDate */])(prevProps.value, prevProps.format)
7432
7468
  };
7433
7469
  });
7434
7470
  };
7435
7471
 
7436
7472
  this.onKeyDown = function (event) {
7437
7473
  var keyCode = event.keyCode;
7438
- var _props2 = _this2.props,
7474
+ var _props2 = _this3.props,
7439
7475
  onSelect = _props2.onSelect,
7440
7476
  value = _props2.value,
7441
7477
  disabledDate = _props2.disabledDate;
@@ -7443,25 +7479,25 @@ var _initialiseProps = function _initialiseProps() {
7443
7479
  if (keyCode === __WEBPACK_IMPORTED_MODULE_6_rc_util_es_KeyCode__["a" /* default */].ENTER && onSelect) {
7444
7480
  var validateDate = !disabledDate || !disabledDate(value);
7445
7481
  if (validateDate) {
7446
- onSelect(value.clone());
7482
+ if (_this3.state.isInputEmpty) {
7483
+ onSelect(null);
7484
+ } else {
7485
+ onSelect(value.clone());
7486
+ }
7447
7487
  }
7448
7488
  event.preventDefault();
7449
7489
  }
7450
7490
  };
7451
7491
 
7452
7492
  this.getRootDOMNode = function () {
7453
- return __WEBPACK_IMPORTED_MODULE_4_react_dom___default.a.findDOMNode(_this2);
7493
+ return __WEBPACK_IMPORTED_MODULE_4_react_dom___default.a.findDOMNode(_this3);
7454
7494
  };
7455
7495
 
7456
7496
  this.focus = function () {
7457
- if (dateInputInstance) {
7458
- dateInputInstance.focus();
7497
+ if (_this3.dateInputInstance.current) {
7498
+ _this3.dateInputInstance.current.focus();
7459
7499
  }
7460
7500
  };
7461
-
7462
- this.saveDateInput = function (dateInput) {
7463
- dateInputInstance = dateInput;
7464
- };
7465
7501
  };
7466
7502
 
7467
7503
  Object(__WEBPACK_IMPORTED_MODULE_7_react_lifecycles_compat__["a" /* polyfill */])(DateInput);