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
115 lines (114 loc) • 4.46 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _icons = require("@ant-design/icons");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function ResourceView(_ref) {
var schedulerData = _ref.schedulerData,
contentScrollbarHeight = _ref.contentScrollbarHeight,
slotClickedFunc = _ref.slotClickedFunc,
slotItemTemplateResolver = _ref.slotItemTemplateResolver,
toggleExpandFunc = _ref.toggleExpandFunc;
var renderData = schedulerData.renderData;
var width = schedulerData.getResourceTableWidth() - 2;
var paddingBottom = contentScrollbarHeight;
var displayRenderData = renderData.filter(function (o) {
return o.render;
});
var handleToggleExpand = function handleToggleExpand(item) {
if (toggleExpandFunc) {
toggleExpandFunc(schedulerData, item.slotId);
}
};
var renderSlotItem = function renderSlotItem(item, indents) {
var indent = /*#__PURE__*/_react["default"].createElement("span", {
key: "es".concat(item.indent),
className: "expander-space"
});
var iconProps = {
key: "es".concat(item.indent),
onClick: function onClick() {
return handleToggleExpand(item);
}
};
if (item.hasChildren) {
indent = item.expanded ? /*#__PURE__*/_react["default"].createElement(_icons.CaretDownOutlined, iconProps) : /*#__PURE__*/_react["default"].createElement(_icons.CaretRightOutlined, iconProps);
}
indents.push(indent);
var slotCell = slotClickedFunc ? /*#__PURE__*/_react["default"].createElement("span", {
className: "slot-cell"
}, indents, /*#__PURE__*/_react["default"].createElement("button", {
type: "button",
style: {
cursor: "pointer"
},
className: "slot-text txt-btn-dis",
onClick: function onClick() {
return slotClickedFunc(schedulerData, item);
}
}, item.slotName)) : /*#__PURE__*/_react["default"].createElement("span", {
className: "slot-cell"
}, indents, /*#__PURE__*/_react["default"].createElement("button", {
type: "button",
className: "slot-text txt-btn-dis",
style: {
cursor: slotClickedFunc === undefined ? undefined : "pointer"
}
}, item.slotName));
var slotItem = /*#__PURE__*/_react["default"].createElement("div", {
title: item.slotTitle || item.slotName,
className: "overflow-text header2-text",
style: {
textAlign: "left"
}
}, slotCell);
if (slotItemTemplateResolver) {
var resolvedTemplate = slotItemTemplateResolver(schedulerData, item, slotClickedFunc, width, "overflow-text header2-text");
if (resolvedTemplate) {
slotItem = resolvedTemplate;
}
}
var tdStyle = {
height: item.rowHeight,
// backgroundColor: item.groupOnly ? schedulerData.config.groupOnlySlotColor : "rgb(100, 100, 100)",
backgroundColor: item["static"] ? schedulerData.config.staticResourcesBGColor : "rgb(100, 100, 100)",
color: "#fff"
};
return /*#__PURE__*/_react["default"].createElement("tr", {
key: item.slotId
}, /*#__PURE__*/_react["default"].createElement("td", {
"data-resource-id": item.slotId,
style: tdStyle
}, slotItem));
};
var resourceList = displayRenderData.map(function (item) {
var indents = [];
for (var i = 0; i < item.indent; i += 1) {
indents.push(/*#__PURE__*/_react["default"].createElement("span", {
key: "es".concat(i),
className: "expander-space"
}));
}
return renderSlotItem(item, indents);
});
return /*#__PURE__*/_react["default"].createElement("div", {
style: {
paddingBottom: paddingBottom
}
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "resource-table"
}, /*#__PURE__*/_react["default"].createElement("tbody", null, resourceList)));
}
ResourceView.propTypes = {
schedulerData: _propTypes["default"].object.isRequired,
contentScrollbarHeight: _propTypes["default"].number.isRequired,
slotClickedFunc: _propTypes["default"].func,
slotItemTemplateResolver: _propTypes["default"].func,
toggleExpandFunc: _propTypes["default"].func
};
var _default = exports["default"] = ResourceView;
//# sourceMappingURL=ResourceView.js.map