Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

Popup.js 5.2 KiB

há 3 anos
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  7. var _inheritsLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));
  8. var _propTypes = _interopRequireDefault(require("prop-types"));
  9. var _react = _interopRequireDefault(require("react"));
  10. var _offset = _interopRequireDefault(require("dom-helpers/offset"));
  11. var _scrollTop = _interopRequireDefault(require("dom-helpers/scrollTop"));
  12. var _scrollLeft = _interopRequireDefault(require("dom-helpers/scrollLeft"));
  13. var dates = _interopRequireWildcard(require("./utils/dates"));
  14. var _EventCell = _interopRequireDefault(require("./EventCell"));
  15. var _selection = require("./utils/selection");
  16. var Popup =
  17. /*#__PURE__*/
  18. function (_React$Component) {
  19. (0, _inheritsLoose2.default)(Popup, _React$Component);
  20. function Popup() {
  21. return _React$Component.apply(this, arguments) || this;
  22. }
  23. var _proto = Popup.prototype;
  24. _proto.componentDidMount = function componentDidMount() {
  25. var _this$props = this.props,
  26. _this$props$popupOffs = _this$props.popupOffset,
  27. popupOffset = _this$props$popupOffs === void 0 ? 5 : _this$props$popupOffs,
  28. popperRef = _this$props.popperRef,
  29. _getOffset = (0, _offset.default)(popperRef.current),
  30. top = _getOffset.top,
  31. left = _getOffset.left,
  32. width = _getOffset.width,
  33. height = _getOffset.height,
  34. viewBottom = window.innerHeight + (0, _scrollTop.default)(window),
  35. viewRight = window.innerWidth + (0, _scrollLeft.default)(window),
  36. bottom = top + height,
  37. right = left + width;
  38. if (bottom > viewBottom || right > viewRight) {
  39. var topOffset, leftOffset;
  40. if (bottom > viewBottom) topOffset = bottom - viewBottom + (popupOffset.y || +popupOffset || 0);
  41. if (right > viewRight) leftOffset = right - viewRight + (popupOffset.x || +popupOffset || 0);
  42. this.setState({
  43. topOffset: topOffset,
  44. leftOffset: leftOffset
  45. }); //eslint-disable-line
  46. }
  47. };
  48. _proto.render = function render() {
  49. var _this$props2 = this.props,
  50. events = _this$props2.events,
  51. selected = _this$props2.selected,
  52. getters = _this$props2.getters,
  53. accessors = _this$props2.accessors,
  54. components = _this$props2.components,
  55. onSelect = _this$props2.onSelect,
  56. onDoubleClick = _this$props2.onDoubleClick,
  57. slotStart = _this$props2.slotStart,
  58. slotEnd = _this$props2.slotEnd,
  59. localizer = _this$props2.localizer,
  60. popperRef = _this$props2.popperRef;
  61. var width = this.props.position.width,
  62. topOffset = (this.state || {}).topOffset || 0,
  63. leftOffset = (this.state || {}).leftOffset || 0;
  64. var style = {
  65. top: -topOffset,
  66. left: -leftOffset,
  67. minWidth: width + width / 2
  68. };
  69. return _react.default.createElement("div", {
  70. style: (0, _extends2.default)({}, this.props.style, style),
  71. className: "rbc-overlay",
  72. ref: popperRef
  73. }, _react.default.createElement("div", {
  74. className: "rbc-overlay-header"
  75. }, localizer.format(slotStart, 'dayHeaderFormat')), events.map(function (event, idx) {
  76. return _react.default.createElement(_EventCell.default, {
  77. key: idx,
  78. type: "popup",
  79. event: event,
  80. getters: getters,
  81. onSelect: onSelect,
  82. accessors: accessors,
  83. components: components,
  84. onDoubleClick: onDoubleClick,
  85. continuesPrior: dates.lt(accessors.end(event), slotStart, 'day'),
  86. continuesAfter: dates.gte(accessors.start(event), slotEnd, 'day'),
  87. slotStart: slotStart,
  88. slotEnd: slotEnd,
  89. selected: (0, _selection.isSelected)(event, selected)
  90. });
  91. }));
  92. };
  93. return Popup;
  94. }(_react.default.Component);
  95. Popup.propTypes = process.env.NODE_ENV !== "production" ? {
  96. position: _propTypes.default.object,
  97. popupOffset: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
  98. x: _propTypes.default.number,
  99. y: _propTypes.default.number
  100. })]),
  101. events: _propTypes.default.array,
  102. selected: _propTypes.default.object,
  103. accessors: _propTypes.default.object.isRequired,
  104. components: _propTypes.default.object.isRequired,
  105. getters: _propTypes.default.object.isRequired,
  106. localizer: _propTypes.default.object.isRequired,
  107. onSelect: _propTypes.default.func,
  108. onDoubleClick: _propTypes.default.func,
  109. slotStart: _propTypes.default.instanceOf(Date),
  110. slotEnd: _propTypes.default.number,
  111. popperRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
  112. current: _propTypes.default.Element
  113. })])
  114. /**
  115. * The Overlay component, of react-overlays, creates a ref that is passed to the Popup, and
  116. * requires proper ref forwarding to be used without error
  117. */
  118. } : {};
  119. var _default = _react.default.forwardRef(function (props, ref) {
  120. return _react.default.createElement(Popup, (0, _extends2.default)({
  121. popperRef: ref
  122. }, props));
  123. });
  124. exports.default = _default;
  125. module.exports = exports["default"];