Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
Size: Mime:
'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _DayColumn$propTypes;

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

var _propTypes = require('prop-types');

var _propTypes2 = _interopRequireDefault(_propTypes);

var _react = require('react');

var _react2 = _interopRequireDefault(_react);

var _classnames = require('classnames');

var _classnames2 = _interopRequireDefault(_classnames);

var _dates = require('./utils/dates');

var _dates2 = _interopRequireDefault(_dates);

var _TimeSlots = require('./utils/TimeSlots');

var TimeSlotUtils = _interopRequireWildcard(_TimeSlots);

var _selection = require('./utils/selection');

var _localizer = require('./localizer');

var _localizer2 = _interopRequireDefault(_localizer);

var _helpers = require('./utils/helpers');

var _propTypes3 = require('./utils/propTypes');

var _DayEventLayout = require('./utils/DayEventLayout');

var DayEventLayout = _interopRequireWildcard(_DayEventLayout);

var _TimeSlotGroup = require('./TimeSlotGroup');

var _TimeSlotGroup2 = _interopRequireDefault(_TimeSlotGroup);

var _TimeGridEvent = require('./TimeGridEvent');

var _TimeGridEvent2 = _interopRequireDefault(_TimeGridEvent);

function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

var DayColumn = function (_React$Component) {
  _inherits(DayColumn, _React$Component);

  function DayColumn(props) {
    _classCallCheck(this, DayColumn);

    var _this = _possibleConstructorReturn(this, (DayColumn.__proto__ || Object.getPrototypeOf(DayColumn)).call(this, props));

    _this.renderEvents = function () {
      var _this$props = _this.props,
          events = _this$props.events,
          isRtl = _this$props.rtl,
          selected = _this$props.selected,
          accessors = _this$props.accessors,
          getters = _this$props.getters,
          components = _this$props.components,
          step = _this$props.step,
          timeslots = _this$props.timeslots,
          isGenericCalendarMode = _this$props.isGenericCalendarMode;
      var slotMetrics = _this.slotMetrics;
      var messages = _localizer2.default.messages;


      var styledEvents = DayEventLayout.getStyledEvents({
        events: events,
        accessors: accessors,
        slotMetrics: slotMetrics,
        minimumStartDifference: Math.ceil(step * timeslots / 4)
      });

      return styledEvents.map(function (_ref, idx) {
        var event = _ref.event,
            style = _ref.style;

        var end = accessors.end(event);
        var start = accessors.start(event);
        var format = 'eventTimeRangeFormat';
        var label = void 0;

        var startsBeforeDay = slotMetrics.startsBeforeDay(start);
        var startsAfterDay = slotMetrics.startsAfterDay(end);

        if (startsBeforeDay) format = 'eventTimeRangeEndFormat';else if (startsAfterDay) format = 'eventTimeRangeStartFormat';

        if (startsBeforeDay && startsAfterDay) label = messages.allDay;else label = _localizer2.default.format({ start: start, end: end }, format);

        var continuesEarlier = startsBeforeDay || slotMetrics.startsBefore(start);
        var continuesLater = startsAfterDay || slotMetrics.startsAfter(end);

        return _react2.default.createElement(_TimeGridEvent2.default, {
          style: style,
          event: event,
          label: label,
          key: 'evt_' + idx,
          isRtl: isRtl,
          getters: getters,
          components: components,
          continuesEarlier: continuesEarlier,
          continuesLater: continuesLater,
          accessors: accessors,
          selected: (0, _selection.isSelected)(event, selected),
          onClick: function onClick(e) {
            return _this._select(event, e);
          },
          onDoubleClick: function onDoubleClick(e) {
            return _this._doubleClick(event, e);
          },
          isGenericCalendarMode: isGenericCalendarMode
        });
      });
    };

    _this._select = function () {
      for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
        args[_key] = arguments[_key];
      }

      (0, _helpers.notify)(_this.props.onSelectEvent, args);
    };

    _this._doubleClick = function () {
      for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
        args[_key2] = arguments[_key2];
      }

      (0, _helpers.notify)(_this.props.onDoubleClickEvent, args);
    };

    _this.slotMetrics = TimeSlotUtils.getSlotMetrics(props);
    return _this;
  }

  _createClass(DayColumn, [{
    key: 'componentWillReceiveProps',
    value: function componentWillReceiveProps(nextProps) {
      this.slotMetrics = this.slotMetrics.update(nextProps);
    }
  }, {
    key: 'render',
    value: function render() {
      var _props = this.props,
          max = _props.max,
          rtl = _props.rtl,
          date = _props.date,
          getNow = _props.getNow,
          resource = _props.resource,
          accessors = _props.accessors,
          _props$getters = _props.getters,
          dayProp = _props$getters.dayProp,
          getters = _objectWithoutProperties(_props$getters, ['dayProp']),
          _props$components = _props.components,
          EventContainer = _props$components.eventContainerWrapper,
          components = _objectWithoutProperties(_props$components, ['eventContainerWrapper']),
          clickSelectable = _props.clickSelectable,
          hoverInteractionEnabled = _props.hoverInteractionEnabled,
          isGenericCalendarMode = _props.isGenericCalendarMode,
          maxHorizon = _props.maxHorizon,
          minNotice = _props.minNotice,
          minResizeDuration = _props.minResizeDuration;

      var slotMetrics = this.slotMetrics;

      var _dayProp = dayProp(max),
          className = _dayProp.className,
          style = _dayProp.style;

      var current = getNow();

      return _react2.default.createElement(
        'div',
        {
          style: style,
          className: (0, _classnames2.default)(className, 'rbc-day-slot', 'rbc-time-column', _dates2.default.eq(date, current, 'day') && 'rbc-today')
        },
        slotMetrics.groups.map(function (grp, idx) {
          return _react2.default.createElement(_TimeSlotGroup2.default, {
            key: idx,
            group: grp,
            resource: resource,
            getters: getters,
            components: components,
            isGenericCalendarMode: isGenericCalendarMode,
            maxHorizon: maxHorizon,
            minNotice: minNotice
          });
        }),
        clickSelectable && hoverInteractionEnabled && _react2.default.createElement('div', { className: 'rbc-day-hover-interaction rbc-events-container' }),
        _react2.default.createElement(
          EventContainer,
          {
            resource: resource,
            accessors: accessors,
            getters: getters,
            components: components,
            slotMetrics: slotMetrics,
            onInteraction: this.props.onInteraction,
            isGenericCalendarMode: isGenericCalendarMode,
            minResizeDuration: minResizeDuration
          },
          _react2.default.createElement(
            'div',
            { className: (0, _classnames2.default)('rbc-events-container', rtl && 'rtl') },
            this.renderEvents()
          )
        )
      );
    }
  }]);

  return DayColumn;
}(_react2.default.Component);

