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 _propTypes = require('prop-types');
|
26 |
|
27 | var _propTypes2 = _interopRequireDefault(_propTypes);
|
28 |
|
29 | var _reactLifecyclesCompat = require('react-lifecycles-compat');
|
30 |
|
31 | var _DateTable = require('./date/DateTable');
|
32 |
|
33 | var _DateTable2 = _interopRequireDefault(_DateTable);
|
34 |
|
35 | var _MonthTable = require('./month/MonthTable');
|
36 |
|
37 | var _MonthTable2 = _interopRequireDefault(_MonthTable);
|
38 |
|
39 | var _CalendarMixin = require('./mixin/CalendarMixin');
|
40 |
|
41 | var _CommonMixin = require('./mixin/CommonMixin');
|
42 |
|
43 | var _CalendarHeader = require('./full-calendar/CalendarHeader');
|
44 |
|
45 | var _CalendarHeader2 = _interopRequireDefault(_CalendarHeader);
|
46 |
|
47 | var _moment = require('moment');
|
48 |
|
49 | var _moment2 = _interopRequireDefault(_moment);
|
50 |
|
51 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
|
52 |
|
53 | var FullCalendar = function (_React$Component) {
|
54 | (0, _inherits3['default'])(FullCalendar, _React$Component);
|
55 |
|
56 | function FullCalendar(props) {
|
57 | (0, _classCallCheck3['default'])(this, FullCalendar);
|
58 |
|
59 | var _this = (0, _possibleConstructorReturn3['default'])(this, _React$Component.call(this, props));
|
60 |
|
61 | _initialiseProps.call(_this);
|
62 |
|
63 | var type = void 0;
|
64 | if ('type' in props) {
|
65 | type = props.type;
|
66 | } else {
|
67 | type = props.defaultType;
|
68 | }
|
69 |
|
70 | _this.state = {
|
71 | type: type,
|
72 | value: props.value || props.defaultValue || (0, _moment2['default'])(),
|
73 | selectedValue: props.selectedValue || props.defaultSelectedValue
|
74 | };
|
75 | return _this;
|
76 | }
|
77 |
|
78 | FullCalendar.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, state) {
|
79 | var newState = {};
|
80 | var value = nextProps.value,
|
81 | selectedValue = nextProps.selectedValue;
|
82 |
|
83 |
|
84 | if ('type' in nextProps) {
|
85 | newState = {
|
86 | type: nextProps.type
|
87 | };
|
88 | }
|
89 | if ('value' in nextProps) {
|
90 | newState.value = value || nextProps.defaultValue || (0, _CalendarMixin.getNowByCurrentStateValue)(state.value);
|
91 | }
|
92 | if ('selectedValue' in nextProps) {
|
93 | newState.selectedValue = selectedValue;
|
94 | }
|
95 |
|
96 | return newState;
|
97 | };
|
98 |
|
99 | FullCalendar.prototype.render = function render() {
|
100 | var props = this.props;
|
101 | var locale = props.locale,
|
102 | prefixCls = props.prefixCls,
|
103 | fullscreen = props.fullscreen,
|
104 | showHeader = props.showHeader,
|
105 | headerComponent = props.headerComponent,
|
106 | headerRender = props.headerRender,
|
107 | disabledDate = props.disabledDate;
|
108 | var _state = this.state,
|
109 | value = _state.value,
|
110 | type = _state.type;
|
111 |
|
112 |
|
113 | var header = null;
|
114 | if (showHeader) {
|
115 | if (headerRender) {
|
116 | header = headerRender(value, type, locale);
|
117 | } else {
|
118 | var TheHeader = headerComponent || _CalendarHeader2['default'];
|
119 | header = _react2['default'].createElement(TheHeader, (0, _extends3['default'])({
|
120 | key: 'calendar-header'
|
121 | }, props, {
|
122 | prefixCls: prefixCls + '-full',
|
123 | type: type,
|
124 | value: value,
|
125 | onTypeChange: this.setType,
|
126 | onValueChange: this.setValue
|
127 | }));
|
128 | }
|
129 | }
|
130 |
|
131 | var table = type === 'date' ? _react2['default'].createElement(_DateTable2['default'], {
|
132 | dateRender: props.dateCellRender,
|
133 | contentRender: props.dateCellContentRender,
|
134 | locale: locale,
|
135 | prefixCls: prefixCls,
|
136 | onSelect: this.onSelect,
|
137 | value: value,
|
138 | disabledDate: disabledDate
|
139 | }) : _react2['default'].createElement(_MonthTable2['default'], {
|
140 | cellRender: props.monthCellRender,
|
141 | contentRender: props.monthCellContentRender,
|
142 | locale: locale,
|
143 | onSelect: this.onMonthSelect,
|
144 | prefixCls: prefixCls + '-month-panel',
|
145 | value: value,
|
146 | disabledDate: disabledDate
|
147 | });
|
148 |
|
149 | var children = [header, _react2['default'].createElement(
|
150 | 'div',
|
151 | { key: 'calendar-body', className: prefixCls + '-calendar-body' },
|
152 | table
|
153 | )];
|
154 |
|
155 | var className = [prefixCls + '-full'];
|
156 |
|
157 | if (fullscreen) {
|
158 | className.push(prefixCls + '-fullscreen');
|
159 | }
|
160 |
|
161 | return this.renderRoot({
|
162 | children: children,
|
163 | className: className.join(' ')
|
164 | });
|
165 | };
|
166 |
|
167 | return FullCalendar;
|
168 | }(_react2['default'].Component);
|
169 |
|
170 | FullCalendar.propTypes = (0, _extends3['default'])({}, _CalendarMixin.calendarMixinPropTypes, _CommonMixin.propType, {
|
171 | defaultType: _propTypes2['default'].string,
|
172 | type: _propTypes2['default'].string,
|
173 | prefixCls: _propTypes2['default'].string,
|
174 | locale: _propTypes2['default'].object,
|
175 | onTypeChange: _propTypes2['default'].func,
|
176 | fullscreen: _propTypes2['default'].bool,
|
177 | monthCellRender: _propTypes2['default'].func,
|
178 | dateCellRender: _propTypes2['default'].func,
|
179 | showTypeSwitch: _propTypes2['default'].bool,
|
180 | Select: _propTypes2['default'].func.isRequired,
|
181 | headerComponents: _propTypes2['default'].array,
|
182 | headerComponent: _propTypes2['default'].object,
|
183 | headerRender: _propTypes2['default'].func,
|
184 | showHeader: _propTypes2['default'].bool,
|
185 | disabledDate: _propTypes2['default'].func,
|
186 | value: _propTypes2['default'].object,
|
187 | defaultValue: _propTypes2['default'].object,
|
188 | selectedValue: _propTypes2['default'].object,
|
189 | defaultSelectedValue: _propTypes2['default'].object
|
190 | });
|
191 | FullCalendar.defaultProps = (0, _extends3['default'])({}, _CalendarMixin.calendarMixinDefaultProps, _CommonMixin.defaultProp, {
|
192 | defaultType: 'date',
|
193 | fullscreen: false,
|
194 | showTypeSwitch: true,
|
195 | showHeader: true,
|
196 | onTypeChange: function onTypeChange() {}
|
197 | });
|
198 |
|
199 | var _initialiseProps = function _initialiseProps() {
|
200 | var _this2 = this;
|
201 |
|
202 | this.onMonthSelect = function (value) {
|
203 | _this2.onSelect(value, {
|
204 | target: 'month'
|
205 | });
|
206 | };
|
207 |
|
208 | this.setType = function (type) {
|
209 | if (!('type' in _this2.props)) {
|
210 | _this2.setState({
|
211 | type: type
|
212 | });
|
213 | }
|
214 | _this2.props.onTypeChange(type);
|
215 | };
|
216 | };
|
217 |
|
218 | (0, _reactLifecyclesCompat.polyfill)(FullCalendar);
|
219 |
|
220 | exports['default'] = (0, _CalendarMixin.calendarMixinWrapper)((0, _CommonMixin.commonMixinWrapper)(FullCalendar));
|
221 | module.exports = exports['default']; |
\ | No newline at end of file |