@seafile/seafile-calendar 0.0.2 → 0.0.3-Apoi0.1

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 (46) hide show
  1. package/README.md +15 -0
  2. package/assets/index.css +44 -43
  3. package/dist/rc-calendar.css +44 -43
  4. package/dist/rc-calendar.css.map +1 -1
  5. package/dist/rc-calendar.js +1170 -5266
  6. package/dist/rc-calendar.js.map +1 -1
  7. package/dist/rc-calendar.min.css +44 -43
  8. package/dist/rc-calendar.min.css.map +1 -1
  9. package/dist/rc-calendar.min.js +1 -1
  10. package/es/Calendar.js +32 -10
  11. package/es/FullCalendar.js +2 -2
  12. package/es/MonthCalendar.js +8 -8
  13. package/es/RangeCalendar.js +4 -4
  14. package/es/calendar/CalendarHeader.js +2 -2
  15. package/es/calendar/CalendarRightPanel.js +47 -27
  16. package/es/date/DateConstants.js +16 -1
  17. package/es/date/DateInput.js +19 -42
  18. package/es/date/DateTBody.js +19 -11
  19. package/es/date/DateTHead.js +15 -8
  20. package/es/decade/DecadePanel.js +3 -3
  21. package/es/full-calendar/CalendarHeader.js +3 -3
  22. package/es/mixin/CalendarMixin.js +2 -2
  23. package/es/month/MonthTable.js +5 -5
  24. package/es/util/dayjs.js +17 -0
  25. package/es/util/index.js +451 -8
  26. package/es/year/YearPanel.js +5 -13
  27. package/index.d.ts +12 -11
  28. package/lib/Calendar.js +43 -11
  29. package/lib/FullCalendar.js +3 -3
  30. package/lib/MonthCalendar.js +9 -9
  31. package/lib/RangeCalendar.js +7 -7
  32. package/lib/calendar/CalendarHeader.js +2 -2
  33. package/lib/calendar/CalendarRightPanel.js +50 -29
  34. package/lib/date/DateConstants.js +16 -1
  35. package/lib/date/DateInput.js +20 -42
  36. package/lib/date/DateTBody.js +19 -11
  37. package/lib/date/DateTHead.js +15 -11
  38. package/lib/decade/DecadePanel.js +3 -3
  39. package/lib/full-calendar/CalendarHeader.js +3 -3
  40. package/lib/mixin/CalendarMixin.js +3 -3
  41. package/lib/month/MonthTable.js +5 -5
  42. package/lib/util/dayjs.js +46 -0
  43. package/lib/util/index.js +465 -9
  44. package/lib/year/YearPanel.js +5 -13
  45. package/package.json +7 -3
  46. package/HISTORY.md +0 -263
package/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  // Definitions: https://github.com/react-component/calendar
5
5
 
6
6
  import * as React from 'react';
7
- import { Moment } from 'moment';
7
+ import { Dayjs } from 'dayjs';
8
8
 
9
9
  export type Mode = 'time' | 'date' | 'month' | 'year' | 'decade';
10
10
 
