Socket
Socket
Sign inDemoInstall

react-big-calendar

Package Overview
Dependencies
10
Maintainers
2
Versions
175
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.17.0 to 0.18.0

lib/addons/dragAndDrop/compose.js

383

CHANGELOG.md

@@ -1,352 +0,177 @@

v0.17.0 - Thu, 02 Nov 2017 15:26:08 GMT
---------------------------------------
## v0.18.0 - Wed, 07 Feb 2018 16:14:20 GMT
## v0.17.1 - Tue, 05 Dec 2017 19:42:18 GMT
* [#634](../../pull/634) added a new optional callback `dayPropGetter` to allow customization of the cell backgrounds of month, week, and work week views without the need for custom components
## v0.17.0 - Thu, 02 Nov 2017 15:26:08 GMT
## v0.16.1 - Fri, 29 Sep 2017 15:49:07 GMT
v0.16.1 - Fri, 29 Sep 2017 15:49:07 GMT
---------------------------------------
## v0.16.0 - Fri, 29 Sep 2017 15:42:08 GMT
## v0.15.0 - Tue, 29 Aug 2017 18:20:39 GMT
## v0.14.4 - Fri, 23 Jun 2017 13:59:31 GMT
## v0.14.3 - Wed, 21 Jun 2017 14:23:07 GMT
## v0.14.2 - Mon, 19 Jun 2017 15:41:40 GMT
v0.16.0 - Fri, 29 Sep 2017 15:42:08 GMT
---------------------------------------
## v0.14.1 - Mon, 19 Jun 2017 15:41:20 GMT
## v0.14.0 - Tue, 02 May 2017 13:14:45 GMT
## v0.13.0 - Wed, 22 Mar 2017 15:09:54 GMT
## v0.12.3 - Sun, 15 Jan 2017 17:15:59 GMT
## v0.12.2 - Sun, 15 Jan 2017 17:09:50 GMT
v0.15.0 - Tue, 29 Aug 2017 18:20:39 GMT
---------------------------------------
* [45687c9](../../commit/45687c9) [fixed] allow string names in `move()`
## v0.12.1 - Thu, 12 Jan 2017 20:47:22 GMT
* [5578559](../../commit/5578559) [fixed] all day event selection
## v0.12.0 - Sat, 07 Jan 2017 22:03:45 GMT
## v0.11.1 - Sun, 20 Nov 2016 17:48:51 GMT
v0.14.4 - Fri, 23 Jun 2017 13:59:31 GMT
---------------------------------------
## v0.11.0 - Sat, 08 Oct 2016 20:24:51 GMT
## v0.10.3 - Fri, 15 Jul 2016 17:56:54 GMT
## v0.10.2 - Fri, 10 Jun 2016 12:50:39 GMT
* [741c882](../../commit/741c882) [fixed] rm jsx imports
## v0.10.1 - Thu, 09 Jun 2016 18:39:57 GMT
v0.14.3 - Wed, 21 Jun 2017 14:23:07 GMT
---------------------------------------
## v0.10.0 - Thu, 09 Jun 2016 15:33:06 GMT
## v0.9.12 - Fri, 20 May 2016 12:54:29 GMT
## v0.9.11 - Fri, 15 Apr 2016 13:39:50 GMT
## v0.9.10 - Fri, 15 Apr 2016 13:31:58 GMT
## v0.9.9 - Fri, 15 Apr 2016 12:28:00 GMT
v0.14.2 - Mon, 19 Jun 2017 15:41:40 GMT
---------------------------------------
* [a2a49c8](../../commit/a2a49c8) [fixed] consistent handling of end dates as _exclusive_ ranges
* [1c12b16](../../commit/1c12b16) [fixed] DST issue with events
* [f526e23](../../commit/f526e23) [added] onSelecting callback
* [18c0234](../../commit/18c0234) [fixed] incorrect page offset
* [4eeacd4](../../commit/4eeacd4) [fixed] more cross browser flex issues.
* [2dc61ec](../../commit/2dc61ec) [fixed] add minHeight for week view overflow
## v0.9.8 - Thu, 14 Jan 2016 19:35:07 GMT
* [5fa7012](../../commit/5fa7012) [fixed] Incorrect gutter widths
## v0.9.7 - Sun, 13 Dec 2015 22:01:09 GMT
* [ebf8908](../../commit/ebf8908) [fixed] agenda header display
v0.14.1 - Mon, 19 Jun 2017 15:41:20 GMT
---------------------------------------
## v0.9.6 - Sun, 13 Dec 2015 21:39:49 GMT
* [a69600b](../../commit/a69600b) [fixed] Pass correct date to DaySlot for selections.
* [5ac5c30](../../commit/5ac5c30) [fixed] reset gutter widths before calculations
## v0.9.5 - Wed, 02 Dec 2015 18:09:32 GMT
* [c2e8aa4](../../commit/c2e8aa4) [fixed] accidental breaking change on the localizers
* [dc90943](../../commit/dc90943) [fixed] some style issues
* [ea8e085](../../commit/ea8e085) [added] modern globalize support
* [4b3d3ba](../../commit/4b3d3ba) [fixed] have gutter use culture prop
* [7922882](../../commit/7922882) [fixed] better gutter width detection
## v0.9.4 - Sun, 29 Nov 2015 02:19:49 GMT
v0.14.0 - Tue, 02 May 2017 13:14:45 GMT
---------------------------------------
* [a41c9f9](../../commit/a41c9f9) [added] right-to-left support
* [8bb6589](../../commit/8bb6589) [fixed] properly select time ranges with min/max set
## v0.9.3 - Sat, 28 Nov 2015 20:00:24 GMT
* [fff1914](../../commit/fff1914) [fixed] pass culture to View
## v0.9.2 - Thu, 12 Nov 2015 23:34:33 GMT
* [58f008f](../../commit/58f008f) [fixed] none integer slot spaces (again)
* [f2084ef](../../commit/f2084ef) [fixed] month event rows not fitting in their cells
* [73e449d](../../commit/73e449d) [fixed] day view clicks return the correct slot
v0.13.0 - Wed, 22 Mar 2017 15:09:54 GMT
---------------------------------------
## v0.9.1 - Thu, 12 Nov 2015 14:52:20 GMT
* [d5a0d20](../../commit/d5a0d20) [fixed] month event rows not fitting in their cells
* [f4b18d6](../../commit/f4b18d6) [fixed] day view clicks return the correct slot
## v0.9.0 - Tue, 03 Nov 2015 11:33:38 GMT
* [ee53bbc](../../commit/ee53bbc) [changed] default "show more" behavior navigates to day view
* [80aa08f](../../commit/80aa08f) [added] popupOffset prop for configuring distance from viewport edge
## v0.8.3 - Thu, 29 Oct 2015 06:07:22 GMT
v0.12.3 - Sun, 15 Jan 2017 17:15:59 GMT
---------------------------------------
* [d98af8d](../../commit/d98af8d) [added] edge detection for event popup
* [69b092d](../../commit/69b092d) [fixed] accidental hash changes
* [0351b71](../../commit/0351b71) [fixed] incorrect 'show more' layout
## v0.8.2 - Wed, 28 Oct 2015 08:09:39 GMT
* [892af3d](../../commit/892af3d) [fixed] use correct handler for "show more"
## v0.8.1 - Wed, 28 Oct 2015 07:58:13 GMT
* [4560ff7](../../commit/4560ff7) [changed] better thin event title collapse
* [0eeb43f](../../commit/0eeb43f) [fixed] event layout sort
* [0574eed](../../commit/0574eed) [fixed] show more row layout issues
* [7ee9959](../../commit/7ee9959) [added] title to time view events
* [c07d0ab](../../commit/c07d0ab) [changed] better event overlays for overlapping events
v0.12.2 - Sun, 15 Jan 2017 17:09:50 GMT
---------------------------------------
## v0.8.0 - Mon, 26 Oct 2015 12:32:54 GMT
- [45687c9](../../commit/45687c9) [fixed] allow string names in `move()`
* [4dac3f5](../../commit/4dac3f5) [added] rbc-event-allday class in month view
* [e314128](../../commit/e314128) [fixed] missing keys in popup
* [0d5df79](../../commit/0d5df79) [changed] "show more" behavior is cleaner
## v0.7.2 - Sat, 24 Oct 2015 03:21:53 GMT
* [0b0fa0f](../../commit/0b0fa0f) [fixed] prevent selection when clicking show more
* [57c8843](../../commit/57c8843) [fixed] allow event selection when selectable, in day views
v0.12.1 - Thu, 12 Jan 2017 20:47:22 GMT
---------------------------------------
## v0.7.1 - Wed, 30 Sep 2015 12:34:43 GMT
- [5578559](../../commit/5578559) [fixed] all day event selection
* [f7969b3](../../commit/f7969b3) [fixed] use client coords to get node during selection
## v0.7.0 - Tue, 15 Sep 2015 08:37:50 GMT
* [8ad4ee7](../../commit/8ad4ee7) [changed] selection bound to Calendar container, respects overlays
* [98b3dad](../../commit/98b3dad) [fixed] selecting events in All Day row of week/Day views
v0.12.0 - Sat, 07 Jan 2017 22:03:45 GMT
---------------------------------------
## v0.6.1 - Sun, 13 Sep 2015 16:52:20 GMT
* [c3092f4](../../commit/c3092f4) [fixed] event rows incorrect duration styles
* [dade2b9](../../commit/dade2b9) [fixed] more month event layout issues
## v0.6.0 - Sun, 13 Sep 2015 15:32:08 GMT
* [49e321f](../../commit/49e321f) [fixed] layout of events in months that don't start evenly at weekday 0
* [720675e](../../commit/720675e) [added] eventPropsGetter for event markup customization
## v0.5.2 - Sun, 13 Sep 2015 12:56:02 GMT
v0.11.1 - Sun, 20 Nov 2016 17:48:51 GMT
---------------------------------------
* [386d4bc](../../commit/386d4bc) [fixed] `selectable` can properly be toggled on and off
## v0.5.1 - Sun, 13 Sep 2015 10:08:24 GMT
* [a7dc435](../../commit/a7dc435) [fixed] className and style props being applied in multiple places
* [c8f8281](../../commit/c8f8281) [fixed] null exception on empty agenda view
## v0.5.0 - Sun, 13 Sep 2015 09:03:11 GMT
* [00435ad](../../commit/00435ad) [fixed] view propType validation
* [ae039b9](../../commit/ae039b9) [added] expose `move` and `label` methods for easier external toolbars
* [7e7bc17](../../commit/7e7bc17) [changed] clarified accidental ambigious license
v0.11.0 - Sat, 08 Oct 2016 20:24:51 GMT
---------------------------------------
v0.10.3 - Fri, 15 Jul 2016 17:56:54 GMT
---------------------------------------
v0.10.2 - Fri, 10 Jun 2016 12:50:39 GMT
---------------------------------------
- [741c882](../../commit/741c882) [fixed] rm jsx imports
v0.10.1 - Thu, 09 Jun 2016 18:39:57 GMT
---------------------------------------
v0.10.0 - Thu, 09 Jun 2016 15:33:06 GMT
---------------------------------------
v0.9.12 - Fri, 20 May 2016 12:54:29 GMT
---------------------------------------
v0.9.11 - Fri, 15 Apr 2016 13:39:50 GMT
---------------------------------------
v0.9.10 - Fri, 15 Apr 2016 13:31:58 GMT
---------------------------------------
v0.9.9 - Fri, 15 Apr 2016 12:28:00 GMT
--------------------------------------
- [a2a49c8](../../commit/a2a49c8) [fixed] consistent handling of end dates as _exclusive_ ranges
- [1c12b16](../../commit/1c12b16) [fixed] DST issue with events
- [f526e23](../../commit/f526e23) [added] onSelecting callback
- [18c0234](../../commit/18c0234) [fixed] incorrect page offset
- [4eeacd4](../../commit/4eeacd4) [fixed] more cross browser flex issues.
- [2dc61ec](../../commit/2dc61ec) [fixed] add minHeight for week view overflow
v0.9.8 - Thu, 14 Jan 2016 19:35:07 GMT
--------------------------------------
- [5fa7012](../../commit/5fa7012) [fixed] Incorrect gutter widths
v0.9.7 - Sun, 13 Dec 2015 22:01:09 GMT
--------------------------------------
- [ebf8908](../../commit/ebf8908) [fixed] agenda header display
v0.9.6 - Sun, 13 Dec 2015 21:39:49 GMT
--------------------------------------
- [a69600b](../../commit/a69600b) [fixed] Pass correct date to DaySlot for selections.
- [5ac5c30](../../commit/5ac5c30) [fixed] reset gutter widths before calculations
v0.9.5 - Wed, 02 Dec 2015 18:09:32 GMT
--------------------------------------
- [c2e8aa4](../../commit/c2e8aa4) [fixed] accidental breaking change on the localizers
- [dc90943](../../commit/dc90943) [fixed] some style issues
- [ea8e085](../../commit/ea8e085) [added] modern globalize support
- [4b3d3ba](../../commit/4b3d3ba) [fixed] have gutter use culture prop
- [7922882](../../commit/7922882) [fixed] better gutter width detection
v0.9.4 - Sun, 29 Nov 2015 02:19:49 GMT
--------------------------------------
- [a41c9f9](../../commit/a41c9f9) [added] right-to-left support
- [8bb6589](../../commit/8bb6589) [fixed] properly select time ranges with min/max set
v0.9.3 - Sat, 28 Nov 2015 20:00:24 GMT
--------------------------------------
- [fff1914](../../commit/fff1914) [fixed] pass culture to View
v0.9.2 - Thu, 12 Nov 2015 23:34:33 GMT
--------------------------------------
- [58f008f](../../commit/58f008f) [fixed] none integer slot spaces (again)
- [f2084ef](../../commit/f2084ef) [fixed] month event rows not fitting in their cells
- [73e449d](../../commit/73e449d) [fixed] day view clicks return the correct slot
v0.9.1 - Thu, 12 Nov 2015 14:52:20 GMT
--------------------------------------
- [d5a0d20](../../commit/d5a0d20) [fixed] month event rows not fitting in their cells
- [f4b18d6](../../commit/f4b18d6) [fixed] day view clicks return the correct slot
v0.9.0 - Tue, 03 Nov 2015 11:33:38 GMT
--------------------------------------
- [ee53bbc](../../commit/ee53bbc) [changed] default "show more" behavior navigates to day view
- [80aa08f](../../commit/80aa08f) [added] popupOffset prop for configuring distance from viewport edge
v0.8.3 - Thu, 29 Oct 2015 06:07:22 GMT
--------------------------------------
- [d98af8d](../../commit/d98af8d) [added] edge detection for event popup
- [69b092d](../../commit/69b092d) [fixed] accidental hash changes
- [0351b71](../../commit/0351b71) [fixed] incorrect 'show more' layout
v0.8.2 - Wed, 28 Oct 2015 08:09:39 GMT
--------------------------------------
- [892af3d](../../commit/892af3d) [fixed] use correct handler for "show more"
v0.8.1 - Wed, 28 Oct 2015 07:58:13 GMT
--------------------------------------
- [4560ff7](../../commit/4560ff7) [changed] better thin event title collapse
- [0eeb43f](../../commit/0eeb43f) [fixed] event layout sort
- [0574eed](../../commit/0574eed) [fixed] show more row layout issues
- [7ee9959](../../commit/7ee9959) [added] title to time view events
- [c07d0ab](../../commit/c07d0ab) [changed] better event overlays for overlapping events
v0.8.0 - Mon, 26 Oct 2015 12:32:54 GMT
--------------------------------------
- [4dac3f5](../../commit/4dac3f5) [added] rbc-event-allday class in month view
- [e314128](../../commit/e314128) [fixed] missing keys in popup
- [0d5df79](../../commit/0d5df79) [changed] "show more" behavior is cleaner
v0.7.2 - Sat, 24 Oct 2015 03:21:53 GMT
--------------------------------------
- [0b0fa0f](../../commit/0b0fa0f) [fixed] prevent selection when clicking show more
- [57c8843](../../commit/57c8843) [fixed] allow event selection when selectable, in day views
v0.7.1 - Wed, 30 Sep 2015 12:34:43 GMT
--------------------------------------
- [f7969b3](../../commit/f7969b3) [fixed] use client coords to get node during selection
v0.7.0 - Tue, 15 Sep 2015 08:37:50 GMT
--------------------------------------
- [8ad4ee7](../../commit/8ad4ee7) [changed] selection bound to Calendar container, respects overlays
- [98b3dad](../../commit/98b3dad) [fixed] selecting events in All Day row of week/Day views
v0.6.1 - Sun, 13 Sep 2015 16:52:20 GMT
--------------------------------------
- [c3092f4](../../commit/c3092f4) [fixed] event rows incorrect duration styles
- [dade2b9](../../commit/dade2b9) [fixed] more month event layout issues
v0.6.0 - Sun, 13 Sep 2015 15:32:08 GMT
--------------------------------------
- [49e321f](../../commit/49e321f) [fixed] layout of events in months that don't start evenly at weekday 0
- [720675e](../../commit/720675e) [added] eventPropsGetter for event markup customization
v0.5.2 - Sun, 13 Sep 2015 12:56:02 GMT
--------------------------------------
- [386d4bc](../../commit/386d4bc) [fixed] `selectable` can properly be toggled on and off
v0.5.1 - Sun, 13 Sep 2015 10:08:24 GMT
--------------------------------------
- [a7dc435](../../commit/a7dc435) [fixed] className and style props being applied in multiple places
- [c8f8281](../../commit/c8f8281) [fixed] null exception on empty agenda view
v0.5.0 - Sun, 13 Sep 2015 09:03:11 GMT
--------------------------------------
- [00435ad](../../commit/00435ad) [fixed] view propType validation
- [ae039b9](../../commit/ae039b9) [added] expose `move` and `label` methods for easier external toolbars
- [7e7bc17](../../commit/7e7bc17) [changed] clarified accidental ambigious license
v0.4.1 - Thu, 03 Sep 2015 19:08:11 GMT
--------------------------------------
## v0.4.1 - Thu, 03 Sep 2015 19:08:11 GMT

@@ -143,2 +143,3 @@ 'use strict';

onEventDrop: _propTypes2.default.func,
onEventResize: _propTypes2.default.func,
dragDropManager: _propTypes2.default.object,

@@ -166,2 +167,3 @@ startAccessor: _propTypes3.accessor,

var onEventDrop = context.onEventDrop,
onEventResize = context.onEventResize,
startAccessor = context.startAccessor,

@@ -173,9 +175,57 @@ endAccessor = context.endAccessor;

onEventDrop(_extends({
event: event
}, getEventTimes(start, end, value, type)));
if (monitor.getItemType() === 'event') {
onEventDrop(_extends({
event: event
}, getEventTimes(start, end, value, type)));
}
if (monitor.getItemType() === 'resize') {
switch (event.type) {
case 'resizeTop':
{
return onEventResize('drop', {
event: event,
start: value,
end: event.end
});
}
case 'resizeBottom':
{
var nextEnd = _dates2.default.add(value, 30, 'minutes');
return onEventResize('drop', {
event: event,
start: event.start,
end: nextEnd
});
}
case 'resizeLeft':
{
return onEventResize('drop', {
event: event,
start: value,
end: event.end
});
}
case 'resizeRight':
{
var _nextEnd = _dates2.default.add(value, 1, 'day');
return onEventResize('drop', {
event: event,
start: event.start,
end: _nextEnd
});
}
}
// Catch all
onEventResize('drop', {
event: event,
start: event.start,
end: value
});
}
}
};
return (0, _reactDnd.DropTarget)(['event'], dropTarget, collectTarget)(DraggableBackgroundWrapper);
return (0, _reactDnd.DropTarget)(['event', 'resize'], dropTarget, collectTarget)(DraggableBackgroundWrapper);
}

@@ -182,0 +232,0 @@

@@ -86,2 +86,3 @@ 'use strict';

exports.default = (0, _reactDnd.DragSource)('event', eventSource, collectSource)(DraggableEventWrapper);
exports.default = (0, _reactDnd.DragSource)('event', eventSource, collectSource)(DraggableEventWrapper);
module.exports = exports['default'];

@@ -29,2 +29,10 @@ 'use strict';

var _ResizableEvent = require('./ResizableEvent');
var _ResizableEvent2 = _interopRequireDefault(_ResizableEvent);
var _ResizableMonthEvent = require('./ResizableMonthEvent');
var _ResizableMonthEvent2 = _interopRequireDefault(_ResizableMonthEvent);
var _backgroundWrapper = require('./backgroundWrapper');

@@ -46,3 +54,5 @@

html5Backend = require('react-dnd-html5-backend');
} catch (err) {/* optional dep missing */}
} catch (err) {
/* optional dep missing */
}

@@ -60,2 +70,3 @@ function withDragAndDrop(Calendar) {

onEventDrop: this.props.onEventDrop,
onEventResize: this.props.onEventResize,
startAccessor: this.props.startAccessor,

@@ -104,5 +115,7 @@ endAccessor: this.props.endAccessor

components = _props.components,
props = _objectWithoutProperties(_props, ['selectable', 'components']);
resizable = _props.resizable,
props = _objectWithoutProperties(_props, ['selectable', 'components', 'resizable']);
delete props.onEventDrop;
delete props.onEventResize;

@@ -114,5 +127,8 @@ props.selectable = selectable ? 'ignoreEvents' : false;

props.components = _extends({}, components, {
dateCellWrapper: _backgroundWrapper.DateCellWrapper,
day: { event: resizable && _ResizableEvent2.default },
dayWrapper: _backgroundWrapper.DayWrapper,
eventWrapper: _DraggableEventWrapper2.default,
dateCellWrapper: _backgroundWrapper.DateCellWrapper,
dayWrapper: _backgroundWrapper.DayWrapper
month: { event: resizable && _ResizableMonthEvent2.default },
week: { event: resizable && _ResizableEvent2.default }
});

@@ -134,2 +150,4 @@

onEventDrop: _propTypes2.default.func.isRequired,
resizable: _propTypes2.default.bool,
onEventResize: _propTypes2.default.func,
startAccessor: _propTypes3.accessor,

@@ -150,2 +168,3 @@ endAccessor: _propTypes3.accessor

onEventDrop: _propTypes2.default.func,
onEventResize: _propTypes2.default.func,
startAccessor: _propTypes3.accessor,

@@ -160,2 +179,3 @@ endAccessor: _propTypes3.accessor

}
}
}
module.exports = exports['default'];

@@ -262,2 +262,3 @@ 'use strict';

titleAccessor: _propTypes3.accessor.isRequired,
tooltipAccessor: _propTypes3.accessor.isRequired,
allDayAccessor: _propTypes3.accessor.isRequired,

@@ -303,3 +304,3 @@ startAccessor: _propTypes3.accessor.isRequired,

var _ref3$length = _ref3.length,
length = _ref3$length === undefined ? length = Agenda.defaultProps.length : _ref3$length,
length = _ref3$length === undefined ? Agenda.defaultProps.length : _ref3$length,
formats = _ref3.formats,

@@ -312,2 +313,13 @@ culture = _ref3.culture;

exports.default = Agenda;
Agenda.title = function (start, _ref4) {
var _ref4$length = _ref4.length,
length = _ref4$length === undefined ? length = Agenda.defaultProps.length : _ref4$length,
formats = _ref4.formats,
culture = _ref4.culture;
var end = _dates2.default.add(start, length, 'day');
return _localizer2.default.format({ start: start, end: end }, formats.agendaHeaderFormat, culture);
};
exports.default = Agenda;
module.exports = exports['default'];

@@ -77,3 +77,5 @@ 'use strict';

Wrapper = _props.cellWrapperComponent,
currentDate = _props.date;
dayPropGetter = _props.dayPropGetter,
currentDate = _props.date,
getNow = _props.getNow;
var _state = this.state,

@@ -84,2 +86,3 @@ selecting = _state.selecting,

var current = getNow();

