'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _uxcoreFormatter = require('uxcore-formatter');
var _uxcoreFormatter2 = _interopRequireDefault(_uxcoreFormatter);
var _uxcoreTooltip = require('uxcore-tooltip');
var _uxcoreTooltip2 = _interopRequireDefault(_uxcoreTooltip);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _locale = require('./locale');
var _locale2 = _interopRequireDefault(_locale);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
/**
* code should be an object like this {'xxxx-xx-xx': 'work/leave/schedule'}
*/
var generateContentRender = function generateContentRender(str) {
var lang = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'zh-cn';
return function contentRender(code, locale, current) {
// see https://github.com/yiminghe/gregorian-calendar to get details about `current` API
var time = current.getTime();
var date = _uxcoreFormatter2['default'].date(time, 'YYYY-MM-DD');
var type = code[date];
if (typeof type === 'string') {
type = [type];
} else Eif (type === undefined) {
type = [];
}
var tipMap = _locale2['default'][locale];
var content = [];
var isWork = type.indexOf('work') !== -1;
var isLeave = type.indexOf('leave') !== -1;
var isSchedule = type.indexOf('schedule') !== -1;
content.push(_react2['default'].createElement(
'span',
{
key: 'date',
className: (0, _classnames2['default'])({
'kuma-calendar-date-content': true,
work: isWork,
leave: isLeave,
schedule: isSchedule
})
},
current.getDayOfMonth()
));
if (isSchedule) {
content.push(_react2['default'].createElement('span', { key: 'bottom-line', className: 'kuma-calendar-date-decoration' }));
}
if (isWork || isLeave) {
return _react2['default'].createElement(
_uxcoreTooltip2['default'],
{ placement: 'right', trigger: ['hover'], overlay: tipMap[isWork ? 'work' : 'leave'] },
_react2['default'].createElement(
'div',
{ className: 'kuma-calendar-date-content-box' },
content
)
);
}
// only one child can be passed.
return _react2['default'].createElement(
'div',
{ className: 'kuma-calendar-date-content-box' },
content
);
}.bind(null, str, lang);
};
function getCalendarContainer() {
var c = document.createElement('div');
c.className = 'uxcore';
document.body.appendChild(c);
return c;
}
/**
* for forward compatability
*/
function generalizeFormat(format) {
return format.replace(/y|d/g, function (value) {
return value.toUpperCase();
});
}
exports['default'] = {
generateContentRender: generateContentRender,
getCalendarContainer: getCalendarContainer,
generalizeFormat: generalizeFormat
};
module.exports = exports['default'];
|