Repository URL to install this package:
|
Version:
2.3.0 ▾
|
'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;