@@ -91,12 +94,16 @@ return _react2.default.createElement(

var selected = selecting && index >= startIdx && index <= endIdx;
var _ref = dayPropGetter && dayPropGetter(date) || {},
className = _ref.className,
dayStyles = _ref.style;
var segmStyles = (0, _eventLevels.segStyle)(1, range.length);
var styles = _extends({}, dayStyles, segmStyles);
return _react2.default.createElement(
Wrapper,
{
key: index,
value: date,
range: range
},
{ key: index, value: date, range: range },
_react2.default.createElement('div', {
style: (0, _eventLevels.segStyle)(1, range.length),
className: (0, _classnames2.default)('rbc-day-bg', selected && 'rbc-selected-cell', _dates2.default.isToday(date) && 'rbc-today', currentDate && _dates2.default.month(currentDate) !== _dates2.default.month(date) && 'rbc-off-range-bg')
style: styles,
className: (0, _classnames2.default)('rbc-day-bg', className, selected && 'rbc-selected-cell', _dates2.default.eq(date, current, 'day') && 'rbc-today', currentDate && _dates2.default.month(currentDate) !== _dates2.default.month(date) && 'rbc-off-range-bg')
})

@@ -116,6 +123,30 @@ );

var selectorClicksHandler = function selectorClicksHandler(point, actionType) {
if (!(0, _Selection.isEvent)((0, _reactDom.findDOMNode)(_this2), point)) {
var rowBox = (0, _Selection.getBoundsForNode)(node);
var _props2 = _this2.props,
range = _props2.range,
rtl = _props2.rtl;
if ((0, _selection.pointInBox)(rowBox, point)) {
var width = (0, _selection.slotWidth)((0, _Selection.getBoundsForNode)(node), range.length);
var currentCell = (0, _selection.getCellAtX)(rowBox, point.x, width, rtl, range.length);
_this2._selectSlot({
startIdx: currentCell,
endIdx: currentCell,
action: actionType
});
}
}
_this2._initial = {};
_this2.setState({ selecting: false });
};
selector.on('selecting', function (box) {
var _props2 = _this2.props,
range = _props2.range,
rtl = _props2.rtl;
var _props3 = _this2.props,
range = _props3.range,
rtl = _props3.rtl;

@@ -132,3 +163,2 @@

var nodeBox = (0, _Selection.getBoundsForNode)(node);
var _dateCellSelection = (0, _selection.dateCellSelection)(_this2._initial, nodeBox, box, range.length, rtl);

@@ -142,3 +172,4 @@

selecting: true,
startIdx: startIdx, endIdx: endIdx
startIdx: startIdx,
endIdx: endIdx
});

@@ -154,23 +185,7 @@ });

selector.on('click', function (point) {
if (!(0, _Selection.isEvent)((0, _reactDom.findDOMNode)(_this2), point)) {
var rowBox = (0, _Selection.getBoundsForNode)(node);
var _props3 = _this2.props,
range = _props3.range,
rtl = _props3.rtl;
return selectorClicksHandler(point, 'click');
});
if ((0, _selection.pointInBox)(rowBox, point)) {
var width = (0, _selection.slotWidth)((0, _Selection.getBoundsForNode)(node), range.length);
var currentCell = (0, _selection.getCellAtX)(rowBox, point.x, width, rtl, range.length);
_this2._selectSlot({
startIdx: currentCell,
endIdx: currentCell,
action: 'click'
});
}
}
_this2._initial = {};
_this2.setState({ selecting: false });
selector.on('doubleClick', function (point) {
return selectorClicksHandler(point, 'doubleClick');
});

@@ -192,6 +207,6 @@

