@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.
- package/README.md +15 -0
- package/assets/index.css +44 -43
- package/dist/rc-calendar.css +44 -43
- package/dist/rc-calendar.css.map +1 -1
- package/dist/rc-calendar.js +1170 -5266
- package/dist/rc-calendar.js.map +1 -1
- package/dist/rc-calendar.min.css +44 -43
- package/dist/rc-calendar.min.css.map +1 -1
- package/dist/rc-calendar.min.js +1 -1
- package/es/Calendar.js +32 -10
- package/es/FullCalendar.js +2 -2
- package/es/MonthCalendar.js +8 -8
- package/es/RangeCalendar.js +4 -4
- package/es/calendar/CalendarHeader.js +2 -2
- package/es/calendar/CalendarRightPanel.js +47 -27
- package/es/date/DateConstants.js +16 -1
- package/es/date/DateInput.js +19 -42
- package/es/date/DateTBody.js +19 -11
- package/es/date/DateTHead.js +15 -8
- package/es/decade/DecadePanel.js +3 -3
- package/es/full-calendar/CalendarHeader.js +3 -3
- package/es/mixin/CalendarMixin.js +2 -2
- package/es/month/MonthTable.js +5 -5
- package/es/util/dayjs.js +17 -0
- package/es/util/index.js +451 -8
- package/es/year/YearPanel.js +5 -13
- package/index.d.ts +12 -11
- package/lib/Calendar.js +43 -11
- package/lib/FullCalendar.js +3 -3
- package/lib/MonthCalendar.js +9 -9
- package/lib/RangeCalendar.js +7 -7
- package/lib/calendar/CalendarHeader.js +2 -2
- package/lib/calendar/CalendarRightPanel.js +50 -29
- package/lib/date/DateConstants.js +16 -1
- package/lib/date/DateInput.js +20 -42
- package/lib/date/DateTBody.js +19 -11
- package/lib/date/DateTHead.js +15 -11
- package/lib/decade/DecadePanel.js +3 -3
- package/lib/full-calendar/CalendarHeader.js +3 -3
- package/lib/mixin/CalendarMixin.js +3 -3
- package/lib/month/MonthTable.js +5 -5
- package/lib/util/dayjs.js +46 -0
- package/lib/util/index.js +465 -9
- package/lib/year/YearPanel.js +5 -13
- package/package.json +7 -3
- 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 {
|
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?:
|
16
|
-
value?:
|
17
|
-
selectedValue?:
|
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:
|
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:
|
32
|
-
onPanelChange?: (date:
|
33
|
-
disabledDate?: (current:
|
34
|
-
disabledTime?: (current:
|
35
|
-
dateRender?: (current:
|
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?:
|
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
|
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
|
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 (
|
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,
|
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
|
-
|
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:
|
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:
|
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
|
-
|
276
|
+
showHourAndMinute && _react2['default'].createElement(_CalendarRightPanel2['default'], {
|
256
277
|
prefixCls: prefixCls,
|
257
278
|
value: value,
|
258
|
-
|
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
|
-
|
340
|
+
onClickRightPanelTime: noop,
|
341
|
+
focusablePanel: true,
|
342
|
+
firstDayOfWeek: 'Sunday'
|
311
343
|
});
|
312
344
|
|
313
345
|
var _initialiseProps = function _initialiseProps() {
|
package/lib/FullCalendar.js
CHANGED
@@ -44,9 +44,9 @@ var _CalendarHeader = require('./full-calendar/CalendarHeader');
|
|
44
44
|
|
45
45
|
var _CalendarHeader2 = _interopRequireDefault(_CalendarHeader);
|
46
46
|
|
47
|
-
var
|
47
|
+
var _dayjs = require('./util/dayjs');
|
48
48
|
|
49
|
-
var
|
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,
|
72
|
+
value: props.value || props.defaultValue || (0, _dayjs2['default'])(),
|
73
73
|
selectedValue: props.selectedValue || props.defaultSelectedValue
|
74
74
|
};
|
75
75
|
return _this;
|
package/lib/MonthCalendar.js
CHANGED
@@ -44,9 +44,9 @@ var _CalendarMixin = require('./mixin/CalendarMixin');
|
|
44
44
|
|
45
45
|
var _CommonMixin = require('./mixin/CommonMixin');
|
46
46
|
|
47
|
-
var
|
47
|
+
var _dayjs = require('./util/dayjs');
|
48
48
|
|
49
|
-
var
|
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,
|
117
|
+
value: props.value || props.defaultValue || (0, _dayjs2['default'])(),
|
118
118
|
selectedValue: props.selectedValue || props.defaultSelectedValue
|
119
119
|
};
|
120
120
|
return _this;
|
package/lib/RangeCalendar.js
CHANGED
@@ -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,
|
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,
|
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,
|
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
|
25
|
+
var _dayjs = require('dayjs');
|
26
26
|
|
27
|
-
var
|
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
|
-
|
69
|
-
var
|
70
|
-
|
71
|
-
|
72
|
-
|
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
|
96
|
-
var
|
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(
|
102
|
-
className: '' +
|
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
|
-
|
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'];
|
package/lib/date/DateInput.js
CHANGED
@@ -32,14 +32,18 @@ var _KeyCode2 = _interopRequireDefault(_KeyCode);
|
|
32
32
|
|
33
33
|
var _reactLifecyclesCompat = require('react-lifecycles-compat');
|
34
34
|
|
35
|
-
var
|
35
|
+
var _dayjs = require('dayjs');
|
36
36
|
|
37
|
-
var
|
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
|
-
|
62
|
-
|
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 && !
|
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
|
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
|
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 (!
|
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
|
};
|