@seafile/seafile-calendar 0.0.88899 → 0.1.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.
Files changed (167) hide show
  1. package/dist/rc-calendar.css +11 -12
  2. package/dist/rc-calendar.css.map +1 -1
  3. package/dist/rc-calendar.js +116 -87
  4. package/dist/rc-calendar.js.map +1 -1
  5. package/dist/rc-calendar.min.css +11 -12
  6. package/dist/rc-calendar.min.css.map +1 -1
  7. package/dist/rc-calendar.min.js +1 -1
  8. package/package.json +2 -5
  9. package/assets/index.css +0 -1177
  10. package/es/Calendar.js +0 -449
  11. package/es/FullCalendar.js +0 -182
  12. package/es/MonthCalendar.js +0 -135
  13. package/es/Picker.js +0 -245
  14. package/es/RangeCalendar.js +0 -876
  15. package/es/calendar/CalendarFooter.js +0 -93
  16. package/es/calendar/CalendarHeader.js +0 -257
  17. package/es/calendar/CalendarRightPanel.js +0 -126
  18. package/es/calendar/OkButton.js +0 -22
  19. package/es/calendar/TimePickerButton.js +0 -28
  20. package/es/calendar/TodayButton.js +0 -28
  21. package/es/date/DateConstants.js +0 -19
  22. package/es/date/DateInput.js +0 -208
  23. package/es/date/DateTBody.js +0 -287
  24. package/es/date/DateTHead.js +0 -86
  25. package/es/date/DateTable.js +0 -32
  26. package/es/decade/DecadePanel.js +0 -181
  27. package/es/full-calendar/CalendarHeader.js +0 -180
  28. package/es/index.js +0 -3
  29. package/es/locale/ar_EG.js +0 -27
  30. package/es/locale/bg_BG.js +0 -27
  31. package/es/locale/ca_ES.js +0 -27
  32. package/es/locale/cs_CZ.js +0 -27
  33. package/es/locale/da_DK.js +0 -27
  34. package/es/locale/de_DE.js +0 -27
  35. package/es/locale/el_GR.js +0 -27
  36. package/es/locale/en_GB.js +0 -27
  37. package/es/locale/en_US.js +0 -28
  38. package/es/locale/es_ES.js +0 -27
  39. package/es/locale/et_EE.js +0 -27
  40. package/es/locale/fa_IR.js +0 -27
  41. package/es/locale/fi_FI.js +0 -27
  42. package/es/locale/fr_BE.js +0 -27
  43. package/es/locale/fr_FR.js +0 -27
  44. package/es/locale/he_IL.js +0 -28
  45. package/es/locale/hi_IN.js +0 -28
  46. package/es/locale/hr_HR.js +0 -28
  47. package/es/locale/hu_HU.js +0 -27
  48. package/es/locale/id_ID.js +0 -28
  49. package/es/locale/is_IS.js +0 -27
  50. package/es/locale/it_IT.js +0 -27
  51. package/es/locale/ja_JP.js +0 -26
  52. package/es/locale/kn_IN.js +0 -28
  53. package/es/locale/ko_KR.js +0 -27
  54. package/es/locale/ku_IQ.js +0 -27
  55. package/es/locale/lv_LV.js +0 -27
  56. package/es/locale/mm_MM.js +0 -28
  57. package/es/locale/mn_MN.js +0 -28
  58. package/es/locale/ms_MY.js +0 -27
  59. package/es/locale/nb_NO.js +0 -27
  60. package/es/locale/nl_BE.js +0 -27
  61. package/es/locale/nl_NL.js +0 -27
  62. package/es/locale/pl_PL.js +0 -27
  63. package/es/locale/pt_BR.js +0 -27
  64. package/es/locale/pt_PT.js +0 -27
  65. package/es/locale/ro_RO.js +0 -28
  66. package/es/locale/ru_RU.js +0 -27
  67. package/es/locale/sk_SK.js +0 -27
  68. package/es/locale/sl_SI.js +0 -27
  69. package/es/locale/sr_RS.js +0 -27
  70. package/es/locale/sv_SE.js +0 -27
  71. package/es/locale/ta_IN.js +0 -28
  72. package/es/locale/th_TH.js +0 -27
  73. package/es/locale/tr_TR.js +0 -27
  74. package/es/locale/ug_CN.js +0 -26
  75. package/es/locale/uk_UA.js +0 -27
  76. package/es/locale/vi_VN.js +0 -28
  77. package/es/locale/zh_CN.js +0 -27
  78. package/es/locale/zh_TW.js +0 -26
  79. package/es/mixin/CalendarMixin.js +0 -123
  80. package/es/mixin/CommonMixin.js +0 -85
  81. package/es/month/MonthPanel.js +0 -154
  82. package/es/month/MonthTable.js +0 -156
  83. package/es/picker/placements.js +0 -35
  84. package/es/range-calendar/CalendarPart.js +0 -151
  85. package/es/util/dayjs.js +0 -17
  86. package/es/util/index.js +0 -545
  87. package/es/util/toTime.js +0 -21
  88. package/es/year/YearPanel.js +0 -194
  89. package/lib/Calendar.js +0 -512
  90. package/lib/FullCalendar.js +0 -221
  91. package/lib/MonthCalendar.js +0 -172
  92. package/lib/Picker.js +0 -282
  93. package/lib/RangeCalendar.js +0 -925
  94. package/lib/calendar/CalendarFooter.js +0 -134
  95. package/lib/calendar/CalendarHeader.js +0 -290
  96. package/lib/calendar/CalendarRightPanel.js +0 -151
  97. package/lib/calendar/OkButton.js +0 -32
  98. package/lib/calendar/TimePickerButton.js +0 -41
  99. package/lib/calendar/TodayButton.js +0 -39
  100. package/lib/date/DateConstants.js +0 -23
  101. package/lib/date/DateInput.js +0 -241
  102. package/lib/date/DateTBody.js +0 -317
  103. package/lib/date/DateTHead.js +0 -106
  104. package/lib/date/DateTable.js +0 -54
  105. package/lib/decade/DecadePanel.js +0 -207
  106. package/lib/full-calendar/CalendarHeader.js +0 -201
  107. package/lib/index.js +0 -12
  108. package/lib/locale/ar_EG.js +0 -31
  109. package/lib/locale/bg_BG.js +0 -31
  110. package/lib/locale/ca_ES.js +0 -31
  111. package/lib/locale/cs_CZ.js +0 -31
  112. package/lib/locale/da_DK.js +0 -31
  113. package/lib/locale/de_DE.js +0 -31
  114. package/lib/locale/el_GR.js +0 -31
  115. package/lib/locale/en_GB.js +0 -31
  116. package/lib/locale/en_US.js +0 -32
  117. package/lib/locale/es_ES.js +0 -31
  118. package/lib/locale/et_EE.js +0 -31
  119. package/lib/locale/fa_IR.js +0 -31
  120. package/lib/locale/fi_FI.js +0 -31
  121. package/lib/locale/fr_BE.js +0 -31
  122. package/lib/locale/fr_FR.js +0 -31
  123. package/lib/locale/he_IL.js +0 -32
  124. package/lib/locale/hi_IN.js +0 -32
  125. package/lib/locale/hr_HR.js +0 -32
  126. package/lib/locale/hu_HU.js +0 -31
  127. package/lib/locale/id_ID.js +0 -32
  128. package/lib/locale/is_IS.js +0 -31
  129. package/lib/locale/it_IT.js +0 -31
  130. package/lib/locale/ja_JP.js +0 -30
  131. package/lib/locale/kn_IN.js +0 -32
  132. package/lib/locale/ko_KR.js +0 -31
  133. package/lib/locale/ku_IQ.js +0 -31
  134. package/lib/locale/lv_LV.js +0 -31
  135. package/lib/locale/mm_MM.js +0 -32
  136. package/lib/locale/mn_MN.js +0 -32
  137. package/lib/locale/ms_MY.js +0 -31
  138. package/lib/locale/nb_NO.js +0 -31
  139. package/lib/locale/nl_BE.js +0 -31
  140. package/lib/locale/nl_NL.js +0 -31
  141. package/lib/locale/pl_PL.js +0 -31
  142. package/lib/locale/pt_BR.js +0 -31
  143. package/lib/locale/pt_PT.js +0 -31
  144. package/lib/locale/ro_RO.js +0 -32
  145. package/lib/locale/ru_RU.js +0 -31
  146. package/lib/locale/sk_SK.js +0 -31
  147. package/lib/locale/sl_SI.js +0 -31
  148. package/lib/locale/sr_RS.js +0 -31
  149. package/lib/locale/sv_SE.js +0 -31
  150. package/lib/locale/ta_IN.js +0 -32
  151. package/lib/locale/th_TH.js +0 -31
  152. package/lib/locale/tr_TR.js +0 -31
  153. package/lib/locale/ug_CN.js +0 -30
  154. package/lib/locale/uk_UA.js +0 -31
  155. package/lib/locale/vi_VN.js +0 -32
  156. package/lib/locale/zh_CN.js +0 -31
  157. package/lib/locale/zh_TW.js +0 -30
  158. package/lib/mixin/CalendarMixin.js +0 -153
  159. package/lib/mixin/CommonMixin.js +0 -106
  160. package/lib/month/MonthPanel.js +0 -179
  161. package/lib/month/MonthTable.js +0 -181
  162. package/lib/picker/placements.js +0 -39
  163. package/lib/range-calendar/CalendarPart.js +0 -184
  164. package/lib/util/dayjs.js +0 -46
  165. package/lib/util/index.js +0 -580
  166. package/lib/util/toTime.js +0 -28
  167. package/lib/year/YearPanel.js +0 -219