BackgroundCells.prototype._selectSlot = function _selectSlot(_ref) {
var endIdx = _ref.endIdx,
startIdx = _ref.startIdx,
action = _ref.action;
BackgroundCells.prototype._selectSlot = function _selectSlot(_ref2) {
var endIdx = _ref2.endIdx,
startIdx = _ref2.startIdx,
action = _ref2.action;

@@ -210,4 +225,6 @@ if (endIdx !== -1 && startIdx !== -1) this.props.onSelectSlot && this.props.onSelectSlot({

date: _propTypes2.default.instanceOf(Date),
getNow: _propTypes2.default.func.isRequired,
cellWrapperComponent: _propTypes3.elementType,
container: _propTypes2.default.func,
dayPropGetter: _propTypes2.default.func,
selectable: _propTypes2.default.oneOf([true, false, 'ignoreEvents']),

@@ -224,2 +241,3 @@ longPressThreshold: _propTypes2.default.number,

};
exports.default = BackgroundCells;
exports.default = BackgroundCells;
module.exports = exports['default'];

@@ -43,2 +43,3 @@ 'use strict';

exports.default = BackgroundWrapper;
exports.default = BackgroundWrapper;
module.exports = exports['default'];

@@ -96,11 +96,9 @@ 'use strict';

var now = new Date();
/**
* react-big-calendar is full featured Calendar component for managing events and dates. It uses
* modern `flexbox` for layout making it super responsive and performant. Leaving most of the layout heavy lifting
* react-big-calendar is a full featured Calendar component for managing events and dates. It uses
* modern `flexbox` for layout, making it super responsive and performant. Leaving most of the layout heavy lifting
* to the browser. __note:__ The default styles use `height: 100%` which means your container must set an explicit
* height (feel free to adjust the styles to suit your specific needs).
*
* Big Calendar is unopiniated about editing and moving events, prefering to let you implement it in a way that makes
* Big Calendar is unopiniated about editing and moving events, preferring to let you implement it in a way that makes
* the most sense to your app. It also tries not to be prescriptive about your event data structures, just tell it

@@ -116,2 +114,8 @@ * how to find the start and end datetimes and you can pass it whatever you want.

*/
/**
*
*
* @static
* @memberof Calendar
*/

@@ -149,4 +153,8 @@ var Calendar = function (_React$Component) {

current = _props.date,
props = _objectWithoutProperties(_props, ['view', 'toolbar', 'events', 'culture', 'components', 'formats', 'messages', 'style', 'className', 'elementProps', 'date']);
getNow = _props.getNow,
length = _props.length,
props = _objectWithoutProperties(_props, ['view', 'toolbar', 'events', 'culture', 'components', 'formats', 'messages', 'style', 'className', 'elementProps', 'date', 'getNow', 'length']);
current = current || getNow();
formats = (0, _formats2.default)(formats);

@@ -165,3 +173,3 @@ messages = (0, _messages2.default)(messages);

var CalToolbar = components.toolbar || _Toolbar2.default;
var label = View.title(current, { formats: formats, culture: culture });
var label = View.title(current, { formats: formats, culture: culture, length: length });

@@ -193,2 +201,4 @@ return _react2.default.createElement(

date: current,
getNow: getNow,
length: length,
components: viewComponents,

@@ -210,5 +220,5 @@ getDrilldownView: this.getDrilldownView,

Calendar.propTypes = {
/**
* Props passed to main calendar `<div>`.
*
*/

@@ -218,3 +228,5 @@ elementProps: _propTypes2.default.object,

/**
* The current date value of the calendar. Determines the visible view range
* The current date value of the calendar. Determines the visible view range.
* If `date` is omitted then the result of `getNow` is used; otherwise the
* current date is used.
*

@@ -234,7 +246,151 @@ * @controllable onNavigate

/**
* An array of event objects to display on the calendar
* The initial view set for the Calendar.
* @type Calendar.Views ('month'|'week'|'work_week'|'day'|'agenda')
* @default 'month'
*/
defaultView: _propTypes2.default.string,
/**
* An array of event objects to display on the calendar. Events objects
* can be any shape, as long as the Calendar knows how to retrieve the
* following details of the event:
*
* - start time
* - end time
* - title
* - whether its an "all day" event or not
* - any resource the event may be a related too
*
* Each of these properties can be customized or generated dynamically by
* setting the various "accessor" props. Without any configuration the default
* event should look like:
*
* ```js
* Event {
* title: string,
* start: Date,
* end: Date,
* allDay?: boolean
* resource?: any,
* }
* ```
*/
events: _propTypes2.default.arrayOf(_propTypes2.default.object),
/**
* Accessor for the event title, used to display event information. Should
* resolve to a `renderable` value.
*
* ```js
* string | (event: Object) => string
* ```
*
* @type {(func|string)}
*/
titleAccessor: _propTypes3.accessor,
/**
* Accessor for the event tooltip. Should
* resolve to a `renderable` value. Removes the tooltip if null.
*
* ```js
* string | (event: Object) => string
* ```
*
* @type {(func|string)}
*/
tooltipAccessor: _propTypes3.accessor,
/**
* Determines whether the event should be considered an "all day" event and ignore time.
* Must resolve to a `boolean` value.
*
* ```js
* string | (event: Object) => boolean
* ```
*
* @type {(func|string)}
*/
allDayAccessor: _propTypes3.accessor,
/**
* The start date/time of the event. Must resolve to a JavaScript `Date` object.
*
* ```js
* string | (event: Object) => Date
* ```
*
* @type {(func|string)}
*/
startAccessor: _propTypes3.accessor,
/**
* The end date/time of the event. Must resolve to a JavaScript `Date` object.
*
* ```js
* string | (event: Object) => Date
* ```
*
* @type {(func|string)}
*/
endAccessor: _propTypes3.accessor,
/**
* Returns the id of the `resource` that the event is a member of. This
* id should match at least one resource in the `resources` array.
*
* ```js
* string | (event: Object) => Date
* ```
*
* @type {(func|string)}
*/
resourceAccessor: _propTypes3.accessor,
/**
* An array of resource objects that map events to a specific resource.
* Resource objects, like events, can be any shape or have any properties,
* but should be uniquly identifiable via the `resourceIdAccessor`, as
* well as a "title" or name as provided by the `resourceTitleAccessor` prop.
*/
resources: _propTypes2.default.arrayOf(_propTypes2.default.object),
/**
* Provides a unique identifier for each resource in the `resources` array
*
* ```js
* string | (resource: Object) => any
* ```
*
* @type {(func|string)}
*/
resourceIdAccessor: _propTypes3.accessor,
/**
* Provides a human readable name for the resource object, used in headers.
*
* ```js
* string | (resource: Object) => any
* ```
*
* @type {(func|string)}
*/
resourceTitleAccessor: _propTypes3.accessor,
/**
* Determines the current date/time which is highlighted in the views.
*
* The value affects which day is shaded and which time is shown as
* the current time. It also affects the date used by the Today button in
* the toolbar.
*
* Providing a value here can be useful when you are implementing time zones
* using the `startAccessor` and `endAccessor` properties.
*
* @type {func}
* @default () => new Date()
*/
getNow: _propTypes2.default.func,
/**
* Callback fired when the `date` value changes.

@@ -249,3 +405,3 @@ *

*
* @controllable date
* @controllable view
*/

@@ -255,2 +411,8 @@ onView: _propTypes2.default.func,

/**
* Callback fired when date header, or the truncated events links are clicked
*
*/
onDrillDown: _propTypes2.default.func,
/**
* A callback fired when a date selection is made. Only fires when `selectable` is `true`.

@@ -264,3 +426,3 @@ *

* slots: Array<Date>,
* action: "select" | "click"
* action: "select" | "click" | "doubleClick"
* }

@@ -336,3 +498,4 @@ * ) => any

* @type Calendar.Views ('month'|'week'|'work_week'|'day'|'agenda')
* @default ['month', 'week', 'day', 'agenda']
* @View
['month', 'week', 'day', 'agenda']
*/

@@ -377,2 +540,8 @@ views: _propTypes3.views,

/**
* Determines the end date from date prop in the agenda view
* date prop + length (in number of days) = end date
*/
length: _propTypes2.default.number,
/**
* Determines whether the toolbar is displayed

@@ -406,2 +575,5 @@ */

/** Determines whether you want events to be resizable */
resizable: _propTypes2.default.bool,
/**

@@ -460,48 +632,13 @@ * Specifies the number of miliseconds the user must press and hold on the screen for a touch

/**
* Accessor for the event title, used to display event information. Should
* resolve to a `renderable` value.
* Optionally provide a function that returns an object of className or style props
* to be applied to the the day background. Caution! Styles that change layout or
* position may break the calendar in unexpected ways.
*
* ```js
* string | (event: Object) => any
* (date: Date) => { className?: string, style?: Object }
* ```
*
* @type {(func|string)}
*/
titleAccessor: _propTypes3.accessor,
dayPropGetter: _propTypes2.default.func,
/**
* Determines whether the event should be considered an "all day" event and ignore time.
* Must resolve to a `boolean` value.
*
* ```js
* string | (event: Object) => boolean
* ```
*
* @type {(func|string)}
*/
allDayAccessor: _propTypes3.accessor,
/**
* The start date/time of the event. Must resolve to a JavaScript `Date` object.
*
* ```js
* string | (event: Object) => Date
* ```
*
* @type {(func|string)}
*/
startAccessor: _propTypes3.accessor,
/**
* The end date/time of the event. Must resolve to a JavaScript `Date` object.
*
* ```js
* string | (event: Object) => Date
* ```
*
* @type {(func|string)}
*/
endAccessor: _propTypes3.accessor,
/**
* Support to show multi-day events with specific start and end times in the

@@ -631,3 +768,2 @@ * main time grid (rather than in the all day header).

eventTimeRangeEndFormat: _propTypes3.dateFormat
}),

@@ -704,4 +840,4 @@

views: [_constants.views.MONTH, _constants.views.WEEK, _constants.views.DAY, _constants.views.AGENDA],
date: now,
step: 30,
length: 30,

@@ -711,7 +847,15 @@ drilldownView: _constants.views.DAY,

titleAccessor: 'title',
tooltipAccessor: 'title',
allDayAccessor: 'allDay',
startAccessor: 'start',
endAccessor: 'end',
resourceAccessor: 'resourceId',
longPressThreshold: 250
resourceIdAccessor: 'id',
resourceTitleAccessor: 'title',
longPressThreshold: 250,
getNow: function getNow() {
return new Date();
}
};

@@ -766,4 +910,5 @@

date = _props3.date,
getNow = _props3.getNow,
onNavigate = _props3.onNavigate,
props = _objectWithoutProperties(_props3, ['view', 'date', 'onNavigate']);
props = _objectWithoutProperties(_props3, ['view', 'date', 'getNow', 'onNavigate']);

@@ -774,3 +919,4 @@ var ViewComponent = _this2.getView();

action: action,
date: newDate || date
date: newDate || date,
today: getNow()
}));

@@ -782,3 +928,5 @@

this.handleViewChange = function (view) {
if (view !== _this2.props.view && isValidView(view, _this2.props)) _this2.props.onView(view);
if (view !== _this2.props.view && isValidView(view, _this2.props)) {
_this2.props.onView(view);
}
};

@@ -807,2 +955,8 @@

this.handleDrillDown = function (date, view) {
var onDrillDown = _this2.props.onDrillDown;
if (onDrillDown) {
onDrillDown(date, view, _this2.drilldownView);
return;
}
if (view) _this2.handleViewChange(view);

@@ -818,2 +972,3 @@

selected: 'onSelectEvent'
});
});
module.exports = exports['default'];

@@ -81,4 +81,5 @@ 'use strict';

onSelectStart: _propTypes2.default.func,
dayPropGetter: _propTypes2.default.func,
now: _propTypes2.default.instanceOf(Date).isRequired,
getNow: _propTypes2.default.func.isRequired,
startAccessor: _propTypes3.accessor.isRequired,

@@ -156,3 +157,4 @@ endAccessor: _propTypes3.accessor.isRequired,

renderHeader = _this$props3.renderHeader,
range = _this$props3.range;
range = _this$props3.range,
getNow = _this$props3.getNow;

@@ -164,3 +166,3 @@

style: (0, _eventLevels2.segStyle)(1, range.length),
className: (0, _classnames2.default)('rbc-date-cell', _dates2.default.eq(date, _this.props.now, 'day') && 'rbc-now')
className: (0, _classnames2.default)('rbc-date-cell', _dates2.default.eq(date, getNow(), 'day') && 'rbc-now')
});

@@ -226,5 +228,7 @@ };

selectable = _props.selectable,
dayPropGetter = _props.dayPropGetter,
renderForMeasure = _props.renderForMeasure,
startAccessor = _props.startAccessor,
endAccessor = _props.endAccessor,
getNow = _props.getNow,
renderHeader = _props.renderHeader,

@@ -239,3 +243,3 @@ minRows = _props.minRows,

longPressThreshold = _props.longPressThreshold,
props = _objectWithoutProperties(_props, ['date', 'rtl', 'events', 'range', 'className', 'selectable', 'renderForMeasure', 'startAccessor', 'endAccessor', 'renderHeader', 'minRows', 'maxRows', 'dateCellWrapper', 'eventComponent', 'eventWrapperComponent', 'onSelectStart', 'onSelectEnd', 'longPressThreshold']);
props = _objectWithoutProperties(_props, ['date', 'rtl', 'events', 'range', 'className', 'selectable', 'dayPropGetter', 'renderForMeasure', 'startAccessor', 'endAccessor', 'getNow', 'renderHeader', 'minRows', 'maxRows', 'dateCellWrapper', 'eventComponent', 'eventWrapperComponent', 'onSelectStart', 'onSelectEnd', 'longPressThreshold']);

@@ -266,2 +270,3 @@ if (renderForMeasure) return this.renderDummy();

date: date,
getNow: getNow,
rtl: rtl,

@@ -271,2 +276,3 @@ range: range,

container: this.getContainer,
dayPropGetter: dayPropGetter,
onSelectStart: onSelectStart,

@@ -319,2 +325,3 @@ onSelectEnd: onSelectEnd,

exports.default = DateContentRow;
exports.default = DateContentRow;
module.exports = exports['default'];

@@ -43,2 +43,3 @@ 'use strict';

exports.default = DateHeader;
exports.default = DateHeader;
module.exports = exports['default'];

@@ -53,3 +53,6 @@ 'use strict';

return _react2.default.createElement(_TimeGrid2.default, _extends({}, props, { range: [_dates2.default.startOf(date, 'day')], eventOffset: 10 }));
return _react2.default.createElement(_TimeGrid2.default, _extends({}, props, {
range: [_dates2.default.startOf(date, 'day')],
eventOffset: 10
}));
};

@@ -84,2 +87,3 @@

exports.default = Day;
exports.default = Day;
module.exports = exports['default'];

@@ -101,6 +101,7 @@ 'use strict';

step = _props.step,
now = _props.now,
getNow = _props.getNow,
selectRangeFormat = _props.selectRangeFormat,
culture = _props.culture,
props = _objectWithoutProperties(_props, ['min', 'max', 'step', 'now', 'selectRangeFormat', 'culture']);
dayPropGetter = _props.dayPropGetter,
props = _objectWithoutProperties(_props, ['min', 'max', 'step', 'getNow', 'selectRangeFormat', 'culture', 'dayPropGetter']);

@@ -113,3 +114,3 @@ this._totalMin = _dates2.default.diff(min, max, 'minutes');

var style = this._slotStyle(startSlot, endSlot);
var slotStyle = this._slotStyle(startSlot, endSlot);

@@ -121,7 +122,14 @@ var selectDates = {

var _ref = dayPropGetter && dayPropGetter(max) || {},
className = _ref.className,
style = _ref.style;
var current = getNow();
return _react2.default.createElement(
_TimeColumn2.default,
_extends({}, props, {
className: (0, _classnames2.default)('rbc-day-slot', _dates2.default.isToday(max) && 'rbc-today'),
now: now,
className: (0, _classnames2.default)('rbc-day-slot', className, _dates2.default.eq(max, current, 'day') && 'rbc-today'),
style: style,
getNow: getNow,
min: min,

@@ -131,6 +139,10 @@ max: max,

}),
this.renderEvents(),
_react2.default.createElement(
'div',
{ className: (0, _classnames2.default)('rbc-events-container', { rtl: this.props.rtl }) },
this.renderEvents()
),
selecting && _react2.default.createElement(
'div',
{ className: 'rbc-slot-selection', style: style },
{ className: 'rbc-slot-selection', style: slotStyle },
_react2.default.createElement(

@@ -150,9 +162,11 @@ 'span',

events: _propTypes2.default.array.isRequired,
components: _propTypes2.default.object,
step: _propTypes2.default.number.isRequired,
min: _propTypes2.default.instanceOf(Date).isRequired,
max: _propTypes2.default.instanceOf(Date).isRequired,
now: _propTypes2.default.instanceOf(Date),
getNow: _propTypes2.default.func.isRequired,
rtl: _propTypes2.default.bool,
titleAccessor: _propTypes3.accessor,
tooltipAccessor: _propTypes3.accessor,
allDayAccessor: _propTypes3.accessor.isRequired,

@@ -184,5 +198,7 @@ startAccessor: _propTypes3.accessor.isRequired,

eventPropGetter: _propTypes2.default.func,
dayPropGetter: _propTypes2.default.func,
dayWrapperComponent: _propTypes3.elementType,
eventComponent: _propTypes3.elementType,
eventWrapperComponent: _propTypes3.elementType.isRequired
eventWrapperComponent: _propTypes3.elementType.isRequired,
resource: _propTypes2.default.string
};

@@ -201,34 +217,40 @@ DayColumn.defaultProps = {

var _props2 = _this2.props,
events = _props2.events,
min = _props2.min,
max = _props2.max,
showMultiDayTimes = _props2.showMultiDayTimes,
EventComponent = _props2.components.event,
culture = _props2.culture,
endAccessor = _props2.endAccessor,
eventPropGetter = _props2.eventPropGetter,
selected = _props2.selected,
messages = _props2.messages,
eventComponent = _props2.eventComponent,
eventTimeRangeEndFormat = _props2.eventTimeRangeEndFormat,
eventTimeRangeFormat = _props2.eventTimeRangeFormat,
eventTimeRangeStartFormat = _props2.eventTimeRangeStartFormat,
eventTimeRangeEndFormat = _props2.eventTimeRangeEndFormat,
EventWrapper = _props2.eventWrapperComponent,
events = _props2.events,
max = _props2.max,
messages = _props2.messages,
min = _props2.min,
isRtl = _props2.rtl,
selected = _props2.selected,
showMultiDayTimes = _props2.showMultiDayTimes,
startAccessor = _props2.startAccessor,
step = _props2.step,
timeslots = _props2.timeslots,
startAccessor = _props2.startAccessor,
endAccessor = _props2.endAccessor,
titleAccessor = _props2.titleAccessor;
titleAccessor = _props2.titleAccessor,
tooltipAccessor = _props2.tooltipAccessor;
var EventComponent = eventComponent;
var styledEvents = (0, _dayViewLayout2.default)({
events: events, startAccessor: startAccessor, endAccessor: endAccessor, min: min, showMultiDayTimes: showMultiDayTimes, totalMin: _this2._totalMin, step: step, timeslots: timeslots
events: events,
startAccessor: startAccessor,
endAccessor: endAccessor,
min: min,
showMultiDayTimes: showMultiDayTimes,
totalMin: _this2._totalMin,
step: step,
timeslots: timeslots
});
return styledEvents.map(function (_ref, idx) {
return styledEvents.map(function (_ref2, idx) {
var _extends2;
var event = _ref.event,
style = _ref.style;
var event = _ref2.event,
style = _ref2.style;

@@ -257,2 +279,3 @@ var _eventTimeRangeFormat = eventTimeRangeFormat;

var title = (0, _accessors.accessor)(event, titleAccessor);
var tooltip = (0, _accessors.accessor)(event, tooltipAccessor);
var label = void 0;

@@ -287,3 +310,3 @@ if (_continuesPrior && _continuesAfter) {

}, _extends2[isRtl ? 'right' : 'left'] = Math.max(0, xOffset) + '%', _extends2.width = width + '%', _extends2)),
title: (typeof label === 'string' ? label + ': ' : '') + title,
title: tooltip ? (typeof label === 'string' ? label + ': ' : '') + tooltip : undefined,
onClick: function onClick(e) {

@@ -351,4 +374,4 @@ return _this2._select(event, e);

var selectionState = function selectionState(_ref2) {
var y = _ref2.y;
var selectionState = function selectionState(_ref3) {
var y = _ref3.y;
var _props3 = _this2.props,

@@ -389,2 +412,8 @@ step = _props3.step,

var selectorClicksHandler = function selectorClicksHandler(box, actionType) {
if (!(0, _Selection.isEvent)((0, _reactDom.findDOMNode)(_this2), box)) _this2._selectSlot(_extends({}, selectionState(box), { action: actionType }));
_this2.setState({ selecting: false });
};
selector.on('selecting', maybeSelect);

@@ -400,5 +429,7 @@ selector.on('selectStart', maybeSelect);

selector.on('click', function (box) {
if (!(0, _Selection.isEvent)((0, _reactDom.findDOMNode)(_this2), box)) _this2._selectSlot(_extends({}, selectionState(box), { action: 'click' }));
return selectorClicksHandler(box, 'click');
});
_this2.setState({ selecting: false });
selector.on('doubleClick', function (box) {
return selectorClicksHandler(box, 'doubleClick');
});

@@ -420,6 +451,6 @@

this._selectSlot = function (_ref3) {
var startDate = _ref3.startDate,
endDate = _ref3.endDate,
action = _ref3.action;
this._selectSlot = function (_ref4) {
var startDate = _ref4.startDate,
endDate = _ref4.endDate,
action = _ref4.action;

@@ -438,2 +469,3 @@ var current = startDate,

end: endDate,
resourceId: _this2.props.resource,
action: action

@@ -470,2 +502,3 @@ });

exports.default = DayColumn;
exports.default = DayColumn;
module.exports = exports['default'];

@@ -43,4 +43,6 @@ 'use strict';

selected: _propTypes2.default.bool,
isAllDay: _propTypes2.default.bool,
eventPropGetter: _propTypes2.default.func,
titleAccessor: _propTypes3.accessor,
tooltipAccessor: _propTypes3.accessor,
allDayAccessor: _propTypes3.accessor,

@@ -52,4 +54,4 @@ startAccessor: _propTypes3.accessor,

eventWrapperComponent: _propTypes3.elementType.isRequired,
onSelect: _propTypes2.default.func,
onDoubleClick: _propTypes2.default.func
onSelect: _propTypes2.default.func.isRequired,
onDoubleClick: _propTypes2.default.func.isRequired
};

@@ -71,2 +73,3 @@

selected = _props.selected,
isAllDay = _props.isAllDay,
eventPropGetter = _props.eventPropGetter,

@@ -76,2 +79,3 @@ startAccessor = _props.startAccessor,

titleAccessor = _props.titleAccessor,
tooltipAccessor = _props.tooltipAccessor,
slotStart = _props.slotStart,

@@ -83,8 +87,9 @@ slotEnd = _props.slotEnd,

EventWrapper = _props.eventWrapperComponent,
props = _objectWithoutProperties(_props, ['className', 'event', 'selected', 'eventPropGetter', 'startAccessor', 'endAccessor', 'titleAccessor', 'slotStart', 'slotEnd', 'onSelect', 'onDoubleClick', 'eventComponent', 'eventWrapperComponent']);
props = _objectWithoutProperties(_props, ['className', 'event', 'selected', 'isAllDay', 'eventPropGetter', 'startAccessor', 'endAccessor', 'titleAccessor', 'tooltipAccessor', 'slotStart', 'slotEnd', 'onSelect', 'onDoubleClick', 'eventComponent', 'eventWrapperComponent']);
var title = (0, _accessors.accessor)(event, titleAccessor),
tooltip = (0, _accessors.accessor)(event, tooltipAccessor),
end = (0, _accessors.accessor)(event, endAccessor),
start = (0, _accessors.accessor)(event, startAccessor),
isAllDay = (0, _accessors.accessor)(event, props.allDayAccessor),
isAllDayEvent = isAllDay || (0, _accessors.accessor)(event, props.allDayAccessor) || _dates2.default.diff(start, _dates2.default.ceil(end, 'day'), 'day') > 1,
continuesPrior = _dates2.default.lt(start, slotStart, 'day'),

@@ -106,3 +111,3 @@ continuesAfter = _dates2.default.gte(end, slotEnd, 'day');

'rbc-selected': selected,
'rbc-event-allday': isAllDay || _dates2.default.diff(start, _dates2.default.ceil(end, 'day'), 'day') > 1,
'rbc-event-allday': isAllDayEvent,
'rbc-event-continues-prior': continuesPrior,

@@ -120,4 +125,4 @@ 'rbc-event-continues-after': continuesAfter

'div',
{ className: 'rbc-event-content', title: title },
Event ? _react2.default.createElement(Event, { event: event, title: title }) : title
{ className: 'rbc-event-content', title: tooltip || undefined },
Event ? _react2.default.createElement(Event, { event: event, title: title, isAllDay: isAllDayEvent }) : title
)

@@ -133,2 +138,3 @@ )

exports.default = EventCell;
exports.default = EventCell;
module.exports = exports['default'];

@@ -157,2 +157,3 @@ 'use strict';

EventEndingRow.defaultProps = _extends({}, _EventRowMixin2.default.defaultProps);
exports.default = EventEndingRow;
exports.default = EventEndingRow;
module.exports = exports['default'];

@@ -76,2 +76,3 @@ 'use strict';

EventRow.defaultProps = _extends({}, _EventRowMixin2.default.defaultProps);
exports.default = EventRow;
exports.default = EventRow;
module.exports = exports['default'];

@@ -39,4 +39,6 @@ 'use strict';

selected: _propTypes2.default.object,
isAllDay: _propTypes2.default.bool,
eventPropGetter: _propTypes2.default.func,
titleAccessor: _propTypes3.accessor,
tooltipAccessor: _propTypes3.accessor,
allDayAccessor: _propTypes3.accessor,

@@ -61,2 +63,3 @@ startAccessor: _propTypes3.accessor,

selected = props.selected,
isAllDay = props.isAllDay,
start = props.start,

@@ -67,2 +70,3 @@ end = props.end,

titleAccessor = props.titleAccessor,
tooltipAccessor = props.tooltipAccessor,
allDayAccessor = props.allDayAccessor,

@@ -82,5 +86,7 @@ eventComponent = props.eventComponent,

selected: (0, _selection.isSelected)(event, selected),
isAllDay: isAllDay,
startAccessor: startAccessor,
endAccessor: endAccessor,
titleAccessor: titleAccessor,
tooltipAccessor: tooltipAccessor,
allDayAccessor: allDayAccessor,

@@ -99,3 +105,7 @@ slotStart: start,

'div',
{ key: key, className: 'rbc-row-segment', style: (0, _eventLevels.segStyle)(Math.abs(len), slots) },
{
key: key,
className: 'rbc-row-segment',
style: (0, _eventLevels.segStyle)(Math.abs(len), slots)
},
content

@@ -107,2 +117,3 @@ );

}
};
};
module.exports = exports['default'];

@@ -33,2 +33,3 @@ 'use strict';

exports.default = EventWrapper;
exports.default = EventWrapper;
module.exports = exports['default'];

@@ -53,3 +53,2 @@ 'use strict';

var formats = {
dateFormat: 'dd',

@@ -81,3 +80,3 @@ dayFormat: 'ddd dd/MM',

Object.assign(formats, _formats);
_extends(formats, _formats);
}

@@ -84,0 +83,0 @@

@@ -29,2 +29,3 @@ 'use strict';

exports.default = Header;
exports.default = Header;
module.exports = exports['default'];

@@ -5,2 +5,4 @@ 'use strict';

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _Calendar = require('./Calendar');

@@ -36,3 +38,3 @@

Object.assign(_Calendar2.default, {
_extends(_Calendar2.default, {
setLocalizer: _localizer.set,

@@ -51,2 +53,3 @@ globalizeLocalizer: _globalize2.default,

exports.default = _Calendar2.default;
exports.default = _Calendar2.default;
module.exports = exports['default'];

@@ -83,4 +83,3 @@ 'use strict';

var timeRangeStartFormat = function timeRangeStartFormat(_ref3, culture, local) {
var start = _ref3.start,
end = _ref3.end;
var start = _ref3.start;
return local.format(start, { time: 'short' }, culture) + ' — ';

@@ -90,4 +89,3 @@ };

var timeRangeEndFormat = function timeRangeEndFormat(_ref4, culture, local) {
var start = _ref4.start,
end = _ref4.end;
var end = _ref4.end;
return ' — ' + local.format(end, { time: 'short' }, culture);

@@ -94,0 +92,0 @@ };

@@ -7,3 +7,2 @@ 'use strict';

exports.default = function (globalize) {
function getCulture(culture) {

@@ -10,0 +9,0 @@ return culture ? globalize.findClosestCulture(culture) : globalize.culture();

@@ -93,6 +93,7 @@ 'use strict';

step: _propTypes2.default.number,
now: _propTypes2.default.instanceOf(Date),
getNow: _propTypes2.default.func.isRequired,
scrollToTime: _propTypes2.default.instanceOf(Date),
eventPropGetter: _propTypes2.default.func,
dayPropGetter: _propTypes2.default.func,

@@ -106,2 +107,3 @@ culture: _propTypes2.default.string,

titleAccessor: _propTypes3.accessor.isRequired,
tooltipAccessor: _propTypes3.accessor.isRequired,
allDayAccessor: _propTypes3.accessor.isRequired,

@@ -193,4 +195,2 @@ startAccessor: _propTypes3.accessor.isRequired,

MonthView.prototype.render = function render() {
var _this3 = this;
var _props = this.props,

@@ -214,5 +214,3 @@ date = _props.date,

),
weeks.map(function (week, idx) {
return _this3.renderWeek(week, idx);
}),
weeks.map(this.renderWeek),
this.props.popup && this.renderOverlay()

@@ -243,3 +241,3 @@ );

MonthView.prototype.renderOverlay = function renderOverlay() {
var _this4 = this;
var _this3 = this;

@@ -258,3 +256,3 @@ var overlay = this.state && this.state.overlay || {};

onHide: function onHide() {
return _this4.setState({ overlay: null });
return _this3.setState({ overlay: null });
}

@@ -269,3 +267,4 @@ },

slotEnd: overlay.end,
onSelect: this.handleSelectEvent
onSelect: this.handleSelectEvent,
onDoubleClick: this.handleDoubleClickEvent
}))

@@ -309,15 +308,12 @@ );

MonthView.propTypes = propTypes;
MonthView.defaultProps = {
now: new Date()
};
var _initialiseProps = function _initialiseProps() {
var _this5 = this;
var _this4 = this;
this.getContainer = function () {
return (0, _reactDom.findDOMNode)(_this5);
return (0, _reactDom.findDOMNode)(_this4);
};
this.renderWeek = function (week, weekIdx) {
var _props2 = _this5.props,
var _props2 = _this4.props,
events = _props2.events,

@@ -327,12 +323,14 @@ components = _props2.components,

titleAccessor = _props2.titleAccessor,
tooltipAccessor = _props2.tooltipAccessor,
startAccessor = _props2.startAccessor,
endAccessor = _props2.endAccessor,
allDayAccessor = _props2.allDayAccessor,
getNow = _props2.getNow,
eventPropGetter = _props2.eventPropGetter,
dayPropGetter = _props2.dayPropGetter,
messages = _props2.messages,
selected = _props2.selected,
now = _props2.now,
date = _props2.date,
longPressThreshold = _props2.longPressThreshold;
var _state = _this5.state,
var _state = _this4.state,
needLimitMeasure = _state.needLimitMeasure,

@@ -342,5 +340,5 @@ rowLimit = _state.rowLimit;

events = eventsForWeek(events, week[0], week[week.length - 1], _this5.props);
events = eventsForWeek(events, week[0], week[week.length - 1], _this4.props);
events.sort(function (a, b) {
return (0, _eventLevels.sortEvents)(a, b, _this5.props);
return (0, _eventLevels.sortEvents)(a, b, _this4.props);
});

@@ -351,5 +349,5 @@

ref: weekIdx === 0 ? 'slotRow' : undefined,
container: _this5.getContainer,
container: _this4.getContainer,
className: 'rbc-month-row',
now: now,
getNow: getNow,
date: date,

@@ -363,2 +361,3 @@ range: week,

titleAccessor: titleAccessor,
tooltipAccessor: tooltipAccessor,
startAccessor: startAccessor,

@@ -368,8 +367,9 @@ endAccessor: endAccessor,

eventPropGetter: eventPropGetter,
renderHeader: _this5.readerDateHeading,
dayPropGetter: dayPropGetter,
renderHeader: _this4.readerDateHeading,
renderForMeasure: needLimitMeasure,
onShowMore: _this5.handleShowMore,
onSelect: _this5.handleSelectEvent,
onDoubleClick: _this5.handleDoubleClickEvent,
onSelectSlot: _this5.handleSelectSlot,
onShowMore: _this4.handleShowMore,
onSelect: _this4.handleSelectEvent,
onDoubleClick: _this4.handleDoubleClickEvent,
onSelectSlot: _this4.handleSelectSlot,
eventComponent: components.event,

@@ -387,3 +387,3 @@ eventWrapperComponent: components.eventWrapper,

var _props3 = _this5.props,
var _props3 = _this4.props,
currentDate = _props3.date,

@@ -399,3 +399,3 @@ getDrilldownView = _props3.getDrilldownView,

var label = _localizer2.default.format(date, dateFormat, culture);
var DateHeaderComponent = _this5.props.components.dateHeader || _DateHeader2.default;
var DateHeaderComponent = _this4.props.components.dateHeader || _DateHeader2.default;

@@ -413,4 +413,5 @@ return _react2.default.createElement(

onDrillDown: function onDrillDown(e) {
return _this5.handleHeadingClick(date, drilldownView, e);
} })
return _this4.handleHeadingClick(date, drilldownView, e);
}
})
);

@@ -420,7 +421,7 @@ };

this.handleSelectSlot = function (range, slotInfo) {
_this5._pendingSelection = _this5._pendingSelection.concat(range);
_this4._pendingSelection = _this4._pendingSelection.concat(range);
clearTimeout(_this5._selectTimer);
_this5._selectTimer = setTimeout(function () {
return _this5.selectDates(slotInfo);
clearTimeout(_this4._selectTimer);
_this4._selectTimer = setTimeout(function () {
return _this4.selectDates(slotInfo);
});

@@ -431,4 +432,4 @@ };

e.preventDefault();
_this5.clearSelection();
(0, _helpers.notify)(_this5.props.onDrillDown, [date, view]);
_this4.clearSelection();
(0, _helpers.notify)(_this4.props.onDrillDown, [date, view]);
};

@@ -441,4 +442,4 @@

_this5.clearSelection();
(0, _helpers.notify)(_this5.props.onSelectEvent, args);
_this4.clearSelection();
(0, _helpers.notify)(_this4.props.onSelectEvent, args);
};

@@ -451,8 +452,8 @@

_this5.clearSelection();
(0, _helpers.notify)(_this5.props.onDoubleClickEvent, args);
_this4.clearSelection();
(0, _helpers.notify)(_this4.props.onDoubleClickEvent, args);
};
this.handleShowMore = function (events, date, cell, slot) {
var _props4 = _this5.props,
var _props4 = _this4.props,
popup = _props4.popup,

@@ -464,8 +465,8 @@ onDrillDown = _props4.onDrillDown,

_this5.clearSelection();
_this4.clearSelection();
if (popup) {
var position = (0, _position2.default)(cell, (0, _reactDom.findDOMNode)(_this5));
var position = (0, _position2.default)(cell, (0, _reactDom.findDOMNode)(_this4));
_this5.setState({
_this4.setState({
overlay: { date: date, events: events, position: position }

@@ -500,2 +501,3 @@ });

exports.default = MonthView;
exports.default = MonthView;
module.exports = exports['default'];

@@ -51,3 +51,6 @@ 'use strict';

position: _propTypes2.default.object,
popupOffset: _propTypes2.default.number,
popupOffset: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.shape({
x: _propTypes2.default.number,
y: _propTypes2.default.number
})]),
events: _propTypes2.default.array,

@@ -124,3 +127,4 @@ selected: _propTypes2.default.object,

events.map(function (event, idx) {
return _react2.default.createElement(_EventCell2.default, _extends({ key: idx
return _react2.default.createElement(_EventCell2.default, _extends({
key: idx
}, props, {

@@ -141,2 +145,3 @@ event: event,

exports.default = Popup;
exports.default = Popup;
module.exports = exports['default'];

@@ -66,2 +66,3 @@ 'use strict';

var clickTolerance = 5;
var clickInterval = 250;

@@ -287,5 +288,3 @@ var Selection = function () {

pageX = _getEventCoordinates2.pageX,
pageY = _getEventCoordinates2.pageY,
clientX = _getEventCoordinates2.clientX,
clientY = _getEventCoordinates2.clientY;
pageY = _getEventCoordinates2.pageY;

@@ -309,3 +308,35 @@ this.selecting = false;

if (click && inRoot) return this.emit('click', {
if (click && inRoot) {
return this._handleClickEvent(e);
}
// User drag-clicked in the Selectable area
if (!click) return this.emit('select', bounds);
};
Selection.prototype._handleClickEvent = function _handleClickEvent(e) {
var _getEventCoordinates3 = getEventCoordinates(e),
pageX = _getEventCoordinates3.pageX,
pageY = _getEventCoordinates3.pageY,
clientX = _getEventCoordinates3.clientX,
clientY = _getEventCoordinates3.clientY;
var now = new Date().getTime();
if (this._lastClickData && now - this._lastClickData.timestamp < clickInterval) {
// Double click event
this._lastClickData = null;
return this.emit('doubleClick', {
x: pageX,
y: pageY,
clientX: clientX,
clientY: clientY
});
}
// Click event
this._lastClickData = {
timestamp: now
};
return this.emit('click', {
x: pageX,

@@ -316,5 +347,2 @@ y: pageY,

});
// User drag-clicked in the Selectable area
if (!click) return this.emit('select', bounds);
};

@@ -327,5 +355,5 @@

var _getEventCoordinates3 = getEventCoordinates(e),
pageX = _getEventCoordinates3.pageX,
pageY = _getEventCoordinates3.pageY;
var _getEventCoordinates4 = getEventCoordinates(e),
pageX = _getEventCoordinates4.pageX,
pageY = _getEventCoordinates4.pageY;

@@ -383,3 +411,8 @@ var w = Math.abs(x - pageX);

if ((typeof distance === 'undefined' ? 'undefined' : _typeof(distance)) !== 'object') distance = { top: distance, left: distance, right: distance, bottom: distance };
if ((typeof distance === 'undefined' ? 'undefined' : _typeof(distance)) !== 'object') distance = {
top: distance,
left: distance,
right: distance,
bottom: distance
};

@@ -415,4 +448,3 @@ return distance;

return !(
// 'a' bottom doesn't touch 'b' top
return !( // 'a' bottom doesn't touch 'b' top
aBottom - tolerance < bTop ||

@@ -419,0 +451,0 @@ // 'a' top doesn't touch 'b' bottom

@@ -48,3 +48,3 @@ 'use strict';

TimeColumn.prototype.renderTimeSliceGroup = function renderTimeSliceGroup(key, isNow, date) {
TimeColumn.prototype.renderTimeSliceGroup = function renderTimeSliceGroup(key, isNow, date, resource) {
var _props = this.props,

@@ -56,2 +56,3 @@ dayWrapperComponent = _props.dayWrapperComponent,

slotPropGetter = _props.slotPropGetter,
dayPropGetter = _props.dayPropGetter,
timeGutterFormat = _props.timeGutterFormat,

@@ -67,4 +68,6 @@ culture = _props.culture;

slotPropGetter: slotPropGetter,
dayPropGetter: dayPropGetter,
culture: culture,
timeslots: timeslots,
resource: resource,
showLabels: showLabels,

@@ -81,7 +84,8 @@ timeGutterFormat: timeGutterFormat,

style = _props2.style,
now = _props2.now,
getNow = _props2.getNow,
min = _props2.min,
max = _props2.max,
step = _props2.step,
timeslots = _props2.timeslots;
timeslots = _props2.timeslots,
resource = _props2.resource;

@@ -95,2 +99,3 @@ var totalMin = _dates2.default.diff(min, max, 'minutes');

var next = date;
var now = getNow();
var isNow = false;

@@ -102,3 +107,3 @@

next = _dates2.default.add(date, groupLengthInMinutes, 'minutes');
renderedSlots.push(this.renderTimeSliceGroup(i, isNow, date));
renderedSlots.push(this.renderTimeSliceGroup(i, isNow, date, resource));

@@ -110,6 +115,3 @@ date = next;

'div',
{
className: (0, _classnames2.default)(className, 'rbc-time-column'),
style: style
},
{ className: (0, _classnames2.default)(className, 'rbc-time-column'), style: style },
renderedSlots,

@@ -127,3 +129,3 @@ children

timeslots: _propTypes2.default.number.isRequired,
now: _propTypes2.default.instanceOf(Date).isRequired,
getNow: _propTypes2.default.func.isRequired,
min: _propTypes2.default.instanceOf(Date).isRequired,

@@ -135,4 +137,6 @@ max: _propTypes2.default.instanceOf(Date).isRequired,

className: _propTypes2.default.string,
resource: _propTypes2.default.string,
slotPropGetter: _propTypes2.default.func,
dayPropGetter: _propTypes2.default.func,
dayWrapperComponent: _propTypes3.elementType

@@ -148,2 +152,3 @@ };

};
exports.default = TimeColumn;
exports.default = TimeColumn;
module.exports = exports['default'];

@@ -11,2 +11,10 @@ 'use strict';

var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _requestAnimationFrame = require('dom-helpers/util/requestAnimationFrame');
var _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame);
var _react = require('react');

@@ -16,6 +24,2 @@

var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _reactDom = require('react-dom');

@@ -94,2 +98,15 @@

_this.checkOverflow = function () {
if (_this._updatingOverflow) return;
var isOverflowing = _this.refs.content.scrollHeight > _this.refs.content.clientHeight;
if (_this.state.isOverflowing !== isOverflowing) {
_this._updatingOverflow = true;
_this.setState({ isOverflowing: isOverflowing }, function () {
_this._updatingOverflow = false;
});
}
};
_this.state = { gutterWidth: undefined, isOverflowing: null };

@@ -108,2 +125,4 @@ _this.handleSelectEvent = _this.handleSelectEvent.bind(_this);

TimeGrid.prototype.componentDidMount = function componentDidMount() {
var _this2 = this;
this.checkOverflow();

@@ -118,2 +137,7 @@

this.triggerTimeIndicatorUpdate();
window.addEventListener('resize', function () {
_requestAnimationFrame2.default.cancel(_this2.rafHandle);
_this2.rafHandle = (0, _requestAnimationFrame2.default)(_this2.checkOverflow);
});
};

@@ -142,3 +166,3 @@

if (!_dates2.default.eq(nextProps.range[0], range[0], 'minute') || !_dates2.default.eq(nextProps.scrollToTime, scrollToTime, 'minute')) {
this.calculateScroll();
this.calculateScroll(nextProps);
}

@@ -148,3 +172,3 @@ };

TimeGrid.prototype.render = function render() {
var _this2 = this;
var _this3 = this;

@@ -157,2 +181,4 @@ var _props2 = this.props,

endAccessor = _props2.endAccessor,
getNow = _props2.getNow,
resources = _props2.resources,
allDayAccessor = _props2.allDayAccessor,

@@ -173,3 +199,3 @@ showMultiDayTimes = _props2.showMultiDayTimes;

events.forEach(function (event) {
if ((0, _eventLevels.inRange)(event, start, end, _this2.props)) {
if ((0, _eventLevels.inRange)(event, start, end, _this3.props)) {
var eStart = (0, _accessors.accessor)(event, startAccessor),

@@ -187,17 +213,18 @@ eEnd = (0, _accessors.accessor)(event, endAccessor);

allDayEvents.sort(function (a, b) {
return (0, _eventLevels.sortEvents)(a, b, _this2.props);
return (0, _eventLevels.sortEvents)(a, b, _this3.props);
});
var gutterRef = function gutterRef(ref) {
return _this2._gutters[1] = ref && (0, _reactDom.findDOMNode)(ref);
return _this3._gutters[1] = ref && (0, _reactDom.findDOMNode)(ref);
};
var eventsRendered = this.renderEvents(range, rangeEvents, getNow(), resources || [null]);
return _react2.default.createElement(
'div',
{ className: 'rbc-time-view' },
this.renderHeader(range, allDayEvents, width),
this.renderHeader(range, allDayEvents, width, resources),
_react2.default.createElement(
'div',
{ ref: 'content', className: 'rbc-time-content' },
_react2.default.createElement('div', { ref: 'timeIndicator', className: 'rbc-current-time-indicator' }),
_react2.default.createElement(_TimeColumn2.default, _extends({}, this.props, {

@@ -209,3 +236,4 @@ showLabels: true,

})),
this.renderEvents(range, rangeEvents, this.props.now)
eventsRendered,
_react2.default.createElement('div', { ref: 'timeIndicator', className: 'rbc-current-time-indicator' })
)

@@ -215,4 +243,4 @@ );

TimeGrid.prototype.renderEvents = function renderEvents(range, events, today) {
var _this3 = this;
TimeGrid.prototype.renderEvents = function renderEvents(range, events, today, resources) {
var _this4 = this;

@@ -224,2 +252,4 @@ var _props3 = this.props,

startAccessor = _props3.startAccessor,
resourceAccessor = _props3.resourceAccessor,
resourceIdAccessor = _props3.resourceIdAccessor,
components = _props3.components;

@@ -233,19 +263,26 @@

return _react2.default.createElement(_DayColumn2.default, _extends({}, _this3.props, {
min: _dates2.default.merge(date, min),
max: _dates2.default.merge(date, max),
eventComponent: components.event,
eventWrapperComponent: components.eventWrapper,
dayWrapperComponent: components.dayWrapper,
className: (0, _classnames2.default)({ 'rbc-now': _dates2.default.eq(date, today, 'day') }),
style: (0, _eventLevels.segStyle)(1, _this3.slots),
key: idx,
date: date,
events: daysEvents
}));
return resources.map(function (resource, id) {
var eventsToDisplay = !resource ? daysEvents : daysEvents.filter(function (event) {
return (0, _accessors.accessor)(event, resourceAccessor) === (0, _accessors.accessor)(resource, resourceIdAccessor);
});
return _react2.default.createElement(_DayColumn2.default, _extends({}, _this4.props, {
min: _dates2.default.merge(date, min),
max: _dates2.default.merge(date, max),
resource: resource && resource.id,
eventComponent: components.event,
eventWrapperComponent: components.eventWrapper,
dayWrapperComponent: components.dayWrapper,
className: (0, _classnames2.default)({ 'rbc-now': _dates2.default.eq(date, today, 'day') }),
style: (0, _eventLevels.segStyle)(1, _this4.slots),
key: idx + '-' + id,
date: date,
events: eventsToDisplay
}));
});
});
};
TimeGrid.prototype.renderHeader = function renderHeader(range, events, width) {
var _this4 = this;
TimeGrid.prototype.renderHeader = function renderHeader(range, events, width, resources) {
var _this5 = this;

@@ -257,3 +294,3 @@ var _props4 = this.props,

components = _props4.components,
now = _props4.now;
getNow = _props4.getNow;

@@ -266,2 +303,4 @@ var _ref = this.state || {},

var headerRendered = resources ? this.renderHeaderResources(range, resources) : (0, _messages2.default)(messages).allDay;
return _react2.default.createElement(

@@ -277,8 +316,11 @@ 'div',

{ className: 'rbc-row' },
_react2.default.createElement('div', {
className: 'rbc-label rbc-header-gutter',
style: { width: width }
}),
_react2.default.createElement('div', { className: 'rbc-label rbc-header-gutter', style: { width: width } }),
this.renderHeaderCells(range)
),
resources && _react2.default.createElement(
'div',
{ className: 'rbc-row rbc-row-resource' },
_react2.default.createElement('div', { className: 'rbc-label rbc-header-gutter', style: { width: width } }),
headerRendered
),
_react2.default.createElement(

@@ -291,3 +333,3 @@ 'div',

ref: function ref(_ref2) {
return _this4._gutters[0] = _ref2;
return _this5._gutters[0] = _ref2;
},

@@ -300,3 +342,3 @@ className: 'rbc-label rbc-header-gutter',

_react2.default.createElement(_DateContentRow2.default, {
now: now,
getNow: getNow,
minRows: 2,

@@ -310,5 +352,7 @@ range: range,

dateCellWrapper: components.dateCellWrapper,
dayPropGetter: this.props.dayPropGetter,
eventComponent: this.props.components.event,
eventWrapperComponent: this.props.components.eventWrapper,
titleAccessor: this.props.titleAccessor,
tooltipAccessor: this.props.tooltipAccessor,
startAccessor: this.props.startAccessor,

@@ -319,2 +363,3 @@ endAccessor: this.props.endAccessor,

selected: this.props.selected,
isAllDay: true,
onSelect: this.handleSelectEvent,

@@ -328,12 +373,42 @@ onDoubleClick: this.handleDoubleClickEvent,

TimeGrid.prototype.renderHeaderCells = function renderHeaderCells(range) {
var _this5 = this;
TimeGrid.prototype.renderHeaderResources = function renderHeaderResources(range, resources) {
var _this6 = this;
var _props5 = this.props,
dayFormat = _props5.dayFormat,
culture = _props5.culture,
components = _props5.components,
getDrilldownView = _props5.getDrilldownView;
resourceTitleAccessor = _props5.resourceTitleAccessor,
getNow = _props5.getNow;
var today = getNow();
return range.map(function (date, i) {
return resources.map(function (resource, j) {
return _react2.default.createElement(
'div',
{
key: i + '-' + j,
className: (0, _classnames2.default)('rbc-header', _dates2.default.eq(date, today, 'day') && 'rbc-today'),
style: (0, _eventLevels.segStyle)(1, _this6.slots)
},
_react2.default.createElement(
'span',
null,
(0, _accessors.accessor)(resource, resourceTitleAccessor)
)
);
});
});
};
TimeGrid.prototype.renderHeaderCells = function renderHeaderCells(range) {
var _this7 = this;
var _props6 = this.props,
dayFormat = _props6.dayFormat,
culture = _props6.culture,
components = _props6.components,
dayPropGetter = _props6.dayPropGetter,
getDrilldownView = _props6.getDrilldownView,
getNow = _props6.getNow;
var HeaderComponent = components.header || _Header2.default;
var today = getNow();

@@ -344,2 +419,6 @@ return range.map(function (date, i) {

var _ref3 = dayPropGetter && dayPropGetter(date) || {},
className = _ref3.className,
dayStyles = _ref3.style;
var header = _react2.default.createElement(HeaderComponent, {

@@ -357,4 +436,4 @@ date: date,

key: i,
className: (0, _classnames2.default)('rbc-header', _dates2.default.isToday(date) && 'rbc-today'),
style: (0, _eventLevels.segStyle)(1, _this5.slots)
className: (0, _classnames2.default)('rbc-header', className, _dates2.default.eq(date, today, 'day') && 'rbc-today'),
style: _extends({}, dayStyles, (0, _eventLevels.segStyle)(1, _this7.slots))
},

@@ -366,3 +445,3 @@ drilldownView ? _react2.default.createElement(

onClick: function onClick(e) {
return _this5.handleHeaderClick(date, drilldownView, e);
return _this7.handleHeaderClick(date, drilldownView, e);
}

@@ -441,6 +520,6 @@ },

TimeGrid.prototype.calculateScroll = function calculateScroll() {
var _props6 = this.props,
min = _props6.min,
max = _props6.max,
scrollToTime = _props6.scrollToTime;
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
var min = props.min,
max = props.max,
scrollToTime = props.scrollToTime;

@@ -454,17 +533,2 @@

TimeGrid.prototype.checkOverflow = function checkOverflow() {
var _this6 = this;
if (this._updatingOverflow) return;
var isOverflowing = this.refs.content.scrollHeight > this.refs.content.clientHeight;
if (this.state.isOverflowing !== isOverflowing) {
this._updatingOverflow = true;
this.setState({ isOverflowing: isOverflowing }, function () {
_this6._updatingOverflow = false;
});
}
};
TimeGrid.prototype.positionTimeIndicator = function positionTimeIndicator() {

@@ -474,8 +538,9 @@ var _props7 = this.props,

min = _props7.min,
max = _props7.max;
max = _props7.max,
getNow = _props7.getNow;
var now = new Date();
var current = getNow();
var secondsGrid = _dates2.default.diff(max, min, 'seconds');
var secondsPassed = _dates2.default.diff(now, min, 'seconds');
var secondsPassed = _dates2.default.diff(current, min, 'seconds');

@@ -486,3 +551,3 @@ var timeIndicator = this.refs.timeIndicator;

if (timeGutter && now >= min && now <= max) {
if (timeGutter && current >= min && current <= max) {
var pixelHeight = timeGutter.offsetHeight;

@@ -501,9 +566,9 @@ var offset = Math.floor(factor * pixelHeight);

TimeGrid.prototype.triggerTimeIndicatorUpdate = function triggerTimeIndicatorUpdate() {
var _this7 = this;
var _this8 = this;
// Update the position of the time indicator every minute
this._timeIndicatorTimeout = window.setTimeout(function () {
_this7.positionTimeIndicator();
_this8.positionTimeIndicator();
_this7.triggerTimeIndicatorUpdate();
_this8.triggerTimeIndicatorUpdate();
}, 60000);

@@ -517,2 +582,3 @@ };

events: _propTypes2.default.array.isRequired,
resources: _propTypes2.default.array,

@@ -523,6 +589,7 @@ step: _propTypes2.default.number,

max: _propTypes2.default.instanceOf(Date),
now: _propTypes2.default.instanceOf(Date),
getNow: _propTypes2.default.func.isRequired,
scrollToTime: _propTypes2.default.instanceOf(Date),
eventPropGetter: _propTypes2.default.func,
dayPropGetter: _propTypes2.default.func,
dayFormat: _propTypes3.dateFormat,

@@ -536,6 +603,11 @@ showMultiDayTimes: _propTypes2.default.bool,

titleAccessor: _propTypes3.accessor.isRequired,
tooltipAccessor: _propTypes3.accessor.isRequired,
allDayAccessor: _propTypes3.accessor.isRequired,
startAccessor: _propTypes3.accessor.isRequired,
endAccessor: _propTypes3.accessor.isRequired,
resourceAccessor: _propTypes3.accessor.isRequired,
resourceIdAccessor: _propTypes3.accessor.isRequired,
resourceTitleAccessor: _propTypes3.accessor.isRequired,
selected: _propTypes2.default.object,

@@ -562,8 +634,8 @@ selectable: _propTypes2.default.oneOf([true, false, 'ignoreEvents']),

scrollToTime: _dates2.default.startOf(new Date(), 'day'),
/* these 2 are needed to satisfy requirements from TimeColumn required props
/* this is needed to satisfy requirements from TimeColumn required props
* There is a strange bug in React, using ...TimeColumn.defaultProps causes weird crashes
*/
type: 'gutter',
now: new Date()
type: 'gutter'
};
exports.default = TimeGrid;
exports.default = TimeGrid;
module.exports = exports['default'];

@@ -39,3 +39,4 @@ 'use strict';

value = _props.value,
slotPropGetter = _props.slotPropGetter;
slotPropGetter = _props.slotPropGetter,
resource = _props.resource;

@@ -50,3 +51,3 @@ var Wrapper = this.props.dayWrapperComponent;

Wrapper,
{ value: value },
{ value: value, resource: resource },
_react2.default.createElement(

@@ -77,3 +78,4 @@ 'div',

culture: _propTypes2.default.string,
slotPropGetter: _propTypes2.default.func
slotPropGetter: _propTypes2.default.func,
resource: _propTypes2.default.string
};

@@ -85,2 +87,3 @@ TimeSlot.defaultProps = {

};
exports.default = TimeSlot;
exports.default = TimeSlot;
module.exports = exports['default'];

@@ -50,2 +50,3 @@ 'use strict';

culture = _props.culture,
resource = _props.resource,
slotPropGetter = _props.slotPropGetter;

@@ -61,2 +62,3 @@

isNow: isNow,
resource: resource,
value: value

@@ -98,3 +100,4 @@ });

timeGutterFormat: _propTypes3.dateFormat,
culture: _propTypes2.default.string
culture: _propTypes2.default.string,
resource: _propTypes2.default.string
};

@@ -107,2 +110,3 @@ TimeSlotGroup.defaultProps = {

};
exports.default = TimeSlotGroup;
exports.default = TimeSlotGroup;
module.exports = exports['default'];

@@ -106,3 +106,5 @@ 'use strict';

'button',
{ type: 'button', key: name,
{
type: 'button',
key: name,
className: (0, _classnames2.default)({ 'rbc-active': view === name }),

@@ -128,2 +130,3 @@ onClick: _this2.view.bind(null, name)

};
exports.default = Toolbar;
exports.default = Toolbar;
module.exports = exports['default'];

@@ -8,2 +8,9 @@ 'use strict';

exports.accessor = accessor;
/**
* Retrieve via an accessor-like property
*
* accessor(obj, 'name') // => retrieves obj['name']
* accessor(data, func) // => retrieves func(data)
* ... otherwise null
*/
function accessor(data, field) {

@@ -10,0 +17,0 @@ var value = null;

@@ -87,8 +87,2 @@ 'use strict';

},
sameMonth: function sameMonth(dateA, dateB) {
return dates.eq(dateA, dateB, 'month');
},
isToday: function isToday(date) {
return dates.eq(date, dates.today(), 'day');
},
eqTime: function eqTime(dateA, dateB) {

@@ -148,2 +142,3 @@ return dates.hours(dateA) === dates.hours(dateB) && dates.minutes(dateA) === dates.minutes(dateB) && dates.seconds(dateA) === dates.seconds(dateB);

exports.default = dates;
exports.default = dates;
module.exports = exports['default'];

@@ -59,3 +59,4 @@ 'use strict';

var per = span / slots * 100 + '%';
return { WebkitFlexBasis: per, flexBasis: per, maxWidth: per }; // IE10/11 need max-width. flex-basis doesn't respect box-sizing
return { WebkitFlexBasis: per, flexBasis: per, maxWidth: per // IE10/11 need max-width. flex-basis doesn't respect box-sizing
};
}

@@ -80,3 +81,3 @@

} else {
(levels[j] || (levels[j] = [])).push(seg);
;(levels[j] || (levels[j] = [])).push(seg);
}

@@ -102,3 +103,4 @@ }

var startsBeforeEnd = _dates2.default.lte(eStart, end, 'day');
var endsAfterStart = _dates2.default.gte(eEnd, start, 'day');
// when the event is zero duration we need to handle a bit differently
var endsAfterStart = !_dates2.default.eq(eStart, eEnd, 'minutes') ? _dates2.default.gt(eEnd, start, 'minutes') : _dates2.default.gte(eEnd, start, 'minutes');

@@ -125,6 +127,6 @@ return startsBeforeEnd && endsAfterStart;

return startSort // sort by start Day first
|| Math.max(durB, 1) - Math.max(durA, 1) // events spanning multiple days go first
|| !!(0, _accessors.accessor)(evtB, allDayAccessor) - !!(0, _accessors.accessor)(evtA, allDayAccessor) // then allDay single day events
|| +(0, _accessors.accessor)(evtA, startAccessor) - +(0, _accessors.accessor)(evtB, startAccessor); // then sort by start time
return startSort || // sort by start Day first
Math.max(durB, 1) - Math.max(durA, 1) || // events spanning multiple days go first
!!(0, _accessors.accessor)(evtB, allDayAccessor) - !!(0, _accessors.accessor)(evtA, allDayAccessor) || // then allDay single day events
+(0, _accessors.accessor)(evtA, startAccessor) - +(0, _accessors.accessor)(evtB, startAccessor); // then sort by start time
}

