| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91 |
1
6
1
19
1
1
1
1
1
1
19
19
19
19
19
19
19
1
18
1
17
17
1
6
6
6
6
4
4
2
3
2
1
1
1
| "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
// istanbul ignore next
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) { Eif (protoProps) defineProperties(Constructor.prototype, protoProps); Iif (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
// istanbul ignore next
function _classCallCheck(instance, Constructor) { Iif (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var _moment = require('moment');
var _moment2 = _interopRequireDefault(_moment);
var invalidStartDateError = new ReferenceError("Invalid starting point");
var invalidDurationError = new ReferenceError("Invalid duration period");
var Event = (function () {
function Event() {
var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
var _ref$startTime = _ref.startTime;
var startTime = _ref$startTime === undefined ? (0, _moment2["default"])() : _ref$startTime;
var _ref$duration = _ref.duration;
var duration = _ref$duration === undefined ? _moment2["default"].duration(1, 'hours') : _ref$duration;
_classCallCheck(this, Event);
if (startTime.isBefore((0, _moment2["default"])())) {
throw invalidStartDateError;
} else if (!_moment2["default"].isDuration(duration)) {
throw invalidDurationError;
} else {
this._startTime = startTime;
this._duration = duration;
}
}
_createClass(Event, [{
key: "isBetween",
value: function isBetween(start, end) {
var endTime = (0, _moment2["default"])(this._startTime).add(this._duration);
return this._startTime.isAfter(start) && endTime.isBefore(end);
}
}, {
key: "inRange",
value: function inRange(start, end) {
var endTime = (0, _moment2["default"])(this._startTime).add(this._duration);
return endTime.isBetween(start, end) || this._startTime.isBetween(start, end) || start.isBetween(this._startTime, endTime) || end.isBetween(this._startTime, endTime);
}
}, {
key: "collide",
value: function collide(event) {
var endTime = (0, _moment2["default"])(this._startTime).add(this._duration);
return event.inRange(this._startTime, endTime);
}
}, {
key: "startTime",
get: function get() {
return this._startTime.calendar();
}
}, {
key: "duration",
get: function get() {
return this._duration.toJSON();
}
}, {
key: "endTime",
get: function get() {
return (0, _moment2["default"])(this._startTime).add(this._duration).calendar();
}
}]);
return Event;
})();
exports["default"] = Event;
module.exports = exports["default"];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3RyYXZpcy9idWlsZC9yb2RvbGZvMjQ4OC9ib29raW5nL3NyYy9tb2RlbHMvRXZlbnQvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7c0JBQ21CLFFBQVE7Ozs7QUFFM0IsSUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0FBQzNFLElBQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQUMseUJBQXlCLENBQUMsQ0FBQzs7SUFFckUsS0FBSztBQUVFLFdBRlAsS0FBSyxHQUUwRTtxRUFBSixFQUFFOzs4QkFBbkUsU0FBUztRQUFULFNBQVMsa0NBQUcsMEJBQVE7NkJBQUUsUUFBUTtRQUFSLFFBQVEsaUNBQUcsb0JBQU8sUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUM7OzBCQUZ0RSxLQUFLOztBQUlQLFFBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQywwQkFBUSxDQUFDLEVBQUU7O0FBRWhDLFlBQU0scUJBQXFCLENBQUM7S0FFN0IsTUFBTSxJQUFJLENBQUMsb0JBQU8sVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFOztBQUV2QyxZQUFNLG9CQUFvQixDQUFDO0tBRTVCLE1BQU07O0FBRUwsVUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7QUFDNUIsVUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7S0FDM0I7R0FDRjs7ZUFqQkcsS0FBSzs7V0FtQkEsbUJBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRTtBQUNwQixVQUFJLE9BQU8sR0FBRyx5QkFBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUMxRCxhQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUU7S0FDbEU7OztXQUVNLGlCQUFDLEtBQUssRUFBRSxHQUFHLEVBQUU7QUFDbEIsVUFBSSxPQUFPLEdBQUcseUJBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7O0FBRTFELGFBQVEsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLElBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFDckMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxJQUN6QyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUU7S0FDbEQ7OztXQUVNLGlCQUFDLEtBQUssRUFBRTtBQUNiLFVBQUksT0FBTyxHQUFHLHlCQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDOztBQUUxRCxhQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztLQUNoRDs7O1NBRVksZUFBRztBQUNkLGFBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUNuQzs7O1NBRVcsZUFBRztBQUNiLGFBQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztLQUNoQzs7O1NBRVUsZUFBRztBQUNaLGFBQU8seUJBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7S0FDL0Q7OztTQWpERyxLQUFLOzs7cUJBcURJLEtBQUsiLCJmaWxlIjoiL2hvbWUvdHJhdmlzL2J1aWxkL3JvZG9sZm8yNDg4L2Jvb2tpbmcvc3JjL21vZGVscy9FdmVudC9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5jb25zdCBpbnZhbGlkU3RhcnREYXRlRXJyb3IgPSBuZXcgUmVmZXJlbmNlRXJyb3IoXCJJbnZhbGlkIHN0YXJ0aW5nIHBvaW50XCIpO1xuY29uc3QgaW52YWxpZER1cmF0aW9uRXJyb3IgPSBuZXcgUmVmZXJlbmNlRXJyb3IoXCJJbnZhbGlkIGR1cmF0aW9uIHBlcmlvZFwiKTtcblxuY2xhc3MgRXZlbnQge1xuXG4gIGNvbnN0cnVjdG9yKHsgc3RhcnRUaW1lID0gbW9tZW50KCksIGR1cmF0aW9uID0gbW9tZW50LmR1cmF0aW9uKDEsICdob3VycycpIH0gPSB7fSkge1xuXG4gICAgaWYgKHN0YXJ0VGltZS5pc0JlZm9yZShtb21lbnQoKSkpIHtcblxuICAgICAgdGhyb3cgaW52YWxpZFN0YXJ0RGF0ZUVycm9yO1xuXG4gICAgfSBlbHNlIGlmICghbW9tZW50LmlzRHVyYXRpb24oZHVyYXRpb24pKSB7XG5cbiAgICAgIHRocm93IGludmFsaWREdXJhdGlvbkVycm9yO1xuXG4gICAgfSBlbHNlIHtcblxuICAgICAgdGhpcy5fc3RhcnRUaW1lID0gc3RhcnRUaW1lO1xuICAgICAgdGhpcy5fZHVyYXRpb24gPSBkdXJhdGlvbjtcbiAgICB9XG4gIH1cblxuICBpc0JldHdlZW4oc3RhcnQsIGVuZCkge1xuICAgIGxldCBlbmRUaW1lID0gbW9tZW50KHRoaXMuX3N0YXJ0VGltZSkuYWRkKHRoaXMuX2R1cmF0aW9uKTtcbiAgICByZXR1cm4gKHRoaXMuX3N0YXJ0VGltZS5pc0FmdGVyKHN0YXJ0KSAmJiBlbmRUaW1lLmlzQmVmb3JlKGVuZCkpO1xuICB9XG5cbiAgaW5SYW5nZShzdGFydCwgZW5kKSB7XG4gICAgbGV0IGVuZFRpbWUgPSBtb21lbnQodGhpcy5fc3RhcnRUaW1lKS5hZGQodGhpcy5fZHVyYXRpb24pO1xuXG4gICAgcmV0dXJuIChlbmRUaW1lLmlzQmV0d2VlbihzdGFydCwgZW5kKSB8fFxuICAgICAgICAgICAgdGhpcy5fc3RhcnRUaW1lLmlzQmV0d2VlbihzdGFydCwgZW5kKSB8fFxuICAgICAgICAgICAgc3RhcnQuaXNCZXR3ZWVuKHRoaXMuX3N0YXJ0VGltZSwgZW5kVGltZSkgfHxcbiAgICAgICAgICAgIGVuZC5pc0JldHdlZW4odGhpcy5fc3RhcnRUaW1lLCBlbmRUaW1lKSk7XG4gIH1cblxuICBjb2xsaWRlKGV2ZW50KSB7XG4gICAgbGV0IGVuZFRpbWUgPSBtb21lbnQodGhpcy5fc3RhcnRUaW1lKS5hZGQodGhpcy5fZHVyYXRpb24pO1xuXG4gICAgcmV0dXJuIGV2ZW50LmluUmFuZ2UodGhpcy5fc3RhcnRUaW1lLCBlbmRUaW1lKTtcbiAgfVxuXG4gIGdldCBzdGFydFRpbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXJ0VGltZS5jYWxlbmRhcigpO1xuICB9XG5cbiAgZ2V0IGR1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9kdXJhdGlvbi50b0pTT04oKTtcbiAgfVxuXG4gIGdldCBlbmRUaW1lKCkge1xuICAgIHJldHVybiBtb21lbnQodGhpcy5fc3RhcnRUaW1lKS5hZGQodGhpcy5fZHVyYXRpb24pLmNhbGVuZGFyKCk7XG4gIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBFdmVudDtcbiJdfQ== |