big-scheduler
Version:
Big scheduler is a powerful and intuitive scheduler and resource planning solution built with React. Seamlessly integrate this modern browser-compatible component into your applications to effectively manage time, appointments, and resources. With drag-a
89 lines (88 loc) • 4.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _AgendaEventItem = _interopRequireDefault(require("./AgendaEventItem"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function AgendaResourceEvents(props) {
var schedulerData = props.schedulerData,
resourceEvents = props.resourceEvents,
slotClickedFunc = props.slotClickedFunc,
slotItemTemplateResolver = props.slotItemTemplateResolver;
var startDate = schedulerData.startDate,
endDate = schedulerData.endDate,
config = schedulerData.config,
localeDayjs = schedulerData.localeDayjs;
var width = schedulerData.getResourceTableWidth() - 2;
var events = resourceEvents.headerItems.flatMap(function (item) {
var start = localeDayjs(new Date(startDate));
var end = localeDayjs(endDate).add(1, "days");
var headerStart = localeDayjs(new Date(item.start));
var headerEnd = localeDayjs(new Date(item.end));
if (start === headerStart && end === headerEnd) {
return item.events.map(function (evt) {
var durationStart = localeDayjs(new Date(startDate));
var durationEnd = localeDayjs(endDate).add(1, "days");
var eventStart = localeDayjs(evt.eventItem.start);
var eventEnd = localeDayjs(evt.eventItem.end);
var isStart = eventStart >= durationStart;
var isEnd = eventEnd < durationEnd;
return /*#__PURE__*/_react["default"].createElement(_AgendaEventItem["default"], _extends({}, props, {
key: evt.eventItem.id,
eventItem: evt.eventItem,
isStart: isStart,
isEnd: isEnd
}));
});
}
return [];
});
var slotItemContent = slotClickedFunc ? /*#__PURE__*/_react["default"].createElement("button", {
className: "txt-btn-dis",
type: "button",
onClick: function onClick() {
return slotClickedFunc(schedulerData, resourceEvents);
}
}, resourceEvents.slotName) : /*#__PURE__*/_react["default"].createElement("span", null, resourceEvents.slotName);
var slotItem = /*#__PURE__*/_react["default"].createElement("div", {
style: {
width: width
},
title: resourceEvents.slotTitle || resourceEvents.slotName,
className: "overflow-text header2-text"
}, slotItemContent);
if (slotItemTemplateResolver) {
var temp = slotItemTemplateResolver(schedulerData, resourceEvents, slotClickedFunc, width, "overflow-text header2-text");
if (temp) {
slotItem = temp;
}
}
return /*#__PURE__*/_react["default"].createElement("tr", {
style: {
minHeight: config.eventItemLineHeight + 2
}
}, /*#__PURE__*/_react["default"].createElement("td", {
"data-resource-id": resourceEvents.slotId
}, slotItem), /*#__PURE__*/_react["default"].createElement("td", null, /*#__PURE__*/_react["default"].createElement("div", {
className: "day-event-container"
}, events)));
}
AgendaResourceEvents.propTypes = {
schedulerData: _propTypes["default"].object.isRequired,
resourceEvents: _propTypes["default"].object.isRequired,
subtitleGetter: _propTypes["default"].func,
eventItemClick: _propTypes["default"].func,
eventContextMenuOpen: _propTypes["default"].func,
viewEventClick: _propTypes["default"].func,
viewEventText: _propTypes["default"].string,
viewEvent2Click: _propTypes["default"].func,
viewEvent2Text: _propTypes["default"].string,
slotClickedFunc: _propTypes["default"].func,
slotItemTemplateResolver: _propTypes["default"].func
};
var _default = exports["default"] = AgendaResourceEvents;
//# sourceMappingURL=AgendaResourceEvents.js.map