@@ -23,3 +23,4 @@ 'use strict';

date = _ref.date,
props = _objectWithoutProperties(_ref, ['action', 'date']);
today = _ref.today,
props = _objectWithoutProperties(_ref, ['action', 'date', 'today']);

@@ -30,3 +31,3 @@ View = typeof View === 'string' ? _Views2.default[View] : View;

case _constants.navigate.TODAY:
date = new Date();
date = today || new Date();
break;

@@ -40,2 +41,3 @@ case _constants.navigate.DATE:

return date;
}
}
module.exports = exports['default'];

@@ -74,11 +74,10 @@ "use strict";

if (currentSlot < startIdx) startIdx = currentSlot;else endIdx = currentSlot; //select current range
} else if (start.y < box.y) {
// the current row is below start row
// select cells to the right of the start cell
endIdx = lastSlotIdx;
} else {
// select cells to the left of the start cell
startIdx = 0;
}
// the current row is below start row
else if (start.y < box.y) {
// select cells to the right of the start cell
endIdx = lastSlotIdx;
} else {
// select cells to the left of the start cell
startIdx = 0;
}
}

@@ -85,0 +84,0 @@

@@ -33,2 +33,3 @@ 'use strict';

exports.default = VIEWS;
exports.default = VIEWS;
module.exports = exports['default'];

