dareway-rui
Version:
255 lines (215 loc) • 10.3 kB
JavaScript
'use strict';
var _interopRequireDefault = require('@babel/runtime/helpers/interopRequireDefault');
Object.defineProperty(exports, '__esModule', {
value: true
});
exports.default = void 0;
var _objectSpread2 = _interopRequireDefault(require('@babel/runtime/helpers/objectSpread'));
var _extends2 = _interopRequireDefault(require('@babel/runtime/helpers/extends'));
var _classCallCheck2 = _interopRequireDefault(require('@babel/runtime/helpers/classCallCheck'));
var _createClass2 = _interopRequireDefault(require('@babel/runtime/helpers/createClass'));
var _possibleConstructorReturn2 = _interopRequireDefault(require('@babel/runtime/helpers/possibleConstructorReturn'));
var _getPrototypeOf2 = _interopRequireDefault(require('@babel/runtime/helpers/getPrototypeOf'));
var _assertThisInitialized2 = _interopRequireDefault(require('@babel/runtime/helpers/assertThisInitialized'));
var _inherits2 = _interopRequireDefault(require('@babel/runtime/helpers/inherits'));
var _defineProperty2 = _interopRequireDefault(require('@babel/runtime/helpers/defineProperty'));
var _react = _interopRequireDefault(require('react'));
var _propTypes = _interopRequireDefault(require('prop-types'));
var _reactLifecyclesCompat = require('react-lifecycles-compat');
var _DateTable = _interopRequireDefault(require('./date/DateTable'));
var _MonthTable = _interopRequireDefault(require('./month/MonthTable'));
var _CalendarMixin = require('./mixin/CalendarMixin');
var _CommonMixin = require('./mixin/CommonMixin');
var _CalendarHeader = _interopRequireDefault(require('./full-calendar/CalendarHeader'));
var _moment = _interopRequireDefault(require('moment'));
var FullCalendar =
/*#__PURE__*/
(function(_React$Component) {
(0, _inherits2.default)(FullCalendar, _React$Component);
function FullCalendar(props) {
var _this;
(0, _classCallCheck2.default)(this, FullCalendar);
_this = (0, _possibleConstructorReturn2.default)(
this,
(0, _getPrototypeOf2.default)(FullCalendar).call(this, props)
);
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'onMonthSelect', function(
value
) {
_this.onSelect(value, {
target: 'month'
});
});
(0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), 'setType', function(type) {
if (!('type' in _this.props)) {
_this.setState({
type: type
});
}
_this.props.onTypeChange(type);
});
var _type;
if ('type' in props) {
_type = props.type;
} else {
_type = props.defaultType;
}
_this.state = {
type: _type,
value: props.value || props.defaultValue || (0, _moment.default)(),
selectedValue: props.selectedValue || props.defaultSelectedValue
};
return _this;
}
(0, _createClass2.default)(
FullCalendar,
[
{
key: 'render',
value: function render() {
var props = this.props;
var locale = props.locale,
prefixCls = props.prefixCls,
fullscreen = props.fullscreen,
showHeader = props.showHeader,
headerComponent = props.headerComponent,
headerRender = props.headerRender,
disabledDate = props.disabledDate;
var _this$state = this.state,
value = _this$state.value,
type = _this$state.type;
var header = null;
if (showHeader) {
if (headerRender) {
header = headerRender(value, type, locale);
} else {
var TheHeader = headerComponent || _CalendarHeader.default;
header = _react.default.createElement(
TheHeader,
(0, _extends2.default)(
{
key: 'calendar-header'
},
props,
{
prefixCls: ''.concat(prefixCls, '-full'),
type: type,
value: value,
onTypeChange: this.setType,
onValueChange: this.setValue
}
)
);
}
}
var table =
type === 'date'
? _react.default.createElement(_DateTable.default, {
dateRender: props.dateCellRender,
contentRender: props.dateCellContentRender,
locale: locale,
prefixCls: prefixCls,
onSelect: this.onSelect,
value: value,
disabledDate: disabledDate
})
: _react.default.createElement(_MonthTable.default, {
cellRender: props.monthCellRender,
contentRender: props.monthCellContentRender,
locale: locale,
onSelect: this.onMonthSelect,
prefixCls: ''.concat(prefixCls, '-month-panel'),
value: value,
disabledDate: disabledDate
});
var children = [
header,
_react.default.createElement(
'div',
{
key: 'calendar-body',
className: ''.concat(prefixCls, '-calendar-body')
},
table
)
];
var className = [''.concat(prefixCls, '-full')];
if (fullscreen) {
className.push(''.concat(prefixCls, '-fullscreen'));
}
return this.renderRoot({
children: children,
className: className.join(' ')
});
}
}
],
[
{
key: 'getDerivedStateFromProps',
value: function getDerivedStateFromProps(nextProps, state) {
var newState = {};
var value = nextProps.value,
selectedValue = nextProps.selectedValue;
if ('type' in nextProps) {
newState = {
type: nextProps.type
};
}
if ('value' in nextProps) {
newState.value =
value ||
nextProps.defaultValue ||
(0, _CalendarMixin.getNowByCurrentStateValue)(state.value);
}
if ('selectedValue' in nextProps) {
newState.selectedValue = selectedValue;
}
return newState;
}
}
]
);
return FullCalendar;
})(_react.default.Component);
(0, _defineProperty2.default)(
FullCalendar,
'propTypes',
(0, _objectSpread2.default)({}, _CalendarMixin.calendarMixinPropTypes, _CommonMixin.propType, {
defaultType: _propTypes.default.string,
type: _propTypes.default.string,
prefixCls: _propTypes.default.string,
locale: _propTypes.default.object,
onTypeChange: _propTypes.default.func,
fullscreen: _propTypes.default.bool,
monthCellRender: _propTypes.default.func,
dateCellRender: _propTypes.default.func,
showTypeSwitch: _propTypes.default.bool,
Select: _propTypes.default.func.isRequired,
headerComponents: _propTypes.default.array,
headerComponent: _propTypes.default.object,
// The whole header component
headerRender: _propTypes.default.func,
showHeader: _propTypes.default.bool,
disabledDate: _propTypes.default.func,
value: _propTypes.default.object,
defaultValue: _propTypes.default.object,
selectedValue: _propTypes.default.object,
defaultSelectedValue: _propTypes.default.object
})
);
(0, _defineProperty2.default)(
FullCalendar,
'defaultProps',
(0, _objectSpread2.default)({}, _CalendarMixin.calendarMixinDefaultProps, _CommonMixin.defaultProp, {
defaultType: 'date',
fullscreen: false,
showTypeSwitch: true,
showHeader: true,
onTypeChange: function onTypeChange() {}
})
);
(0, _reactLifecyclesCompat.polyfill)(FullCalendar);
var _default = (0, _CalendarMixin.calendarMixinWrapper)((0, _CommonMixin.commonMixinWrapper)(FullCalendar));
exports.default = _default;
//@ sourceMappingURL=FullCalendar.js.map