UNPKG

@gem-mine/rmc-calendar

Version:

React Mobile Calendar Component(web and react-native)

125 lines (95 loc) 5.18 kB
'use strict'; 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'];