@@ -101,2 +101,3 @@ 'use strict';

exports.default = Week;
exports.default = Week;
module.exports = exports['default'];

@@ -84,2 +84,3 @@ 'use strict';

exports.default = WorkWeek;
exports.default = WorkWeek;
module.exports = exports['default'];
{
"name": "react-big-calendar",
"version": "0.17.0",
"version": "0.18.0",
"description": "Calendar! with events",

@@ -10,8 +10,3 @@ "author": "Jason Quense <monastic.panic@gmail.com>",

"style": "lib/css/react-big-calendar.css",
"files": [
"lib/",
"LICENSE",
"README.md",
"CHANGELOG.md"
],
"files": ["lib/", "LICENSE", "README.md", "CHANGELOG.md"],
"keywords": [

@@ -29,16 +24,34 @@ "scheduler",

"l": "lessc --autoprefix=\"ie >= 10, safari >= 8, last 2 versions\" ",
"less": "npm run l src/less/styles.less ./lib/css/react-big-calendar.css && npm run less-dnd",
"less-dnd": "npm run l src/addons/dragAndDrop/styles.less ./lib/addons/dragAndDrop/styles.css",
"less":
"npm run l src/less/styles.less ./lib/css/react-big-calendar.css && npm run less-dnd",
"less-dnd":
"npm run l src/addons/dragAndDrop/styles.less ./lib/addons/dragAndDrop/styles.css",
"assets": "cpy src/less/* lib/less && npm run assets-addons",
"assets-addons": "cpy addons/**/*.less ../lib/ --cwd=src --parents",
"build": "npm run clean && babel src --out-dir lib && npm run assets && npm run less && npm run less",
"build:examples": "npm run clean:examples && webpack --config webpack/examples.config.js",
"build:visual-test": "webpack --config webpack/visual-test.js",
"examples": "npm run clean:examples && webpack-dev-server --inline --hot --config webpack/examples.config.js",
"lint": "eslint src --ext .jsx --ext .js",
"build":
"npm run clean && babel src --out-dir lib && npm run assets && npm run less && npm run less",
"build:examples":
"npm run clean:examples && webpack --config examples/webpack.config.js",
"examples":
"npm run clean:examples && webpack-dev-server --inline --hot --config examples/webpack.config.js",
"lint": "eslint src test",
"storybook": "start-storybook -p 9002",
"test": "npm run lint",
"tdd": "karma start",
"release": "release"
"test": "npm run lint && jest",
"tdd": "jest --watch",
"release": "release",
"prettier": "prettier '**/*js' !examples/bundle.js '!lib/**' --write ",
"precommit": "lint-staged"
},
"lint-staged": {
"src/**/*.js": "eslint",
"test/**/*.js": "eslint",
"*.{js,json,css,md}": ["prettier --write", "git add"]
},
"prettier": {
"printWidth": 80,
"semi": false,
"singleQuote": true,
"trailingComma": "es5",
"bracketSpacing": true
},
"peerDependencies": {

@@ -49,3 +62,3 @@ "react": "^15.3.0 || ^16.0.0",

"devDependencies": {
"@kadira/storybook": "^1.28.1",
"@storybook/react": "3.2.16",
"babel-cli": "^6.7.5",

@@ -56,2 +69,3 @@ "babel-core": "^6.7.6",

"babel-preset-jason": "^3.0.0",
"bootstrap": "^3.3.5",
"component-metadata-loader": "^3.0.1",

@@ -61,13 +75,20 @@ "cpy": "^3.4.1",

"eslint-config-jason": "^4.0.0",
"eslint-config-prettier": "^2.9.0",
"eslint-import-resolver-webpack": "^0.8.0",
"eslint-plugin-import": "^2.0.0",
"eslint-plugin-react": "^6.8.0",
"font-awesome": "^4.7.0",
"globalize": "^0.1.1",
"less": "^2.7.2",
"husky": "^0.14.3",
"jest": "^21.1.0",
"less": "^2.7.3",
"less-loader": "^4.0.5",
"less-plugin-autoprefix": "^1.5.1",
"markdown-jsx-loader": "^2.0.1",
"lint-staged": "^6.0.0",
"markdown-jsx-loader": "^3.0.2",
"marked": "^0.3.5",
"moment": "^2.17.1",
"mt-changelog": "^0.6.1",
"react": "^15.3.0",
"prettier": "^1.9.1",
"react": "^16.2.0",
"react-bootstrap": "^0.28.0",

@@ -77,8 +98,8 @@ "react-dnd": "^2.1.4",

"react-docgen": "^2.14.1",
"react-dom": "^15.3.0",
"react-dom": "^16.2.0",
"release-script": "^1.0.0",
"rimraf": "^2.4.2",
"webpack": "^2.4.1",
"webpack-atoms": "^1.0.2",
"webpack-dev-server": "^2.4.5"
"webpack": "^3.10.0",
"webpack-atoms": "^4.1.2",
"webpack-dev-server": "^2.9.5"
},

@@ -94,5 +115,5 @@ "dependencies": {

"react-prop-types": "^0.4.0",
"uncontrollable": "^3.3.1 || ^4.0.0",
"uncontrollable": "^4.0.0",
"warning": "^2.0.0"
}
}

@@ -1,7 +0,6 @@

react-big-calendar
========================
# react-big-calendar
An events calendar component built for React and made for modern browsers (read: IE10+) and uses flexbox over the classic tables-ception approach.
[__DEMO and Docs__](http://intljusticemission.github.io/react-big-calendar/examples/index.html)
[**DEMO and Docs**](http://intljusticemission.github.io/react-big-calendar/examples/index.html)

@@ -14,9 +13,14 @@ Inspired by [Full Calendar](http://fullcalendar.io/).

Include `react-big-calendar/lib/css/react-big-calendar.css` for styles.
Include `react-big-calendar/lib/css/react-big-calendar.css` for styles, and make sure your calendar's container
element has a height, or the calendar won't be visible.
## Run examples locally
* Clone this repository
* Retrieve dependencies: `npm install`
* Start: `npm run examples`
```
$ git clone git@github.com:intljusticemission/react-big-calendar.git
$ cd react-big-calendar
$ npm install
$ npm run examples
```
* Open [localhost:3000/examples/index.html](http://localhost:3000/examples/index.html).

@@ -29,3 +33,3 @@

Regardless of your choice, you __must__ choose a localizer to use this library:
Regardless of your choice, you **must** choose a localizer to use this library:

@@ -35,8 +39,6 @@ #### Moment.js

```js
import BigCalendar from 'react-big-calendar';
import moment from 'moment';
import BigCalendar from 'react-big-calendar'
import moment from 'moment'
BigCalendar.setLocalizer(
BigCalendar.momentLocalizer(moment)
);
BigCalendar.setLocalizer(BigCalendar.momentLocalizer(moment))
```

@@ -47,8 +49,6 @@

```js
import BigCalendar from 'react-big-calendar';
import globalize from 'globalize';
import BigCalendar from 'react-big-calendar'
import globalize from 'globalize'
BigCalendar.setLocalizer(
BigCalendar.globalizeLocalizer(globalize)
);
BigCalendar.setLocalizer(BigCalendar.globalizeLocalizer(globalize))
```

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc