No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

235 líneas
8.3 KiB

  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  4. exports.__esModule = true;
  5. exports.default = void 0;
  6. var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
  7. var _propTypes = _interopRequireDefault(require("prop-types"));
  8. var _clsx = _interopRequireDefault(require("clsx"));
  9. var _scrollbarSize = _interopRequireDefault(require("dom-helpers/scrollbarSize"));
  10. var _react = _interopRequireDefault(require("react"));
  11. var dates = _interopRequireWildcard(require("./utils/dates"));
  12. var _DateContentRow = _interopRequireDefault(require("./DateContentRow"));
  13. var _Header = _interopRequireDefault(require("./Header"));
  14. var _ResourceHeader = _interopRequireDefault(require("./ResourceHeader"));
  15. var _helpers = require("./utils/helpers");
  16. var TimeGridHeader =
  17. /*#__PURE__*/
  18. function (_React$Component) {
  19. (0, _inheritsLoose2.default)(TimeGridHeader, _React$Component);
  20. function TimeGridHeader() {
  21. var _this;
  22. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  23. args[_key] = arguments[_key];
  24. }
  25. _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
  26. _this.handleHeaderClick = function (date, view, e) {
  27. e.preventDefault();
  28. (0, _helpers.notify)(_this.props.onDrillDown, [date, view]);
  29. };
  30. _this.renderRow = function (resource) {
  31. var _this$props = _this.props,
  32. events = _this$props.events,
  33. rtl = _this$props.rtl,
  34. selectable = _this$props.selectable,
  35. getNow = _this$props.getNow,
  36. range = _this$props.range,
  37. getters = _this$props.getters,
  38. localizer = _this$props.localizer,
  39. accessors = _this$props.accessors,
  40. components = _this$props.components;
  41. var resourceId = accessors.resourceId(resource);
  42. var eventsToDisplay = resource ? events.filter(function (event) {
  43. return accessors.resource(event) === resourceId;
  44. }) : events;
  45. return _react.default.createElement(_DateContentRow.default, {
  46. isAllDay: true,
  47. rtl: rtl,
  48. getNow: getNow,
  49. minRows: 2,
  50. range: range,
  51. events: eventsToDisplay,
  52. resourceId: resourceId,
  53. className: "rbc-allday-cell",
  54. selectable: selectable,
  55. selected: _this.props.selected,
  56. components: components,
  57. accessors: accessors,
  58. getters: getters,
  59. localizer: localizer,
  60. onSelect: _this.props.onSelectEvent,
  61. onDoubleClick: _this.props.onDoubleClickEvent,
  62. onSelectSlot: _this.props.onSelectSlot,
  63. longPressThreshold: _this.props.longPressThreshold
  64. });
  65. };
  66. return _this;
  67. }
  68. var _proto = TimeGridHeader.prototype;
  69. _proto.renderHeaderCells = function renderHeaderCells(range) {
  70. var _this2 = this;
  71. var _this$props2 = this.props,
  72. localizer = _this$props2.localizer,
  73. getDrilldownView = _this$props2.getDrilldownView,
  74. getNow = _this$props2.getNow,
  75. dayProp = _this$props2.getters.dayProp,
  76. _this$props2$componen = _this$props2.components.header,
  77. HeaderComponent = _this$props2$componen === void 0 ? _Header.default : _this$props2$componen;
  78. var today = getNow();
  79. return range.map(function (date, i) {
  80. var drilldownView = getDrilldownView(date);
  81. var label = localizer.format(date, 'dayFormat');
  82. var _dayProp = dayProp(date),
  83. className = _dayProp.className,
  84. style = _dayProp.style;
  85. var header = _react.default.createElement(HeaderComponent, {
  86. date: date,
  87. label: label,
  88. localizer: localizer
  89. });
  90. return _react.default.createElement("div", {
  91. key: i,
  92. style: style,
  93. className: (0, _clsx.default)('rbc-header', className, dates.eq(date, today, 'day') && 'rbc-today')
  94. }, drilldownView ? _react.default.createElement("a", {
  95. href: "#",
  96. onClick: function onClick(e) {
  97. return _this2.handleHeaderClick(date, drilldownView, e);
  98. }
  99. }, header) : _react.default.createElement("span", null, header));
  100. });
  101. };
  102. _proto.render = function render() {
  103. var _this3 = this;
  104. var _this$props3 = this.props,
  105. width = _this$props3.width,
  106. rtl = _this$props3.rtl,
  107. resources = _this$props3.resources,
  108. range = _this$props3.range,
  109. events = _this$props3.events,
  110. getNow = _this$props3.getNow,
  111. accessors = _this$props3.accessors,
  112. selectable = _this$props3.selectable,
  113. components = _this$props3.components,
  114. getters = _this$props3.getters,
  115. scrollRef = _this$props3.scrollRef,
  116. localizer = _this$props3.localizer,
  117. isOverflowing = _this$props3.isOverflowing,
  118. _this$props3$componen = _this$props3.components,
  119. TimeGutterHeader = _this$props3$componen.timeGutterHeader,
  120. _this$props3$componen2 = _this$props3$componen.resourceHeader,
  121. ResourceHeaderComponent = _this$props3$componen2 === void 0 ? _ResourceHeader.default : _this$props3$componen2;
  122. var style = {};
  123. if (isOverflowing) {
  124. style[rtl ? 'marginLeft' : 'marginRight'] = (0, _scrollbarSize.default)() + "px";
  125. }
  126. var groupedEvents = resources.groupEvents(events);
  127. return _react.default.createElement("div", {
  128. style: style,
  129. ref: scrollRef,
  130. className: (0, _clsx.default)('rbc-time-header', isOverflowing && 'rbc-overflowing')
  131. }, _react.default.createElement("div", {
  132. className: "rbc-label rbc-time-header-gutter",
  133. style: {
  134. width: width,
  135. minWidth: width,
  136. maxWidth: width
  137. }
  138. }, TimeGutterHeader && _react.default.createElement(TimeGutterHeader, null)), resources.map(function (_ref, idx) {
  139. var id = _ref[0],
  140. resource = _ref[1];
  141. return _react.default.createElement("div", {
  142. className: "rbc-time-header-content",
  143. key: id || idx
  144. }, resource && _react.default.createElement("div", {
  145. className: "rbc-row rbc-row-resource",
  146. key: "resource_" + idx
  147. }, _react.default.createElement("div", {
  148. className: "rbc-header"
  149. }, _react.default.createElement(ResourceHeaderComponent, {
  150. index: idx,
  151. label: accessors.resourceTitle(resource),
  152. resource: resource
  153. }))), _react.default.createElement("div", {
  154. className: "rbc-row rbc-time-header-cell" + (range.length <= 1 ? ' rbc-time-header-cell-single-day' : '')
  155. }, _this3.renderHeaderCells(range)), _react.default.createElement(_DateContentRow.default, {
  156. isAllDay: true,
  157. rtl: rtl,
  158. getNow: getNow,
  159. minRows: 2,
  160. range: range,
  161. events: groupedEvents.get(id) || [],
  162. resourceId: resource && id,
  163. className: "rbc-allday-cell",
  164. selectable: selectable,
  165. selected: _this3.props.selected,
  166. components: components,
  167. accessors: accessors,
  168. getters: getters,
  169. localizer: localizer,
  170. onSelect: _this3.props.onSelectEvent,
  171. onDoubleClick: _this3.props.onDoubleClickEvent,
  172. onSelectSlot: _this3.props.onSelectSlot,
  173. longPressThreshold: _this3.props.longPressThreshold
  174. }));
  175. }));
  176. };
  177. return TimeGridHeader;
  178. }(_react.default.Component);
  179. TimeGridHeader.propTypes = process.env.NODE_ENV !== "production" ? {
  180. range: _propTypes.default.array.isRequired,
  181. events: _propTypes.default.array.isRequired,
  182. resources: _propTypes.default.object,
  183. getNow: _propTypes.default.func.isRequired,
  184. isOverflowing: _propTypes.default.bool,
  185. rtl: _propTypes.default.bool,
  186. width: _propTypes.default.number,
  187. localizer: _propTypes.default.object.isRequired,
  188. accessors: _propTypes.default.object.isRequired,
  189. components: _propTypes.default.object.isRequired,
  190. getters: _propTypes.default.object.isRequired,
  191. selected: _propTypes.default.object,
  192. selectable: _propTypes.default.oneOf([true, false, 'ignoreEvents']),
  193. longPressThreshold: _propTypes.default.number,
  194. onSelectSlot: _propTypes.default.func,
  195. onSelectEvent: _propTypes.default.func,
  196. onDoubleClickEvent: _propTypes.default.func,
  197. onDrillDown: _propTypes.default.func,
  198. getDrilldownView: _propTypes.default.func.isRequired,
  199. scrollRef: _propTypes.default.any
  200. } : {};
  201. var _default = TimeGridHeader;
  202. exports.default = _default;
  203. module.exports = exports["default"];