@gem-mine/rmc-calendar
Version:
React Mobile Calendar Component(web and react-native)
125 lines (95 loc) • 5.18 kB
JavaScript
;
exports.__esModule = true;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var React = _interopRequireWildcard(_react);
var _rmcNukaCarousel = require('@gem-mine/rmc-nuka-carousel');
var _rmcNukaCarousel2 = _interopRequireDefault(_rmcNukaCarousel);
var _CalendarPanel = require('./CalendarPanel.base');
var _CalendarPanel2 = _interopRequireDefault(_CalendarPanel);
var _WeekPanel = require('./WeekPanel');
var _WeekPanel2 = _interopRequireDefault(_WeekPanel);
var _SingleMonth = require('./SingleMonth');
var _SingleMonth2 = _interopRequireDefault(_SingleMonth);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var CalendarPanelSwiper = function (_Component) {
(0, _inherits3['default'])(CalendarPanelSwiper, _Component);
function CalendarPanelSwiper() {
(0, _classCallCheck3['default'])(this, CalendarPanelSwiper);
var _this = (0, _possibleConstructorReturn3['default'])(this, _Component.apply(this, arguments));
_this.transform = '';
_this.now = new Date();
_this.today = new Date(_this.now.getFullYear(), _this.now.getMonth(), _this.now.getDate());
_this.genMonthComponent = function (data) {
if (!data) return;
return React.createElement(_SingleMonth2['default'], { key: data.title, today: _this.today, swiper: true, showBeginEndInfo: _this.props.showBeginEndInfo, locale: _this.props.locale || {}, monthData: data, onCellClick: _this.onCellClick, disabledDate: _this.props.disabledDate, renderDateCellExtra: _this.props.renderDateCellExtra, renderDateFullCell: _this.props.renderDateFullCell, ref: function ref(dom) {
data.componentRef = dom || data.componentRef || undefined;
} });
};
_this.afterSlide = function (num) {
if (num === 1) return;
var onSlider = _this.props.onSlider;
var genMonthNum = num - 1 > 0 ? 2 : -2;
_this.setState({ slideIndex: num }, function () {
var monthData = _this.state.months[1];
var firstDate = monthData.firstDate;
_this.genMonthData(firstDate, genMonthNum, true);
_this.setState({ slideIndex: 1 });
onSlider && onSlider(_this.state.months[1]);
});
};
return _this;
}
CalendarPanelSwiper.prototype.render = function render() {
var _this2 = this;
var _props = this.props,
_props$prefixCls = _props.prefixCls,
prefixCls = _props$prefixCls === undefined ? '' : _props$prefixCls,
_props$locale = _props.locale,
locale = _props$locale === undefined ? {} : _props$locale,
firstDayOfWeek = _props.firstDayOfWeek;
var style = {
transform: this.transform
};
return React.createElement(
'div',
{ className: prefixCls + ' calendar-panel calendar-panel-swiper' },
React.createElement(_WeekPanel2['default'], { locale: locale, firstDayOfWeek: firstDayOfWeek }),
React.createElement(
'div',
{ className: 'wrapper', style: {
overflowX: 'hidden',
overflowY: 'visible'
} },
React.createElement(
'div',
{ style: style },
React.createElement(
'div',
{ className: 'months' },
React.createElement(
_rmcNukaCarousel2['default'],
{ decorators: [], vertical: true, slideIndex: this.state.slideIndex, afterSlide: this.afterSlide },
this.state.months.map(function (m) {
var hidden = m.height && _this2.visibleMonth.indexOf(m) < 0;
if (hidden) {
return React.createElement('div', { key: m.title + '_shallow', style: { height: m.height } });
}
return m.component;
})
)
)
)
)
);
};
return CalendarPanelSwiper;
}(_CalendarPanel2['default']);
exports['default'] = CalendarPanelSwiper;
module.exports = exports['default'];