DayColumn.propTypes = (_DayColumn$propTypes = {
  events: _propTypes2.default.array.isRequired,
  components: _propTypes2.default.object,
  step: _propTypes2.default.number.isRequired,
  date: _propTypes2.default.instanceOf(Date).isRequired,
  min: _propTypes2.default.instanceOf(Date).isRequired,
  max: _propTypes2.default.instanceOf(Date).isRequired,
  getNow: _propTypes2.default.func.isRequired,

  rtl: _propTypes2.default.bool,

  eventTimeRangeFormat: _propTypes3.dateFormat,
  eventTimeRangeStartFormat: _propTypes3.dateFormat,
  eventTimeRangeEndFormat: _propTypes3.dateFormat,
  showMultiDayTimes: _propTypes2.default.bool,
  clickSelectable: _propTypes2.default.bool,
  hoverInteractionEnabled: _propTypes2.default.bool,
  culture: _propTypes2.default.string,
  namingCulture: _propTypes2.default.string,
  timeslots: _propTypes2.default.number,
  messages: _propTypes2.default.object,

  accessors: _propTypes2.default.object.isRequired
}, _defineProperty(_DayColumn$propTypes, 'components', _propTypes2.default.object.isRequired), _defineProperty(_DayColumn$propTypes, 'getters', _propTypes2.default.object.isRequired), _defineProperty(_DayColumn$propTypes, 'selected', _propTypes2.default.object), _defineProperty(_DayColumn$propTypes, 'selectable', _propTypes2.default.oneOf([true, false, 'ignoreEvents'])), _defineProperty(_DayColumn$propTypes, 'eventOffset', _propTypes2.default.number), _defineProperty(_DayColumn$propTypes, 'longPressThreshold', _propTypes2.default.number), _defineProperty(_DayColumn$propTypes, 'onSelecting', _propTypes2.default.func), _defineProperty(_DayColumn$propTypes, 'onSelectSlot', _propTypes2.default.func.isRequired), _defineProperty(_DayColumn$propTypes, 'onSelectEvent', _propTypes2.default.func.isRequired), _defineProperty(_DayColumn$propTypes, 'onDoubleClickEvent', _propTypes2.default.func.isRequired), _defineProperty(_DayColumn$propTypes, 'className', _propTypes2.default.string), _defineProperty(_DayColumn$propTypes, 'dragThroughEvents', _propTypes2.default.bool), _defineProperty(_DayColumn$propTypes, 'eventPropGetter', _propTypes2.default.func), _defineProperty(_DayColumn$propTypes, 'dayPropGetter', _propTypes2.default.func), _defineProperty(_DayColumn$propTypes, 'slotPropGetter', _propTypes2.default.func), _defineProperty(_DayColumn$propTypes, 'isGenericCalendarMode', _propTypes2.default.bool), _defineProperty(_DayColumn$propTypes, 'resource', _propTypes2.default.string), _defineProperty(_DayColumn$propTypes, 'onInteraction', _propTypes2.default.func), _defineProperty(_DayColumn$propTypes, 'maxHorizon', _propTypes2.default.instanceOf(Date)), _defineProperty(_DayColumn$propTypes, 'minNotice', _propTypes2.default.instanceOf(Date)), _defineProperty(_DayColumn$propTypes, 'minResizeDuration', _propTypes2.default.number.isRequired), _DayColumn$propTypes);
DayColumn.defaultProps = {
  dragThroughEvents: true,
  clickSelectable: false,
  hoverInteractionEnabled: false,
  isGenericCalendarMode: false,
  timeslots: 2,
  maxHorizon: null,
  minNotice: null
};
exports.default = DayColumn;