react-big-calendar
Version:
Calendar! with events
78 lines (76 loc) • 3.6 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _clsx = _interopRequireDefault(require("clsx"));
var _react = _interopRequireDefault(require("react"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
function stringifyPercent(v) {
return typeof v === 'string' ? v : v + '%';
}
/* eslint-disable react/prop-types */
function TimeGridEvent(props) {
var style = props.style,
className = props.className,
event = props.event,
accessors = props.accessors,
rtl = props.rtl,
selected = props.selected,
label = props.label,
continuesPrior = props.continuesPrior,
continuesAfter = props.continuesAfter,
getters = props.getters,
onClick = props.onClick,
onDoubleClick = props.onDoubleClick,
isBackgroundEvent = props.isBackgroundEvent,
onKeyPress = props.onKeyPress,
_props$components = props.components,
Event = _props$components.event,
EventWrapper = _props$components.eventWrapper;
var title = accessors.title(event);
var tooltip = accessors.tooltip(event);
var end = accessors.end(event);
var start = accessors.start(event);
var userProps = getters.eventProp(event, start, end, selected);
var inner = [/*#__PURE__*/_react.default.createElement("div", {
key: "1",
className: "rbc-event-label"
}, label), /*#__PURE__*/_react.default.createElement("div", {
key: "2",
className: "rbc-event-content"
}, Event ? /*#__PURE__*/_react.default.createElement(Event, {
event: event,
title: title
}) : title)];
var height = style.height,
top = style.top,
width = style.width,
xOffset = style.xOffset;
var eventStyle = _objectSpread(_objectSpread({}, userProps.style), {}, (0, _defineProperty2.default)({
top: stringifyPercent(top),
height: stringifyPercent(height),
width: stringifyPercent(width)
}, rtl ? 'right' : 'left', stringifyPercent(xOffset)));
return /*#__PURE__*/_react.default.createElement(EventWrapper, (0, _extends2.default)({
type: "time"
}, props), /*#__PURE__*/_react.default.createElement("div", {
role: "button",
tabIndex: 0,
onClick: onClick,
onDoubleClick: onDoubleClick,
style: eventStyle,
onKeyDown: onKeyPress,
title: tooltip ? (typeof label === 'string' ? label + ': ' : '') + tooltip : undefined,
className: (0, _clsx.default)(isBackgroundEvent ? 'rbc-background-event' : 'rbc-event', className, userProps.className, {
'rbc-selected': selected,
'rbc-event-continues-earlier': continuesPrior,
'rbc-event-continues-later': continuesAfter
})
}, inner));
}
var _default = exports.default = TimeGridEvent;