package/es/Calendar.js DELETED
@@ -1,449 +0,0 @@
1
- import _extends from 'babel-runtime/helpers/extends';
2
- import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
3
- import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
4
- import _inherits from 'babel-runtime/helpers/inherits';
5
- import React from 'react';
6
- import ReactDOM from 'react-dom';
7
- import PropTypes from 'prop-types';
8
- import KeyCode from 'rc-util/es/KeyCode';
9
- import { polyfill } from 'react-lifecycles-compat';
10
- import dayjs from 'dayjs';
11
- import DateTable from './date/DateTable';
12
- import CalendarHeader from './calendar/CalendarHeader';
13
- import CalendarFooter from './calendar/CalendarFooter';
14
- import CalendarRightPanel from './calendar/CalendarRightPanel';
15
- import { calendarMixinWrapper, calendarMixinPropTypes, calendarMixinDefaultProps, getNowByCurrentStateValue } from './mixin/CalendarMixin';
16
- import { commonMixinWrapper, propType, defaultProp } from './mixin/CommonMixin';
17
- import DateInput from './date/DateInput';
18
- import { getTimeConfig, getTodayTime, syncTime } from './util';
19
- import { goStartMonth, goEndMonth, goTime } from './util/toTime';
20
- import localeData from 'dayjs/plugin/localeData';
21
- import utc from 'dayjs/plugin/utc';
22
- import weekOfYear from 'dayjs/plugin/weekOfYear';
23
- dayjs.extend(utc);
24
- dayjs.extend(localeData);
25
- dayjs.extend(weekOfYear);
26
-
27
- function noop() {}
28
-
29
- var getMomentObjectIfValid = function getMomentObjectIfValid(date) {
30
- if (dayjs.isDayjs(date) && date.isValid()) {
31
- return date;
32
- }
33
- return false;
34
- };
35
-
36
- var Calendar = function (_React$Component) {
37
- _inherits(Calendar, _React$Component);
38
-
39
- function Calendar(props) {
40
- _classCallCheck(this, Calendar);
41
-
42
- var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
43
-
44
- _initialiseProps.call(_this);
45
-
46
- _this.state = {
47
- mode: _this.props.mode || 'date',
48
- value: getMomentObjectIfValid(props.value) || getMomentObjectIfValid(props.defaultValue) || dayjs(),
49
- selectedValue: props.selectedValue || props.defaultSelectedValue,
50
- currentStatus: 'selectDateTime'
51
- };
52
- return _this;
53
- }
54
-
55
- Calendar.prototype.componentDidMount = function componentDidMount() {
56
- if (this.props.showDateInput) {
57
- this.saveFocusElement(DateInput.getInstance());
58
- }
59
- };
60
-
61
- Calendar.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, state) {
62
- var value = nextProps.value,
63
- selectedValue = nextProps.selectedValue;
64
-
65
- var newState = {};
66
-
67
- if ('mode' in nextProps && state.mode !== nextProps.mode) {
68
- newState = { mode: nextProps.mode };
69
- }
70
- if ('value' in nextProps) {
71
- newState.value = getMomentObjectIfValid(value) || getMomentObjectIfValid(nextProps.defaultValue) || getNowByCurrentStateValue(state.value);
72
- }
73
- if ('selectedValue' in nextProps) {
74
- newState.selectedValue = selectedValue;
75
- }
76
-
77
- return newState;
78
- };
79
-
80
- Calendar.prototype.render = function render() {
81
- var props = this.props,
82
- state = this.state;
83
- var locale = props.locale,
84
- prefixCls = props.prefixCls,
85
- disabledDate = props.disabledDate,
86
- dateInputPlaceholder = props.dateInputPlaceholder,
87
- timePicker = props.timePicker,
88
- onClickRightPanelTime = props.onClickRightPanelTime,
89
- disabledTime = props.disabledTime,
90
- clearIcon = props.clearIcon,
91
- renderFooter = props.renderFooter,
92
- inputMode = props.inputMode,
93
- showHourAndMinute = props.showHourAndMinute,
94
- firstDayOfWeek = props.firstDayOfWeek,
95
- showWeekNumber = props.showWeekNumber;
96
- var value = state.value,
97
- selectedValue = state.selectedValue,
98
- mode = state.mode,
99
- currentStatus = state.currentStatus;
100
-
101
- var showTimePicker = mode === 'time';
102
- var disabledTimeConfig = showTimePicker && disabledTime && timePicker ? getTimeConfig(selectedValue, disabledTime) : null;
103
-
104
- var timePickerEle = null;
105
-
106
- if (timePicker && showTimePicker) {
107
- var timePickerProps = _extends({
108
- showHour: true,
109
- showSecond: true,
110
- showMinute: true
111
- }, timePicker.props, disabledTimeConfig, {
112
- onChange: this.onDateInputChange,
113
- value: selectedValue,
114
- disabledTime: disabledTime
115
- });
116
-
117
- if (timePicker.props.defaultValue !== undefined) {
118
- timePickerProps.defaultOpenValue = timePicker.props.defaultValue;
119
- }
120
-
121
- timePickerEle = React.cloneElement(timePicker, timePickerProps);
122
- }
123
- var calendarInputPlaceholder = dateInputPlaceholder || (Array.isArray(this.getFormat()) ? this.getFormat()[0] : this.getFormat());
124
- var inputFormat = Array.isArray(this.getFormat()) ? this.getFormat() : [this.getFormat()];
125
-
126
- var dateInputElement = props.showDateInput ? React.createElement(DateInput, {
127
- format: inputFormat,
128
- key: 'date-input',
129
- value: value,
130
- locale: locale,
131
- placeholder: calendarInputPlaceholder,
132
- showClear: true,
133
- disabledTime: disabledTime,
134
- disabledDate: disabledDate,
135
- onClear: this.onClear,
136
- prefixCls: prefixCls,
137
- selectedValue: selectedValue,
138
- onChange: this.onDateInputChange,
139
- onSelect: this.onDateInputSelect,
140
- clearIcon: clearIcon,
141
- inputMode: inputMode
142
- }) : null;
143
-
144
- var children = [];
145
- if (props.renderSidebar) {
146
- children.push(props.renderSidebar());
147
- }
148
- children.push(React.createElement(
149
- 'div',
150
- { className: prefixCls + '-panel', key: 'panel' },
151
- dateInputElement,
152
- React.createElement(
153
- 'div',
154
- { className: prefixCls + '-date-panel-container' },
155
- React.createElement(
156
- 'div',
157
- {
158
- tabIndex: this.props.focusablePanel ? 0 : undefined,
159
- className: prefixCls + '-date-panel'
160
- },
161
- React.createElement(CalendarHeader, {
162
- locale: locale,
163
- mode: mode,
164
- value: value,
165
- onValueChange: this.setValue,
166
- onPanelChange: this.onPanelChange,
167
- renderFooter: renderFooter,
168
- showTimePicker: showTimePicker,
169
- prefixCls: prefixCls
170
- }),
171
- timePicker && showTimePicker ? React.createElement(
172
- 'div',
173
- { className: prefixCls + '-time-picker' },
174
- React.createElement(
175
- 'div',
176
- { className: prefixCls + '-time-picker-panel' },
177
- timePickerEle
178
- )
179
- ) : null,
180
- React.createElement(
181
- 'div',
182
- { className: prefixCls + '-body' },
183
- React.createElement(DateTable, {
184
- locale: locale,
185
- value: value,
186
- selectedValue: selectedValue,
187
- prefixCls: prefixCls,
188
- dateRender: props.dateRender,
189
- onSelect: this.onDateTableSelect,
190
- disabledDate: disabledDate,
191
- showWeekNumber: showWeekNumber,
192
- firstDayOfWeek: firstDayOfWeek,
193
- currentStatus: currentStatus
194
- })
195
- ),
196
- React.createElement(CalendarFooter, {
197
- showOk: props.showOk,
198
- mode: mode,
199
- renderFooter: props.renderFooter,
200
- locale: locale,
201
- prefixCls: prefixCls,
202
- showToday: props.showToday,
203
- disabledTime: disabledTime,
204
- showTimePicker: showTimePicker,
205
- showDateInput: props.showDateInput,
206
- timePicker: timePicker,
207
- selectedValue: selectedValue,
208
- value: value,
209
- disabledDate: disabledDate,
210
- okDisabled: props.showOk !== false && (!selectedValue || !this.isAllowedDate(selectedValue)),
211
- onOk: this.onOk,
212
- onSelect: this.onSelect,
213
- onToday: this.onToday,
214
- onOpenTimePicker: this.openTimePicker,
215
- onCloseTimePicker: this.closeTimePicker
216
- })
217
- ),
218
- showHourAndMinute && React.createElement(CalendarRightPanel, {
219
- prefixCls: prefixCls,
220
- value: value,
221
- locale: locale,
222
- onSelect: this.onDateTableSelect,
223
- onClickRightPanelTime: onClickRightPanelTime,
224
- defaultMinutesTime: this.props.defaultMinutesTime,
225
- format: inputFormat
226
- })
227
- )
228
- ));
229
-
230
- return this.renderRoot({
231
- children: children,
232
- className: props.showWeekNumber ? prefixCls + '-week-number' : ''
233
- });
234
- };
235
-
236
- return Calendar;
237
- }(React.Component);
238
-
239
- Calendar.propTypes = _extends({}, calendarMixinPropTypes, propType, {
240
- prefixCls: PropTypes.string,
241
- className: PropTypes.string,
242
- style: PropTypes.object,
243
- defaultValue: PropTypes.object,
244
- value: PropTypes.object,
245
- selectedValue: PropTypes.object,
246
- defaultSelectedValue: PropTypes.object,
247
- mode: PropTypes.oneOf(['time', 'date', 'month', 'year', 'decade']),
248
- locale: PropTypes.object,
249
- showDateInput: PropTypes.bool,
250
- showWeekNumber: PropTypes.bool,
251
- showToday: PropTypes.bool,
252
- showOk: PropTypes.bool,
253
- showHourAndMinute: PropTypes.bool,
254
- defaultMinutesTime: PropTypes.string,
255
- onSelect: PropTypes.func,
256
- onOk: PropTypes.func,
257
- onKeyDown: PropTypes.func,
258
- timePicker: PropTypes.element,
259
- dateInputPlaceholder: PropTypes.any,
260
- onClear: PropTypes.func,
261
- onChange: PropTypes.func,
262
- onPanelChange: PropTypes.func,
263
- disabledDate: PropTypes.func,
264
- disabledTime: PropTypes.any,
265
- dateRender: PropTypes.func,
266
- renderFooter: PropTypes.func,
267
- renderSidebar: PropTypes.func,
268
- clearIcon: PropTypes.node,
269
- focusablePanel: PropTypes.bool,
270
- inputMode: PropTypes.string,
271
- onBlur: PropTypes.func,
272
- onClickRightPanelTime: PropTypes.func,
273
- firstDayOfWeek: PropTypes.string
274
- });
275
- Calendar.defaultProps = _extends({}, calendarMixinDefaultProps, defaultProp, {
276
- showToday: true,
277
- showDateInput: true,
278
- showHourAndMinute: false,
279
- timePicker: null,
280
- onOk: noop,
281
- onPanelChange: noop,
282
- onClickRightPanelTime: noop,
283
- focusablePanel: true,
284
- firstDayOfWeek: 'Sunday'
285
- });
286
-
287
- var _initialiseProps = function _initialiseProps() {
288
- var _this2 = this;
289
-
290
- this.onPanelChange = function (value, mode) {
291
- var props = _this2.props,
292
- state = _this2.state;
293
-
294
- if (!('mode' in props)) {
295
- _this2.setState({ mode: mode });
296
- }
297
- props.onPanelChange(value || state.value, mode);
298
- };
299
-
300
- this.onKeyDown = function (event) {
301
- if (event.target.nodeName.toLowerCase() === 'input') {
302
- return undefined;
303
- }
304
- var keyCode = event.keyCode;
305
- // mac
306
- var ctrlKey = event.ctrlKey || event.metaKey;
307
- var disabledDate = _this2.props.disabledDate;
308
- var value = _this2.state.value;
309
-
310
- switch (keyCode) {
311
- case KeyCode.DOWN:
312
- _this2.goTime(1, 'weeks');
313
- event.preventDefault();
314
- return 1;
315
- case KeyCode.UP:
316
- _this2.goTime(-1, 'weeks');
317
- event.preventDefault();
318
- return 1;
319
- case KeyCode.LEFT:
320
- if (ctrlKey) {
321
- _this2.goTime(-1, 'years');
322
- } else {
323
- _this2.goTime(-1, 'days');
324
- }
325
- event.preventDefault();
326
- return 1;
327
- case KeyCode.RIGHT:
328
- if (ctrlKey) {
329
- _this2.goTime(1, 'years');
330
- } else {
331
- _this2.goTime(1, 'days');
332
- }
333
- event.preventDefault();
334
- return 1;
335
- case KeyCode.HOME:
336
- _this2.setValue(goStartMonth(_this2.state.value));
337
- event.preventDefault();
338
- return 1;
339
- case KeyCode.END:
340
- _this2.setValue(goEndMonth(_this2.state.value));
341
- event.preventDefault();
342
- return 1;
343
- case KeyCode.PAGE_DOWN:
344
- _this2.goTime(1, 'month');
345
- event.preventDefault();
346
- return 1;
347
- case KeyCode.PAGE_UP:
348
- _this2.goTime(-1, 'month');
349
- event.preventDefault();
350
- return 1;
351
- case KeyCode.ENTER:
352
- if (!disabledDate || !disabledDate(value)) {
353
- _this2.onSelect(value, {
354
- source: 'keyboard'
355
- });
356
- }
357
- event.preventDefault();
358
- return 1;
359
- default:
360
- _this2.props.onKeyDown(event);
361
- return 1;
362
- }
363
- };
364
-
365
- this.onClear = function () {
366
- _this2.onSelect(null);
367
- _this2.props.onClear();
368
- _this2.setState({ currentStatus: 'todayTime' });
369
- };
370
-
371
- this.onOk = function () {
372
- var selectedValue = _this2.state.selectedValue;
373
-
374
- if (_this2.isAllowedDate(selectedValue)) {
375
- _this2.props.onOk(selectedValue);
376
- }
377
- };
378
-
379
- this.onDateInputChange = function (value) {
380
- _this2.onSelect(value, {
381
- source: 'dateInput'
382
- });
383
- };
384
-
385
- this.onDateInputSelect = function (value) {
386
- _this2.onSelect(value, {
387
- source: 'dateInputSelect'
388
- });
389
- };
390
-
391
- this.onDateTableSelect = function (value) {
392
- var timePicker = _this2.props.timePicker;
393
- var selectedValue = _this2.state.selectedValue;
394
-
395
- _this2.setState({ currentStatus: 'selectDateTime' });
396
- if (!selectedValue && timePicker) {
397
- var timePickerDefaultValue = timePicker.props.defaultValue;
398
- if (timePickerDefaultValue) {
399
- syncTime(timePickerDefaultValue, value);
400
- }
401
- }
402
- _this2.onSelect(value);
403
- };
404
-
405
- this.onToday = function () {
406
- var value = _this2.state.value;
407
-
408
- var now = getTodayTime(value);
409
- _this2.onSelect(now, {
410
- source: 'todayButton'
411
- });
412
- };
413
-
414
- this.onBlur = function (event) {
415
- setTimeout(function () {
416
- var dateInput = DateInput.getInstance();
417
- var rootInstance = _this2.rootInstance;
418
-
419
- if (!rootInstance || rootInstance.contains(document.activeElement) || dateInput && dateInput.contains(document.activeElement)) {
420
- // focused element is still part of Calendar
421
- return;
422
- }
423
-
424
- if (_this2.props.onBlur) {
425
- _this2.props.onBlur(event);
426
- }
427
- }, 0);
428
- };
429
-
430
- this.getRootDOMNode = function () {
431
- return ReactDOM.findDOMNode(_this2);
432
- };
433
-
434
- this.openTimePicker = function () {
435
- _this2.onPanelChange(null, 'time');
436
- };
437
-
438
- this.closeTimePicker = function () {
439
- _this2.onPanelChange(null, 'date');
440
- };
441
-
442
- this.goTime = function (direction, unit) {
443
- _this2.setValue(goTime(_this2.state.value, direction, unit));
444
- };
445
- };
446
-
447
- polyfill(Calendar);
448
-
449
- export default calendarMixinWrapper(commonMixinWrapper(Calendar));
@@ -1,182 +0,0 @@
1
- import _extends from 'babel-runtime/helpers/extends';
2
- import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
3
- import _possibleConstructorReturn from 'babel-runtime/helpers/possibleConstructorReturn';
4
- import _inherits from 'babel-runtime/helpers/inherits';
5
- import React from 'react';
6
- import PropTypes from 'prop-types';
7
- import { polyfill } from 'react-lifecycles-compat';
8
- import DateTable from './date/DateTable';
9
- import MonthTable from './month/MonthTable';
10
- import { calendarMixinWrapper, calendarMixinPropTypes, calendarMixinDefaultProps, getNowByCurrentStateValue } from './mixin/CalendarMixin';
11
- import { commonMixinWrapper, propType, defaultProp } from './mixin/CommonMixin';
12
- import CalendarHeader from './full-calendar/CalendarHeader';
13
- import dayjs from './util/dayjs';
14
-
15
- var FullCalendar = function (_React$Component) {
16
- _inherits(FullCalendar, _React$Component);
17
-
18
- function FullCalendar(props) {
19
- _classCallCheck(this, FullCalendar);
20
-
21
- var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
22
-
23
- _initialiseProps.call(_this);
24
-
25
- var type = void 0;
26
- if ('type' in props) {
27
- type = props.type;
28
- } else {
29
- type = props.defaultType;
30
- }
31
-
32
- _this.state = {
33
- type: type,
34
- value: props.value || props.defaultValue || dayjs(),
35
- selectedValue: props.selectedValue || props.defaultSelectedValue
36
- };
37
- return _this;
38
- }
39
-
40
- FullCalendar.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, state) {
41
- var newState = {};
42
- var value = nextProps.value,
43
- selectedValue = nextProps.selectedValue;
44
-
45
-
46
- if ('type' in nextProps) {
47
- newState = {
48
- type: nextProps.type
49
- };
50
- }
51
- if ('value' in nextProps) {
52
- newState.value = value || nextProps.defaultValue || getNowByCurrentStateValue(state.value);
53
- }
54
- if ('selectedValue' in nextProps) {
55
- newState.selectedValue = selectedValue;
56
- }
57
-
58
- return newState;
59
- };
60
-
61
- FullCalendar.prototype.render = function render() {
62
- var props = this.props;
63
- var locale = props.locale,
64
- prefixCls = props.prefixCls,
65
- fullscreen = props.fullscreen,
66
- showHeader = props.showHeader,
67
- headerComponent = props.headerComponent,
68
- headerRender = props.headerRender,
69
- disabledDate = props.disabledDate;
70
- var _state = this.state,
71
- value = _state.value,
72
- type = _state.type;
73
-
74
-
75
- var header = null;
76
- if (showHeader) {
77
- if (headerRender) {
78
- header = headerRender(value, type, locale);
79
- } else {
80
- var TheHeader = headerComponent || CalendarHeader;
81
- header = React.createElement(TheHeader, _extends({
82
- key: 'calendar-header'
83
- }, props, {
84
- prefixCls: prefixCls + '-full',
85
- type: type,
86
- value: value,
87
- onTypeChange: this.setType,
88
- onValueChange: this.setValue
89
- }));
90
- }
91
- }
92
-
93
- var table = type === 'date' ? React.createElement(DateTable, {
94
- dateRender: props.dateCellRender,
95
- contentRender: props.dateCellContentRender,
96
- locale: locale,
97
- prefixCls: prefixCls,
98
- onSelect: this.onSelect,
99
- value: value,
100
- disabledDate: disabledDate
101
- }) : React.createElement(MonthTable, {
102
- cellRender: props.monthCellRender,
103
- contentRender: props.monthCellContentRender,
104
- locale: locale,
105
- onSelect: this.onMonthSelect,
106
- prefixCls: prefixCls + '-month-panel',
107
- value: value,
108
- disabledDate: disabledDate
109
- });
110
-
111
- var children = [header, React.createElement(
112
- 'div',
113
- { key: 'calendar-body', className: prefixCls + '-calendar-body' },
114
- table
115
- )];
116
-
117
- var className = [prefixCls + '-full'];
118
-
119
- if (fullscreen) {
120
- className.push(prefixCls + '-fullscreen');
121
- }
122
-
123
- return this.renderRoot({
124
- children: children,
125
- className: className.join(' ')
126
- });
127
- };
128
-
129
- return FullCalendar;
130
- }(React.Component);
131
-
132
- FullCalendar.propTypes = _extends({}, calendarMixinPropTypes, propType, {
133
- defaultType: PropTypes.string,
134
- type: PropTypes.string,
135
- prefixCls: PropTypes.string,
136
- locale: PropTypes.object,
137
- onTypeChange: PropTypes.func,
138
- fullscreen: PropTypes.bool,
139
- monthCellRender: PropTypes.func,
140
- dateCellRender: PropTypes.func,
141
- showTypeSwitch: PropTypes.bool,
142
- Select: PropTypes.func.isRequired,
143
- headerComponents: PropTypes.array,
144
- headerComponent: PropTypes.object, // The whole header component
145
- headerRender: PropTypes.func,
146
- showHeader: PropTypes.bool,
147
- disabledDate: PropTypes.func,
148
- value: PropTypes.object,
149
- defaultValue: PropTypes.object,
150
- selectedValue: PropTypes.object,
151
- defaultSelectedValue: PropTypes.object
152
- });
153
- FullCalendar.defaultProps = _extends({}, calendarMixinDefaultProps, defaultProp, {
154
- defaultType: 'date',
155
- fullscreen: false,
156
- showTypeSwitch: true,
157
- showHeader: true,
158
- onTypeChange: function onTypeChange() {}
159
- });
160
-
161
- var _initialiseProps = function _initialiseProps() {
162
- var _this2 = this;
163
-
164
- this.onMonthSelect = function (value) {
165
- _this2.onSelect(value, {
166
- target: 'month'
167
- });
168
- };
169
-
170
- this.setType = function (type) {
171
- if (!('type' in _this2.props)) {
172
- _this2.setState({
173
- type: type
174
- });
175
- }
176
- _this2.props.onTypeChange(type);
177
- };
178
- };
179
-
180
- polyfill(FullCalendar);
181
-
182
- export default calendarMixinWrapper(commonMixinWrapper(FullCalendar));