@@ -12,9 +12,9 @@ export interface Props {
12
12
  prefixCls?: string;
13
13
  className?: string;
14
14
  style?: React.CSSProperties;
15
- defaultValue?: Moment;
16
- value?: Moment;
17
- selectedValue?: Moment;
15
+ defaultValue?: Dayjs;
16
+ value?: Dayjs;
17
+ selectedValue?: Dayjs;
18
18
  mode?: Mode;
19
19
  locale?: object;
20
20
  format?: string | string[];
@@ -22,20 +22,21 @@ export interface Props {
22
22
  showWeekNumber?: boolean;
23
23
  showToday?: boolean;
24
24
  showOk?: boolean;
25
- onSelect?: (date: Moment) => void;
25
+ onSelect?: (date: Dayjs) => void;
26
26
  onOk?: () => void;
27
27
  onKeyDown?: () => void;
28
+ onClickRightPanelTime?: () => void;
28
29
  timePicker?: React.ReactNode;
29
30
  dateInputPlaceholder?: string;
30
31
  onClear?: () => void;
31
- onChange?: (date: Moment | null) => void;
32
- onPanelChange?: (date: Moment | null, mode: Mode) => void;
33
- disabledDate?: (current: Moment | undefined) => boolean;
34
- disabledTime?: (current: Moment | undefined) => object;
35
- dateRender?: (current: Moment, value: Moment) => React.ReactNode;
32
+ onChange?: (date: Dayjs | null) => void;
33
+ onPanelChange?: (date: Dayjs | null, mode: Mode) => void;
34
+ disabledDate?: (current: Dayjs | undefined) => boolean;
35
+ disabledTime?: (current: Dayjs | undefined) => object;
36
+ dateRender?: (current: Dayjs, value: Dayjs) => React.ReactNode;
36
37
  renderFooter?: () => React.ReactNode;
37
38
  renderSidebar?: () => React.ReactNode;
38
- inputMode?:String
39
+ inputMode?: string;
39
40
  }
40
41
 
41
42
  export default class ReactCalendar extends React.Component<Props> {}
package/lib/Calendar.js CHANGED
@@ -36,6 +36,10 @@ var _KeyCode2 = _interopRequireDefault(_KeyCode);
36
36
 
37
37
  var _reactLifecyclesCompat = require('react-lifecycles-compat');
38
38
 
39
+ var _dayjs = require('dayjs');
40
+
41
+ var _dayjs2 = _interopRequireDefault(_dayjs);
42
+
39
43
  var _DateTable = require('./date/DateTable');
40
44
 
41
45
  var _DateTable2 = _interopRequireDefault(_DateTable);
@@ -64,16 +68,28 @@ var _util = require('./util');
64
68
 
65
69
  var _toTime = require('./util/toTime');
66
70
 
67
- var _moment = require('moment');
71
+ var _localeData = require('dayjs/plugin/localeData');
72
+
73
+ var _localeData2 = _interopRequireDefault(_localeData);
74
+
75
+ var _utc = require('dayjs/plugin/utc');
68
76
 
69
- var _moment2 = _interopRequireDefault(_moment);
77
+ var _utc2 = _interopRequireDefault(_utc);
78
+
79
+ var _weekOfYear = require('dayjs/plugin/weekOfYear');
80
+
81
+ var _weekOfYear2 = _interopRequireDefault(_weekOfYear);
70
82
 
71
83
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
72
84
 
85
+ _dayjs2['default'].extend(_utc2['default']);
86
+ _dayjs2['default'].extend(_localeData2['default']);
87
+ _dayjs2['default'].extend(_weekOfYear2['default']);
88
+
73
89
  function noop() {}
74
90
 
75
91
  var getMomentObjectIfValid = function getMomentObjectIfValid(date) {
76
- if (_moment2['default'].isMoment(date) && date.isValid()) {
92
+ if (_dayjs2['default'].isDayjs(date) && date.isValid()) {
77
93
  return date;
78
94
  }
79
95
  return false;
@@ -91,7 +107,7 @@ var Calendar = function (_React$Component) {
91
107
 
92
108
  _this.state = {
93
109
  mode: _this.props.mode || 'date',
94
- value: getMomentObjectIfValid(props.value) || getMomentObjectIfValid(props.defaultValue) || (0, _moment2['default'])(),
110
+ value: getMomentObjectIfValid(props.value) || getMomentObjectIfValid(props.defaultValue) || (0, _dayjs2['default'])(),
95
111
  selectedValue: props.selectedValue || props.defaultSelectedValue
96
112
  };
97
113
  return _this;
@@ -130,11 +146,14 @@ var Calendar = function (_React$Component) {
130
146
  disabledDate = props.disabledDate,
131
147
  dateInputPlaceholder = props.dateInputPlaceholder,
132
148
  timePicker = props.timePicker,
149
+ onClickRightPanelTime = props.onClickRightPanelTime,
133
150
  disabledTime = props.disabledTime,
134
151
  clearIcon = props.clearIcon,
135
152
  renderFooter = props.renderFooter,
136
153
  inputMode = props.inputMode,
137
- showTimeAndHour = props.showTimeAndHour;
154
+ showHourAndMinute = props.showHourAndMinute,
155
+ firstDayOfWeek = props.firstDayOfWeek,
156
+ showWeekNumber = props.showWeekNumber;
138
157
  var value = state.value,
139
158
  selectedValue = state.selectedValue,
140
159
  mode = state.mode;
@@ -161,13 +180,14 @@ var Calendar = function (_React$Component) {
161
180
 
162
181
  timePickerEle = _react2['default'].cloneElement(timePicker, timePickerProps);
163
182
  }
183
+ var calendarInputPlaceholder = dateInputPlaceholder || (Array.isArray(this.getFormat()) ? this.getFormat()[0] : this.getFormat());
164
184
 
165
185
  var dateInputElement = props.showDateInput ? _react2['default'].createElement(_DateInput2['default'], {
166
186
  format: this.getFormat(),
167
187
  key: 'date-input',
168
188
  value: value,
169
189
  locale: locale,
170
- placeholder: dateInputPlaceholder,
190
+ placeholder: calendarInputPlaceholder,
171
191
  showClear: true,
172
192
  disabledTime: disabledTime,
173
193
  disabledDate: disabledDate,
@@ -227,7 +247,8 @@ var Calendar = function (_React$Component) {
227
247
  dateRender: props.dateRender,
228
248
  onSelect: this.onDateTableSelect,
229
249
  disabledDate: disabledDate,
230
- showWeekNumber: props.showWeekNumber
250
+ showWeekNumber: showWeekNumber,
251
+ firstDayOfWeek: firstDayOfWeek
231
252
  })
232
253
  ),
233
254
  _react2['default'].createElement(_CalendarFooter2['default'], {
@@ -252,10 +273,14 @@ var Calendar = function (_React$Component) {
252
273
  onCloseTimePicker: this.closeTimePicker
253
274
  })
254
275
  ),
255
- !showTimeAndHour && _react2['default'].createElement(_CalendarRightPanel2['default'], {
276
+ showHourAndMinute && _react2['default'].createElement(_CalendarRightPanel2['default'], {
256
277
  prefixCls: prefixCls,
257
278
  value: value,
258
- onSelect: this.onDateTableSelect
279
+ locale: locale,
280
+ onSelect: this.onDateTableSelect,
281
+ onClickRightPanelTime: onClickRightPanelTime,
282
+ defaultMinutesTime: this.props.defaultMinutesTime,
283
+ format: this.getFormat()
259
284
  })
260
285
  )
261
286
  ));
@@ -283,6 +308,8 @@ Calendar.propTypes = (0, _extends3['default'])({}, _CalendarMixin.calendarMixinP
283
308
  showWeekNumber: _propTypes2['default'].bool,
284
309
  showToday: _propTypes2['default'].bool,
285
310
  showOk: _propTypes2['default'].bool,
311
+ showHourAndMinute: _propTypes2['default'].bool,
312
+ defaultMinutesTime: _propTypes2['default'].string,
286
313
  onSelect: _propTypes2['default'].func,
287
314
  onOk: _propTypes2['default'].func,
288
315
  onKeyDown: _propTypes2['default'].func,
@@ -299,15 +326,20 @@ Calendar.propTypes = (0, _extends3['default'])({}, _CalendarMixin.calendarMixinP
299
326
  clearIcon: _propTypes2['default'].node,
300
327
  focusablePanel: _propTypes2['default'].bool,
301
328
  inputMode: _propTypes2['default'].string,
302
- onBlur: _propTypes2['default'].func
329
+ onBlur: _propTypes2['default'].func,
330
+ onClickRightPanelTime: _propTypes2['default'].func,
331
+ firstDayOfWeek: _propTypes2['default'].string
303
332
  });
304
333
  Calendar.defaultProps = (0, _extends3['default'])({}, _CalendarMixin.calendarMixinDefaultProps, _CommonMixin.defaultProp, {
305
334
  showToday: true,
306
335
  showDateInput: true,
336
+ showHourAndMinute: false,
307
337
  timePicker: null,
308
338
  onOk: noop,
309
339
  onPanelChange: noop,
310
- focusablePanel: true
340
+ onClickRightPanelTime: noop,
341
+ focusablePanel: true,
342
+ firstDayOfWeek: 'Sunday'
311
343
  });
312
344
 
313
345
  var _initialiseProps = function _initialiseProps() {
@@ -44,9 +44,9 @@ var _CalendarHeader = require('./full-calendar/CalendarHeader');
44
44
 
45
45
  var _CalendarHeader2 = _interopRequireDefault(_CalendarHeader);
46
46
 
47
- var _moment = require('moment');
47
+ var _dayjs = require('./util/dayjs');
48
48
 
49
- var _moment2 = _interopRequireDefault(_moment);
49
+ var _dayjs2 = _interopRequireDefault(_dayjs);
50
50
 
51
51
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
52
52
 
@@ -69,7 +69,7 @@ var FullCalendar = function (_React$Component) {
69
69
 
70
70
  _this.state = {
71
71
  type: type,
72
- value: props.value || props.defaultValue || (0, _moment2['default'])(),
72
+ value: props.value || props.defaultValue || (0, _dayjs2['default'])(),
73
73
  selectedValue: props.selectedValue || props.defaultSelectedValue
74
74
  };
75
75
  return _this;
@@ -44,9 +44,9 @@ var _CalendarMixin = require('./mixin/CalendarMixin');
44
44
 
45
45
  var _CommonMixin = require('./mixin/CommonMixin');
46
46
 
47
- var _moment = require('moment');
47
+ var _dayjs = require('./util/dayjs');
48
48
 
49
- var _moment2 = _interopRequireDefault(_moment);
49
+ var _dayjs2 = _interopRequireDefault(_dayjs);
50
50
 
51
51
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
52
52
 
@@ -68,26 +68,26 @@ var MonthCalendar = function (_React$Component) {
68
68
  switch (keyCode) {
69
69
  case _KeyCode2['default'].DOWN:
70
70
  value = stateValue.clone();
71
- value.add(3, 'months');
71
+ value = value.add(3, 'months');
72
72
  break;
73
73
  case _KeyCode2['default'].UP:
74
74
  value = stateValue.clone();
75
- value.add(-3, 'months');
75
+ value = value.add(-3, 'months');
76
76
  break;
77
77
  case _KeyCode2['default'].LEFT:
78
78
  value = stateValue.clone();
79
79
  if (ctrlKey) {
80
- value.add(-1, 'years');
80
+ value = value.add(-1, 'years');
81
81
  } else {
82
- value.add(-1, 'months');
82
+ value = value.add(-1, 'months');
83
83
  }
84
84
  break;
85
85
  case _KeyCode2['default'].RIGHT:
86
86
  value = stateValue.clone();
87
87
  if (ctrlKey) {
88
- value.add(1, 'years');
88
+ value = value.add(1, 'years');
89
89
  } else {
90
- value.add(1, 'months');
90
+ value = value.add(1, 'months');
91
91
  }
92
92
  break;
93
93
  case _KeyCode2['default'].ENTER:
@@ -114,7 +114,7 @@ var MonthCalendar = function (_React$Component) {
114
114
 
115
115
  _this.state = {
116
116
  mode: 'month',
117
- value: props.value || props.defaultValue || (0, _moment2['default'])(),
117
+ value: props.value || props.defaultValue || (0, _dayjs2['default'])(),
118
118
  selectedValue: props.selectedValue || props.defaultSelectedValue
119
119
  };
120
120
  return _this;
@@ -26,10 +26,6 @@ var _propTypes = require('prop-types');
26
26
 
27
27
  var _propTypes2 = _interopRequireDefault(_propTypes);
28
28
 
29
- var _moment = require('moment');
30
-
31
- var _moment2 = _interopRequireDefault(_moment);
32
-
33
29
  var _classnames2 = require('classnames');
34
30
 
35
31
  var _classnames3 = _interopRequireDefault(_classnames2);
@@ -62,6 +58,10 @@ var _util = require('./util');
62
58
 
63
59
  var _toTime = require('./util/toTime');
64
60
 
61
+ var _dayjs = require('./util/dayjs');
62
+
63
+ var _dayjs2 = _interopRequireDefault(_dayjs);
64
+
65
65
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
66
66
 
67
67
  function noop() {}
@@ -103,7 +103,7 @@ function normalizeAnchor(props, init) {
103
103
  var selectedValue = props.selectedValue || init && props.defaultSelectedValue;
104
104
  var value = props.value || init && props.defaultValue;
105
105
  var normalizedValue = value ? getValueFromSelectedValue(value) : getValueFromSelectedValue(selectedValue);
106
- return !isEmptyArray(normalizedValue) ? normalizedValue : init && [(0, _moment2['default'])(), (0, _moment2['default'])().add(1, 'months')];
106
+ return !isEmptyArray(normalizedValue) ? normalizedValue : init && [(0, _dayjs2['default'])(), (0, _dayjs2['default'])().add(1, 'months')];
107
107
  }
108
108
 
109
109
  function generateOptions(length, extraOptionGen) {
@@ -462,7 +462,7 @@ var _initialiseProps = function _initialiseProps() {
462
462
  var nextHoverValue = void 0;
463
463
 
464
464
  if (!firstSelectedValue) {
465
- currentHoverTime = hoverValue[0] || selectedValue[0] || value[0] || (0, _moment2['default'])();
465
+ currentHoverTime = hoverValue[0] || selectedValue[0] || value[0] || (0, _dayjs2['default'])();
466
466
  nextHoverTime = func(currentHoverTime);
467
467
  nextHoverValue = [nextHoverTime];
468
468
  _this2.fireHoverValueChange(nextHoverValue);
@@ -852,7 +852,7 @@ var _initialiseProps = function _initialiseProps() {
852
852
 
853
853
  // 尚未选择过时间,直接输入的话
854
854
  if (!_this2.state.selectedValue[0] || !_this2.state.selectedValue[1]) {
855
- var startValue = selectedValue[0] || (0, _moment2['default'])();
855
+ var startValue = selectedValue[0] || (0, _dayjs2['default'])();
856
856
  var endValue = selectedValue[1] || startValue.clone().add(1, 'months');
857
857
  _this2.setState({
858
858
  selectedValue: selectedValue,
@@ -42,13 +42,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'd
42
42
 
43
43
  function goMonth(direction) {
44
44
  var next = this.props.value.clone();
45
- next.add(direction, 'months');
45
+ next = next.add(direction, 'months');
46
46
  this.props.onValueChange(next);
47
47
  }
48
48
 
49
49
  function goYear(direction) {
50
50
  var next = this.props.value.clone();
51
- next.add(direction, 'years');
51
+ next = next.add(direction, 'years');
52
52
  this.props.onValueChange(next);
53
53
  }
54
54
 
@@ -22,9 +22,11 @@ var _propTypes = require('prop-types');
22
22
 
23
23
  var _propTypes2 = _interopRequireDefault(_propTypes);
24
24
 
25
- var _moment = require('moment');
25
+ var _dayjs = require('dayjs');
26
26
 
27
- var _moment2 = _interopRequireDefault(_moment);
27
+ var _dayjs2 = _interopRequireDefault(_dayjs);
28
+
29
+ var _util = require('../util');
28
30
 
29
31
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
30
32
 
@@ -41,6 +43,18 @@ var CalendarRightPanel = function (_React$Component) {
41
43
  highlightTime: value
42
44
  });
43
45
  _this.props.onSelect(value);
46
+ _this.props.onClickRightPanelTime();
47
+ };
48
+
49
+ _this.getTimes = function () {
50
+ var times = [];
51
+ for (var i = 0; i < 24; i++) {
52
+ var str = (String(i) + ':00').padStart(5, '0');
53
+ var str1 = (String(i) + ':30').padStart(5, '0');
54
+ times.push(str);
55
+ times.push(str1);
56
+ }
57
+ return times;
44
58
  };
45
59
 
46
60
  _this.scrollUp = function () {
@@ -51,39 +65,45 @@ var CalendarRightPanel = function (_React$Component) {
51
65
  _this.timeRef.current.scrollBy(0, 200);
52
66
  };
53
67
 
68
+ var format = Array.isArray(_this.props.format) ? _this.props.format[0] : _this.props.format;
54
69
  _this.state = {
55
- highlightTime: _this.props.value || null
70
+ highlightTime: _this.props.value || null,
71
+ localeFormat: format
56
72
  };
57
73
  _this.timeRef = _react2['default'].createRef();
74
+ _this.times = _this.getTimes();
58
75
  return _this;
59
76
  }
60
77
 
78
+ CalendarRightPanel.prototype.componentDidMount = function componentDidMount() {
79
+ var defaultMinutesTime = this.props.defaultMinutesTime;
80
+
81
+ var showTimeIndex = this.times.findIndex(function (item) {
82
+ return item >= defaultMinutesTime;
83
+ });
84
+ var scrollTimeIndex = showTimeIndex > -1 ? showTimeIndex - 1 : 16;
85
+ this.timeRef.current.scrollTo(0, 34 * scrollTimeIndex);
86
+ };
87
+
61
88
  CalendarRightPanel.prototype.render = function render() {
62
89
  var _this2 = this;
63
90
 
64
91
  var _props = this.props,
65
92
  value = _props.value,
66
- prefixCls = _props.prefixCls;
67
-
68
- var selectedDate = value.format().slice(0, 10);
69
- var times = [];
70
- for (var i = 0; i < 24; i++) {
71
- var str = (String(i) + ':00').padStart(5, '0');
72
- var str1 = (String(i) + ':30').padStart(5, '0');
73
- times.push(str);
74
- times.push(str1);
75
- }
93
+ prefixCls = _props.prefixCls,
94
+ locale = _props.locale;
95
+
96
+ var selectedDate = value.format().slice(0, String(value.format()).indexOf('T'));
97
+ var highlight = this.state.highlightTime;
98
+ var highlightTime = highlight ? highlight.format().slice(11, 16) : null;
99
+ var isZhcn = locale && locale.today === '今天';
76
100
  return _react2['default'].createElement(
77
101
  'div',
78
102
  { className: prefixCls + '-right-panel' },
79
103
  _react2['default'].createElement(
80
104
  'div',
81
105
  { className: prefixCls + '-right-panel-header', onClick: this.scrollUp },
82
- _react2['default'].createElement(
83
- 'span',
84
- null,
85
- _react2['default'].createElement('i', { className: 'fas fa-chevron-up' })
86
- )
106
+ _react2['default'].createElement('span', null)
87
107
  ),
88
108
  _react2['default'].createElement(
89
109
  'div',
@@ -91,15 +111,16 @@ var CalendarRightPanel = function (_React$Component) {
91
111
  _react2['default'].createElement(
92
112
  'ul',
93
113
  null,
94
- times.map(function (time) {
95
- var current = (0, _moment2['default'])(selectedDate + ' ' + time);
96
- var isHightlight = current.isSame(_this2.state.highlightTime) ? 'highlight' : '';
114
+ this.times.map(function (time) {
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
117
+ current = isZhcn ? current.locale('zh-cn') : current.locale('en-gb');
97
118
  return _react2['default'].createElement(
98
119
  'li',
99
120
  {
100
121
  key: time,
101
- onClick: _this2.onSelect.bind(null, current),
102
- className: '' + isHightlight
122
+ onClick: _this2.onSelect.bind(_this2, current),
123
+ className: '' + (highlightTime === time ? prefixCls + '-selected-time' : '')
103
124
  },
104
125
  time
105
126
  );
@@ -109,11 +130,7 @@ var CalendarRightPanel = function (_React$Component) {
109
130
  _react2['default'].createElement(
110
131
  'div',
111
132
  { className: prefixCls + '-right-panel-footer', onClick: this.scrollDown },
112
- _react2['default'].createElement(
113
- 'span',
114
- null,
115
- _react2['default'].createElement('i', { className: 'fas fa-chevron-down' })
116
- )
133
+ _react2['default'].createElement('span', null)
117
134
  )
118
135
  );
119
136
  };
@@ -124,7 +141,11 @@ var CalendarRightPanel = function (_React$Component) {
124
141
  CalendarRightPanel.propTypes = {
125
142
  prefixCls: _propTypes2['default'].string,
126
143
  value: _propTypes2['default'].object,
127
- onSelect: _propTypes2['default'].func
144
+ onSelect: _propTypes2['default'].func,
145
+ onClickRightPanelTime: _propTypes2['default'].func,
146
+ locale: _propTypes2['default'].object,
147
+ defaultMinutesTime: _propTypes2['default'].string,
148
+ format: _propTypes2['default'].oneOfType([_propTypes2['default'].string, _propTypes2['default'].arrayOf(_propTypes2['default'].string)])
128
149
  };
129
150
  exports['default'] = CalendarRightPanel;
130
151
  module.exports = exports['default'];
@@ -1,8 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  exports.__esModule = true;
4
- exports["default"] = {
4
+ var DATE_ROW_COLUMN_COUNT = {
5
5
  DATE_ROW_COUNT: 6,
6
6
  DATE_COL_COUNT: 7
7
7
  };
8
+
9
+ var DAY_NAME_TO_INDEX = {
10
+ Sunday: 0,
11
+ Monday: 1,
12
+ Tuesday: 2,
13
+ Wednesday: 3,
14
+ Thursday: 4,
15
+ Friday: 5,
16
+ Saturday: 6
17
+ };
18
+
19
+ exports["default"] = {
20
+ DATE_ROW_COLUMN_COUNT: DATE_ROW_COLUMN_COUNT,
21
+ DAY_NAME_TO_INDEX: DAY_NAME_TO_INDEX
22
+ };
8
23
  module.exports = exports['default'];
@@ -32,14 +32,18 @@ var _KeyCode2 = _interopRequireDefault(_KeyCode);
32
32
 
33
33
  var _reactLifecyclesCompat = require('react-lifecycles-compat');
34
34
 
35
- var _moment = require('moment');
35
+ var _dayjs = require('dayjs');
36
36
 
37
- var _moment2 = _interopRequireDefault(_moment);
37
+ var _dayjs2 = _interopRequireDefault(_dayjs);
38
38
 
39
39
  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;
@@ -58,14 +62,14 @@ var DateInput = function (_React$Component) {
58
62
 
59
63
  _this.state = {
60
64
  str: (0, _util.formatDate)(selectedValue, _this.props.format),
61
- invalid: false,
62
- hasFocus: false
65
+ hasFocus: false,
66
+ localFormat: _this.props.format[0]
63
67
  };
64
68
  return _this;
65
69
  }
66
70
 
67
71
  DateInput.prototype.componentDidUpdate = function componentDidUpdate() {
68
- if (dateInputInstance && this.state.hasFocus && !this.state.invalid && !(cachedSelectionStart === 0 && cachedSelectionEnd === 0)) {
72
+ if (dateInputInstance && this.state.hasFocus && !(cachedSelectionStart === 0 && cachedSelectionEnd === 0)) {
69
73
  dateInputInstance.setSelectionRange(cachedSelectionStart, cachedSelectionEnd);
70
74
  }
71
75
  };
@@ -80,10 +84,7 @@ var DateInput = function (_React$Component) {
80
84
  // when popup show, click body will call this, bug!
81
85
  var selectedValue = nextProps.selectedValue;
82
86
  if (!state.hasFocus) {
83
- newState = {
84
- str: (0, _util.formatDate)(selectedValue, nextProps.format),
85
- invalid: false
86
- };
87
+ newState = { str: (0, _util.formatDate)(selectedValue, nextProps.format) };
87
88
  }
88
89
 
89
90
  return newState;
@@ -95,16 +96,13 @@ var DateInput = function (_React$Component) {
95
96
 
96
97
  DateInput.prototype.render = function render() {
97
98
  var props = this.props;
98
- var _state = this.state,
99
- invalid = _state.invalid,
100
- str = _state.str;
99
+ var str = this.state.str;
101
100
  var locale = props.locale,
102
101
  prefixCls = props.prefixCls,
103
102
  placeholder = props.placeholder,
104
103
  clearIcon = props.clearIcon,
105
104
  inputMode = props.inputMode;
106
105
 
107
- var invalidClass = invalid ? prefixCls + '-input-invalid' : '';
108
106
  return _react2['default'].createElement(
109
107
  'div',
110
108
  { className: prefixCls + '-input-wrap' },
@@ -113,7 +111,7 @@ var DateInput = function (_React$Component) {
113
111
  { className: prefixCls + '-date-input-wrap' },
114
112
  _react2['default'].createElement('input', {
115
113
  ref: this.saveDateInput,
116
- className: prefixCls + '-input ' + invalidClass,
114
+ className: prefixCls + '-input',
117
115
  value: str,
118
116
  disabled: props.disabled,
119
117
  placeholder: placeholder,
@@ -160,14 +158,13 @@ var _initialiseProps = function _initialiseProps() {
160
158
  var _this2 = this;
161
159
 
162
160
  this.onClear = function () {
163
- _this2.setState({
164
- str: ''
165
- });
161
+ _this2.setState({ str: '' });
166
162
  _this2.props.onClear(null);
167
163
  };
168
164
 
169
165
  this.onInputChange = function (event) {
170
166
  var str = event.target.value;
167
+ var calendarStr = (0, _util.initializeStr)(str, _this2.state.localFormat) || '';
171
168
  var _props = _this2.props,
172
169
  disabledDate = _props.disabledDate,
173
170
  format = _props.format,
@@ -176,41 +173,22 @@ var _initialiseProps = function _initialiseProps() {
176
173
 
177
174
  // 没有内容,合法并直接退出
178
175
 
179
- if (!str) {
176
+ if (!calendarStr) {
180
177
  onChange(null);
181
- _this2.setState({
182
- invalid: false,
183
- str: str
184
- });
178
+ _this2.setState({ str: '' });
185
179
  return;
186
180
  }
187
-
188
- // 不合法直接退出
189
- var parsed = (0, _moment2['default'])(str, format, true);
190
- if (!parsed.isValid()) {
191
- _this2.setState({
192
- invalid: true,
193
- str: str
194
- });
195
- return;
196
- }
197
-
181
+ var parsed = (0, _dayjs2['default'])(calendarStr, format[0]);
198
182
  var value = _this2.props.value.clone();
199
- value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());
183
+ value = value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());
200
184
 
201
185
  if (!value || disabledDate && disabledDate(value)) {
202
- _this2.setState({
203
- invalid: true,
204
- str: str
205
- });
186
+ _this2.setState({ str: str });
206
187
  return;
207
188
  }
208
189
 
209
190
  if (selectedValue !== value || selectedValue && value && !selectedValue.isSame(value)) {
210
- _this2.setState({
211
- invalid: false,
212
- str: str
213
- });
191
+ _this2.setState({ str: str });
214
192
  onChange(value);
215
193
  }
216
194
  };