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