/home/ivoiecob/email.hirewise-va.com/static/js/CalendarWebclient.app.f8acf95914956fac5be6.js
(self["webpackChunkafterlogic_aurora_platform"] = self["webpackChunkafterlogic_aurora_platform"] || []).push([[2],{
/***/ "+vjt":
/*!*****************************************************!*\
!*** ./node_modules/css-loader/dist/runtime/api.js ***!
\*****************************************************/
/***/ ((module) => {
"use strict";
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
module.exports = function (cssWithMappingToString) {
var list = [];
// return the list of modules as css string
list.toString = function toString() {
return this.map(function (item) {
var content = "";
var needLayer = typeof item[5] !== "undefined";
if (item[4]) {
content += "@supports (".concat(item[4], ") {");
}
if (item[2]) {
content += "@media ".concat(item[2], " {");
}
if (needLayer) {
content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
}
content += cssWithMappingToString(item);
if (needLayer) {
content += "}";
}
if (item[2]) {
content += "}";
}
if (item[4]) {
content += "}";
}
return content;
}).join("");
};
// import a list of modules into the list
list.i = function i(modules, media, dedupe, supports, layer) {
if (typeof modules === "string") {
modules = [[null, modules, undefined]];
}
var alreadyImportedModules = {};
if (dedupe) {
for (var k = 0; k < this.length; k++) {
var id = this[k][0];
if (id != null) {
alreadyImportedModules[id] = true;
}
}
}
for (var _k = 0; _k < modules.length; _k++) {
var item = [].concat(modules[_k]);
if (dedupe && alreadyImportedModules[item[0]]) {
continue;
}
if (typeof layer !== "undefined") {
if (typeof item[5] === "undefined") {
item[5] = layer;
} else {
item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
item[5] = layer;
}
}
if (media) {
if (!item[2]) {
item[2] = media;
} else {
item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
item[2] = media;
}
}
if (supports) {
if (!item[4]) {
item[4] = "".concat(supports);
} else {
item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
item[4] = supports;
}
}
list.push(item);
}
};
return list;
};
/***/ }),
/***/ "/GNx":
/*!********************************************************************!*\
!*** ./modules/CalendarWebclient/js/popups/SelectCalendarPopup.js ***!
\********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
$ = __webpack_require__(/*! jquery */ "M4cL"),
ko = __webpack_require__(/*! knockout */ "p09A"),
CAbstractPopup = __webpack_require__(/*! modules/CoreWebclient/js/popups/CAbstractPopup.js */ "69av");
/**
* @constructor
*/
function CSelectCalendarPopup() {
CAbstractPopup.call(this);
this.fCallback = null;
this.fProceedUploading = null;
this.calendars = null;
this.calendarsList = ko.observableArray([]);
this.calendarColor = ko.observable('');
this.selectedCalendarName = ko.observable('');
this.selectedCalendarId = ko.observable('');
this.selectedCalendarId.subscribe(function (sValue) {
if (sValue) {
var oCalendar = this.calendars.getCalendarById(sValue);
this.selectedCalendarName(oCalendar.name());
this.selectedCalendarIsEditable(oCalendar.isEditable());
this.changeCalendarColor(sValue);
}
}, this);
this.selectedCalendarIsEditable = ko.observable(false);
}
_.extendOwn(CSelectCalendarPopup.prototype, CAbstractPopup.prototype);
CSelectCalendarPopup.prototype.PopupTemplate = 'CalendarWebclient_SelectCalendarPopup';
/**
* @param {Object} oParameters
*/
CSelectCalendarPopup.prototype.onOpen = function (oParameters) {
this.fCallback = oParameters.CallbackSave;
this.fProceedUploading = oParameters.ProceedUploading;
this.calendars = oParameters.Calendars;
this.calendarsList(oParameters.EditableCalendars);
this.selectedCalendarId(oParameters.DefaultCalendarId);
this.changeCalendarColor(this.selectedCalendarId());
};
CSelectCalendarPopup.prototype.onSaveClick = function () {
if (this.fCallback) {
this.fCallback(this.selectedCalendarId(), this.fProceedUploading);
}
this.closePopup();
};
/**
* @param {string} sId
*/
CSelectCalendarPopup.prototype.changeCalendarColor = function (sId) {
if (_.isFunction(this.calendars.getCalendarById)) {
var oCalendar = this.calendars.getCalendarById(sId);
if (oCalendar) {
this.calendarColor('');
this.calendarColor(oCalendar.color());
}
}
};
module.exports = new CSelectCalendarPopup();
/***/ }),
/***/ "2DD2":
/*!***********************************************!*\
!*** ./modules/CalendarWebclient/js/enums.js ***!
\***********************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
Enums = {};
/**
* @enum {number}
*/
Enums.CalendarAccess = {
'Full': 0,
'Write': 1,
'Read': 2
};
/**
* @enum {number}
*/
Enums.CalendarEditRecurrenceEvent = {
'None': 0,
'OnlyThisInstance': 1,
'AllEvents': 2
};
/**
* @enum {number}
*/
Enums.CalendarRepeatPeriod = {
'None': 0,
'Daily': 1,
'Weekly': 2,
'Monthly': 3,
'Yearly': 4
};
/**
* @enum {number}
*/
Enums.CalendarAlways = {
'Disable': 0,
'Enable': 1
};
/**
* @enum {number}
*/
Enums.CalendarDefaultTab = {
'Day': '1',
'Week': '2',
'Month': '3',
'List': '4'
};
/**
* @enum {string}
*/
Enums.IcalType = {
Request: 'REQUEST',
Reply: 'REPLY',
Cancel: 'CANCEL',
Save: 'SAVE'
};
/**
* @enum {string}
*/
Enums.IcalConfig = {
Accepted: 'ACCEPTED',
Declined: 'DECLINED',
Tentative: 'TENTATIVE',
NeedsAction: 'NEEDS-ACTION'
};
/**
* @enum {number}
*/
Enums.IcalConfigInt = {
Accepted: 1,
Declined: 2,
Tentative: 3,
NeedsAction: 0
};
if (typeof window.Enums === 'undefined') {
window.Enums = {};
}
_.extendOwn(window.Enums, Enums);
/***/ }),
/***/ "3c4z":
/*!**********************************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
\**********************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/* istanbul ignore next */
function setAttributesWithoutAttributes(styleElement) {
var nonce = true ? __webpack_require__.nc : 0;
if (nonce) {
styleElement.setAttribute("nonce", nonce);
}
}
module.exports = setAttributesWithoutAttributes;
/***/ }),
/***/ "3mzb":
/*!**********************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
\**********************************************************************/
/***/ ((module) => {
"use strict";
/* istanbul ignore next */
function insertStyleElement(options) {
var element = document.createElement("style");
options.setAttributes(element, options.attributes);
options.insert(element, options.options);
return element;
}
module.exports = insertStyleElement;
/***/ }),
/***/ "5Hnr":
/*!***************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
\***************************************************************/
/***/ ((module) => {
"use strict";
/* istanbul ignore next */
function apply(styleElement, options, obj) {
var css = "";
if (obj.supports) {
css += "@supports (".concat(obj.supports, ") {");
}
if (obj.media) {
css += "@media ".concat(obj.media, " {");
}
var needLayer = typeof obj.layer !== "undefined";
if (needLayer) {
css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
}
css += obj.css;
if (needLayer) {
css += "}";
}
if (obj.media) {
css += "}";
}
if (obj.supports) {
css += "}";
}
var sourceMap = obj.sourceMap;
if (sourceMap && typeof btoa !== "undefined") {
css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
}
// For old IE
/* istanbul ignore if */
options.styleTagTransform(css, styleElement, options.options);
}
function removeStyleElement(styleElement) {
// istanbul ignore if
if (styleElement.parentNode === null) {
return false;
}
styleElement.parentNode.removeChild(styleElement);
}
/* istanbul ignore next */
function domAPI(options) {
if (typeof document === "undefined") {
return {
update: function update() {},
remove: function remove() {}
};
}
var styleElement = options.insertStyleElement(options);
return {
update: function update(obj) {
apply(styleElement, options, obj);
},
remove: function remove() {
removeStyleElement(styleElement);
}
};
}
module.exports = domAPI;
/***/ }),
/***/ "5dlS":
/*!***************************************************************************!*\
!*** ./modules/CalendarWebclient/js/vendors/fullcalendar/fullcalendar.js ***!
\***************************************************************************/
/***/ (function(module, exports, __webpack_require__) {
/* module decorator */ module = __webpack_require__.nmd(module);
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
/*!
* FullCalendar v3.10.2
* Docs & License: https://fullcalendar.io/
* (c) 2019 Adam Shaw
*/
var TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt");
!function (t, e) {
"object" == ( false ? 0 : _typeof(exports)) && "object" == ( false ? 0 : _typeof(module)) ? module.exports = e(__webpack_require__(/*! moment */ "sdEb"), __webpack_require__(/*! jquery */ "M4cL")) : true ? !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! moment */ "sdEb"), __webpack_require__(/*! jquery */ "M4cL")], __WEBPACK_AMD_DEFINE_FACTORY__ = (e),
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0;
}("undefined" != typeof self ? self : this, function (t, e) {
return function (t) {
function e(r) {
if (n[r]) return n[r].exports;
var i = n[r] = {
i: r,
l: !1,
exports: {}
};
return t[r].call(i.exports, i, i.exports, e), i.l = !0, i.exports;
}
var n = {};
return e.m = t, e.c = n, e.d = function (t, n, r) {
e.o(t, n) || Object.defineProperty(t, n, {
configurable: !1,
enumerable: !0,
get: r
});
}, e.n = function (t) {
var n = t && t.__esModule ? function () {
return t["default"];
} : function () {
return t;
};
return e.d(n, "a", n), n;
}, e.o = function (t, e) {
return Object.prototype.hasOwnProperty.call(t, e);
}, e.p = "", e(e.s = 256);
}([function (e, n) {
e.exports = t;
},, function (t, e) {
var n = Object.setPrototypeOf || {
__proto__: []
} instanceof Array && function (t, e) {
t.__proto__ = e;
} || function (t, e) {
for (var n in e) e.hasOwnProperty(n) && (t[n] = e[n]);
};
e.__extends = function (t, e) {
function r() {
this.constructor = t;
}
n(t, e), t.prototype = null === e ? Object.create(e) : (r.prototype = e.prototype, new r());
};
}, function (t, n) {
t.exports = e;
}, function (t, e, n) {
function r(t, e) {
e.left && t.css({
"border-left-width": 1,
"margin-left": e.left - 1
}), e.right && t.css({
"border-right-width": 1,
"margin-right": e.right - 1
});
}
function i(t) {
t.css({
"margin-left": "",
"margin-right": "",
"border-left-width": "",
"border-right-width": ""
});
}
function o() {
ht("body").addClass("fc-not-allowed");
}
function s() {
ht("body").removeClass("fc-not-allowed");
}
function a(t, e, n) {
var r = Math.floor(e / t.length),
i = Math.floor(e - r * (t.length - 1)),
o = [],
s = [],
a = [],
u = 0;
l(t), t.each(function (e, n) {
var l = e === t.length - 1 ? i : r,
d = ht(n).outerHeight(!0);
d < l ? (o.push(n), s.push(d), a.push(ht(n).height())) : u += d;
}), n && (e -= u, r = Math.floor(e / o.length), i = Math.floor(e - r * (o.length - 1))), ht(o).each(function (t, e) {
var n = t === o.length - 1 ? i : r,
l = s[t],
u = a[t],
d = n - (l - u);
l < n && ht(e).height(d);
});
}
function l(t) {
t.height("");
}
function u(t) {
var e = 0;
return t.find("> *").each(function (t, n) {
var r = ht(n).outerWidth();
r > e && (e = r);
}), e++, t.width(e), e;
}
function d(t, e) {
var n,
r = t.add(e);
return r.css({
position: "relative",
left: -1
}), n = t.outerHeight() - e.outerHeight(), r.css({
position: "",
left: ""
}), n;
}
function c(t) {
var e = t.css("position"),
n = t.parents().filter(function () {
var t = ht(this);
return /(auto|scroll)/.test(t.css("overflow") + t.css("overflow-y") + t.css("overflow-x"));
}).eq(0);
return "fixed" !== e && n.length ? n : ht(t[0].ownerDocument || document);
}
function p(t, e) {
var n = t.offset(),
r = n.left - (e ? e.left : 0),
i = n.top - (e ? e.top : 0);
return {
left: r,
right: r + t.outerWidth(),
top: i,
bottom: i + t.outerHeight()
};
}
function h(t, e) {
var n = t.offset(),
r = g(t),
i = n.left + b(t, "border-left-width") + r.left - (e ? e.left : 0),
o = n.top + b(t, "border-top-width") + r.top - (e ? e.top : 0);
return {
left: i,
right: i + t[0].clientWidth,
top: o,
bottom: o + t[0].clientHeight
};
}
function f(t, e) {
var n = t.offset(),
r = n.left + b(t, "border-left-width") + b(t, "padding-left") - (e ? e.left : 0),
i = n.top + b(t, "border-top-width") + b(t, "padding-top") - (e ? e.top : 0);
return {
left: r,
right: r + t.width(),
top: i,
bottom: i + t.height()
};
}
function g(t) {
var e,
n = t[0].offsetWidth - t[0].clientWidth,
r = t[0].offsetHeight - t[0].clientHeight;
return n = v(n), r = v(r), e = {
left: 0,
right: 0,
top: 0,
bottom: r
}, y() && "rtl" === t.css("direction") ? e.left = n : e.right = n, e;
}
function v(t) {
return t = Math.max(0, t), t = Math.round(t);
}
function y() {
return null === ft && (ft = m()), ft;
}
function m() {
var t = ht("<div><div></div></div>").css({
position: "absolute",
top: -1e3,
left: 0,
border: 0,
padding: 0,
overflow: "scroll",
direction: "rtl"
}).appendTo("body"),
e = t.children(),
n = e.offset().left > t.offset().left;
return t.remove(), n;
}
function b(t, e) {
return parseFloat(t.css(e)) || 0;
}
function w(t) {
return 1 === t.which && !t.ctrlKey;
}
function D(t) {
var e = t.originalEvent.touches;
return e && e.length ? e[0].pageX : t.pageX;
}
function E(t) {
var e = t.originalEvent.touches;
return e && e.length ? e[0].pageY : t.pageY;
}
function S(t) {
return /^touch/.test(t.type);
}
function C(t) {
t.addClass("fc-unselectable").on("selectstart", T);
}
function R(t) {
t.removeClass("fc-unselectable").off("selectstart", T);
}
function T(t) {
t.preventDefault();
}
function M(t, e) {
var n = {
left: Math.max(t.left, e.left),
right: Math.min(t.right, e.right),
top: Math.max(t.top, e.top),
bottom: Math.min(t.bottom, e.bottom)
};
return n.left < n.right && n.top < n.bottom && n;
}
function I(t, e) {
return {
left: Math.min(Math.max(t.left, e.left), e.right),
top: Math.min(Math.max(t.top, e.top), e.bottom)
};
}
function H(t) {
return {
left: (t.left + t.right) / 2,
top: (t.top + t.bottom) / 2
};
}
function P(t, e) {
return {
left: t.left - e.left,
top: t.top - e.top
};
}
function _(t) {
var e,
n,
r = [],
i = [];
for ("string" == typeof t ? i = t.split(/\s*,\s*/) : "function" == typeof t ? i = [t] : ht.isArray(t) && (i = t), e = 0; e < i.length; e++) n = i[e], "string" == typeof n ? r.push("-" === n.charAt(0) ? {
field: n.substring(1),
order: -1
} : {
field: n,
order: 1
}) : "function" == typeof n && r.push({
func: n
});
return r;
}
function x(t, e, n, r, i) {
var o, s;
for (o = 0; o < n.length; o++) if (s = O(t, e, n[o], r, i)) return s;
return 0;
}
function O(t, e, n, r, i) {
if (n.func) return n.func(t, e);
var o = t[n.field],
s = e[n.field];
return null == o && r && (o = r[n.field]), null == s && i && (s = i[n.field]), F(o, s) * (n.order || 1);
}
function F(t, e) {
return t || e ? null == e ? -1 : null == t ? 1 : "string" === ht.type(t) || "string" === ht.type(e) ? String(t).localeCompare(String(e)) : t - e : 0;
}
function z(t, e) {
return pt.duration({
days: t.clone().stripTime().diff(e.clone().stripTime(), "days"),
ms: t.time() - e.time()
});
}
function B(t, e) {
return pt.duration({
days: t.clone().stripTime().diff(e.clone().stripTime(), "days")
});
}
function A(t, e, n) {
return pt.duration(Math.round(t.diff(e, n, !0)), n);
}
function k(t, n) {
var r, i, o;
for (r = 0; r < e.unitsDesc.length && (i = e.unitsDesc[r], !((o = V(i, t, n)) >= 1 && ut(o))); r++);
return i;
}
function L(t, e) {
var n = k(t);
return "week" === n && "object" == _typeof(e) && e.days && (n = "day"), n;
}
function V(t, e, n) {
return null != n ? n.diff(e, t, !0) : pt.isDuration(e) ? e.as(t) : e.end.diff(e.start, t, !0);
}
function G(t, e, n) {
var r;
return U(n) ? (e - t) / n : (r = n.asMonths(), Math.abs(r) >= 1 && ut(r) ? e.diff(t, "months", !0) / r : e.diff(t, "days", !0) / n.asDays());
}
function N(t, e) {
var n, r;
return U(t) || U(e) ? t / e : (n = t.asMonths(), r = e.asMonths(), Math.abs(n) >= 1 && ut(n) && Math.abs(r) >= 1 && ut(r) ? n / r : t.asDays() / e.asDays());
}
function j(t, e) {
var n;
return U(t) ? pt.duration(t * e) : (n = t.asMonths(), Math.abs(n) >= 1 && ut(n) ? pt.duration({
months: n * e
}) : pt.duration({
days: t.asDays() * e
}));
}
function U(t) {
return Boolean(t.hours() || t.minutes() || t.seconds() || t.milliseconds());
}
function W(t) {
return "[object Date]" === Object.prototype.toString.call(t) || t instanceof Date;
}
function q(t) {
return "string" == typeof t && /^\d+\:\d+(?:\:\d+\.?(?:\d{3})?)?$/.test(t);
}
function Y() {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
var n = window.console;
if (n && n.log) return n.log.apply(n, t);
}
function Z() {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
var n = window.console;
return n && n.warn ? n.warn.apply(n, t) : Y.apply(null, t);
}
function X(t, e) {
var n,
r,
i,
o,
s,
a,
l = {};
if (e) for (n = 0; n < e.length; n++) {
for (r = e[n], i = [], o = t.length - 1; o >= 0; o--) if ("object" == _typeof(s = t[o][r])) i.unshift(s);else if (void 0 !== s) {
l[r] = s;
break;
}
i.length && (l[r] = X(i));
}
for (n = t.length - 1; n >= 0; n--) {
a = t[n];
for (r in a) r in l || (l[r] = a[r]);
}
return l;
}
function Q(t, e) {
for (var n in t) $(t, n) && (e[n] = t[n]);
}
function $(t, e) {
return gt.call(t, e);
}
function K(t, e, n) {
if (ht.isFunction(t) && (t = [t]), t) {
var r = void 0,
i = void 0;
for (r = 0; r < t.length; r++) i = t[r].apply(e, n) || i;
return i;
}
}
function J(t, e) {
for (var n = 0, r = 0; r < t.length;) e(t[r]) ? (t.splice(r, 1), n++) : r++;
return n;
}
function tt(t, e) {
for (var n = 0, r = 0; r < t.length;) t[r] === e ? (t.splice(r, 1), n++) : r++;
return n;
}
function et(t, e) {
var n,
r = t.length;
if (null == r || r !== e.length) return !1;
for (n = 0; n < r; n++) if (t[n] !== e[n]) return !1;
return !0;
}
function nt() {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
for (var n = 0; n < t.length; n++) if (void 0 !== t[n]) return t[n];
}
function rt(t) {
return (t + "").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/'/g, "'").replace(/"/g, """).replace(/\n/g, "<br>");
}
function it(t) {
return t.replace(/&.*?;/g, "");
}
function ot(t) {
var e = [];
return ht.each(t, function (t, n) {
null != n && e.push(t + ":" + n);
}), e.join(";");
}
function st(t) {
var e = [];
return ht.each(t, function (t, n) {
null != n && e.push(t + '="' + rt(n) + '"');
}), e.join(" ");
}
function at(t) {
return t.charAt(0).toUpperCase() + t.slice(1);
}
function lt(t, e) {
return t - e;
}
function ut(t) {
return t % 1 == 0;
}
function dt(t, e) {
var n = t[e];
return function () {
return n.apply(t, arguments);
};
}
function ct(t, e, n) {
void 0 === n && (n = !1);
var r,
i,
o,
s,
a,
_l = function l() {
var u = +new Date() - s;
u < e ? r = setTimeout(_l, e - u) : (r = null, n || (a = t.apply(o, i), o = i = null));
};
return function () {
o = this, i = arguments, s = +new Date();
var u = n && !r;
return r || (r = setTimeout(_l, e)), u && (a = t.apply(o, i), o = i = null), a;
};
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var pt = n(0),
ht = n(3);
e.compensateScroll = r, e.uncompensateScroll = i, e.disableCursor = o, e.enableCursor = s, e.distributeHeight = a, e.undistributeHeight = l, e.matchCellWidths = u, e.subtractInnerElHeight = d, e.getScrollParent = c, e.getOuterRect = p, e.getClientRect = h, e.getContentRect = f, e.getScrollbarWidths = g;
var ft = null;
e.isPrimaryMouseButton = w, e.getEvX = D, e.getEvY = E, e.getEvIsTouch = S, e.preventSelection = C, e.allowSelection = R, e.preventDefault = T, e.intersectRects = M, e.constrainPoint = I, e.getRectCenter = H, e.diffPoints = P, e.parseFieldSpecs = _, e.compareByFieldSpecs = x, e.compareByFieldSpec = O, e.flexibleCompare = F, e.dayIDs = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"], e.unitsDesc = ["year", "month", "week", "day", "hour", "minute", "second", "millisecond"], e.diffDayTime = z, e.diffDay = B, e.diffByUnit = A, e.computeGreatestUnit = k, e.computeDurationGreatestUnit = L, e.divideRangeByDuration = G, e.divideDurationByDuration = N, e.multiplyDuration = j, e.durationHasTime = U, e.isNativeDate = W, e.isTimeString = q, e.log = Y, e.warn = Z;
var gt = {}.hasOwnProperty;
e.mergeProps = X, e.copyOwnProps = Q, e.hasOwnProp = $, e.applyAll = K, e.removeMatching = J, e.removeExact = tt, e.isArraysEqual = et, e.firstDefined = nt, e.htmlEscape = rt, e.stripHtmlEntities = it, e.cssToStr = ot, e.attrsToStr = st, e.capitaliseFirstLetter = at, e.compareNumbers = lt, e.isInt = ut, e.proxy = dt, e.debounce = ct;
}, function (t, e, n) {
function r(t, e) {
return t.startMs - e.startMs;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var i = n(0),
o = n(11),
s = function () {
function t(t, e) {
this.isStart = !0, this.isEnd = !0, i.isMoment(t) && (t = t.clone().stripZone()), i.isMoment(e) && (e = e.clone().stripZone()), t && (this.startMs = t.valueOf()), e && (this.endMs = e.valueOf());
}
return t.invertRanges = function (e, n) {
var i,
o,
s = [],
a = n.startMs;
for (e.sort(r), i = 0; i < e.length; i++) o = e[i], o.startMs > a && s.push(new t(a, o.startMs)), o.endMs > a && (a = o.endMs);
return a < n.endMs && s.push(new t(a, n.endMs)), s;
}, t.prototype.intersect = function (e) {
var n = this.startMs,
r = this.endMs,
i = null;
return null != e.startMs && (n = null == n ? e.startMs : Math.max(n, e.startMs)), null != e.endMs && (r = null == r ? e.endMs : Math.min(r, e.endMs)), (null == n || null == r || n < r) && (i = new t(n, r), i.isStart = this.isStart && n === this.startMs, i.isEnd = this.isEnd && r === this.endMs), i;
}, t.prototype.intersectsWith = function (t) {
return (null == this.endMs || null == t.startMs || this.endMs > t.startMs) && (null == this.startMs || null == t.endMs || this.startMs < t.endMs);
}, t.prototype.containsRange = function (t) {
return (null == this.startMs || null != t.startMs && t.startMs >= this.startMs) && (null == this.endMs || null != t.endMs && t.endMs <= this.endMs);
}, t.prototype.containsDate = function (t) {
var e = t.valueOf();
return (null == this.startMs || e >= this.startMs) && (null == this.endMs || e < this.endMs);
}, t.prototype.constrainDate = function (t) {
var e = t.valueOf();
return null != this.startMs && e < this.startMs && (e = this.startMs), null != this.endMs && e >= this.endMs && (e = this.endMs - 1), e;
}, t.prototype.equals = function (t) {
return this.startMs === t.startMs && this.endMs === t.endMs;
}, t.prototype.clone = function () {
var e = new t(this.startMs, this.endMs);
return e.isStart = this.isStart, e.isEnd = this.isEnd, e;
}, t.prototype.getStart = function () {
return null != this.startMs ? o["default"].utc(this.startMs).stripZone() : null;
}, t.prototype.getEnd = function () {
return null != this.endMs ? o["default"].utc(this.endMs).stripZone() : null;
}, t.prototype.as = function (t) {
return i.utc(this.endMs).diff(i.utc(this.startMs), t, !0);
}, t;
}();
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(52),
s = n(35),
a = n(36),
l = function (t) {
function e(n) {
var r = t.call(this) || this;
return r.calendar = n, r.className = [], r.uid = String(e.uuid++), r;
}
return r.__extends(e, t), e.parse = function (t, e) {
var n = new this(e);
return !("object" != _typeof(t) || !n.applyProps(t)) && n;
}, e.normalizeId = function (t) {
return t ? String(t) : null;
}, e.prototype.fetch = function (t, e, n) {}, e.prototype.removeEventDefsById = function (t) {}, e.prototype.removeAllEventDefs = function () {}, e.prototype.getPrimitive = function (t) {}, e.prototype.parseEventDefs = function (t) {
var e,
n,
r = [];
for (e = 0; e < t.length; e++) (n = this.parseEventDef(t[e])) && r.push(n);
return r;
}, e.prototype.parseEventDef = function (t) {
var e = this.calendar.opt("eventDataTransform"),
n = this.eventDataTransform;
return e && (t = e(t, this.calendar)), n && (t = n(t, this.calendar)), a["default"].parse(t, this);
}, e.prototype.applyManualStandardProps = function (t) {
return null != t.id && (this.id = e.normalizeId(t.id)), i.isArray(t.className) ? this.className = t.className : "string" == typeof t.className && (this.className = t.className.split(/\s+/)), !0;
}, e.uuid = 0, e.defineStandardProps = o["default"].defineStandardProps, e.copyVerbatimStandardProps = o["default"].copyVerbatimStandardProps, e;
}(s["default"]);
e["default"] = l, o["default"].mixInto(l), l.defineStandardProps({
id: !1,
className: !1,
color: !0,
backgroundColor: !0,
borderColor: !0,
textColor: !0,
editable: !0,
startEditable: !0,
durationEditable: !0,
rendering: !0,
overlap: !0,
constraint: !0,
allDayDefault: !0,
eventDataTransform: !0
});
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(15),
s = 0,
a = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.listenTo = function (t, e, n) {
if ("object" == _typeof(e)) for (var r in e) e.hasOwnProperty(r) && this.listenTo(t, r, e[r]);else "string" == typeof e && t.on(e + "." + this.getListenerNamespace(), i.proxy(n, this));
}, e.prototype.stopListeningTo = function (t, e) {
t.off((e || "") + "." + this.getListenerNamespace());
}, e.prototype.getListenerNamespace = function () {
return null == this.listenerId && (this.listenerId = s++), "_listener" + this.listenerId;
}, e;
}(o["default"]);
e["default"] = a;
},, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(37),
o = n(53),
s = n(16),
a = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.buildInstances = function () {
return [this.buildInstance()];
}, e.prototype.buildInstance = function () {
return new o["default"](this, this.dateProfile);
}, e.prototype.isAllDay = function () {
return this.dateProfile.isAllDay();
}, e.prototype.clone = function () {
var e = t.prototype.clone.call(this);
return e.dateProfile = this.dateProfile, e;
}, e.prototype.rezone = function () {
var t = this.source.calendar,
e = this.dateProfile;
this.dateProfile = new s["default"](t.moment(e.start), e.end ? t.moment(e.end) : null, t);
}, e.prototype.applyManualStandardProps = function (e) {
var n = t.prototype.applyManualStandardProps.call(this, e),
r = s["default"].parse(e, this.source);
return !!r && (this.dateProfile = r, null != e.date && (this.miscProps.date = e.date), n);
}, e;
}(i["default"]);
e["default"] = a, a.defineStandardProps({
start: !1,
date: !1,
end: !1,
allDay: !1
});
},, function (t, e, n) {
function r(t, e) {
return c.format.call(t, e);
}
function i(t, e, n) {
void 0 === e && (e = !1), void 0 === n && (n = !1);
var r,
i,
d,
c,
p = t[0],
h = 1 === t.length && "string" == typeof p;
return o.isMoment(p) || a.isNativeDate(p) || void 0 === p ? c = o.apply(null, t) : (r = !1, i = !1, h ? l.test(p) ? (p += "-01", t = [p], r = !0, i = !0) : (d = u.exec(p)) && (r = !d[5], i = !0) : s.isArray(p) && (i = !0), c = e || r ? o.utc.apply(o, t) : o.apply(null, t), r ? (c._ambigTime = !0, c._ambigZone = !0) : n && (i ? c._ambigZone = !0 : h && c.utcOffset(p))), c._fullCalendar = !0, c;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(0),
s = n(3),
a = n(4),
l = /^\s*\d{4}-\d\d$/,
u = /^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?)?$/,
d = o.fn;
e.newMomentProto = d;
var c = s.extend({}, d);
e.oldMomentProto = c;
var p = o.momentProperties;
p.push("_fullCalendar"), p.push("_ambigTime"), p.push("_ambigZone"), e.oldMomentFormat = r;
var h = function h() {
return i(arguments);
};
e["default"] = h, h.utc = function () {
var t = i(arguments, !0);
return t.hasTime() && t.utc(), t;
}, h.parseZone = function () {
return i(arguments, !0, !0);
}, d.week = d.weeks = function (t) {
var e = this._locale._fullCalendar_weekCalc;
return null == t && "function" == typeof e ? e(this) : "ISO" === e ? c.isoWeek.apply(this, arguments) : c.week.apply(this, arguments);
}, d.time = function (t) {
if (!this._fullCalendar) return c.time.apply(this, arguments);
if (null == t) return o.duration({
hours: this.hours(),
minutes: this.minutes(),
seconds: this.seconds(),
milliseconds: this.milliseconds()
});
this._ambigTime = !1, o.isDuration(t) || o.isMoment(t) || (t = o.duration(t));
var e = 0;
return o.isDuration(t) && (e = 24 * Math.floor(t.asDays())), this.hours(e + t.hours()).minutes(t.minutes()).seconds(t.seconds()).milliseconds(t.milliseconds());
}, d.stripTime = function () {
return this._ambigTime || (this.utc(!0), this.set({
hours: 0,
minutes: 0,
seconds: 0,
ms: 0
}), this._ambigTime = !0, this._ambigZone = !0), this;
}, d.hasTime = function () {
return !this._ambigTime;
}, d.stripZone = function () {
var t;
return this._ambigZone || (t = this._ambigTime, this.utc(!0), this._ambigTime = t || !1, this._ambigZone = !0), this;
}, d.hasZone = function () {
return !this._ambigZone;
}, d.local = function (t) {
return c.local.call(this, this._ambigZone || t), this._ambigTime = !1, this._ambigZone = !1, this;
}, d.utc = function (t) {
return c.utc.call(this, t), this._ambigTime = !1, this._ambigZone = !1, this;
}, d.utcOffset = function (t) {
return null != t && (this._ambigTime = !1, this._ambigZone = !1), c.utcOffset.apply(this, arguments);
};
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var n = function () {
function t(t, e) {
this.isAllDay = !1, this.unzonedRange = t, this.isAllDay = e;
}
return t.prototype.toLegacy = function (t) {
return {
start: t.msToMoment(this.unzonedRange.startMs, this.isAllDay),
end: t.msToMoment(this.unzonedRange.endMs, this.isAllDay)
};
}, t;
}();
e["default"] = n;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(15),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.on = function (t, e) {
return i(this).on(t, this._prepareIntercept(e)), this;
}, e.prototype.one = function (t, e) {
return i(this).one(t, this._prepareIntercept(e)), this;
}, e.prototype._prepareIntercept = function (t) {
var e = function e(_e, n) {
return t.apply(n.context || this, n.args || []);
};
return t.guid || (t.guid = i.guid++), e.guid = t.guid, e;
}, e.prototype.off = function (t, e) {
return i(this).off(t, e), this;
}, e.prototype.trigger = function (t) {
for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
return i(this).triggerHandler(t, {
args: e
}), this;
}, e.prototype.triggerWith = function (t, e, n) {
return i(this).triggerHandler(t, {
context: e,
args: n
}), this;
}, e.prototype.hasHandlers = function (t) {
var e = i._data(this, "events");
return e && e[t] && e[t].length > 0;
}, e;
}(o["default"]);
e["default"] = s;
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var n = function () {
function t(t) {
this.view = t._getView(), this.component = t;
}
return t.prototype.opt = function (t) {
return this.view.opt(t);
}, t.prototype.end = function () {}, t;
}();
e["default"] = n;
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var n = function () {
function t() {}
return t.mixInto = function (t) {
var e = this;
Object.getOwnPropertyNames(this.prototype).forEach(function (n) {
t.prototype[n] || (t.prototype[n] = e.prototype[n]);
});
}, t.mixOver = function (t) {
var e = this;
Object.getOwnPropertyNames(this.prototype).forEach(function (n) {
t.prototype[n] = e.prototype[n];
});
}, t;
}();
e["default"] = n;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(5),
i = function () {
function t(t, e, n) {
this.start = t, this.end = e || null, this.unzonedRange = this.buildUnzonedRange(n);
}
return t.parse = function (e, n) {
var r = e.start || e.date,
i = e.end;
if (!r) return !1;
var o = n.calendar,
s = o.moment(r),
a = i ? o.moment(i) : null,
l = e.allDay,
u = o.opt("forceEventDuration");
return !!s.isValid() && (null == l && null == (l = n.allDayDefault) && (l = o.opt("allDayDefault")), !0 === l ? (s.stripTime(), a && a.stripTime()) : !1 === l && (s.hasTime() || s.time(0), a && !a.hasTime() && a.time(0)), !a || a.isValid() && a.isAfter(s) || (a = null), !a && u && (a = o.getDefaultEventEnd(!s.hasTime(), s)), new t(s, a, o));
}, t.isStandardProp = function (t) {
return "start" === t || "date" === t || "end" === t || "allDay" === t;
}, t.prototype.isAllDay = function () {
return !(this.start.hasTime() || this.end && this.end.hasTime());
}, t.prototype.buildUnzonedRange = function (t) {
var e = this.start.clone().stripZone().valueOf(),
n = this.getEnd(t).stripZone().valueOf();
return new r["default"](e, n);
}, t.prototype.getEnd = function (t) {
return this.end ? this.end.clone() : t.getDefaultEventEnd(this.isAllDay(), this.start);
}, t;
}();
e["default"] = i;
}, function (t, e, n) {
function r(t, e) {
return !t && !e || !(!t || !e) && t.component === e.component && i(t, e) && i(e, t);
}
function i(t, e) {
for (var n in t) if (!/^(component|left|right|top|bottom)$/.test(n) && t[n] !== e[n]) return !1;
return !0;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(2),
s = n(4),
a = n(59),
l = function (t) {
function e(e, n) {
var r = t.call(this, n) || this;
return r.component = e, r;
}
return o.__extends(e, t), e.prototype.handleInteractionStart = function (e) {
var n,
r,
i,
o = this.subjectEl;
this.component.hitsNeeded(), this.computeScrollBounds(), e ? (r = {
left: s.getEvX(e),
top: s.getEvY(e)
}, i = r, o && (n = s.getOuterRect(o), i = s.constrainPoint(i, n)), this.origHit = this.queryHit(i.left, i.top), o && this.options.subjectCenter && (this.origHit && (n = s.intersectRects(this.origHit, n) || n), i = s.getRectCenter(n)), this.coordAdjust = s.diffPoints(i, r)) : (this.origHit = null, this.coordAdjust = null), t.prototype.handleInteractionStart.call(this, e);
}, e.prototype.handleDragStart = function (e) {
var n;
t.prototype.handleDragStart.call(this, e), (n = this.queryHit(s.getEvX(e), s.getEvY(e))) && this.handleHitOver(n);
}, e.prototype.handleDrag = function (e, n, i) {
var o;
t.prototype.handleDrag.call(this, e, n, i), o = this.queryHit(s.getEvX(i), s.getEvY(i)), r(o, this.hit) || (this.hit && this.handleHitOut(), o && this.handleHitOver(o));
}, e.prototype.handleDragEnd = function (e) {
this.handleHitDone(), t.prototype.handleDragEnd.call(this, e);
}, e.prototype.handleHitOver = function (t) {
var e = r(t, this.origHit);
this.hit = t, this.trigger("hitOver", this.hit, e, this.origHit);
}, e.prototype.handleHitOut = function () {
this.hit && (this.trigger("hitOut", this.hit), this.handleHitDone(), this.hit = null);
}, e.prototype.handleHitDone = function () {
this.hit && this.trigger("hitDone", this.hit);
}, e.prototype.handleInteractionEnd = function (e, n) {
t.prototype.handleInteractionEnd.call(this, e, n), this.origHit = null, this.hit = null, this.component.hitsNotNeeded();
}, e.prototype.handleScrollEnd = function () {
t.prototype.handleScrollEnd.call(this), this.isDragging && (this.component.releaseHits(), this.component.prepareHits());
}, e.prototype.queryHit = function (t, e) {
return this.coordAdjust && (t += this.coordAdjust.left, e += this.coordAdjust.top), this.component.queryHit(t, e);
}, e;
}(a["default"]);
e["default"] = l;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
}), e.version = "3.10.2", e.internalApiVersion = 12;
var r = n(4);
e.applyAll = r.applyAll, e.debounce = r.debounce, e.isInt = r.isInt, e.htmlEscape = r.htmlEscape, e.cssToStr = r.cssToStr, e.proxy = r.proxy, e.capitaliseFirstLetter = r.capitaliseFirstLetter, e.getOuterRect = r.getOuterRect, e.getClientRect = r.getClientRect, e.getContentRect = r.getContentRect, e.getScrollbarWidths = r.getScrollbarWidths, e.preventDefault = r.preventDefault, e.parseFieldSpecs = r.parseFieldSpecs, e.compareByFieldSpecs = r.compareByFieldSpecs, e.compareByFieldSpec = r.compareByFieldSpec, e.flexibleCompare = r.flexibleCompare, e.computeGreatestUnit = r.computeGreatestUnit, e.divideRangeByDuration = r.divideRangeByDuration, e.divideDurationByDuration = r.divideDurationByDuration, e.multiplyDuration = r.multiplyDuration, e.durationHasTime = r.durationHasTime, e.log = r.log, e.warn = r.warn, e.removeExact = r.removeExact, e.intersectRects = r.intersectRects, e.allowSelection = r.allowSelection, e.attrsToStr = r.attrsToStr, e.compareNumbers = r.compareNumbers, e.compensateScroll = r.compensateScroll, e.computeDurationGreatestUnit = r.computeDurationGreatestUnit, e.constrainPoint = r.constrainPoint, e.copyOwnProps = r.copyOwnProps, e.diffByUnit = r.diffByUnit, e.diffDay = r.diffDay, e.diffDayTime = r.diffDayTime, e.diffPoints = r.diffPoints, e.disableCursor = r.disableCursor, e.distributeHeight = r.distributeHeight, e.enableCursor = r.enableCursor, e.firstDefined = r.firstDefined, e.getEvIsTouch = r.getEvIsTouch, e.getEvX = r.getEvX, e.getEvY = r.getEvY, e.getRectCenter = r.getRectCenter, e.getScrollParent = r.getScrollParent, e.hasOwnProp = r.hasOwnProp, e.isArraysEqual = r.isArraysEqual, e.isNativeDate = r.isNativeDate, e.isPrimaryMouseButton = r.isPrimaryMouseButton, e.isTimeString = r.isTimeString, e.matchCellWidths = r.matchCellWidths, e.mergeProps = r.mergeProps, e.preventSelection = r.preventSelection, e.removeMatching = r.removeMatching, e.stripHtmlEntities = r.stripHtmlEntities, e.subtractInnerElHeight = r.subtractInnerElHeight, e.uncompensateScroll = r.uncompensateScroll, e.undistributeHeight = r.undistributeHeight, e.dayIDs = r.dayIDs, e.unitsDesc = r.unitsDesc;
var i = n(49);
e.formatDate = i.formatDate, e.formatRange = i.formatRange, e.queryMostGranularFormatUnit = i.queryMostGranularFormatUnit;
var o = n(32);
e.datepickerLocale = o.datepickerLocale, e.locale = o.locale, e.getMomentLocaleData = o.getMomentLocaleData, e.populateInstanceComputableOptions = o.populateInstanceComputableOptions;
var s = n(19);
e.eventDefsToEventInstances = s.eventDefsToEventInstances, e.eventFootprintToComponentFootprint = s.eventFootprintToComponentFootprint, e.eventInstanceToEventRange = s.eventInstanceToEventRange, e.eventInstanceToUnzonedRange = s.eventInstanceToUnzonedRange, e.eventRangeToEventFootprint = s.eventRangeToEventFootprint;
var a = n(11);
e.moment = a["default"];
var l = n(13);
e.EmitterMixin = l["default"];
var u = n(7);
e.ListenerMixin = u["default"];
var d = n(51);
e.Model = d["default"];
var c = n(217);
e.Constraints = c["default"];
var p = n(55);
e.DateProfileGenerator = p["default"];
var h = n(5);
e.UnzonedRange = h["default"];
var f = n(12);
e.ComponentFootprint = f["default"];
var g = n(218);
e.BusinessHourGenerator = g["default"];
var v = n(219);
e.EventPeriod = v["default"];
var y = n(220);
e.EventManager = y["default"];
var m = n(37);
e.EventDef = m["default"];
var b = n(39);
e.EventDefMutation = b["default"];
var w = n(36);
e.EventDefParser = w["default"];
var D = n(53);
e.EventInstance = D["default"];
var E = n(50);
e.EventRange = E["default"];
var S = n(54);
e.RecurringEventDef = S["default"];
var C = n(9);
e.SingleEventDef = C["default"];
var R = n(40);
e.EventDefDateMutation = R["default"];
var T = n(16);
e.EventDateProfile = T["default"];
var M = n(38);
e.EventSourceParser = M["default"];
var I = n(6);
e.EventSource = I["default"];
var H = n(57);
e.defineThemeSystem = H.defineThemeSystem, e.getThemeSystemClass = H.getThemeSystemClass;
var P = n(20);
e.EventInstanceGroup = P["default"];
var _ = n(56);
e.ArrayEventSource = _["default"];
var x = n(223);
e.FuncEventSource = x["default"];
var O = n(224);
e.JsonFeedEventSource = O["default"];
var F = n(34);
e.EventFootprint = F["default"];
var z = n(35);
e.Class = z["default"];
var B = n(15);
e.Mixin = B["default"];
var A = n(58);
e.CoordCache = A["default"];
var k = n(225);
e.Iterator = k["default"];
var L = n(59);
e.DragListener = L["default"];
var V = n(17);
e.HitDragListener = V["default"];
var G = n(226);
e.MouseFollower = G["default"];
var N = n(52);
e.ParsableModelMixin = N["default"];
var j = n(227);
e.Popover = j["default"];
var U = n(21);
e.Promise = U["default"];
var W = n(228);
e.TaskQueue = W["default"];
var q = n(229);
e.RenderQueue = q["default"];
var Y = n(41);
e.Scroller = Y["default"];
var Z = n(22);
e.Theme = Z["default"];
var X = n(230);
e.Component = X["default"];
var Q = n(231);
e.DateComponent = Q["default"];
var $ = n(42);
e.InteractiveDateComponent = $["default"];
var K = n(232);
e.Calendar = K["default"];
var J = n(43);
e.View = J["default"];
var tt = n(24);
e.defineView = tt.defineView, e.getViewConfig = tt.getViewConfig;
var et = n(60);
e.DayTableMixin = et["default"];
var nt = n(61);
e.BusinessHourRenderer = nt["default"];
var rt = n(44);
e.EventRenderer = rt["default"];
var it = n(62);
e.FillRenderer = it["default"];
var ot = n(63);
e.HelperRenderer = ot["default"];
var st = n(233);
e.ExternalDropping = st["default"];
var at = n(234);
e.EventResizing = at["default"];
var lt = n(64);
e.EventPointing = lt["default"];
var ut = n(235);
e.EventDragging = ut["default"];
var dt = n(236);
e.DateSelecting = dt["default"];
var ct = n(237);
e.DateClicking = ct["default"];
var pt = n(14);
e.Interaction = pt["default"];
var ht = n(65);
e.StandardInteractionsMixin = ht["default"];
var ft = n(238);
e.AgendaView = ft["default"];
var gt = n(239);
e.TimeGrid = gt["default"];
var vt = n(240);
e.TimeGridEventRenderer = vt["default"];
var yt = n(242);
e.TimeGridFillRenderer = yt["default"];
var mt = n(241);
e.TimeGridHelperRenderer = mt["default"];
var bt = n(66);
e.DayGrid = bt["default"];
var wt = n(243);
e.DayGridEventRenderer = wt["default"];
var Dt = n(245);
e.DayGridFillRenderer = Dt["default"];
var Et = n(244);
e.DayGridHelperRenderer = Et["default"];
var St = n(67);
e.BasicView = St["default"];
var Ct = n(68);
e.BasicViewDateProfileGenerator = Ct["default"];
var Rt = n(246);
e.MonthView = Rt["default"];
var Tt = n(247);
e.MonthViewDateProfileGenerator = Tt["default"];
var Mt = n(248);
e.ListView = Mt["default"];
var It = n(250);
e.ListEventPointing = It["default"];
var Ht = n(249);
e.ListEventRenderer = Ht["default"];
}, function (t, e, n) {
function r(t, e) {
var n,
r = [];
for (n = 0; n < t.length; n++) r.push.apply(r, t[n].buildInstances(e));
return r;
}
function i(t) {
return new l["default"](t.dateProfile.unzonedRange, t.def, t);
}
function o(t) {
return new u["default"](new d["default"](t.unzonedRange, t.eventDef.isAllDay()), t.eventDef, t.eventInstance);
}
function s(t) {
return t.dateProfile.unzonedRange;
}
function a(t) {
return t.componentFootprint;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var l = n(50),
u = n(34),
d = n(12);
e.eventDefsToEventInstances = r, e.eventInstanceToEventRange = i, e.eventRangeToEventFootprint = o, e.eventInstanceToUnzonedRange = s, e.eventFootprintToComponentFootprint = a;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(5),
i = n(19),
o = n(50),
s = function () {
function t(t) {
this.eventInstances = t || [];
}
return t.prototype.getAllEventRanges = function (t) {
return t ? this.sliceNormalRenderRanges(t) : this.eventInstances.map(i.eventInstanceToEventRange);
}, t.prototype.sliceRenderRanges = function (t) {
return this.isInverse() ? this.sliceInverseRenderRanges(t) : this.sliceNormalRenderRanges(t);
}, t.prototype.sliceNormalRenderRanges = function (t) {
var e,
n,
r,
i = this.eventInstances,
s = [];
for (e = 0; e < i.length; e++) n = i[e], (r = n.dateProfile.unzonedRange.intersect(t)) && s.push(new o["default"](r, n.def, n));
return s;
}, t.prototype.sliceInverseRenderRanges = function (t) {
var e = this.eventInstances.map(i.eventInstanceToUnzonedRange),
n = this.getEventDef();
return e = r["default"].invertRanges(e, t), e.map(function (t) {
return new o["default"](t, n);
});
}, t.prototype.isInverse = function () {
return this.getEventDef().hasInverseRendering();
}, t.prototype.getEventDef = function () {
return this.explicitEventDef || this.eventInstances[0].def;
}, t;
}();
e["default"] = s;
}, function (t, e, n) {
function r(t, e) {
t.then = function (n) {
return "function" == typeof n ? s.resolve(n(e)) : t;
};
}
function i(t) {
t.then = function (e, n) {
return "function" == typeof n && n(), t;
};
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(3),
s = {
construct: function construct(t) {
var e = o.Deferred(),
n = e.promise();
return "function" == typeof t && t(function (t) {
e.resolve(t), r(n, t);
}, function () {
e.reject(), i(n);
}), n;
},
resolve: function resolve(t) {
var e = o.Deferred().resolve(t),
n = e.promise();
return r(n, t), n;
},
reject: function reject() {
var t = o.Deferred().reject(),
e = t.promise();
return i(e), e;
}
};
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = function () {
function t(t) {
this.optionsManager = t, this.processIconOverride();
}
return t.prototype.processIconOverride = function () {
this.iconOverrideOption && this.setIconOverride(this.optionsManager.get(this.iconOverrideOption));
}, t.prototype.setIconOverride = function (t) {
var e, n;
if (r.isPlainObject(t)) {
e = r.extend({}, this.iconClasses);
for (n in t) e[n] = this.applyIconOverridePrefix(t[n]);
this.iconClasses = e;
} else !1 === t && (this.iconClasses = {});
}, t.prototype.applyIconOverridePrefix = function (t) {
var e = this.iconOverridePrefix;
return e && 0 !== t.indexOf(e) && (t = e + t), t;
}, t.prototype.getClass = function (t) {
return this.classes[t] || "";
}, t.prototype.getIconClass = function (t) {
var e = this.iconClasses[t];
return e ? this.baseIconClass + " " + e : "";
}, t.prototype.getCustomButtonIconClass = function (t) {
var e;
return this.iconOverrideCustomButtonOption && (e = t[this.iconOverrideCustomButtonOption]) ? this.baseIconClass + " " + this.applyIconOverridePrefix(e) : "";
}, t;
}();
e["default"] = i, i.prototype.classes = {}, i.prototype.iconClasses = {}, i.prototype.baseIconClass = "", i.prototype.iconOverridePrefix = "";
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(18),
o = n(13),
s = n(7);
i.touchMouseIgnoreWait = 500;
var a = null,
l = 0,
u = function () {
function t() {
this.isTouching = !1, this.mouseIgnoreDepth = 0;
}
return t.get = function () {
return a || (a = new t(), a.bind()), a;
}, t.needed = function () {
t.get(), l++;
}, t.unneeded = function () {
--l || (a.unbind(), a = null);
}, t.prototype.bind = function () {
var t = this;
this.listenTo(r(document), {
touchstart: this.handleTouchStart,
touchcancel: this.handleTouchCancel,
touchend: this.handleTouchEnd,
mousedown: this.handleMouseDown,
mousemove: this.handleMouseMove,
mouseup: this.handleMouseUp,
click: this.handleClick,
selectstart: this.handleSelectStart,
contextmenu: this.handleContextMenu
}), window.addEventListener("touchmove", this.handleTouchMoveProxy = function (e) {
t.handleTouchMove(r.Event(e));
}, {
passive: !1
}), window.addEventListener("scroll", this.handleScrollProxy = function (e) {
t.handleScroll(r.Event(e));
}, !0);
}, t.prototype.unbind = function () {
this.stopListeningTo(r(document)), window.removeEventListener("touchmove", this.handleTouchMoveProxy, {
passive: !1
}), window.removeEventListener("scroll", this.handleScrollProxy, !0);
}, t.prototype.handleTouchStart = function (t) {
this.stopTouch(t, !0), this.isTouching = !0, this.trigger("touchstart", t);
}, t.prototype.handleTouchMove = function (t) {
this.isTouching && this.trigger("touchmove", t);
}, t.prototype.handleTouchCancel = function (t) {
this.isTouching && (this.trigger("touchcancel", t), this.stopTouch(t));
}, t.prototype.handleTouchEnd = function (t) {
this.stopTouch(t);
}, t.prototype.handleMouseDown = function (t) {
this.shouldIgnoreMouse() || this.trigger("mousedown", t);
}, t.prototype.handleMouseMove = function (t) {
this.shouldIgnoreMouse() || this.trigger("mousemove", t);
}, t.prototype.handleMouseUp = function (t) {
this.shouldIgnoreMouse() || this.trigger("mouseup", t);
}, t.prototype.handleClick = function (t) {
this.shouldIgnoreMouse() || this.trigger("click", t);
}, t.prototype.handleSelectStart = function (t) {
this.trigger("selectstart", t);
}, t.prototype.handleContextMenu = function (t) {
this.trigger("contextmenu", t);
}, t.prototype.handleScroll = function (t) {
this.trigger("scroll", t);
}, t.prototype.stopTouch = function (t, e) {
void 0 === e && (e = !1), this.isTouching && (this.isTouching = !1, this.trigger("touchend", t), e || this.startTouchMouseIgnore());
}, t.prototype.startTouchMouseIgnore = function () {
var t = this,
e = i.touchMouseIgnoreWait;
e && (this.mouseIgnoreDepth++, setTimeout(function () {
t.mouseIgnoreDepth--;
}, e));
}, t.prototype.shouldIgnoreMouse = function () {
return this.isTouching || Boolean(this.mouseIgnoreDepth);
}, t;
}();
e["default"] = u, s["default"].mixInto(u), o["default"].mixInto(u);
}, function (t, e, n) {
function r(t, n) {
e.viewHash[t] = n;
}
function i(t) {
return e.viewHash[t];
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(18);
e.viewHash = {}, o.views = e.viewHash, e.defineView = r, e.getViewConfig = i;
},,,,,,,, function (t, e, n) {
function r(t) {
a.each(f, function (e, n) {
null == t[e] && (t[e] = n(t));
});
}
function i(t, n, r) {
var i = e.localeOptionHash[t] || (e.localeOptionHash[t] = {});
i.isRTL = r.isRTL, i.weekNumberTitle = r.weekHeader, a.each(p, function (t, e) {
i[t] = e(r);
});
var o = a.datepicker;
o && (o.regional[n] = o.regional[t] = r, o.regional.en = o.regional[""], o.setDefaults(r));
}
function o(t, n) {
var r, i;
r = e.localeOptionHash[t] || (e.localeOptionHash[t] = {}), n && (r = e.localeOptionHash[t] = d.mergeOptions([r, n])), i = s(t), a.each(h, function (t, e) {
null == r[t] && (r[t] = e(i, r));
}), d.globalDefaults.locale = t;
}
function s(t) {
return l.localeData(t) || l.localeData("en");
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var a = n(3),
l = n(0),
u = n(18),
d = n(33),
c = n(4);
e.localeOptionHash = {}, u.locales = e.localeOptionHash;
var p = {
buttonText: function buttonText(t) {
return {
prev: c.stripHtmlEntities(t.prevText),
next: c.stripHtmlEntities(t.nextText),
today: c.stripHtmlEntities(t.currentText)
};
},
monthYearFormat: function monthYearFormat(t) {
return t.showMonthAfterYear ? "YYYY[" + t.yearSuffix + "] MMMM" : "MMMM YYYY[" + t.yearSuffix + "]";
}
},
h = {
dayOfMonthFormat: function dayOfMonthFormat(t, e) {
var n = t.longDateFormat("l");
return n = n.replace(/^Y+[^\w\s]*|[^\w\s]*Y+$/g, ""), e.isRTL ? n += " ddd" : n = "ddd " + n, n;
},
mediumTimeFormat: function mediumTimeFormat(t) {
return t.longDateFormat("LT").replace(/\s*a$/i, "a");
},
smallTimeFormat: function smallTimeFormat(t) {
return t.longDateFormat("LT").replace(":mm", "(:mm)").replace(/(\Wmm)$/, "($1)").replace(/\s*a$/i, "a");
},
extraSmallTimeFormat: function extraSmallTimeFormat(t) {
return t.longDateFormat("LT").replace(":mm", "(:mm)").replace(/(\Wmm)$/, "($1)").replace(/\s*a$/i, "t");
},
hourFormat: function hourFormat(t) {
return t.longDateFormat("LT").replace(":mm", "").replace(/(\Wmm)$/, "").replace(/\s*a$/i, "a");
},
noMeridiemTimeFormat: function noMeridiemTimeFormat(t) {
return t.longDateFormat("LT").replace(/\s*a$/i, "");
}
},
f = {
smallDayDateFormat: function smallDayDateFormat(t) {
return t.isRTL ? "D dd" : "dd D";
},
weekFormat: function weekFormat(t) {
return t.isRTL ? "w[ " + t.weekNumberTitle + "]" : "[" + t.weekNumberTitle + " ]w";
},
smallWeekFormat: function smallWeekFormat(t) {
return t.isRTL ? "w[" + t.weekNumberTitle + "]" : "[" + t.weekNumberTitle + "]w";
}
};
e.populateInstanceComputableOptions = r, e.datepickerLocale = i, e.locale = o, e.getMomentLocaleData = s, o("en", d.englishDefaults);
}, function (t, e, n) {
function r(t) {
return i.mergeProps(t, o);
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var i = n(4);
e.globalDefaults = {
titleRangeSeparator: " – ",
monthYearFormat: "MMMM YYYY",
defaultTimedEventDuration: "02:00:00",
defaultAllDayEventDuration: {
days: 1
},
forceEventDuration: !1,
nextDayThreshold: "09:00:00",
columnHeader: !0,
defaultView: "month",
aspectRatio: 1.35,
header: {
left: "title",
center: "",
right: "today prev,next"
},
weekends: !0,
weekNumbers: !1,
weekNumberTitle: "W",
weekNumberCalculation: "local",
scrollTime: "06:00:00",
minTime: "00:00:00",
maxTime: "24:00:00",
showNonCurrentDates: !0,
lazyFetching: !0,
startParam: "start",
endParam: "end",
timezoneParam: "timezone",
timezone: !1,
locale: null,
isRTL: !1,
buttonText: {
prev: "prev",
next: "next",
prevYear: "prev year",
nextYear: "next year",
year: "year",
today: "today",
month: "month",
week: "week",
day: "day"
},
allDayText: "all-day",
agendaEventMinHeight: 0,
theme: !1,
dragOpacity: .75,
dragRevertDuration: 500,
dragScroll: !0,
unselectAuto: !0,
dropAccept: "*",
eventOrder: "title",
eventLimit: !1,
eventLimitText: "more",
eventLimitClick: "popover",
dayPopoverFormat: "LL",
handleWindowResize: !0,
windowResizeDelay: 100,
longPressDelay: 1e3
}, e.englishDefaults = {
dayPopoverFormat: "dddd, MMMM D"
}, e.rtlDefaults = {
header: {
left: "next,prev today",
center: "",
right: "title"
},
buttonIcons: {
prev: "right-single-arrow",
next: "left-single-arrow",
prevYear: "right-double-arrow",
nextYear: "left-double-arrow"
},
themeButtonIcons: {
prev: "circle-triangle-e",
next: "circle-triangle-w",
nextYear: "seek-prev",
prevYear: "seek-next"
}
};
var o = ["header", "footer", "buttonText", "buttonIcons", "themeButtonIcons"];
e.mergeOptions = r;
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var n = function () {
function t(t, e, n) {
this.componentFootprint = t, this.eventDef = e, n && (this.eventInstance = n);
}
return t.prototype.getEventLegacy = function () {
return (this.eventInstance || this.eventDef).toLegacy();
}, t;
}();
e["default"] = n;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(4),
o = function () {
function t() {}
return t.extend = function (t) {
var e = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e;
}(this);
return i.copyOwnProps(t, e.prototype), e;
}, t.mixin = function (t) {
i.copyOwnProps(t, this.prototype);
}, t;
}();
e["default"] = o;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(0),
i = n(4),
o = n(9),
s = n(54);
e["default"] = {
parse: function parse(t, e) {
return i.isTimeString(t.start) || r.isDuration(t.start) || i.isTimeString(t.end) || r.isDuration(t.end) ? s["default"].parse(t, e) : o["default"].parse(t, e);
}
};
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(52),
o = function () {
function t(t) {
this.source = t, this.className = [], this.miscProps = {};
}
return t.parse = function (t, e) {
var n = new this(e);
return !!n.applyProps(t) && n;
}, t.normalizeId = function (t) {
return String(t);
}, t.generateId = function () {
return "_fc" + t.uuid++;
}, t.prototype.clone = function () {
var e = new this.constructor(this.source);
return e.id = this.id, e.rawId = this.rawId, e.uid = this.uid, t.copyVerbatimStandardProps(this, e), e.className = this.className.slice(), e.miscProps = r.extend({}, this.miscProps), e;
}, t.prototype.hasInverseRendering = function () {
return "inverse-background" === this.getRendering();
}, t.prototype.hasBgRendering = function () {
var t = this.getRendering();
return "inverse-background" === t || "background" === t;
}, t.prototype.getRendering = function () {
return null != this.rendering ? this.rendering : this.source.rendering;
}, t.prototype.getConstraint = function () {
return null != this.constraint ? this.constraint : null != this.source.constraint ? this.source.constraint : this.source.calendar.opt("eventConstraint");
}, t.prototype.getOverlap = function () {
return null != this.overlap ? this.overlap : null != this.source.overlap ? this.source.overlap : this.source.calendar.opt("eventOverlap");
}, t.prototype.isStartExplicitlyEditable = function () {
return null != this.startEditable ? this.startEditable : this.source.startEditable;
}, t.prototype.isDurationExplicitlyEditable = function () {
return null != this.durationEditable ? this.durationEditable : this.source.durationEditable;
}, t.prototype.isExplicitlyEditable = function () {
return null != this.editable ? this.editable : this.source.editable;
}, t.prototype.toLegacy = function () {
var e = r.extend({}, this.miscProps);
return e._id = this.uid, e.source = this.source, e.className = this.className.slice(), e.allDay = this.isAllDay(), null != this.rawId && (e.id = this.rawId), t.copyVerbatimStandardProps(this, e), e;
}, t.prototype.applyManualStandardProps = function (e) {
return null != e.id ? this.id = t.normalizeId(this.rawId = e.id) : this.id = t.generateId(), null != e._id ? this.uid = String(e._id) : this.uid = t.generateId(), r.isArray(e.className) && (this.className = e.className), "string" == typeof e.className && (this.className = e.className.split(/\s+/)), !0;
}, t.prototype.applyMiscProps = function (t) {
r.extend(this.miscProps, t);
}, t.uuid = 0, t.defineStandardProps = i["default"].defineStandardProps, t.copyVerbatimStandardProps = i["default"].copyVerbatimStandardProps, t;
}();
e["default"] = o, i["default"].mixInto(o), o.defineStandardProps({
_id: !1,
id: !1,
className: !1,
source: !1,
title: !0,
url: !0,
rendering: !0,
constraint: !0,
overlap: !0,
editable: !0,
startEditable: !0,
durationEditable: !0,
color: !0,
backgroundColor: !0,
borderColor: !0,
textColor: !0
});
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
}), e["default"] = {
sourceClasses: [],
registerClass: function registerClass(t) {
this.sourceClasses.unshift(t);
},
parse: function parse(t, e) {
var n,
r,
i = this.sourceClasses;
for (n = 0; n < i.length; n++) if (r = i[n].parse(t, e)) return r;
}
};
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(4),
i = n(16),
o = n(37),
s = n(40),
a = n(9),
l = function () {
function t() {}
return t.createFromRawProps = function (e, n, a) {
var l,
u,
d,
c,
p = e.def,
h = {},
f = {},
g = {},
v = {},
y = null,
m = null;
for (l in n) i["default"].isStandardProp(l) ? h[l] = n[l] : p.isStandardProp(l) ? f[l] = n[l] : p.miscProps[l] !== n[l] && (g[l] = n[l]);
return u = i["default"].parse(h, p.source), u && (d = s["default"].createFromDiff(e.dateProfile, u, a)), f.id !== p.id && (y = f.id), r.isArraysEqual(f.className, p.className) || (m = f.className), o["default"].copyVerbatimStandardProps(f, v), c = new t(), c.eventDefId = y, c.className = m, c.verbatimStandardProps = v, c.miscProps = g, d && (c.dateMutation = d), c;
}, t.prototype.mutateSingle = function (t) {
var e;
return this.dateMutation && (e = t.dateProfile, t.dateProfile = this.dateMutation.buildNewDateProfile(e, t.source.calendar)), null != this.eventDefId && (t.id = o["default"].normalizeId(t.rawId = this.eventDefId)), this.className && (t.className = this.className), this.verbatimStandardProps && a["default"].copyVerbatimStandardProps(this.verbatimStandardProps, t), this.miscProps && t.applyMiscProps(this.miscProps), e ? function () {
t.dateProfile = e;
} : function () {};
}, t.prototype.setDateMutation = function (t) {
t && !t.isEmpty() ? this.dateMutation = t : this.dateMutation = null;
}, t.prototype.isEmpty = function () {
return !this.dateMutation;
}, t;
}();
e["default"] = l;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(4),
i = n(16),
o = function () {
function t() {
this.clearEnd = !1, this.forceTimed = !1, this.forceAllDay = !1;
}
return t.createFromDiff = function (e, n, i) {
function o(t, e) {
return i ? r.diffByUnit(t, e, i) : n.isAllDay() ? r.diffDay(t, e) : r.diffDayTime(t, e);
}
var s,
a,
l,
u,
d = e.end && !n.end,
c = e.isAllDay() && !n.isAllDay(),
p = !e.isAllDay() && n.isAllDay();
return s = o(n.start, e.start), n.end && (a = o(n.unzonedRange.getEnd(), e.unzonedRange.getEnd()), l = a.subtract(s)), u = new t(), u.clearEnd = d, u.forceTimed = c, u.forceAllDay = p, u.setDateDelta(s), u.setEndDelta(l), u;
}, t.prototype.buildNewDateProfile = function (t, e) {
var n = t.start.clone(),
r = null,
o = !1;
return t.end && !this.clearEnd ? r = t.end.clone() : this.endDelta && !r && (r = e.getDefaultEventEnd(t.isAllDay(), n)), this.forceTimed ? (o = !0, n.hasTime() || n.time(0), r && !r.hasTime() && r.time(0)) : this.forceAllDay && (n.hasTime() && n.stripTime(), r && r.hasTime() && r.stripTime()), this.dateDelta && (o = !0, n.add(this.dateDelta), r && r.add(this.dateDelta)), this.endDelta && (o = !0, r.add(this.endDelta)), this.startDelta && (o = !0, n.add(this.startDelta)), o && (n = e.applyTimezone(n), r && (r = e.applyTimezone(r))), !r && e.opt("forceEventDuration") && (r = e.getDefaultEventEnd(t.isAllDay(), n)), new i["default"](n, r, e);
}, t.prototype.setDateDelta = function (t) {
t && t.valueOf() ? this.dateDelta = t : this.dateDelta = null;
}, t.prototype.setStartDelta = function (t) {
t && t.valueOf() ? this.startDelta = t : this.startDelta = null;
}, t.prototype.setEndDelta = function (t) {
t && t.valueOf() ? this.endDelta = t : this.endDelta = null;
}, t.prototype.isEmpty = function () {
return !(this.clearEnd || this.forceTimed || this.forceAllDay || this.dateDelta || this.startDelta || this.endDelta);
}, t;
}();
e["default"] = o;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(4),
s = n(35),
a = function (t) {
function e(e) {
var n = t.call(this) || this;
return e = e || {}, n.overflowX = e.overflowX || e.overflow || "auto", n.overflowY = e.overflowY || e.overflow || "auto", n;
}
return r.__extends(e, t), e.prototype.render = function () {
this.el = this.renderEl(), this.applyOverflow();
}, e.prototype.renderEl = function () {
return this.scrollEl = i('<div class="fc-scroller"></div>');
}, e.prototype.clear = function () {
this.setHeight("auto"), this.applyOverflow();
}, e.prototype.destroy = function () {
this.el.remove();
}, e.prototype.applyOverflow = function () {
this.scrollEl.css({
"overflow-x": this.overflowX,
"overflow-y": this.overflowY
});
}, e.prototype.lockOverflow = function (t) {
var e = this.overflowX,
n = this.overflowY;
t = t || this.getScrollbarWidths(), "auto" === e && (e = t.top || t.bottom || this.scrollEl[0].scrollWidth - 1 > this.scrollEl[0].clientWidth ? "scroll" : "hidden"), "auto" === n && (n = t.left || t.right || this.scrollEl[0].scrollHeight - 1 > this.scrollEl[0].clientHeight ? "scroll" : "hidden"), this.scrollEl.css({
"overflow-x": e,
"overflow-y": n
});
}, e.prototype.setHeight = function (t) {
this.scrollEl.height(t);
}, e.prototype.getScrollTop = function () {
return this.scrollEl.scrollTop();
}, e.prototype.setScrollTop = function (t) {
this.scrollEl.scrollTop(t);
}, e.prototype.getClientWidth = function () {
return this.scrollEl[0].clientWidth;
}, e.prototype.getClientHeight = function () {
return this.scrollEl[0].clientHeight;
}, e.prototype.getScrollbarWidths = function () {
return o.getScrollbarWidths(this.scrollEl);
}, e;
}(s["default"]);
e["default"] = a;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(4),
s = n(231),
a = n(23),
l = function (t) {
function e(e, n) {
var r = t.call(this, e, n) || this;
return r.segSelector = ".fc-event-container > *", r.dateSelectingClass && (r.dateClicking = new r.dateClickingClass(r)), r.dateSelectingClass && (r.dateSelecting = new r.dateSelectingClass(r)), r.eventPointingClass && (r.eventPointing = new r.eventPointingClass(r)), r.eventDraggingClass && r.eventPointing && (r.eventDragging = new r.eventDraggingClass(r, r.eventPointing)), r.eventResizingClass && r.eventPointing && (r.eventResizing = new r.eventResizingClass(r, r.eventPointing)), r.externalDroppingClass && (r.externalDropping = new r.externalDroppingClass(r)), r;
}
return r.__extends(e, t), e.prototype.setElement = function (e) {
t.prototype.setElement.call(this, e), this.dateClicking && this.dateClicking.bindToEl(e), this.dateSelecting && this.dateSelecting.bindToEl(e), this.bindAllSegHandlersToEl(e);
}, e.prototype.removeElement = function () {
this.endInteractions(), t.prototype.removeElement.call(this);
}, e.prototype.executeEventUnrender = function () {
this.endInteractions(), t.prototype.executeEventUnrender.call(this);
}, e.prototype.bindGlobalHandlers = function () {
t.prototype.bindGlobalHandlers.call(this), this.externalDropping && this.externalDropping.bindToDocument();
}, e.prototype.unbindGlobalHandlers = function () {
t.prototype.unbindGlobalHandlers.call(this), this.externalDropping && this.externalDropping.unbindFromDocument();
}, e.prototype.bindDateHandlerToEl = function (t, e, n) {
var r = this;
this.el.on(e, function (t) {
if (!i(t.target).is(r.segSelector + ":not(.fc-helper)," + r.segSelector + ":not(.fc-helper) *,.fc-more,a[data-goto]")) return n.call(r, t);
});
}, e.prototype.bindAllSegHandlersToEl = function (t) {
[this.eventPointing, this.eventDragging, this.eventResizing].forEach(function (e) {
e && e.bindToEl(t);
});
}, e.prototype.bindSegHandlerToEl = function (t, e, n) {
var r = this;
t.on(e, this.segSelector, function (t) {
var e = i(t.currentTarget);
if (!e.is(".fc-helper")) {
var o = e.data("fc-seg");
if (o && !r.shouldIgnoreEventPointing()) return n.call(r, o, t);
}
});
}, e.prototype.shouldIgnoreMouse = function () {
return a["default"].get().shouldIgnoreMouse();
}, e.prototype.shouldIgnoreTouch = function () {
var t = this._getView();
return t.isSelected || t.selectedEvent;
}, e.prototype.shouldIgnoreEventPointing = function () {
return this.eventDragging && this.eventDragging.isDragging || this.eventResizing && this.eventResizing.isResizing;
}, e.prototype.canStartSelection = function (t, e) {
return o.getEvIsTouch(e) && !this.canStartResize(t, e) && (this.isEventDefDraggable(t.footprint.eventDef) || this.isEventDefResizable(t.footprint.eventDef));
}, e.prototype.canStartDrag = function (t, e) {
return !this.canStartResize(t, e) && this.isEventDefDraggable(t.footprint.eventDef);
}, e.prototype.canStartResize = function (t, e) {
var n = this._getView(),
r = t.footprint.eventDef;
return (!o.getEvIsTouch(e) || n.isEventDefSelected(r)) && this.isEventDefResizable(r) && i(e.target).is(".fc-resizer");
}, e.prototype.endInteractions = function () {
[this.dateClicking, this.dateSelecting, this.eventPointing, this.eventDragging, this.eventResizing].forEach(function (t) {
t && t.end();
});
}, e.prototype.isEventDefDraggable = function (t) {
return this.isEventDefStartEditable(t);
}, e.prototype.isEventDefStartEditable = function (t) {
var e = t.isStartExplicitlyEditable();
return null == e && null == (e = this.opt("eventStartEditable")) && (e = this.isEventDefGenerallyEditable(t)), e;
}, e.prototype.isEventDefGenerallyEditable = function (t) {
var e = t.isExplicitlyEditable();
return null == e && (e = this.opt("editable")), e;
}, e.prototype.isEventDefResizableFromStart = function (t) {
return this.opt("eventResizableFromStart") && this.isEventDefResizable(t);
}, e.prototype.isEventDefResizableFromEnd = function (t) {
return this.isEventDefResizable(t);
}, e.prototype.isEventDefResizable = function (t) {
var e = t.isDurationExplicitlyEditable();
return null == e && null == (e = this.opt("eventDurationEditable")) && (e = this.isEventDefGenerallyEditable(t)), e;
}, e.prototype.diffDates = function (t, e) {
return this.largeUnit ? o.diffByUnit(t, e, this.largeUnit) : o.diffDayTime(t, e);
}, e.prototype.isEventInstanceGroupAllowed = function (t) {
var e,
n = this._getView(),
r = this.dateProfile,
i = this.eventRangesToEventFootprints(t.getAllEventRanges());
for (e = 0; e < i.length; e++) if (!r.validUnzonedRange.containsRange(i[e].componentFootprint.unzonedRange)) return !1;
return n.calendar.constraints.isEventInstanceGroupAllowed(t);
}, e.prototype.isExternalInstanceGroupAllowed = function (t) {
var e,
n = this._getView(),
r = this.dateProfile,
i = this.eventRangesToEventFootprints(t.getAllEventRanges());
for (e = 0; e < i.length; e++) if (!r.validUnzonedRange.containsRange(i[e].componentFootprint.unzonedRange)) return !1;
for (e = 0; e < i.length; e++) if (!n.calendar.constraints.isSelectionFootprintAllowed(i[e].componentFootprint)) return !1;
return !0;
}, e;
}(s["default"]);
e["default"] = l;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(0),
s = n(4),
a = n(229),
l = n(55),
u = n(42),
d = n(23),
c = n(5),
p = function (t) {
function e(e, n) {
var r = t.call(this, null, n.options) || this;
return r.batchRenderDepth = 0, r.isSelected = !1, r.calendar = e, r.viewSpec = n, r.type = n.type, r.name = r.type, r.initRenderQueue(), r.initHiddenDays(), r.dateProfileGenerator = new r.dateProfileGeneratorClass(r), r.bindBaseRenderHandlers(), r.eventOrderSpecs = s.parseFieldSpecs(r.opt("eventOrder")), r.initialize && r.initialize(), r;
}
return r.__extends(e, t), e.prototype._getView = function () {
return this;
}, e.prototype.opt = function (t) {
return this.options[t];
}, e.prototype.initRenderQueue = function () {
this.renderQueue = new a["default"]({
event: this.opt("eventRenderWait")
}), this.renderQueue.on("start", this.onRenderQueueStart.bind(this)), this.renderQueue.on("stop", this.onRenderQueueStop.bind(this)), this.on("before:change", this.startBatchRender), this.on("change", this.stopBatchRender);
}, e.prototype.onRenderQueueStart = function () {
this.calendar.freezeContentHeight(), this.addScroll(this.queryScroll());
}, e.prototype.onRenderQueueStop = function () {
this.calendar.updateViewSize() && this.popScroll(), this.calendar.thawContentHeight();
}, e.prototype.startBatchRender = function () {
this.batchRenderDepth++ || this.renderQueue.pause();
}, e.prototype.stopBatchRender = function () {
--this.batchRenderDepth || this.renderQueue.resume();
}, e.prototype.requestRender = function (t, e, n) {
this.renderQueue.queue(t, e, n);
}, e.prototype.whenSizeUpdated = function (t) {
this.renderQueue.isRunning ? this.renderQueue.one("stop", t.bind(this)) : t.call(this);
}, e.prototype.computeTitle = function (t) {
var e;
return e = /^(year|month)$/.test(t.currentRangeUnit) ? t.currentUnzonedRange : t.activeUnzonedRange, this.formatRange({
start: this.calendar.msToMoment(e.startMs, t.isRangeAllDay),
end: this.calendar.msToMoment(e.endMs, t.isRangeAllDay)
}, t.isRangeAllDay, this.opt("titleFormat") || this.computeTitleFormat(t), this.opt("titleRangeSeparator"));
}, e.prototype.computeTitleFormat = function (t) {
var e = t.currentRangeUnit;
return "year" === e ? "YYYY" : "month" === e ? this.opt("monthYearFormat") : t.currentUnzonedRange.as("days") > 1 ? "ll" : "LL";
}, e.prototype.setDate = function (t) {
var e = this.get("dateProfile"),
n = this.dateProfileGenerator.build(t, void 0, !0);
e && e.activeUnzonedRange.equals(n.activeUnzonedRange) || this.set("dateProfile", n);
}, e.prototype.unsetDate = function () {
this.unset("dateProfile");
}, e.prototype.fetchInitialEvents = function (t) {
var e = this.calendar,
n = t.isRangeAllDay && !this.usesMinMaxTime;
return e.requestEvents(e.msToMoment(t.activeUnzonedRange.startMs, n), e.msToMoment(t.activeUnzonedRange.endMs, n));
}, e.prototype.bindEventChanges = function () {
this.listenTo(this.calendar, "eventsReset", this.resetEvents);
}, e.prototype.unbindEventChanges = function () {
this.stopListeningTo(this.calendar, "eventsReset");
}, e.prototype.setEvents = function (t) {
this.set("currentEvents", t), this.set("hasEvents", !0);
}, e.prototype.unsetEvents = function () {
this.unset("currentEvents"), this.unset("hasEvents");
}, e.prototype.resetEvents = function (t) {
this.startBatchRender(), this.unsetEvents(), this.setEvents(t), this.stopBatchRender();
}, e.prototype.requestDateRender = function (t) {
var e = this;
this.requestRender(function () {
e.executeDateRender(t);
}, "date", "init");
}, e.prototype.requestDateUnrender = function () {
var t = this;
this.requestRender(function () {
t.executeDateUnrender();
}, "date", "destroy");
}, e.prototype.executeDateRender = function (e) {
t.prototype.executeDateRender.call(this, e), this.render && this.render(), this.trigger("datesRendered"), this.addScroll({
isDateInit: !0
}), this.startNowIndicator();
}, e.prototype.executeDateUnrender = function () {
this.unselect(), this.stopNowIndicator(), this.trigger("before:datesUnrendered"), this.destroy && this.destroy(), t.prototype.executeDateUnrender.call(this);
}, e.prototype.bindBaseRenderHandlers = function () {
var t = this;
this.on("datesRendered", function () {
t.whenSizeUpdated(t.triggerViewRender);
}), this.on("before:datesUnrendered", function () {
t.triggerViewDestroy();
});
}, e.prototype.triggerViewRender = function () {
this.publiclyTrigger("viewRender", {
context: this,
args: [this, this.el]
});
}, e.prototype.triggerViewDestroy = function () {
this.publiclyTrigger("viewDestroy", {
context: this,
args: [this, this.el]
});
}, e.prototype.requestEventsRender = function (t) {
var e = this;
this.requestRender(function () {
e.executeEventRender(t), e.whenSizeUpdated(e.triggerAfterEventsRendered);
}, "event", "init");
}, e.prototype.requestEventsUnrender = function () {
var t = this;
this.requestRender(function () {
t.triggerBeforeEventsDestroyed(), t.executeEventUnrender();
}, "event", "destroy");
}, e.prototype.requestBusinessHoursRender = function (t) {
var e = this;
this.requestRender(function () {
e.renderBusinessHours(t);
}, "businessHours", "init");
}, e.prototype.requestBusinessHoursUnrender = function () {
var t = this;
this.requestRender(function () {
t.unrenderBusinessHours();
}, "businessHours", "destroy");
}, e.prototype.bindGlobalHandlers = function () {
t.prototype.bindGlobalHandlers.call(this), this.listenTo(d["default"].get(), {
touchstart: this.processUnselect,
mousedown: this.handleDocumentMousedown
});
}, e.prototype.unbindGlobalHandlers = function () {
t.prototype.unbindGlobalHandlers.call(this), this.stopListeningTo(d["default"].get());
}, e.prototype.startNowIndicator = function () {
var t,
e,
n,
r = this;
this.opt("nowIndicator") && (t = this.getNowIndicatorUnit()) && (e = s.proxy(this, "updateNowIndicator"), this.initialNowDate = this.calendar.getNow(), this.initialNowQueriedMs = new Date().valueOf(), n = this.initialNowDate.clone().startOf(t).add(1, t).valueOf() - this.initialNowDate.valueOf(), this.nowIndicatorTimeoutID = setTimeout(function () {
r.nowIndicatorTimeoutID = null, e(), n = +o.duration(1, t), n = Math.max(100, n), r.nowIndicatorIntervalID = setInterval(e, n);
}, n));
}, e.prototype.updateNowIndicator = function () {
this.isDatesRendered && this.initialNowDate && (this.unrenderNowIndicator(), this.renderNowIndicator(this.initialNowDate.clone().add(new Date().valueOf() - this.initialNowQueriedMs)), this.isNowIndicatorRendered = !0);
}, e.prototype.stopNowIndicator = function () {
this.isNowIndicatorRendered && (this.nowIndicatorTimeoutID && (clearTimeout(this.nowIndicatorTimeoutID), this.nowIndicatorTimeoutID = null), this.nowIndicatorIntervalID && (clearInterval(this.nowIndicatorIntervalID), this.nowIndicatorIntervalID = null), this.unrenderNowIndicator(), this.isNowIndicatorRendered = !1);
}, e.prototype.updateSize = function (e, n, r) {
this.setHeight ? this.setHeight(e, n) : t.prototype.updateSize.call(this, e, n, r), this.updateNowIndicator();
}, e.prototype.addScroll = function (t) {
var e = this.queuedScroll || (this.queuedScroll = {});
i.extend(e, t);
}, e.prototype.popScroll = function () {
this.applyQueuedScroll(), this.queuedScroll = null;
}, e.prototype.applyQueuedScroll = function () {
this.queuedScroll && this.applyScroll(this.queuedScroll);
}, e.prototype.queryScroll = function () {
var t = {};
return this.isDatesRendered && i.extend(t, this.queryDateScroll()), t;
}, e.prototype.applyScroll = function (t) {
t.isDateInit && this.isDatesRendered && i.extend(t, this.computeInitialDateScroll()), this.isDatesRendered && this.applyDateScroll(t);
}, e.prototype.computeInitialDateScroll = function () {
return {};
}, e.prototype.queryDateScroll = function () {
return {};
}, e.prototype.applyDateScroll = function (t) {}, e.prototype.reportEventDrop = function (t, e, n, r) {
var i = this.calendar.eventManager,
s = i.mutateEventsWithId(t.def.id, e),
a = e.dateMutation;
a && (t.dateProfile = a.buildNewDateProfile(t.dateProfile, this.calendar)), this.triggerEventDrop(t, a && a.dateDelta || o.duration(), s, n, r);
}, e.prototype.triggerEventDrop = function (t, e, n, r, i) {
this.publiclyTrigger("eventDrop", {
context: r[0],
args: [t.toLegacy(), e, n, i, {}, this]
});
}, e.prototype.reportExternalDrop = function (t, e, n, r, i, o) {
e && this.calendar.eventManager.addEventDef(t, n), this.triggerExternalDrop(t, e, r, i, o);
}, e.prototype.triggerExternalDrop = function (t, e, n, r, i) {
this.publiclyTrigger("drop", {
context: n[0],
args: [t.dateProfile.start.clone(), r, i, this]
}), e && this.publiclyTrigger("eventReceive", {
context: this,
args: [t.buildInstance().toLegacy(), this]
});
}, e.prototype.reportEventResize = function (t, e, n, r) {
var i = this.calendar.eventManager,
o = i.mutateEventsWithId(t.def.id, e);
t.dateProfile = e.dateMutation.buildNewDateProfile(t.dateProfile, this.calendar);
var s = e.dateMutation.endDelta || e.dateMutation.startDelta;
this.triggerEventResize(t, s, o, n, r);
}, e.prototype.triggerEventResize = function (t, e, n, r, i) {
this.publiclyTrigger("eventResize", {
context: r[0],
args: [t.toLegacy(), e, n, i, {}, this]
});
}, e.prototype.select = function (t, e) {
this.unselect(e), this.renderSelectionFootprint(t), this.reportSelection(t, e);
}, e.prototype.renderSelectionFootprint = function (e) {
this.renderSelection ? this.renderSelection(e.toLegacy(this.calendar)) : t.prototype.renderSelectionFootprint.call(this, e);
}, e.prototype.reportSelection = function (t, e) {
this.isSelected = !0, this.triggerSelect(t, e);
}, e.prototype.triggerSelect = function (t, e) {
var n = this.calendar.footprintToDateProfile(t);
this.publiclyTrigger("select", {
context: this,
args: [n.start, n.end, e, this]
});
}, e.prototype.unselect = function (t) {
this.isSelected && (this.isSelected = !1, this.destroySelection && this.destroySelection(), this.unrenderSelection(), this.publiclyTrigger("unselect", {
context: this,
args: [t, this]
}));
}, e.prototype.selectEventInstance = function (t) {
this.selectedEventInstance && this.selectedEventInstance === t || (this.unselectEventInstance(), this.getEventSegs().forEach(function (e) {
e.footprint.eventInstance === t && e.el && e.el.addClass("fc-selected");
}), this.selectedEventInstance = t);
}, e.prototype.unselectEventInstance = function () {
this.selectedEventInstance && (this.getEventSegs().forEach(function (t) {
t.el && t.el.removeClass("fc-selected");
}), this.selectedEventInstance = null);
}, e.prototype.isEventDefSelected = function (t) {
return this.selectedEventInstance && this.selectedEventInstance.def.id === t.id;
}, e.prototype.handleDocumentMousedown = function (t) {
s.isPrimaryMouseButton(t) && this.processUnselect(t);
}, e.prototype.processUnselect = function (t) {
this.processRangeUnselect(t), this.processEventUnselect(t);
}, e.prototype.processRangeUnselect = function (t) {
var e;
this.isSelected && this.opt("unselectAuto") && ((e = this.opt("unselectCancel")) && i(t.target).closest(e).length || this.unselect(t));
}, e.prototype.processEventUnselect = function (t) {
this.selectedEventInstance && (i(t.target).closest(".fc-selected").length || this.unselectEventInstance());
}, e.prototype.triggerBaseRendered = function () {
this.publiclyTrigger("viewRender", {
context: this,
args: [this, this.el]
});
}, e.prototype.triggerBaseUnrendered = function () {
this.publiclyTrigger("viewDestroy", {
context: this,
args: [this, this.el]
});
}, e.prototype.triggerDayClick = function (t, e, n) {
var r = this.calendar.footprintToDateProfile(t);
this.publiclyTrigger("dayClick", {
context: e,
args: [r.start, n, this]
});
}, e.prototype.isDateInOtherMonth = function (t, e) {
return !1;
}, e.prototype.getUnzonedRangeOption = function (t) {
var e = this.opt(t);
if ("function" == typeof e && (e = e.apply(null, Array.prototype.slice.call(arguments, 1))), e) return this.calendar.parseUnzonedRange(e);
}, e.prototype.initHiddenDays = function () {
var t,
e = this.opt("hiddenDays") || [],
n = [],
r = 0;
for (!1 === this.opt("weekends") && e.push(0, 6), t = 0; t < 7; t++) (n[t] = -1 !== i.inArray(t, e)) || r++;
if (!r) throw new Error("invalid hiddenDays");
this.isHiddenDayHash = n;
}, e.prototype.trimHiddenDays = function (t) {
var e = t.getStart(),
n = t.getEnd();
return e && (e = this.skipHiddenDays(e)), n && (n = this.skipHiddenDays(n, -1, !0)), null === e || null === n || e < n ? new c["default"](e, n) : null;
}, e.prototype.isHiddenDay = function (t) {
return o.isMoment(t) && (t = t.day()), this.isHiddenDayHash[t];
}, e.prototype.skipHiddenDays = function (t, e, n) {
void 0 === e && (e = 1), void 0 === n && (n = !1);
for (var r = t.clone(); this.isHiddenDayHash[(r.day() + (n ? e : 0) + 7) % 7];) r.add(e, "days");
return r;
}, e;
}(u["default"]);
e["default"] = p, p.prototype.usesMinMaxTime = !1, p.prototype.dateProfileGeneratorClass = l["default"], p.watch("displayingDates", ["isInDom", "dateProfile"], function (t) {
this.requestDateRender(t.dateProfile);
}, function () {
this.requestDateUnrender();
}), p.watch("displayingBusinessHours", ["displayingDates", "businessHourGenerator"], function (t) {
this.requestBusinessHoursRender(t.businessHourGenerator);
}, function () {
this.requestBusinessHoursUnrender();
}), p.watch("initialEvents", ["dateProfile"], function (t) {
return this.fetchInitialEvents(t.dateProfile);
}), p.watch("bindingEvents", ["initialEvents"], function (t) {
this.setEvents(t.initialEvents), this.bindEventChanges();
}, function () {
this.unbindEventChanges(), this.unsetEvents();
}), p.watch("displayingEvents", ["displayingDates", "hasEvents"], function () {
this.requestEventsRender(this.get("currentEvents"));
}, function () {
this.requestEventsUnrender();
}), p.watch("title", ["dateProfile"], function (t) {
return this.title = this.computeTitle(t.dateProfile);
}), p.watch("legacyDateProps", ["dateProfile"], function (t) {
var e = this.calendar,
n = t.dateProfile;
this.start = e.msToMoment(n.activeUnzonedRange.startMs, n.isRangeAllDay), this.end = e.msToMoment(n.activeUnzonedRange.endMs, n.isRangeAllDay), this.intervalStart = e.msToMoment(n.currentUnzonedRange.startMs, n.isRangeAllDay), this.intervalEnd = e.msToMoment(n.currentUnzonedRange.endMs, n.isRangeAllDay);
});
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(4),
o = function () {
function t(t, e) {
this.view = t._getView(), this.component = t, this.fillRenderer = e;
}
return t.prototype.opt = function (t) {
return this.view.opt(t);
}, t.prototype.rangeUpdated = function () {
var t, e;
this.eventTimeFormat = this.opt("eventTimeFormat") || this.opt("timeFormat") || this.computeEventTimeFormat(), t = this.opt("displayEventTime"), null == t && (t = this.computeDisplayEventTime()), e = this.opt("displayEventEnd"), null == e && (e = this.computeDisplayEventEnd()), this.displayEventTime = t, this.displayEventEnd = e;
}, t.prototype.render = function (t) {
var e,
n,
r,
i = this.component._getDateProfile(),
o = [],
s = [];
for (e in t) n = t[e], r = n.sliceRenderRanges(i.activeUnzonedRange), n.getEventDef().hasBgRendering() ? o.push.apply(o, r) : s.push.apply(s, r);
this.renderBgRanges(o), this.renderFgRanges(s);
}, t.prototype.unrender = function () {
this.unrenderBgRanges(), this.unrenderFgRanges();
}, t.prototype.renderFgRanges = function (t) {
var e = this.component.eventRangesToEventFootprints(t),
n = this.component.eventFootprintsToSegs(e);
n = this.renderFgSegEls(n), !1 !== this.renderFgSegs(n) && (this.fgSegs = n);
}, t.prototype.unrenderFgRanges = function () {
this.unrenderFgSegs(this.fgSegs || []), this.fgSegs = null;
}, t.prototype.renderBgRanges = function (t) {
var e = this.component.eventRangesToEventFootprints(t),
n = this.component.eventFootprintsToSegs(e);
!1 !== this.renderBgSegs(n) && (this.bgSegs = n);
}, t.prototype.unrenderBgRanges = function () {
this.unrenderBgSegs(), this.bgSegs = null;
}, t.prototype.getSegs = function () {
return (this.bgSegs || []).concat(this.fgSegs || []);
}, t.prototype.renderFgSegs = function (t) {
return !1;
}, t.prototype.unrenderFgSegs = function (t) {}, t.prototype.renderBgSegs = function (t) {
var e = this;
if (!this.fillRenderer) return !1;
this.fillRenderer.renderSegs("bgEvent", t, {
getClasses: function getClasses(t) {
return e.getBgClasses(t.footprint.eventDef);
},
getCss: function getCss(t) {
return {
"background-color": e.getBgColor(t.footprint.eventDef)
};
},
filterEl: function filterEl(t, n) {
return e.filterEventRenderEl(t.footprint, n);
}
});
}, t.prototype.unrenderBgSegs = function () {
this.fillRenderer && this.fillRenderer.unrender("bgEvent");
}, t.prototype.renderFgSegEls = function (t, e) {
var n = this;
void 0 === e && (e = !1);
var i,
o = this.view.hasPublicHandlers("eventRender"),
s = "",
a = [];
if (t.length) {
for (i = 0; i < t.length; i++) this.beforeFgSegHtml(t[i]), s += this.fgSegHtml(t[i], e);
r(s).each(function (e, i) {
var s = t[e],
l = r(i);
o && (l = n.filterEventRenderEl(s.footprint, l)), l && (l.data("fc-seg", s), s.el = l, a.push(s));
});
}
return a;
}, t.prototype.beforeFgSegHtml = function (t) {}, t.prototype.fgSegHtml = function (t, e) {}, t.prototype.getSegClasses = function (t, e, n) {
var r = ["fc-event", t.isStart ? "fc-start" : "fc-not-start", t.isEnd ? "fc-end" : "fc-not-end"].concat(this.getClasses(t.footprint.eventDef));
return e && r.push("fc-draggable"), n && r.push("fc-resizable"), this.view.isEventDefSelected(t.footprint.eventDef) && r.push("fc-selected"), r;
}, t.prototype.filterEventRenderEl = function (t, e) {
var n = t.getEventLegacy(),
i = this.view.publiclyTrigger("eventRender", {
context: n,
args: [n, e, this.view]
});
return !1 === i ? e = null : i && !0 !== i && (e = r(i)), e;
}, t.prototype.getTimeText = function (t, e, n) {
return this._getTimeText(t.eventInstance.dateProfile.start, t.eventInstance.dateProfile.end, t.componentFootprint.isAllDay, e, n);
}, t.prototype._getTimeText = function (t, e, n, r, i) {
return null == r && (r = this.eventTimeFormat), null == i && (i = this.displayEventEnd), this.displayEventTime && !n ? i && e ? this.view.formatRange({
start: t,
end: e
}, !1, r) : t.format(r) : "";
}, t.prototype.computeEventTimeFormat = function () {
return this.opt("smallTimeFormat");
}, t.prototype.computeDisplayEventTime = function () {
return !0;
}, t.prototype.computeDisplayEventEnd = function () {
return !0;
}, t.prototype.getBgClasses = function (t) {
var e = this.getClasses(t);
return e.push("fc-bgevent"), e;
}, t.prototype.getClasses = function (t) {
var e,
n = this.getStylingObjs(t),
r = [];
for (e = 0; e < n.length; e++) r.push.apply(r, n[e].eventClassName || n[e].className || []);
return r;
}, t.prototype.getSkinCss = function (t) {
return {
"background-color": this.getBgColor(t),
"border-color": this.getBorderColor(t),
color: this.getTextColor(t)
};
}, t.prototype.getBgColor = function (t) {
var e,
n,
r = this.getStylingObjs(t);
for (e = 0; e < r.length && !n; e++) n = r[e].eventBackgroundColor || r[e].eventColor || r[e].backgroundColor || r[e].color;
return n || (n = this.opt("eventBackgroundColor") || this.opt("eventColor")), n;
}, t.prototype.getBorderColor = function (t) {
var e,
n,
r = this.getStylingObjs(t);
for (e = 0; e < r.length && !n; e++) n = r[e].eventBorderColor || r[e].eventColor || r[e].borderColor || r[e].color;
return n || (n = this.opt("eventBorderColor") || this.opt("eventColor")), n;
}, t.prototype.getTextColor = function (t) {
var e,
n,
r = this.getStylingObjs(t);
for (e = 0; e < r.length && !n; e++) n = r[e].eventTextColor || r[e].textColor;
return n || (n = this.opt("eventTextColor")), n;
}, t.prototype.getStylingObjs = function (t) {
var e = this.getFallbackStylingObjs(t);
return e.unshift(t), e;
}, t.prototype.getFallbackStylingObjs = function (t) {
return [t.source];
}, t.prototype.sortEventSegs = function (t) {
t.sort(i.proxy(this, "compareEventSegs"));
}, t.prototype.compareEventSegs = function (t, e) {
var n = t.footprint,
r = e.footprint,
o = n.componentFootprint,
s = r.componentFootprint,
a = o.unzonedRange,
l = s.unzonedRange;
return a.startMs - l.startMs || l.endMs - l.startMs - (a.endMs - a.startMs) || s.isAllDay - o.isAllDay || i.compareByFieldSpecs(n.eventDef, r.eventDef, this.view.eventOrderSpecs, n.eventDef.miscProps, r.eventDef.miscProps);
}, t;
}();
e["default"] = o;
},,,,, function (t, e, n) {
function r(t) {
return "en" !== t.locale() ? t.clone().locale("en") : t;
}
function i(t, e) {
return h(a(e).fakeFormatString, t);
}
function o(t, e, n, r, i) {
var o;
return t = y["default"].parseZone(t), e = y["default"].parseZone(e), o = t.localeData(), n = o.longDateFormat(n) || n, s(a(n), t, e, r || " - ", i);
}
function s(t, e, n, r, i) {
var o,
s,
a,
l = t.sameUnits,
u = e.clone().stripZone(),
d = n.clone().stripZone(),
c = f(t.fakeFormatString, e),
p = f(t.fakeFormatString, n),
h = "",
v = "",
y = "",
m = "",
b = "";
for (o = 0; o < l.length && (!l[o] || u.isSame(d, l[o])); o++) h += c[o];
for (s = l.length - 1; s > o && (!l[s] || u.isSame(d, l[s])) && (s - 1 !== o || "." !== c[s]); s--) v = c[s] + v;
for (a = o; a <= s; a++) y += c[a], m += p[a];
return (y || m) && (b = i ? m + r + y : y + r + m), g(h + b + v);
}
function a(t) {
return C[t] || (C[t] = l(t));
}
function l(t) {
var e = u(t);
return {
fakeFormatString: c(e),
sameUnits: p(e)
};
}
function u(t) {
for (var e, n = [], r = /\[([^\]]*)\]|\(([^\)]*)\)|(LTS|LT|(\w)\4*o?)|([^\w\[\(]+)/g; e = r.exec(t);) e[1] ? n.push.apply(n, d(e[1])) : e[2] ? n.push({
maybe: u(e[2])
}) : e[3] ? n.push({
token: e[3]
}) : e[5] && n.push.apply(n, d(e[5]));
return n;
}
function d(t) {
return ". " === t ? [".", " "] : [t];
}
function c(t) {
var e,
n,
r = [];
for (e = 0; e < t.length; e++) n = t[e], "string" == typeof n ? r.push("[" + n + "]") : n.token ? n.token in E ? r.push(b + "[" + n.token + "]") : r.push(n.token) : n.maybe && r.push(w + c(n.maybe) + w);
return r.join(m);
}
function p(t) {
var e,
n,
r,
i = [];
for (e = 0; e < t.length; e++) n = t[e], n.token ? (r = S[n.token.charAt(0)], i.push(r ? r.unit : "second")) : n.maybe ? i.push.apply(i, p(n.maybe)) : i.push(null);
return i;
}
function h(t, e) {
return g(f(t, e).join(""));
}
function f(t, e) {
var n,
r,
i = [],
o = y.oldMomentFormat(e, t),
s = o.split(m);
for (n = 0; n < s.length; n++) r = s[n], r.charAt(0) === b ? i.push(E[r.substring(1)](e)) : i.push(r);
return i;
}
function g(t) {
return t.replace(D, function (t, e) {
return e.match(/[1-9]/) ? e : "";
});
}
function v(t) {
var e,
n,
r,
i,
o = u(t);
for (e = 0; e < o.length; e++) n = o[e], n.token && (r = S[n.token.charAt(0)]) && (!i || r.value > i.value) && (i = r);
return i ? i.unit : null;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var y = n(11);
y.newMomentProto.format = function () {
return this._fullCalendar && arguments[0] ? i(this, arguments[0]) : this._ambigTime ? y.oldMomentFormat(r(this), "YYYY-MM-DD") : this._ambigZone ? y.oldMomentFormat(r(this), "YYYY-MM-DD[T]HH:mm:ss") : this._fullCalendar ? y.oldMomentFormat(r(this)) : y.oldMomentProto.format.apply(this, arguments);
}, y.newMomentProto.toISOString = function () {
return this._ambigTime ? y.oldMomentFormat(r(this), "YYYY-MM-DD") : this._ambigZone ? y.oldMomentFormat(r(this), "YYYY-MM-DD[T]HH:mm:ss") : this._fullCalendar ? y.oldMomentProto.toISOString.apply(r(this), arguments) : y.oldMomentProto.toISOString.apply(this, arguments);
};
var m = "\v",
b = "",
w = "",
D = new RegExp(w + "([^" + w + "]*)" + w, "g"),
E = {
t: function t(_t) {
return y.oldMomentFormat(_t, "a").charAt(0);
},
T: function T(t) {
return y.oldMomentFormat(t, "A").charAt(0);
}
},
S = {
Y: {
value: 1,
unit: "year"
},
M: {
value: 2,
unit: "month"
},
W: {
value: 3,
unit: "week"
},
w: {
value: 3,
unit: "week"
},
D: {
value: 4,
unit: "day"
},
d: {
value: 4,
unit: "day"
}
};
e.formatDate = i, e.formatRange = o;
var C = {};
e.queryMostGranularFormatUnit = v;
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var n = function () {
function t(t, e, n) {
this.unzonedRange = t, this.eventDef = e, n && (this.eventInstance = n);
}
return t;
}();
e["default"] = n;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(35),
o = n(13),
s = n(7),
a = function (t) {
function e() {
var e = t.call(this) || this;
return e._watchers = {}, e._props = {}, e.applyGlobalWatchers(), e.constructed(), e;
}
return r.__extends(e, t), e.watch = function (t) {
for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
this.prototype.hasOwnProperty("_globalWatchArgs") || (this.prototype._globalWatchArgs = Object.create(this.prototype._globalWatchArgs)), this.prototype._globalWatchArgs[t] = e;
}, e.prototype.constructed = function () {}, e.prototype.applyGlobalWatchers = function () {
var t,
e = this._globalWatchArgs;
for (t in e) this.watch.apply(this, [t].concat(e[t]));
}, e.prototype.has = function (t) {
return t in this._props;
}, e.prototype.get = function (t) {
return void 0 === t ? this._props : this._props[t];
}, e.prototype.set = function (t, e) {
var n;
"string" == typeof t ? (n = {}, n[t] = void 0 === e ? null : e) : n = t, this.setProps(n);
}, e.prototype.reset = function (t) {
var e,
n = this._props,
r = {};
for (e in n) r[e] = void 0;
for (e in t) r[e] = t[e];
this.setProps(r);
}, e.prototype.unset = function (t) {
var e,
n,
r = {};
for (e = "string" == typeof t ? [t] : t, n = 0; n < e.length; n++) r[e[n]] = void 0;
this.setProps(r);
}, e.prototype.setProps = function (t) {
var e,
n,
r = {},
i = 0;
for (e in t) "object" != _typeof(n = t[e]) && n === this._props[e] || (r[e] = n, i++);
if (i) {
this.trigger("before:batchChange", r);
for (e in r) n = r[e], this.trigger("before:change", e, n), this.trigger("before:change:" + e, n);
for (e in r) n = r[e], void 0 === n ? delete this._props[e] : this._props[e] = n, this.trigger("change:" + e, n), this.trigger("change", e, n);
this.trigger("batchChange", r);
}
}, e.prototype.watch = function (t, e, n, r) {
var i = this;
this.unwatch(t), this._watchers[t] = this._watchDeps(e, function (e) {
var r = n.call(i, e);
r && r.then ? (i.unset(t), r.then(function (e) {
i.set(t, e);
})) : i.set(t, r);
}, function (e) {
i.unset(t), r && r.call(i, e);
});
}, e.prototype.unwatch = function (t) {
var e = this._watchers[t];
e && (delete this._watchers[t], e.teardown());
}, e.prototype._watchDeps = function (t, e, n) {
var r = this,
i = 0,
o = t.length,
s = 0,
a = {},
l = [],
u = !1,
d = function d(t, e, r) {
1 === ++i && s === o && (u = !0, n(a), u = !1);
},
c = function c(t, n, r) {
void 0 === n ? (r || void 0 === a[t] || s--, delete a[t]) : (r || void 0 !== a[t] || s++, a[t] = n), --i || s === o && (u || e(a));
},
p = function p(t, e) {
r.on(t, e), l.push([t, e]);
};
return t.forEach(function (t) {
var e = !1;
"?" === t.charAt(0) && (t = t.substring(1), e = !0), p("before:change:" + t, function (t) {
d();
}), p("change:" + t, function (n) {
c(t, n, e);
});
}), t.forEach(function (t) {
var e = !1;
"?" === t.charAt(0) && (t = t.substring(1), e = !0), r.has(t) ? (a[t] = r.get(t), s++) : e && s++;
}), s === o && e(a), {
teardown: function teardown() {
for (var t = 0; t < l.length; t++) r.off(l[t][0], l[t][1]);
l = null, s === o && n();
},
flash: function flash() {
s === o && (n(), e(a));
}
};
}, e.prototype.flash = function (t) {
var e = this._watchers[t];
e && e.flash();
}, e;
}(i["default"]);
e["default"] = a, a.prototype._globalWatchArgs = {}, o["default"].mixInto(a), s["default"].mixInto(a);
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(4),
o = n(15),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.defineStandardProps = function (t) {
var e = this.prototype;
e.hasOwnProperty("standardPropMap") || (e.standardPropMap = Object.create(e.standardPropMap)), i.copyOwnProps(t, e.standardPropMap);
}, e.copyVerbatimStandardProps = function (t, e) {
var n,
r = this.prototype.standardPropMap;
for (n in r) null != t[n] && !0 === r[n] && (e[n] = t[n]);
}, e.prototype.applyProps = function (t) {
var e,
n = this.standardPropMap,
r = {},
i = {};
for (e in t) !0 === n[e] ? this[e] = t[e] : !1 === n[e] ? r[e] = t[e] : i[e] = t[e];
return this.applyMiscProps(i), this.applyManualStandardProps(r);
}, e.prototype.applyManualStandardProps = function (t) {
return !0;
}, e.prototype.applyMiscProps = function (t) {}, e.prototype.isStandardProp = function (t) {
return t in this.standardPropMap;
}, e;
}(o["default"]);
e["default"] = s, s.prototype.standardPropMap = {};
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var n = function () {
function t(t, e) {
this.def = t, this.dateProfile = e;
}
return t.prototype.toLegacy = function () {
var t = this.dateProfile,
e = this.def.toLegacy();
return e.start = t.start.clone(), e.end = t.end ? t.end.clone() : null, e;
}, t;
}();
e["default"] = n;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(0),
s = n(37),
a = n(53),
l = n(16),
u = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.isAllDay = function () {
return !this.startTime && !this.endTime;
}, e.prototype.buildInstances = function (t) {
for (var e, n, r, i = this.source.calendar, o = t.getStart(), s = t.getEnd(), u = []; o.isBefore(s);) this.dowHash && !this.dowHash[o.day()] || (e = i.applyTimezone(o), n = e.clone(), r = null, this.startTime ? n.time(this.startTime) : n.stripTime(), this.endTime && (r = e.clone().time(this.endTime)), u.push(new a["default"](this, new l["default"](n, r, i)))), o.add(1, "days");
return u;
}, e.prototype.setDow = function (t) {
this.dowHash || (this.dowHash = {});
for (var e = 0; e < t.length; e++) this.dowHash[t[e]] = !0;
}, e.prototype.clone = function () {
var e = t.prototype.clone.call(this);
return e.startTime && (e.startTime = o.duration(this.startTime)), e.endTime && (e.endTime = o.duration(this.endTime)), this.dowHash && (e.dowHash = i.extend({}, this.dowHash)), e;
}, e;
}(s["default"]);
e["default"] = u, u.prototype.applyProps = function (t) {
var e = s["default"].prototype.applyProps.call(this, t);
return t.start && (this.startTime = o.duration(t.start)), t.end && (this.endTime = o.duration(t.end)), t.dow && this.setDow(t.dow), e;
}, u.defineStandardProps({
start: !1,
end: !1,
dow: !1
});
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(0),
i = n(4),
o = n(5),
s = function () {
function t(t) {
this._view = t;
}
return t.prototype.opt = function (t) {
return this._view.opt(t);
}, t.prototype.trimHiddenDays = function (t) {
return this._view.trimHiddenDays(t);
}, t.prototype.msToUtcMoment = function (t, e) {
return this._view.calendar.msToUtcMoment(t, e);
}, t.prototype.buildPrev = function (t) {
var e = t.date.clone().startOf(t.currentRangeUnit).subtract(t.dateIncrement);
return this.build(e, -1);
}, t.prototype.buildNext = function (t) {
var e = t.date.clone().startOf(t.currentRangeUnit).add(t.dateIncrement);
return this.build(e, 1);
}, t.prototype.build = function (t, e, n) {
void 0 === n && (n = !1);
var i,
o,
s,
a,
l,
u,
d = !t.hasTime(),
c = null,
p = null;
return i = this.buildValidRange(), i = this.trimHiddenDays(i), n && (t = this.msToUtcMoment(i.constrainDate(t), d)), o = this.buildCurrentRangeInfo(t, e), s = /^(year|month|week|day)$/.test(o.unit), a = this.buildRenderRange(this.trimHiddenDays(o.unzonedRange), o.unit, s), a = this.trimHiddenDays(a), l = a.clone(), this.opt("showNonCurrentDates") || (l = l.intersect(o.unzonedRange)), c = r.duration(this.opt("minTime")), p = r.duration(this.opt("maxTime")), l = this.adjustActiveRange(l, c, p), l = l.intersect(i), l && (t = this.msToUtcMoment(l.constrainDate(t), d)), u = o.unzonedRange.intersectsWith(i), {
validUnzonedRange: i,
currentUnzonedRange: o.unzonedRange,
currentRangeUnit: o.unit,
isRangeAllDay: s,
activeUnzonedRange: l,
renderUnzonedRange: a,
minTime: c,
maxTime: p,
isValid: u,
date: t,
dateIncrement: this.buildDateIncrement(o.duration)
};
}, t.prototype.buildValidRange = function () {
return this._view.getUnzonedRangeOption("validRange", this._view.calendar.getNow()) || new o["default"]();
}, t.prototype.buildCurrentRangeInfo = function (t, e) {
var n,
r = this._view.viewSpec,
o = null,
s = null,
a = null;
return r.duration ? (o = r.duration, s = r.durationUnit, a = this.buildRangeFromDuration(t, e, o, s)) : (n = this.opt("dayCount")) ? (s = "day", a = this.buildRangeFromDayCount(t, e, n)) : (a = this.buildCustomVisibleRange(t)) ? s = i.computeGreatestUnit(a.getStart(), a.getEnd()) : (o = this.getFallbackDuration(), s = i.computeGreatestUnit(o), a = this.buildRangeFromDuration(t, e, o, s)), {
duration: o,
unit: s,
unzonedRange: a
};
}, t.prototype.getFallbackDuration = function () {
return r.duration({
days: 1
});
}, t.prototype.adjustActiveRange = function (t, e, n) {
var r = t.getStart(),
i = t.getEnd();
return this._view.usesMinMaxTime && (e < 0 && r.time(0).add(e), n > 864e5 && i.time(n - 864e5)), new o["default"](r, i);
}, t.prototype.buildRangeFromDuration = function (t, e, n, s) {
function a() {
d = t.clone().startOf(h), c = d.clone().add(n), p = new o["default"](d, c);
}
var l,
u,
d,
c,
p,
h = this.opt("dateAlignment");
return h || (l = this.opt("dateIncrement"), l ? (u = r.duration(l), h = u < n ? i.computeDurationGreatestUnit(u, l) : s) : h = s), n.as("days") <= 1 && this._view.isHiddenDay(d) && (d = this._view.skipHiddenDays(d, e), d.startOf("day")), a(), this.trimHiddenDays(p) || (t = this._view.skipHiddenDays(t, e), a()), p;
}, t.prototype.buildRangeFromDayCount = function (t, e, n) {
var r,
i,
s = this.opt("dateAlignment"),
a = 0;
if (s || -1 !== e) {
r = t.clone(), s && r.startOf(s), r.startOf("day"), r = this._view.skipHiddenDays(r), i = r.clone();
do {
i.add(1, "day"), this._view.isHiddenDay(i) || a++;
} while (a < n);
} else {
i = t.clone().startOf("day").add(1, "day"), i = this._view.skipHiddenDays(i, -1, !0), r = i.clone();
do {
r.add(-1, "day"), this._view.isHiddenDay(r) || a++;
} while (a < n);
}
return new o["default"](r, i);
}, t.prototype.buildCustomVisibleRange = function (t) {
var e = this._view.getUnzonedRangeOption("visibleRange", this._view.calendar.applyTimezone(t));
return !e || null != e.startMs && null != e.endMs ? e : null;
}, t.prototype.buildRenderRange = function (t, e, n) {
return t.clone();
}, t.prototype.buildDateIncrement = function (t) {
var e,
n = this.opt("dateIncrement");
return n ? r.duration(n) : (e = this.opt("dateAlignment")) ? r.duration(1, e) : t || r.duration({
days: 1
});
}, t;
}();
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(4),
s = n(21),
a = n(6),
l = n(9),
u = function (t) {
function e(e) {
var n = t.call(this, e) || this;
return n.eventDefs = [], n;
}
return r.__extends(e, t), e.parse = function (t, e) {
var n;
return i.isArray(t.events) ? n = t : i.isArray(t) && (n = {
events: t
}), !!n && a["default"].parse.call(this, n, e);
}, e.prototype.setRawEventDefs = function (t) {
this.rawEventDefs = t, this.eventDefs = this.parseEventDefs(t);
}, e.prototype.fetch = function (t, e, n) {
var r,
i = this.eventDefs;
if (null != this.currentTimezone && this.currentTimezone !== n) for (r = 0; r < i.length; r++) i[r] instanceof l["default"] && i[r].rezone();
return this.currentTimezone = n, s["default"].resolve(i);
}, e.prototype.addEventDef = function (t) {
this.eventDefs.push(t);
}, e.prototype.removeEventDefsById = function (t) {
return o.removeMatching(this.eventDefs, function (e) {
return e.id === t;
});
}, e.prototype.removeAllEventDefs = function () {
this.eventDefs = [];
}, e.prototype.getPrimitive = function () {
return this.rawEventDefs;
}, e.prototype.applyManualStandardProps = function (e) {
var n = t.prototype.applyManualStandardProps.call(this, e);
return this.setRawEventDefs(e.events), n;
}, e;
}(a["default"]);
e["default"] = u, u.defineStandardProps({
events: !1
});
}, function (t, e, n) {
function r(t, e) {
a[t] = e;
}
function i(t) {
return t ? !0 === t ? s["default"] : a[t] : o["default"];
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(221),
s = n(222),
a = {};
e.defineThemeSystem = r, e.getThemeSystemClass = i;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(4),
o = function () {
function t(t) {
this.isHorizontal = !1, this.isVertical = !1, this.els = r(t.els), this.isHorizontal = t.isHorizontal, this.isVertical = t.isVertical, this.forcedOffsetParentEl = t.offsetParent ? r(t.offsetParent) : null;
}
return t.prototype.build = function () {
var t = this.forcedOffsetParentEl;
!t && this.els.length > 0 && (t = this.els.eq(0).offsetParent()), this.origin = t ? t.offset() : null, this.boundingRect = this.queryBoundingRect(), this.isHorizontal && this.buildElHorizontals(), this.isVertical && this.buildElVerticals();
}, t.prototype.clear = function () {
this.origin = null, this.boundingRect = null, this.lefts = null, this.rights = null, this.tops = null, this.bottoms = null;
}, t.prototype.ensureBuilt = function () {
this.origin || this.build();
}, t.prototype.buildElHorizontals = function () {
var t = [],
e = [];
this.els.each(function (n, i) {
var o = r(i),
s = o.offset().left,
a = o.outerWidth();
t.push(s), e.push(s + a);
}), this.lefts = t, this.rights = e;
}, t.prototype.buildElVerticals = function () {
var t = [],
e = [];
this.els.each(function (n, i) {
var o = r(i),
s = o.offset().top,
a = o.outerHeight();
t.push(s), e.push(s + a);
}), this.tops = t, this.bottoms = e;
}, t.prototype.getHorizontalIndex = function (t) {
this.ensureBuilt();
var e,
n = this.lefts,
r = this.rights,
i = n.length;
for (e = 0; e < i; e++) if (t >= n[e] && t < r[e]) return e;
}, t.prototype.getVerticalIndex = function (t) {
this.ensureBuilt();
var e,
n = this.tops,
r = this.bottoms,
i = n.length;
for (e = 0; e < i; e++) if (t >= n[e] && t < r[e]) return e;
}, t.prototype.getLeftOffset = function (t) {
return this.ensureBuilt(), this.lefts[t];
}, t.prototype.getLeftPosition = function (t) {
return this.ensureBuilt(), this.lefts[t] - this.origin.left;
}, t.prototype.getRightOffset = function (t) {
return this.ensureBuilt(), this.rights[t];
}, t.prototype.getRightPosition = function (t) {
return this.ensureBuilt(), this.rights[t] - this.origin.left;
}, t.prototype.getWidth = function (t) {
return this.ensureBuilt(), this.rights[t] - this.lefts[t];
}, t.prototype.getTopOffset = function (t) {
return this.ensureBuilt(), this.tops[t];
}, t.prototype.getTopPosition = function (t) {
return this.ensureBuilt(), this.tops[t] - this.origin.top;
}, t.prototype.getBottomOffset = function (t) {
return this.ensureBuilt(), this.bottoms[t];
}, t.prototype.getBottomPosition = function (t) {
return this.ensureBuilt(), this.bottoms[t] - this.origin.top;
}, t.prototype.getHeight = function (t) {
return this.ensureBuilt(), this.bottoms[t] - this.tops[t];
}, t.prototype.queryBoundingRect = function () {
var t;
return this.els.length > 0 && (t = i.getScrollParent(this.els.eq(0)), !t.is(document) && !t.is("html,body")) ? i.getClientRect(t) : null;
}, t.prototype.isPointInBounds = function (t, e) {
return this.isLeftInBounds(t) && this.isTopInBounds(e);
}, t.prototype.isLeftInBounds = function (t) {
return !this.boundingRect || t >= this.boundingRect.left && t < this.boundingRect.right;
}, t.prototype.isTopInBounds = function (t) {
return !this.boundingRect || t >= this.boundingRect.top && t < this.boundingRect.bottom;
}, t;
}();
e["default"] = o;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(4),
o = n(7),
s = n(23),
a = function () {
function t(t) {
this.isInteracting = !1, this.isDistanceSurpassed = !1, this.isDelayEnded = !1, this.isDragging = !1, this.isTouch = !1, this.isGeneric = !1, this.shouldCancelTouchScroll = !0, this.scrollAlwaysKills = !1, this.isAutoScroll = !1, this.scrollSensitivity = 30, this.scrollSpeed = 200, this.scrollIntervalMs = 50, this.options = t || {};
}
return t.prototype.startInteraction = function (t, e) {
if (void 0 === e && (e = {}), "mousedown" === t.type) {
if (s["default"].get().shouldIgnoreMouse()) return;
if (!i.isPrimaryMouseButton(t)) return;
t.preventDefault();
}
this.isInteracting || (this.delay = i.firstDefined(e.delay, this.options.delay, 0), this.minDistance = i.firstDefined(e.distance, this.options.distance, 0), this.subjectEl = this.options.subjectEl, i.preventSelection(r("body")), this.isInteracting = !0, this.isTouch = i.getEvIsTouch(t), this.isGeneric = "dragstart" === t.type, this.isDelayEnded = !1, this.isDistanceSurpassed = !1, this.originX = i.getEvX(t), this.originY = i.getEvY(t), this.scrollEl = i.getScrollParent(r(t.target)), this.bindHandlers(), this.initAutoScroll(), this.handleInteractionStart(t), this.startDelay(t), this.minDistance || this.handleDistanceSurpassed(t));
}, t.prototype.handleInteractionStart = function (t) {
this.trigger("interactionStart", t);
}, t.prototype.endInteraction = function (t, e) {
this.isInteracting && (this.endDrag(t), this.delayTimeoutId && (clearTimeout(this.delayTimeoutId), this.delayTimeoutId = null), this.destroyAutoScroll(), this.unbindHandlers(), this.isInteracting = !1, this.handleInteractionEnd(t, e), i.allowSelection(r("body")));
}, t.prototype.handleInteractionEnd = function (t, e) {
this.trigger("interactionEnd", t, e || !1);
}, t.prototype.bindHandlers = function () {
var t = s["default"].get();
this.isGeneric ? this.listenTo(r(document), {
drag: this.handleMove,
dragstop: this.endInteraction
}) : this.isTouch ? this.listenTo(t, {
touchmove: this.handleTouchMove,
touchend: this.endInteraction,
scroll: this.handleTouchScroll
}) : this.listenTo(t, {
mousemove: this.handleMouseMove,
mouseup: this.endInteraction
}), this.listenTo(t, {
selectstart: i.preventDefault,
contextmenu: i.preventDefault
});
}, t.prototype.unbindHandlers = function () {
this.stopListeningTo(s["default"].get()), this.stopListeningTo(r(document));
}, t.prototype.startDrag = function (t, e) {
this.startInteraction(t, e), this.isDragging || (this.isDragging = !0, this.handleDragStart(t));
}, t.prototype.handleDragStart = function (t) {
this.trigger("dragStart", t);
}, t.prototype.handleMove = function (t) {
var e = i.getEvX(t) - this.originX,
n = i.getEvY(t) - this.originY,
r = this.minDistance;
this.isDistanceSurpassed || e * e + n * n >= r * r && this.handleDistanceSurpassed(t), this.isDragging && this.handleDrag(e, n, t);
}, t.prototype.handleDrag = function (t, e, n) {
this.trigger("drag", t, e, n), this.updateAutoScroll(n);
}, t.prototype.endDrag = function (t) {
this.isDragging && (this.isDragging = !1, this.handleDragEnd(t));
}, t.prototype.handleDragEnd = function (t) {
this.trigger("dragEnd", t);
}, t.prototype.startDelay = function (t) {
var e = this;
this.delay ? this.delayTimeoutId = setTimeout(function () {
e.handleDelayEnd(t);
}, this.delay) : this.handleDelayEnd(t);
}, t.prototype.handleDelayEnd = function (t) {
this.isDelayEnded = !0, this.isDistanceSurpassed && this.startDrag(t);
}, t.prototype.handleDistanceSurpassed = function (t) {
this.isDistanceSurpassed = !0, this.isDelayEnded && this.startDrag(t);
}, t.prototype.handleTouchMove = function (t) {
this.isDragging && this.shouldCancelTouchScroll && t.preventDefault(), this.handleMove(t);
}, t.prototype.handleMouseMove = function (t) {
this.handleMove(t);
}, t.prototype.handleTouchScroll = function (t) {
this.isDragging && !this.scrollAlwaysKills || this.endInteraction(t, !0);
}, t.prototype.trigger = function (t) {
for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
this.options[t] && this.options[t].apply(this, e), this["_" + t] && this["_" + t].apply(this, e);
}, t.prototype.initAutoScroll = function () {
var t = this.scrollEl;
this.isAutoScroll = this.options.scroll && t && !t.is(window) && !t.is(document), this.isAutoScroll && this.listenTo(t, "scroll", i.debounce(this.handleDebouncedScroll, 100));
}, t.prototype.destroyAutoScroll = function () {
this.endAutoScroll(), this.isAutoScroll && this.stopListeningTo(this.scrollEl, "scroll");
}, t.prototype.computeScrollBounds = function () {
this.isAutoScroll && (this.scrollBounds = i.getOuterRect(this.scrollEl));
}, t.prototype.updateAutoScroll = function (t) {
var e,
n,
r,
o,
s = this.scrollSensitivity,
a = this.scrollBounds,
l = 0,
u = 0;
a && (e = (s - (i.getEvY(t) - a.top)) / s, n = (s - (a.bottom - i.getEvY(t))) / s, r = (s - (i.getEvX(t) - a.left)) / s, o = (s - (a.right - i.getEvX(t))) / s, e >= 0 && e <= 1 ? l = e * this.scrollSpeed * -1 : n >= 0 && n <= 1 && (l = n * this.scrollSpeed), r >= 0 && r <= 1 ? u = r * this.scrollSpeed * -1 : o >= 0 && o <= 1 && (u = o * this.scrollSpeed)), this.setScrollVel(l, u);
}, t.prototype.setScrollVel = function (t, e) {
this.scrollTopVel = t, this.scrollLeftVel = e, this.constrainScrollVel(), !this.scrollTopVel && !this.scrollLeftVel || this.scrollIntervalId || (this.scrollIntervalId = setInterval(i.proxy(this, "scrollIntervalFunc"), this.scrollIntervalMs));
}, t.prototype.constrainScrollVel = function () {
var t = this.scrollEl;
this.scrollTopVel < 0 ? t.scrollTop() <= 0 && (this.scrollTopVel = 0) : this.scrollTopVel > 0 && t.scrollTop() + t[0].clientHeight >= t[0].scrollHeight && (this.scrollTopVel = 0), this.scrollLeftVel < 0 ? t.scrollLeft() <= 0 && (this.scrollLeftVel = 0) : this.scrollLeftVel > 0 && t.scrollLeft() + t[0].clientWidth >= t[0].scrollWidth && (this.scrollLeftVel = 0);
}, t.prototype.scrollIntervalFunc = function () {
var t = this.scrollEl,
e = this.scrollIntervalMs / 1e3;
this.scrollTopVel && t.scrollTop(t.scrollTop() + this.scrollTopVel * e), this.scrollLeftVel && t.scrollLeft(t.scrollLeft() + this.scrollLeftVel * e), this.constrainScrollVel(), this.scrollTopVel || this.scrollLeftVel || this.endAutoScroll();
}, t.prototype.endAutoScroll = function () {
this.scrollIntervalId && (clearInterval(this.scrollIntervalId), this.scrollIntervalId = null, this.handleScrollEnd());
}, t.prototype.handleDebouncedScroll = function () {
this.scrollIntervalId || this.handleScrollEnd();
}, t.prototype.handleScrollEnd = function () {}, t;
}();
e["default"] = a, o["default"].mixInto(a);
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(4),
o = n(15),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.updateDayTable = function () {
for (var t, e, n, r = this, i = r.view, o = i.calendar, s = o.msToUtcMoment(r.dateProfile.renderUnzonedRange.startMs, !0), a = o.msToUtcMoment(r.dateProfile.renderUnzonedRange.endMs, !0), l = -1, u = [], d = []; s.isBefore(a);) i.isHiddenDay(s) ? u.push(l + .5) : (l++, u.push(l), d.push(s.clone())), s.add(1, "days");
if (this.breakOnWeeks) {
for (e = d[0].day(), t = 1; t < d.length && d[t].day() !== e; t++);
n = Math.ceil(d.length / t);
} else n = 1, t = d.length;
this.dayDates = d, this.dayIndices = u, this.daysPerRow = t, this.rowCnt = n, this.updateDayTableCols();
}, e.prototype.updateDayTableCols = function () {
this.colCnt = this.computeColCnt(), this.colHeadFormat = this.opt("columnHeaderFormat") || this.opt("columnFormat") || this.computeColHeadFormat();
}, e.prototype.computeColCnt = function () {
return this.daysPerRow;
}, e.prototype.getCellDate = function (t, e) {
return this.dayDates[this.getCellDayIndex(t, e)].clone();
}, e.prototype.getCellRange = function (t, e) {
var n = this.getCellDate(t, e);
return {
start: n,
end: n.clone().add(1, "days")
};
}, e.prototype.getCellDayIndex = function (t, e) {
return t * this.daysPerRow + this.getColDayIndex(e);
}, e.prototype.getColDayIndex = function (t) {
return this.isRTL ? this.colCnt - 1 - t : t;
}, e.prototype.getDateDayIndex = function (t) {
var e = this.dayIndices,
n = t.diff(this.dayDates[0], "days");
return n < 0 ? e[0] - 1 : n >= e.length ? e[e.length - 1] + 1 : e[n];
}, e.prototype.computeColHeadFormat = function () {
return this.rowCnt > 1 || this.colCnt > 10 ? "ddd" : this.colCnt > 1 ? this.opt("dayOfMonthFormat") : "dddd";
}, e.prototype.sliceRangeByRow = function (t) {
var e,
n,
r,
i,
o,
s = this.daysPerRow,
a = this.view.computeDayRange(t),
l = this.getDateDayIndex(a.start),
u = this.getDateDayIndex(a.end.clone().subtract(1, "days")),
d = [];
for (e = 0; e < this.rowCnt; e++) n = e * s, r = n + s - 1, i = Math.max(l, n), o = Math.min(u, r), i = Math.ceil(i), o = Math.floor(o), i <= o && d.push({
row: e,
firstRowDayIndex: i - n,
lastRowDayIndex: o - n,
isStart: i === l,
isEnd: o === u
});
return d;
}, e.prototype.sliceRangeByDay = function (t) {
var e,
n,
r,
i,
o,
s,
a = this.daysPerRow,
l = this.view.computeDayRange(t),
u = this.getDateDayIndex(l.start),
d = this.getDateDayIndex(l.end.clone().subtract(1, "days")),
c = [];
for (e = 0; e < this.rowCnt; e++) for (n = e * a, r = n + a - 1, i = n; i <= r; i++) o = Math.max(u, i), s = Math.min(d, i), o = Math.ceil(o), s = Math.floor(s), o <= s && c.push({
row: e,
firstRowDayIndex: o - n,
lastRowDayIndex: s - n,
isStart: o === u,
isEnd: s === d
});
return c;
}, e.prototype.renderHeadHtml = function () {
var t = this.view.calendar.theme;
return '<div class="fc-row ' + t.getClass("headerRow") + '"><table class="' + t.getClass("tableGrid") + '"><thead>' + this.renderHeadTrHtml() + "</thead></table></div>";
}, e.prototype.renderHeadIntroHtml = function () {
return this.renderIntroHtml();
}, e.prototype.renderHeadTrHtml = function () {
return "<tr>" + (this.isRTL ? "" : this.renderHeadIntroHtml()) + this.renderHeadDateCellsHtml() + (this.isRTL ? this.renderHeadIntroHtml() : "") + "</tr>";
}, e.prototype.renderHeadDateCellsHtml = function () {
var t,
e,
n = [];
for (t = 0; t < this.colCnt; t++) e = this.getCellDate(0, t), n.push(this.renderHeadDateCellHtml(e));
return n.join("");
}, e.prototype.renderHeadDateCellHtml = function (t, e, n) {
var r,
o = this,
s = o.view,
a = o.dateProfile.activeUnzonedRange.containsDate(t),
l = ["fc-day-header", s.calendar.theme.getClass("widgetHeader")];
return r = "function" == typeof o.opt("columnHeaderHtml") ? o.opt("columnHeaderHtml")(t) : "function" == typeof o.opt("columnHeaderText") ? i.htmlEscape(o.opt("columnHeaderText")(t)) : i.htmlEscape(t.format(o.colHeadFormat)), 1 === o.rowCnt ? l = l.concat(o.getDayClasses(t, !0)) : l.push("fc-" + i.dayIDs[t.day()]), '<th class="' + l.join(" ") + '"' + (1 === (a && o.rowCnt) ? ' data-date="' + t.format("YYYY-MM-DD") + '"' : "") + (e > 1 ? ' colspan="' + e + '"' : "") + (n ? " " + n : "") + ">" + (a ? s.buildGotoAnchorHtml({
date: t,
forceOff: o.rowCnt > 1 || 1 === o.colCnt
}, r) : r) + "</th>";
}, e.prototype.renderBgTrHtml = function (t) {
return "<tr>" + (this.isRTL ? "" : this.renderBgIntroHtml(t)) + this.renderBgCellsHtml(t) + (this.isRTL ? this.renderBgIntroHtml(t) : "") + "</tr>";
}, e.prototype.renderBgIntroHtml = function (t) {
return this.renderIntroHtml();
}, e.prototype.renderBgCellsHtml = function (t) {
var e,
n,
r = [];
for (e = 0; e < this.colCnt; e++) n = this.getCellDate(t, e), r.push(this.renderBgCellHtml(n));
return r.join("");
}, e.prototype.renderBgCellHtml = function (t, e) {
var n = this,
r = n.view,
i = n.dateProfile.activeUnzonedRange.containsDate(t),
o = n.getDayClasses(t);
return o.unshift("fc-day", r.calendar.theme.getClass("widgetContent")), '<td class="' + o.join(" ") + '"' + (i ? ' data-date="' + t.format("YYYY-MM-DD") + '"' : "") + (e ? " " + e : "") + "></td>";
}, e.prototype.renderIntroHtml = function () {}, e.prototype.bookendCells = function (t) {
var e = this.renderIntroHtml();
e && (this.isRTL ? t.append(e) : t.prepend(e));
}, e;
}(o["default"]);
e["default"] = s;
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var n = function () {
function t(t, e) {
this.component = t, this.fillRenderer = e;
}
return t.prototype.render = function (t) {
var e = this.component,
n = e._getDateProfile().activeUnzonedRange,
r = t.buildEventInstanceGroup(e.hasAllDayBusinessHours, n),
i = r ? e.eventRangesToEventFootprints(r.sliceRenderRanges(n)) : [];
this.renderEventFootprints(i);
}, t.prototype.renderEventFootprints = function (t) {
var e = this.component.eventFootprintsToSegs(t);
this.renderSegs(e), this.segs = e;
}, t.prototype.renderSegs = function (t) {
this.fillRenderer && this.fillRenderer.renderSegs("businessHours", t, {
getClasses: function getClasses(t) {
return ["fc-nonbusiness", "fc-bgevent"];
}
});
}, t.prototype.unrender = function () {
this.fillRenderer && this.fillRenderer.unrender("businessHours"), this.segs = null;
}, t.prototype.getSegs = function () {
return this.segs || [];
}, t;
}();
e["default"] = n;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(4),
o = function () {
function t(t) {
this.fillSegTag = "div", this.component = t, this.elsByFill = {};
}
return t.prototype.renderFootprint = function (t, e, n) {
this.renderSegs(t, this.component.componentFootprintToSegs(e), n);
}, t.prototype.renderSegs = function (t, e, n) {
var r;
return e = this.buildSegEls(t, e, n), r = this.attachSegEls(t, e), r && this.reportEls(t, r), e;
}, t.prototype.unrender = function (t) {
var e = this.elsByFill[t];
e && (e.remove(), delete this.elsByFill[t]);
}, t.prototype.buildSegEls = function (t, e, n) {
var i,
o = this,
s = "",
a = [];
if (e.length) {
for (i = 0; i < e.length; i++) s += this.buildSegHtml(t, e[i], n);
r(s).each(function (t, i) {
var s = e[t],
l = r(i);
n.filterEl && (l = n.filterEl(s, l)), l && (l = r(l), l.is(o.fillSegTag) && (s.el = l, a.push(s)));
});
}
return a;
}, t.prototype.buildSegHtml = function (t, e, n) {
var r = n.getClasses ? n.getClasses(e) : [],
o = i.cssToStr(n.getCss ? n.getCss(e) : {});
return "<" + this.fillSegTag + (r.length ? ' class="' + r.join(" ") + '"' : "") + (o ? ' style="' + o + '"' : "") + "></" + this.fillSegTag + ">";
}, t.prototype.attachSegEls = function (t, e) {}, t.prototype.reportEls = function (t, e) {
this.elsByFill[t] ? this.elsByFill[t] = this.elsByFill[t].add(e) : this.elsByFill[t] = r(e);
}, t;
}();
e["default"] = o;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(9),
i = n(34),
o = n(6),
s = function () {
function t(t, e) {
this.view = t._getView(), this.component = t, this.eventRenderer = e;
}
return t.prototype.renderComponentFootprint = function (t) {
this.renderEventFootprints([this.fabricateEventFootprint(t)]);
}, t.prototype.renderEventDraggingFootprints = function (t, e, n) {
this.renderEventFootprints(t, e, "fc-dragging", n ? null : this.view.opt("dragOpacity"));
}, t.prototype.renderEventResizingFootprints = function (t, e, n) {
this.renderEventFootprints(t, e, "fc-resizing");
}, t.prototype.renderEventFootprints = function (t, e, n, r) {
var i,
o = this.component.eventFootprintsToSegs(t),
s = "fc-helper " + (n || "");
for (o = this.eventRenderer.renderFgSegEls(o), i = 0; i < o.length; i++) o[i].el.addClass(s);
if (null != r) for (i = 0; i < o.length; i++) o[i].el.css("opacity", r);
this.helperEls = this.renderSegs(o, e);
}, t.prototype.renderSegs = function (t, e) {}, t.prototype.unrender = function () {
this.helperEls && (this.helperEls.remove(), this.helperEls = null);
}, t.prototype.fabricateEventFootprint = function (t) {
var e,
n = this.view.calendar,
s = n.footprintToDateProfile(t),
a = new r["default"](new o["default"](n));
return a.dateProfile = s, e = a.buildInstance(), new i["default"](t, a, e);
}, t;
}();
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(23),
o = n(14),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.bindToEl = function (t) {
var e = this.component;
e.bindSegHandlerToEl(t, "click", this.handleClick.bind(this)), e.bindSegHandlerToEl(t, "mouseenter", this.handleMouseover.bind(this)), e.bindSegHandlerToEl(t, "mouseleave", this.handleMouseout.bind(this));
}, e.prototype.handleClick = function (t, e) {
!1 === this.component.publiclyTrigger("eventClick", {
context: t.el[0],
args: [t.footprint.getEventLegacy(), e, this.view]
}) && e.preventDefault();
}, e.prototype.handleMouseover = function (t, e) {
i["default"].get().shouldIgnoreMouse() || this.mousedOverSeg || (this.mousedOverSeg = t, this.view.isEventDefResizable(t.footprint.eventDef) && t.el.addClass("fc-allow-mouse-resize"), this.component.publiclyTrigger("eventMouseover", {
context: t.el[0],
args: [t.footprint.getEventLegacy(), e, this.view]
}));
}, e.prototype.handleMouseout = function (t, e) {
this.mousedOverSeg && (this.mousedOverSeg = null, this.view.isEventDefResizable(t.footprint.eventDef) && t.el.removeClass("fc-allow-mouse-resize"), this.component.publiclyTrigger("eventMouseout", {
context: t.el[0],
args: [t.footprint.getEventLegacy(), e || {}, this.view]
}));
}, e.prototype.end = function () {
this.mousedOverSeg && this.handleMouseout(this.mousedOverSeg);
}, e;
}(o["default"]);
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(15),
o = n(237),
s = n(236),
a = n(64),
l = n(235),
u = n(234),
d = n(233),
c = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e;
}(i["default"]);
e["default"] = c, c.prototype.dateClickingClass = o["default"], c.prototype.dateSelectingClass = s["default"], c.prototype.eventPointingClass = a["default"], c.prototype.eventDraggingClass = l["default"], c.prototype.eventResizingClass = u["default"], c.prototype.externalDroppingClass = d["default"];
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(4),
s = n(58),
a = n(227),
l = n(5),
u = n(12),
d = n(34),
c = n(61),
p = n(65),
h = n(42),
f = n(60),
g = n(243),
v = n(244),
y = n(245),
m = function (t) {
function e(e) {
var n = t.call(this, e) || this;
return n.cellWeekNumbersVisible = !1, n.bottomCoordPadding = 0, n.isRigid = !1, n.hasAllDayBusinessHours = !0, n;
}
return r.__extends(e, t), e.prototype.componentFootprintToSegs = function (t) {
var e,
n,
r = this.sliceRangeByRow(t.unzonedRange);
for (e = 0; e < r.length; e++) n = r[e], this.isRTL ? (n.leftCol = this.daysPerRow - 1 - n.lastRowDayIndex, n.rightCol = this.daysPerRow - 1 - n.firstRowDayIndex) : (n.leftCol = n.firstRowDayIndex, n.rightCol = n.lastRowDayIndex);
return r;
}, e.prototype.renderDates = function (t) {
this.dateProfile = t, this.updateDayTable(), this.renderGrid();
}, e.prototype.unrenderDates = function () {
this.removeSegPopover();
}, e.prototype.renderGrid = function () {
var t,
e,
n = this.view,
r = this.rowCnt,
i = this.colCnt,
o = "";
for (this.headContainerEl && this.headContainerEl.html(this.renderHeadHtml()), t = 0; t < r; t++) o += this.renderDayRowHtml(t, this.isRigid);
for (this.el.html(o), this.rowEls = this.el.find(".fc-row"), this.cellEls = this.el.find(".fc-day, .fc-disabled-day"), this.rowCoordCache = new s["default"]({
els: this.rowEls,
isVertical: !0
}), this.colCoordCache = new s["default"]({
els: this.cellEls.slice(0, this.colCnt),
isHorizontal: !0
}), t = 0; t < r; t++) for (e = 0; e < i; e++) this.publiclyTrigger("dayRender", {
context: n,
args: [this.getCellDate(t, e), this.getCellEl(t, e), n]
});
}, e.prototype.renderDayRowHtml = function (t, e) {
var n = this.view.calendar.theme,
r = ["fc-row", "fc-week", n.getClass("dayRow")];
return e && r.push("fc-rigid"), '<div class="' + r.join(" ") + '"><div class="fc-bg"><table class="' + n.getClass("tableGrid") + '">' + this.renderBgTrHtml(t) + '</table></div><div class="fc-content-skeleton"><table>' + (this.getIsNumbersVisible() ? "<thead>" + this.renderNumberTrHtml(t) + "</thead>" : "") + "</table></div></div>";
}, e.prototype.getIsNumbersVisible = function () {
return this.getIsDayNumbersVisible() || this.cellWeekNumbersVisible;
}, e.prototype.getIsDayNumbersVisible = function () {
return this.rowCnt > 1;
}, e.prototype.renderNumberTrHtml = function (t) {
return "<tr>" + (this.isRTL ? "" : this.renderNumberIntroHtml(t)) + this.renderNumberCellsHtml(t) + (this.isRTL ? this.renderNumberIntroHtml(t) : "") + "</tr>";
}, e.prototype.renderNumberIntroHtml = function (t) {
return this.renderIntroHtml();
}, e.prototype.renderNumberCellsHtml = function (t) {
var e,
n,
r = [];
for (e = 0; e < this.colCnt; e++) n = this.getCellDate(t, e), r.push(this.renderNumberCellHtml(n));
return r.join("");
}, e.prototype.renderNumberCellHtml = function (t) {
var e,
n,
r = this.view,
i = "",
o = this.dateProfile.activeUnzonedRange.containsDate(t),
s = this.getIsDayNumbersVisible() && o;
return s || this.cellWeekNumbersVisible ? (e = this.getDayClasses(t), e.unshift("fc-day-top"), this.cellWeekNumbersVisible && (n = "ISO" === t._locale._fullCalendar_weekCalc ? 1 : t._locale.firstDayOfWeek()), i += '<td class="' + e.join(" ") + '"' + (o ? ' data-date="' + t.format() + '"' : "") + ">", this.cellWeekNumbersVisible && t.day() === n && (i += r.buildGotoAnchorHtml({
date: t,
type: "week"
}, {
"class": "fc-week-number"
}, t.format("w"))), s && (i += r.buildGotoAnchorHtml(t, {
"class": "fc-day-number"
}, t.format("D"))), i += "</td>") : "<td></td>";
}, e.prototype.prepareHits = function () {
this.colCoordCache.build(), this.rowCoordCache.build(), this.rowCoordCache.bottoms[this.rowCnt - 1] += this.bottomCoordPadding;
}, e.prototype.releaseHits = function () {
this.colCoordCache.clear(), this.rowCoordCache.clear();
}, e.prototype.queryHit = function (t, e) {
if (this.colCoordCache.isLeftInBounds(t) && this.rowCoordCache.isTopInBounds(e)) {
var n = this.colCoordCache.getHorizontalIndex(t),
r = this.rowCoordCache.getVerticalIndex(e);
if (null != r && null != n) return this.getCellHit(r, n);
}
}, e.prototype.getHitFootprint = function (t) {
var e = this.getCellRange(t.row, t.col);
return new u["default"](new l["default"](e.start, e.end), !0);
}, e.prototype.getHitEl = function (t) {
return this.getCellEl(t.row, t.col);
}, e.prototype.getCellHit = function (t, e) {
return {
row: t,
col: e,
component: this,
left: this.colCoordCache.getLeftOffset(e),
right: this.colCoordCache.getRightOffset(e),
top: this.rowCoordCache.getTopOffset(t),
bottom: this.rowCoordCache.getBottomOffset(t)
};
}, e.prototype.getCellEl = function (t, e) {
return this.cellEls.eq(t * this.colCnt + e);
}, e.prototype.executeEventUnrender = function () {
this.removeSegPopover(), t.prototype.executeEventUnrender.call(this);
}, e.prototype.getOwnEventSegs = function () {
return t.prototype.getOwnEventSegs.call(this).concat(this.popoverSegs || []);
}, e.prototype.renderDrag = function (t, e, n) {
var r;
for (r = 0; r < t.length; r++) this.renderHighlight(t[r].componentFootprint);
if (t.length && e && e.component !== this) return this.helperRenderer.renderEventDraggingFootprints(t, e, n), !0;
}, e.prototype.unrenderDrag = function () {
this.unrenderHighlight(), this.helperRenderer.unrender();
}, e.prototype.renderEventResize = function (t, e, n) {
var r;
for (r = 0; r < t.length; r++) this.renderHighlight(t[r].componentFootprint);
this.helperRenderer.renderEventResizingFootprints(t, e, n);
}, e.prototype.unrenderEventResize = function () {
this.unrenderHighlight(), this.helperRenderer.unrender();
}, e.prototype.removeSegPopover = function () {
this.segPopover && this.segPopover.hide();
}, e.prototype.limitRows = function (t) {
var e,
n,
r = this.eventRenderer.rowStructs || [];
for (e = 0; e < r.length; e++) this.unlimitRow(e), !1 !== (n = !!t && ("number" == typeof t ? t : this.computeRowLevelLimit(e))) && this.limitRow(e, n);
}, e.prototype.computeRowLevelLimit = function (t) {
function e(t, e) {
o = Math.max(o, i(e).outerHeight());
}
var n,
r,
o,
s = this.rowEls.eq(t),
a = s.height(),
l = this.eventRenderer.rowStructs[t].tbodyEl.children();
for (n = 0; n < l.length; n++) if (r = l.eq(n).removeClass("fc-limited"), o = 0, r.find("> td > :first-child").each(e), r.position().top + o > a) return n;
return !1;
}, e.prototype.limitRow = function (t, e) {
var n,
r,
o,
s,
a,
l,
u,
d,
c,
p,
h,
f,
g,
v,
y,
m = this,
b = this.eventRenderer.rowStructs[t],
w = [],
D = 0,
E = function E(n) {
for (; D < n;) l = m.getCellSegs(t, D, e), l.length && (c = r[e - 1][D], y = m.renderMoreLink(t, D, l), v = i("<div>").append(y), c.append(v), w.push(v[0])), D++;
};
if (e && e < b.segLevels.length) {
for (n = b.segLevels[e - 1], r = b.cellMatrix, o = b.tbodyEl.children().slice(e).addClass("fc-limited").get(), s = 0; s < n.length; s++) {
for (a = n[s], E(a.leftCol), d = [], u = 0; D <= a.rightCol;) l = this.getCellSegs(t, D, e), d.push(l), u += l.length, D++;
if (u) {
for (c = r[e - 1][a.leftCol], p = c.attr("rowspan") || 1, h = [], f = 0; f < d.length; f++) g = i('<td class="fc-more-cell">').attr("rowspan", p), l = d[f], y = this.renderMoreLink(t, a.leftCol + f, [a].concat(l)), v = i("<div>").append(y), g.append(v), h.push(g[0]), w.push(g[0]);
c.addClass("fc-limited").after(i(h)), o.push(c[0]);
}
}
E(this.colCnt), b.moreEls = i(w), b.limitedEls = i(o);
}
}, e.prototype.unlimitRow = function (t) {
var e = this.eventRenderer.rowStructs[t];
e.moreEls && (e.moreEls.remove(), e.moreEls = null), e.limitedEls && (e.limitedEls.removeClass("fc-limited"), e.limitedEls = null);
}, e.prototype.renderMoreLink = function (t, e, n) {
var r = this,
o = this.view;
return i('<a class="fc-more">').text(this.getMoreLinkText(n.length)).on("click", function (s) {
var a = r.opt("eventLimitClick"),
l = r.getCellDate(t, e),
u = i(s.currentTarget),
d = r.getCellEl(t, e),
c = r.getCellSegs(t, e),
p = r.resliceDaySegs(c, l),
h = r.resliceDaySegs(n, l);
"function" == typeof a && (a = r.publiclyTrigger("eventLimitClick", {
context: o,
args: [{
date: l.clone(),
dayEl: d,
moreEl: u,
segs: p,
hiddenSegs: h
}, s, o]
})), "popover" === a ? r.showSegPopover(t, e, u, p) : "string" == typeof a && o.calendar.zoomTo(l, a);
});
}, e.prototype.showSegPopover = function (t, e, n, r) {
var i,
o,
s = this,
l = this.view,
u = n.parent();
i = 1 === this.rowCnt ? l.el : this.rowEls.eq(t), o = {
className: "fc-more-popover " + l.calendar.theme.getClass("popover"),
content: this.renderSegPopoverContent(t, e, r),
parentEl: l.el,
top: i.offset().top,
autoHide: !0,
viewportConstrain: this.opt("popoverViewportConstrain"),
hide: function hide() {
s.popoverSegs && s.triggerBeforeEventSegsDestroyed(s.popoverSegs), s.segPopover.removeElement(), s.segPopover = null, s.popoverSegs = null;
}
}, this.isRTL ? o.right = u.offset().left + u.outerWidth() + 1 : o.left = u.offset().left - 1, this.segPopover = new a["default"](o), this.segPopover.show(), this.bindAllSegHandlersToEl(this.segPopover.el), this.triggerAfterEventSegsRendered(r);
}, e.prototype.renderSegPopoverContent = function (t, e, n) {
var r,
s = this.view,
a = s.calendar.theme,
l = this.getCellDate(t, e).format(this.opt("dayPopoverFormat")),
u = i('<div class="fc-header ' + a.getClass("popoverHeader") + '"><span class="fc-close ' + a.getIconClass("close") + '"></span><span class="fc-title">' + o.htmlEscape(l) + '</span><div class="fc-clear"></div></div><div class="fc-body ' + a.getClass("popoverContent") + '"><div class="fc-event-container"></div></div>'),
d = u.find(".fc-event-container");
for (n = this.eventRenderer.renderFgSegEls(n, !0), this.popoverSegs = n, r = 0; r < n.length; r++) this.hitsNeeded(), n[r].hit = this.getCellHit(t, e), this.hitsNotNeeded(), d.append(n[r].el);
return u;
}, e.prototype.resliceDaySegs = function (t, e) {
var n,
r,
o,
s = e.clone(),
a = s.clone().add(1, "days"),
c = new l["default"](s, a),
p = [];
for (n = 0; n < t.length; n++) r = t[n], (o = r.footprint.componentFootprint.unzonedRange.intersect(c)) && p.push(i.extend({}, r, {
footprint: new d["default"](new u["default"](o, r.footprint.componentFootprint.isAllDay), r.footprint.eventDef, r.footprint.eventInstance),
isStart: r.isStart && o.isStart,
isEnd: r.isEnd && o.isEnd
}));
return this.eventRenderer.sortEventSegs(p), p;
}, e.prototype.getMoreLinkText = function (t) {
var e = this.opt("eventLimitText");
return "function" == typeof e ? e(t) : "+" + t + " " + e;
}, e.prototype.getCellSegs = function (t, e, n) {
for (var r, i = this.eventRenderer.rowStructs[t].segMatrix, o = n || 0, s = []; o < i.length;) r = i[o][e], r && s.push(r), o++;
return s;
}, e;
}(h["default"]);
e["default"] = m, m.prototype.eventRendererClass = g["default"], m.prototype.businessHourRendererClass = c["default"], m.prototype.helperRendererClass = v["default"], m.prototype.fillRendererClass = y["default"], p["default"].mixInto(m), f["default"].mixInto(m);
}, function (t, e, n) {
function r(t) {
return function (t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.colWeekNumbersVisible = !1, e;
}
return i.__extends(e, t), e.prototype.renderHeadIntroHtml = function () {
var t = this.view;
return this.colWeekNumbersVisible ? '<th class="fc-week-number ' + t.calendar.theme.getClass("widgetHeader") + '" ' + t.weekNumberStyleAttr() + "><span>" + s.htmlEscape(this.opt("weekNumberTitle")) + "</span></th>" : "";
}, e.prototype.renderNumberIntroHtml = function (t) {
var e = this.view,
n = this.getCellDate(t, 0);
return this.colWeekNumbersVisible ? '<td class="fc-week-number" ' + e.weekNumberStyleAttr() + ">" + e.buildGotoAnchorHtml({
date: n,
type: "week",
forceOff: 1 === this.colCnt
}, n.format("w")) + "</td>" : "";
}, e.prototype.renderBgIntroHtml = function () {
var t = this.view;
return this.colWeekNumbersVisible ? '<td class="fc-week-number ' + t.calendar.theme.getClass("widgetContent") + '" ' + t.weekNumberStyleAttr() + "></td>" : "";
}, e.prototype.renderIntroHtml = function () {
var t = this.view;
return this.colWeekNumbersVisible ? '<td class="fc-week-number" ' + t.weekNumberStyleAttr() + "></td>" : "";
}, e.prototype.getIsNumbersVisible = function () {
return d["default"].prototype.getIsNumbersVisible.apply(this, arguments) || this.colWeekNumbersVisible;
}, e;
}(t);
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var i = n(2),
o = n(3),
s = n(4),
a = n(41),
l = n(43),
u = n(68),
d = n(66),
c = function (t) {
function e(e, n) {
var r = t.call(this, e, n) || this;
return r.dayGrid = r.instantiateDayGrid(), r.dayGrid.isRigid = r.hasRigidRows(), r.opt("weekNumbers") && (r.opt("weekNumbersWithinDays") ? (r.dayGrid.cellWeekNumbersVisible = !0, r.dayGrid.colWeekNumbersVisible = !1) : (r.dayGrid.cellWeekNumbersVisible = !1, r.dayGrid.colWeekNumbersVisible = !0)), r.addChild(r.dayGrid), r.scroller = new a["default"]({
overflowX: "hidden",
overflowY: "auto"
}), r;
}
return i.__extends(e, t), e.prototype.instantiateDayGrid = function () {
return new (r(this.dayGridClass))(this);
}, e.prototype.executeDateRender = function (e) {
this.dayGrid.breakOnWeeks = /year|month|week/.test(e.currentRangeUnit), t.prototype.executeDateRender.call(this, e);
}, e.prototype.renderSkeleton = function () {
var t, e;
this.el.addClass("fc-basic-view").html(this.renderSkeletonHtml()), this.scroller.render(), t = this.scroller.el.addClass("fc-day-grid-container"), e = o('<div class="fc-day-grid">').appendTo(t), this.el.find(".fc-body > tr > td").append(t), this.dayGrid.headContainerEl = this.el.find(".fc-head-container"), this.dayGrid.setElement(e);
}, e.prototype.unrenderSkeleton = function () {
this.dayGrid.removeElement(), this.scroller.destroy();
}, e.prototype.renderSkeletonHtml = function () {
var t = this.calendar.theme;
return '<table class="' + t.getClass("tableGrid") + '">' + (this.opt("columnHeader") ? '<thead class="fc-head"><tr><td class="fc-head-container ' + t.getClass("widgetHeader") + '"> </td></tr></thead>' : "") + '<tbody class="fc-body"><tr><td class="' + t.getClass("widgetContent") + '"></td></tr></tbody></table>';
}, e.prototype.weekNumberStyleAttr = function () {
return null != this.weekNumberWidth ? 'style="width:' + this.weekNumberWidth + 'px"' : "";
}, e.prototype.hasRigidRows = function () {
var t = this.opt("eventLimit");
return t && "number" != typeof t;
}, e.prototype.updateSize = function (e, n, r) {
var i,
o,
a = this.opt("eventLimit"),
l = this.dayGrid.headContainerEl.find(".fc-row");
if (!this.dayGrid.rowEls) return void (n || (i = this.computeScrollerHeight(e), this.scroller.setHeight(i)));
t.prototype.updateSize.call(this, e, n, r), this.dayGrid.colWeekNumbersVisible && (this.weekNumberWidth = s.matchCellWidths(this.el.find(".fc-week-number"))), this.scroller.clear(), s.uncompensateScroll(l), this.dayGrid.removeSegPopover(), a && "number" == typeof a && this.dayGrid.limitRows(a), i = this.computeScrollerHeight(e), this.setGridHeight(i, n), a && "number" != typeof a && this.dayGrid.limitRows(a), n || (this.scroller.setHeight(i), o = this.scroller.getScrollbarWidths(), (o.left || o.right) && (s.compensateScroll(l, o), i = this.computeScrollerHeight(e), this.scroller.setHeight(i)), this.scroller.lockOverflow(o));
}, e.prototype.computeScrollerHeight = function (t) {
return t - s.subtractInnerElHeight(this.el, this.scroller.el);
}, e.prototype.setGridHeight = function (t, e) {
e ? s.undistributeHeight(this.dayGrid.rowEls) : s.distributeHeight(this.dayGrid.rowEls, t, !0);
}, e.prototype.computeInitialDateScroll = function () {
return {
top: 0
};
}, e.prototype.queryDateScroll = function () {
return {
top: this.scroller.getScrollTop()
};
}, e.prototype.applyDateScroll = function (t) {
void 0 !== t.top && this.scroller.setScrollTop(t.top);
}, e;
}(l["default"]);
e["default"] = c, c.prototype.dateProfileGeneratorClass = u["default"], c.prototype.dayGridClass = d["default"];
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(5),
o = n(55),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.buildRenderRange = function (e, n, r) {
var o = t.prototype.buildRenderRange.call(this, e, n, r),
s = this.msToUtcMoment(o.startMs, r),
a = this.msToUtcMoment(o.endMs, r);
return /^(year|month)$/.test(n) && (s.startOf("week"), a.weekday() && a.add(1, "week").startOf("week")), new i["default"](s, a);
}, e;
}(o["default"]);
e["default"] = s;
},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, function (t, e, n) {
function r(t, e, n) {
var r;
for (r = 0; r < t.length; r++) if (!e(t[r].eventInstance.toLegacy(), n ? n.toLegacy() : null)) return !1;
return !0;
}
function i(t, e) {
var n,
r,
i,
o,
s = e.toLegacy();
for (n = 0; n < t.length; n++) {
if (r = t[n].eventInstance, i = r.def, !1 === (o = i.getOverlap())) return !1;
if ("function" == typeof o && !o(r.toLegacy(), s)) return !1;
}
return !0;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(5),
s = n(12),
a = n(36),
l = n(6),
u = n(19),
d = function () {
function t(t, e) {
this.eventManager = t, this._calendar = e;
}
return t.prototype.opt = function (t) {
return this._calendar.opt(t);
}, t.prototype.isEventInstanceGroupAllowed = function (t) {
var e,
n = t.getEventDef(),
r = this.eventRangesToEventFootprints(t.getAllEventRanges()),
i = this.getPeerEventInstances(n),
o = i.map(u.eventInstanceToEventRange),
s = this.eventRangesToEventFootprints(o),
a = n.getConstraint(),
l = n.getOverlap(),
d = this.opt("eventAllow");
for (e = 0; e < r.length; e++) if (!this.isFootprintAllowed(r[e].componentFootprint, s, a, l, r[e].eventInstance)) return !1;
if (d) for (e = 0; e < r.length; e++) if (!1 === d(r[e].componentFootprint.toLegacy(this._calendar), r[e].getEventLegacy())) return !1;
return !0;
}, t.prototype.getPeerEventInstances = function (t) {
return this.eventManager.getEventInstancesWithoutId(t.id);
}, t.prototype.isSelectionFootprintAllowed = function (t) {
var e,
n = this.eventManager.getEventInstances(),
r = n.map(u.eventInstanceToEventRange),
i = this.eventRangesToEventFootprints(r);
return !!this.isFootprintAllowed(t, i, this.opt("selectConstraint"), this.opt("selectOverlap")) && (!(e = this.opt("selectAllow")) || !1 !== e(t.toLegacy(this._calendar)));
}, t.prototype.isFootprintAllowed = function (t, e, n, o, s) {
var a, l;
if (null != n && (a = this.constraintValToFootprints(n, t.isAllDay), !this.isFootprintWithinConstraints(t, a))) return !1;
if (l = this.collectOverlapEventFootprints(e, t), !1 === o) {
if (l.length) return !1;
} else if ("function" == typeof o && !r(l, o, s)) return !1;
return !(s && !i(l, s));
}, t.prototype.isFootprintWithinConstraints = function (t, e) {
var n;
for (n = 0; n < e.length; n++) if (this.footprintContainsFootprint(e[n], t)) return !0;
return !1;
}, t.prototype.constraintValToFootprints = function (t, e) {
var n;
return "businessHours" === t ? this.buildCurrentBusinessFootprints(e) : "object" == _typeof(t) ? (n = this.parseEventDefToInstances(t), n ? this.eventInstancesToFootprints(n) : this.parseFootprints(t)) : null != t ? (n = this.eventManager.getEventInstancesWithId(t), this.eventInstancesToFootprints(n)) : void 0;
}, t.prototype.buildCurrentBusinessFootprints = function (t) {
var e = this._calendar.view,
n = e.get("businessHourGenerator"),
r = e.dateProfile.activeUnzonedRange,
i = n.buildEventInstanceGroup(t, r);
return i ? this.eventInstancesToFootprints(i.eventInstances) : [];
}, t.prototype.eventInstancesToFootprints = function (t) {
var e = t.map(u.eventInstanceToEventRange);
return this.eventRangesToEventFootprints(e).map(u.eventFootprintToComponentFootprint);
}, t.prototype.collectOverlapEventFootprints = function (t, e) {
var n,
r = [];
for (n = 0; n < t.length; n++) this.footprintsIntersect(e, t[n].componentFootprint) && r.push(t[n]);
return r;
}, t.prototype.parseEventDefToInstances = function (t) {
var e = this.eventManager,
n = a["default"].parse(t, new l["default"](this._calendar));
return !!n && n.buildInstances(e.currentPeriod.unzonedRange);
}, t.prototype.eventRangesToEventFootprints = function (t) {
var e,
n = [];
for (e = 0; e < t.length; e++) n.push.apply(n, this.eventRangeToEventFootprints(t[e]));
return n;
}, t.prototype.eventRangeToEventFootprints = function (t) {
return [u.eventRangeToEventFootprint(t)];
}, t.prototype.parseFootprints = function (t) {
var e, n;
return t.start && (e = this._calendar.moment(t.start), e.isValid() || (e = null)), t.end && (n = this._calendar.moment(t.end), n.isValid() || (n = null)), [new s["default"](new o["default"](e, n), e && !e.hasTime() || n && !n.hasTime())];
}, t.prototype.footprintContainsFootprint = function (t, e) {
return t.unzonedRange.containsRange(e.unzonedRange);
}, t.prototype.footprintsIntersect = function (t, e) {
return t.unzonedRange.intersectsWith(e.unzonedRange);
}, t;
}();
e["default"] = d;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(19),
o = n(20),
s = n(54),
a = n(6),
l = {
start: "09:00",
end: "17:00",
dow: [1, 2, 3, 4, 5],
rendering: "inverse-background"
},
u = function () {
function t(t, e) {
this.rawComplexDef = t, this.calendar = e;
}
return t.prototype.buildEventInstanceGroup = function (t, e) {
var n,
r = this.buildEventDefs(t);
if (r.length) return n = new o["default"](i.eventDefsToEventInstances(r, e)), n.explicitEventDef = r[0], n;
}, t.prototype.buildEventDefs = function (t) {
var e,
n = this.rawComplexDef,
i = [],
o = !1,
s = [];
for (!0 === n ? i = [{}] : r.isPlainObject(n) ? i = [n] : r.isArray(n) && (i = n, o = !0), e = 0; e < i.length; e++) o && !i[e].dow || s.push(this.buildEventDef(t, i[e]));
return s;
}, t.prototype.buildEventDef = function (t, e) {
var n = r.extend({}, l, e);
return t && (n.start = null, n.end = null), s["default"].parse(n, new a["default"](this.calendar));
}, t;
}();
e["default"] = u;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(4),
o = n(21),
s = n(13),
a = n(5),
l = n(20),
u = function () {
function t(t, e, n) {
this.pendingCnt = 0, this.freezeDepth = 0, this.stuntedReleaseCnt = 0, this.releaseCnt = 0, this.start = t, this.end = e, this.timezone = n, this.unzonedRange = new a["default"](t.clone().stripZone(), e.clone().stripZone()), this.requestsByUid = {}, this.eventDefsByUid = {}, this.eventDefsById = {}, this.eventInstanceGroupsById = {};
}
return t.prototype.isWithinRange = function (t, e) {
return !t.isBefore(this.start) && !e.isAfter(this.end);
}, t.prototype.requestSources = function (t) {
this.freeze();
for (var e = 0; e < t.length; e++) this.requestSource(t[e]);
this.thaw();
}, t.prototype.requestSource = function (t) {
var e = this,
n = {
source: t,
status: "pending",
eventDefs: null
};
this.requestsByUid[t.uid] = n, this.pendingCnt += 1, t.fetch(this.start, this.end, this.timezone).then(function (t) {
"cancelled" !== n.status && (n.status = "completed", n.eventDefs = t, e.addEventDefs(t), e.pendingCnt--, e.tryRelease());
}, function () {
"cancelled" !== n.status && (n.status = "failed", e.pendingCnt--, e.tryRelease());
});
}, t.prototype.purgeSource = function (t) {
var e = this.requestsByUid[t.uid];
e && (delete this.requestsByUid[t.uid], "pending" === e.status ? (e.status = "cancelled", this.pendingCnt--, this.tryRelease()) : "completed" === e.status && e.eventDefs.forEach(this.removeEventDef.bind(this)));
}, t.prototype.purgeAllSources = function () {
var t,
e,
n = this.requestsByUid,
r = 0;
for (t in n) e = n[t], "pending" === e.status ? e.status = "cancelled" : "completed" === e.status && r++;
this.requestsByUid = {}, this.pendingCnt = 0, r && this.removeAllEventDefs();
}, t.prototype.getEventDefByUid = function (t) {
return this.eventDefsByUid[t];
}, t.prototype.getEventDefsById = function (t) {
var e = this.eventDefsById[t];
return e ? e.slice() : [];
}, t.prototype.addEventDefs = function (t) {
for (var e = 0; e < t.length; e++) this.addEventDef(t[e]);
}, t.prototype.addEventDef = function (t) {
var e,
n = this.eventDefsById,
r = t.id,
i = n[r] || (n[r] = []),
o = t.buildInstances(this.unzonedRange);
for (i.push(t), this.eventDefsByUid[t.uid] = t, e = 0; e < o.length; e++) this.addEventInstance(o[e], r);
}, t.prototype.removeEventDefsById = function (t) {
var e = this;
this.getEventDefsById(t).forEach(function (t) {
e.removeEventDef(t);
});
}, t.prototype.removeAllEventDefs = function () {
var t = r.isEmptyObject(this.eventDefsByUid);
this.eventDefsByUid = {}, this.eventDefsById = {}, this.eventInstanceGroupsById = {}, t || this.tryRelease();
}, t.prototype.removeEventDef = function (t) {
var e = this.eventDefsById,
n = e[t.id];
delete this.eventDefsByUid[t.uid], n && (i.removeExact(n, t), n.length || delete e[t.id], this.removeEventInstancesForDef(t));
}, t.prototype.getEventInstances = function () {
var t,
e = this.eventInstanceGroupsById,
n = [];
for (t in e) n.push.apply(n, e[t].eventInstances);
return n;
}, t.prototype.getEventInstancesWithId = function (t) {
var e = this.eventInstanceGroupsById[t];
return e ? e.eventInstances.slice() : [];
}, t.prototype.getEventInstancesWithoutId = function (t) {
var e,
n = this.eventInstanceGroupsById,
r = [];
for (e in n) e !== t && r.push.apply(r, n[e].eventInstances);
return r;
}, t.prototype.addEventInstance = function (t, e) {
var n = this.eventInstanceGroupsById;
(n[e] || (n[e] = new l["default"]())).eventInstances.push(t), this.tryRelease();
}, t.prototype.removeEventInstancesForDef = function (t) {
var e,
n = this.eventInstanceGroupsById,
r = n[t.id];
r && (e = i.removeMatching(r.eventInstances, function (e) {
return e.def === t;
}), r.eventInstances.length || delete n[t.id], e && this.tryRelease());
}, t.prototype.tryRelease = function () {
this.pendingCnt || (this.freezeDepth ? this.stuntedReleaseCnt++ : this.release());
}, t.prototype.release = function () {
this.releaseCnt++, this.trigger("release", this.eventInstanceGroupsById);
}, t.prototype.whenReleased = function () {
var t = this;
return this.releaseCnt ? o["default"].resolve(this.eventInstanceGroupsById) : o["default"].construct(function (e) {
t.one("release", e);
});
}, t.prototype.freeze = function () {
this.freezeDepth++ || (this.stuntedReleaseCnt = 0);
}, t.prototype.thaw = function () {
--this.freezeDepth || !this.stuntedReleaseCnt || this.pendingCnt || this.release();
}, t;
}();
e["default"] = u, s["default"].mixInto(u);
}, function (t, e, n) {
function r(t, e) {
return t.getPrimitive() === e.getPrimitive();
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var i = n(3),
o = n(4),
s = n(219),
a = n(56),
l = n(6),
u = n(38),
d = n(9),
c = n(20),
p = n(13),
h = n(7),
f = function () {
function t(t) {
this.calendar = t, this.stickySource = new a["default"](t), this.otherSources = [];
}
return t.prototype.requestEvents = function (t, e, n, r) {
return !r && this.currentPeriod && this.currentPeriod.isWithinRange(t, e) && n === this.currentPeriod.timezone || this.setPeriod(new s["default"](t, e, n)), this.currentPeriod.whenReleased();
}, t.prototype.addSource = function (t) {
this.otherSources.push(t), this.currentPeriod && this.currentPeriod.requestSource(t);
}, t.prototype.removeSource = function (t) {
o.removeExact(this.otherSources, t), this.currentPeriod && this.currentPeriod.purgeSource(t);
}, t.prototype.removeAllSources = function () {
this.otherSources = [], this.currentPeriod && this.currentPeriod.purgeAllSources();
}, t.prototype.refetchSource = function (t) {
var e = this.currentPeriod;
e && (e.freeze(), e.purgeSource(t), e.requestSource(t), e.thaw());
}, t.prototype.refetchAllSources = function () {
var t = this.currentPeriod;
t && (t.freeze(), t.purgeAllSources(), t.requestSources(this.getSources()), t.thaw());
}, t.prototype.getSources = function () {
return [this.stickySource].concat(this.otherSources);
}, t.prototype.multiQuerySources = function (t) {
t ? i.isArray(t) || (t = [t]) : t = [];
var e,
n = [];
for (e = 0; e < t.length; e++) n.push.apply(n, this.querySources(t[e]));
return n;
}, t.prototype.querySources = function (t) {
var e,
n,
o = this.otherSources;
for (e = 0; e < o.length; e++) if ((n = o[e]) === t) return [n];
return (n = this.getSourceById(l["default"].normalizeId(t))) ? [n] : (t = u["default"].parse(t, this.calendar), t ? i.grep(o, function (e) {
return r(t, e);
}) : void 0);
}, t.prototype.getSourceById = function (t) {
return i.grep(this.otherSources, function (e) {
return e.id && e.id === t;
})[0];
}, t.prototype.setPeriod = function (t) {
this.currentPeriod && (this.unbindPeriod(this.currentPeriod), this.currentPeriod = null), this.currentPeriod = t, this.bindPeriod(t), t.requestSources(this.getSources());
}, t.prototype.bindPeriod = function (t) {
this.listenTo(t, "release", function (t) {
this.trigger("release", t);
});
}, t.prototype.unbindPeriod = function (t) {
this.stopListeningTo(t);
}, t.prototype.getEventDefByUid = function (t) {
if (this.currentPeriod) return this.currentPeriod.getEventDefByUid(t);
}, t.prototype.addEventDef = function (t, e) {
e && this.stickySource.addEventDef(t), this.currentPeriod && this.currentPeriod.addEventDef(t);
}, t.prototype.removeEventDefsById = function (t) {
this.getSources().forEach(function (e) {
e.removeEventDefsById(t);
}), this.currentPeriod && this.currentPeriod.removeEventDefsById(t);
}, t.prototype.removeAllEventDefs = function () {
this.getSources().forEach(function (t) {
t.removeAllEventDefs();
}), this.currentPeriod && this.currentPeriod.removeAllEventDefs();
}, t.prototype.mutateEventsWithId = function (t, e) {
var n,
r = this.currentPeriod,
i = [];
return r ? (r.freeze(), n = r.getEventDefsById(t), n.forEach(function (t) {
r.removeEventDef(t), i.push(e.mutateSingle(t)), r.addEventDef(t);
}), r.thaw(), function () {
r.freeze();
for (var t = 0; t < n.length; t++) r.removeEventDef(n[t]), i[t](), r.addEventDef(n[t]);
r.thaw();
}) : function () {};
}, t.prototype.buildMutatedEventInstanceGroup = function (t, e) {
var n,
r,
i = this.getEventDefsById(t),
o = [];
for (n = 0; n < i.length; n++) (r = i[n].clone()) instanceof d["default"] && (e.mutateSingle(r), o.push.apply(o, r.buildInstances()));
return new c["default"](o);
}, t.prototype.freeze = function () {
this.currentPeriod && this.currentPeriod.freeze();
}, t.prototype.thaw = function () {
this.currentPeriod && this.currentPeriod.thaw();
}, t.prototype.getEventDefsById = function (t) {
return this.currentPeriod.getEventDefsById(t);
}, t.prototype.getEventInstances = function () {
return this.currentPeriod.getEventInstances();
}, t.prototype.getEventInstancesWithId = function (t) {
return this.currentPeriod.getEventInstancesWithId(t);
}, t.prototype.getEventInstancesWithoutId = function (t) {
return this.currentPeriod.getEventInstancesWithoutId(t);
}, t;
}();
e["default"] = f, p["default"].mixInto(f), h["default"].mixInto(f);
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(22),
o = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e;
}(i["default"]);
e["default"] = o, o.prototype.classes = {
widget: "fc-unthemed",
widgetHeader: "fc-widget-header",
widgetContent: "fc-widget-content",
buttonGroup: "fc-button-group",
button: "fc-button",
cornerLeft: "fc-corner-left",
cornerRight: "fc-corner-right",
stateDefault: "fc-state-default",
stateActive: "fc-state-active",
stateDisabled: "fc-state-disabled",
stateHover: "fc-state-hover",
stateDown: "fc-state-down",
popoverHeader: "fc-widget-header",
popoverContent: "fc-widget-content",
headerRow: "fc-widget-header",
dayRow: "fc-widget-content",
listView: "fc-widget-content"
}, o.prototype.baseIconClass = "fc-icon", o.prototype.iconClasses = {
close: "fc-icon-x",
prev: "fc-icon-left-single-arrow",
next: "fc-icon-right-single-arrow",
prevYear: "fc-icon-left-double-arrow",
nextYear: "fc-icon-right-double-arrow"
}, o.prototype.iconOverrideOption = "buttonIcons", o.prototype.iconOverrideCustomButtonOption = "icon", o.prototype.iconOverridePrefix = "fc-icon-";
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(22),
o = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e;
}(i["default"]);
e["default"] = o, o.prototype.classes = {
widget: "ui-widget",
widgetHeader: "ui-widget-header",
widgetContent: "ui-widget-content",
buttonGroup: "fc-button-group",
button: "ui-button",
cornerLeft: "ui-corner-left",
cornerRight: "ui-corner-right",
stateDefault: "ui-state-default",
stateActive: "ui-state-active",
stateDisabled: "ui-state-disabled",
stateHover: "ui-state-hover",
stateDown: "ui-state-down",
today: "ui-state-highlight",
popoverHeader: "ui-widget-header",
popoverContent: "ui-widget-content",
headerRow: "ui-widget-header",
dayRow: "ui-widget-content",
listView: "ui-widget-content"
}, o.prototype.baseIconClass = "ui-icon", o.prototype.iconClasses = {
close: "ui-icon-closethick",
prev: "ui-icon-circle-triangle-w",
next: "ui-icon-circle-triangle-e",
prevYear: "ui-icon-seek-prev",
nextYear: "ui-icon-seek-next"
}, o.prototype.iconOverrideOption = "themeButtonIcons", o.prototype.iconOverrideCustomButtonOption = "themeIcon", o.prototype.iconOverridePrefix = "ui-icon-";
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(21),
s = n(6),
a = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.parse = function (t, e) {
var n;
return i.isFunction(t.events) ? n = t : i.isFunction(t) && (n = {
events: t
}), !!n && s["default"].parse.call(this, n, e);
}, e.prototype.fetch = function (t, e, n) {
var r = this;
return this.calendar.pushLoading(), o["default"].construct(function (i) {
r.func.call(r.calendar, t.clone(), e.clone(), n, function (t) {
r.calendar.popLoading(), i(r.parseEventDefs(t));
});
});
}, e.prototype.getPrimitive = function () {
return this.func;
}, e.prototype.applyManualStandardProps = function (e) {
var n = t.prototype.applyManualStandardProps.call(this, e);
return this.func = e.events, n;
}, e;
}(s["default"]);
e["default"] = a, a.defineStandardProps({
events: !1
});
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(4),
s = n(21),
a = n(6),
l = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.parse = function (t, e) {
var n;
return "string" == typeof t.url ? n = t : "string" == typeof t && (n = {
url: t
}), !!n && a["default"].parse.call(this, n, e);
}, e.prototype.fetch = function (t, n, r) {
var a = this,
l = this.ajaxSettings,
u = l.success,
d = l.error,
c = this.buildRequestParams(t, n, r);
return this.calendar.pushLoading(), s["default"].construct(function (t, n) {
i.ajax(i.extend({}, e.AJAX_DEFAULTS, l, {
url: a.url,
data: c,
success: function success(e, r, s) {
var l;
a.calendar.popLoading(), e ? (l = o.applyAll(u, a, [e, r, s]), i.isArray(l) && (e = l), t(a.parseEventDefs(e))) : n();
},
error: function error(t, e, r) {
a.calendar.popLoading(), o.applyAll(d, a, [t, e, r]), n();
}
}));
});
}, e.prototype.buildRequestParams = function (t, e, n) {
var r,
o,
s,
a,
l = this.calendar,
u = this.ajaxSettings,
d = {};
return r = this.startParam, null == r && (r = l.opt("startParam")), o = this.endParam, null == o && (o = l.opt("endParam")), s = this.timezoneParam, null == s && (s = l.opt("timezoneParam")), a = i.isFunction(u.data) ? u.data() : u.data || {}, i.extend(d, a), d[r] = t.format(), d[o] = e.format(), n && "local" !== n && (d[s] = n), d;
}, e.prototype.getPrimitive = function () {
return this.url;
}, e.prototype.applyMiscProps = function (t) {
this.ajaxSettings = t;
}, e.AJAX_DEFAULTS = {
dataType: "json",
cache: !1
}, e;
}(a["default"]);
e["default"] = l, l.defineStandardProps({
url: !0,
startParam: !0,
endParam: !0,
timezoneParam: !0
});
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var n = function () {
function t(t) {
this.items = t || [];
}
return t.prototype.proxyCall = function (t) {
for (var e = [], n = 1; n < arguments.length; n++) e[n - 1] = arguments[n];
var r = [];
return this.items.forEach(function (n) {
r.push(n[t].apply(n, e));
}), r;
}, t;
}();
e["default"] = n;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(4),
o = n(7),
s = function () {
function t(t, e) {
this.isFollowing = !1, this.isHidden = !1, this.isAnimating = !1, this.options = e = e || {}, this.sourceEl = t, this.parentEl = e.parentEl ? r(e.parentEl) : t.parent();
}
return t.prototype.start = function (t) {
this.isFollowing || (this.isFollowing = !0, this.y0 = i.getEvY(t), this.x0 = i.getEvX(t), this.topDelta = 0, this.leftDelta = 0, this.isHidden || this.updatePosition(), i.getEvIsTouch(t) ? this.listenTo(r(document), "touchmove", this.handleMove) : this.listenTo(r(document), "mousemove", this.handleMove));
}, t.prototype.stop = function (t, e) {
var n = this,
i = this.options.revertDuration,
o = function o() {
n.isAnimating = !1, n.removeElement(), n.top0 = n.left0 = null, e && e();
};
this.isFollowing && !this.isAnimating && (this.isFollowing = !1, this.stopListeningTo(r(document)), t && i && !this.isHidden ? (this.isAnimating = !0, this.el.animate({
top: this.top0,
left: this.left0
}, {
duration: i,
complete: o
})) : o());
}, t.prototype.getEl = function () {
var t = this.el;
return t || (t = this.el = this.sourceEl.clone().addClass(this.options.additionalClass || "").css({
position: "absolute",
visibility: "",
display: this.isHidden ? "none" : "",
margin: 0,
right: "auto",
bottom: "auto",
width: this.sourceEl.width(),
height: this.sourceEl.height(),
opacity: this.options.opacity || "",
zIndex: this.options.zIndex
}), t.addClass("fc-unselectable"), t.appendTo(this.parentEl)), t;
}, t.prototype.removeElement = function () {
this.el && (this.el.remove(), this.el = null);
}, t.prototype.updatePosition = function () {
var t, e;
this.getEl(), null == this.top0 && (t = this.sourceEl.offset(), e = this.el.offsetParent().offset(), this.top0 = t.top - e.top, this.left0 = t.left - e.left), this.el.css({
top: this.top0 + this.topDelta,
left: this.left0 + this.leftDelta
});
}, t.prototype.handleMove = function (t) {
this.topDelta = i.getEvY(t) - this.y0, this.leftDelta = i.getEvX(t) - this.x0, this.isHidden || this.updatePosition();
}, t.prototype.hide = function () {
this.isHidden || (this.isHidden = !0, this.el && this.el.hide());
}, t.prototype.show = function () {
this.isHidden && (this.isHidden = !1, this.updatePosition(), this.getEl().show());
}, t;
}();
e["default"] = s, o["default"].mixInto(s);
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(4),
o = n(7),
s = function () {
function t(t) {
this.isHidden = !0, this.margin = 10, this.options = t || {};
}
return t.prototype.show = function () {
this.isHidden && (this.el || this.render(), this.el.show(), this.position(), this.isHidden = !1, this.trigger("show"));
}, t.prototype.hide = function () {
this.isHidden || (this.el.hide(), this.isHidden = !0, this.trigger("hide"));
}, t.prototype.render = function () {
var t = this,
e = this.options;
this.el = r('<div class="fc-popover">').addClass(e.className || "").css({
top: 0,
left: 0
}).append(e.content).appendTo(e.parentEl), this.el.on("click", ".fc-close", function () {
t.hide();
}), e.autoHide && this.listenTo(r(document), "mousedown", this.documentMousedown);
}, t.prototype.documentMousedown = function (t) {
this.el && !r(t.target).closest(this.el).length && this.hide();
}, t.prototype.removeElement = function () {
this.hide(), this.el && (this.el.remove(), this.el = null), this.stopListeningTo(r(document), "mousedown");
}, t.prototype.position = function () {
var t,
e,
n,
o,
s,
a = this.options,
l = this.el.offsetParent().offset(),
u = this.el.outerWidth(),
d = this.el.outerHeight(),
c = r(window),
p = i.getScrollParent(this.el);
o = a.top || 0, s = void 0 !== a.left ? a.left : void 0 !== a.right ? a.right - u : 0, p.is(window) || p.is(document) ? (p = c, t = 0, e = 0) : (n = p.offset(), t = n.top, e = n.left), t += c.scrollTop(), e += c.scrollLeft(), !1 !== a.viewportConstrain && (o = Math.min(o, t + p.outerHeight() - d - this.margin), o = Math.max(o, t + this.margin), s = Math.min(s, e + p.outerWidth() - u - this.margin), s = Math.max(s, e + this.margin)), this.el.css({
top: o - l.top,
left: s - l.left
});
}, t.prototype.trigger = function (t) {
this.options[t] && this.options[t].apply(this, Array.prototype.slice.call(arguments, 1));
}, t;
}();
e["default"] = s, o["default"].mixInto(s);
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(13),
i = function () {
function t() {
this.q = [], this.isPaused = !1, this.isRunning = !1;
}
return t.prototype.queue = function () {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
this.q.push.apply(this.q, t), this.tryStart();
}, t.prototype.pause = function () {
this.isPaused = !0;
}, t.prototype.resume = function () {
this.isPaused = !1, this.tryStart();
}, t.prototype.getIsIdle = function () {
return !this.isRunning && !this.isPaused;
}, t.prototype.tryStart = function () {
!this.isRunning && this.canRunNext() && (this.isRunning = !0, this.trigger("start"), this.runRemaining());
}, t.prototype.canRunNext = function () {
return !this.isPaused && this.q.length;
}, t.prototype.runRemaining = function () {
var t,
e,
n = this;
do {
if (t = this.q.shift(), (e = this.runTask(t)) && e.then) return void e.then(function () {
n.canRunNext() && n.runRemaining();
});
} while (this.canRunNext());
this.trigger("stop"), this.isRunning = !1, this.tryStart();
}, t.prototype.runTask = function (t) {
return t();
}, t;
}();
e["default"] = i, r["default"].mixInto(i);
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(228),
o = function (t) {
function e(e) {
var n = t.call(this) || this;
return n.waitsByNamespace = e || {}, n;
}
return r.__extends(e, t), e.prototype.queue = function (t, e, n) {
var r,
i = {
func: t,
namespace: e,
type: n
};
e && (r = this.waitsByNamespace[e]), this.waitNamespace && (e === this.waitNamespace && null != r ? this.delayWait(r) : (this.clearWait(), this.tryStart())), this.compoundTask(i) && (this.waitNamespace || null == r ? this.tryStart() : this.startWait(e, r));
}, e.prototype.startWait = function (t, e) {
this.waitNamespace = t, this.spawnWait(e);
}, e.prototype.delayWait = function (t) {
clearTimeout(this.waitId), this.spawnWait(t);
}, e.prototype.spawnWait = function (t) {
var e = this;
this.waitId = setTimeout(function () {
e.waitNamespace = null, e.tryStart();
}, t);
}, e.prototype.clearWait = function () {
this.waitNamespace && (clearTimeout(this.waitId), this.waitId = null, this.waitNamespace = null);
}, e.prototype.canRunNext = function () {
if (!t.prototype.canRunNext.call(this)) return !1;
if (this.waitNamespace) {
for (var e = this.q, n = 0; n < e.length; n++) if (e[n].namespace !== this.waitNamespace) return !0;
return !1;
}
return !0;
}, e.prototype.runTask = function (t) {
t.func();
}, e.prototype.compoundTask = function (t) {
var e,
n,
r = this.q,
i = !0;
if (t.namespace && "destroy" === t.type) for (e = r.length - 1; e >= 0; e--) if (n = r[e], n.namespace === t.namespace) switch (n.type) {
case "init":
i = !1;
case "add":
case "remove":
r.splice(e, 1);
}
return i && r.push(t), i;
}, e;
}(i["default"]);
e["default"] = o;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(51),
o = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.setElement = function (t) {
this.el = t, this.bindGlobalHandlers(), this.renderSkeleton(), this.set("isInDom", !0);
}, e.prototype.removeElement = function () {
this.unset("isInDom"), this.unrenderSkeleton(), this.unbindGlobalHandlers(), this.el.remove();
}, e.prototype.bindGlobalHandlers = function () {}, e.prototype.unbindGlobalHandlers = function () {}, e.prototype.renderSkeleton = function () {}, e.prototype.unrenderSkeleton = function () {}, e;
}(i["default"]);
e["default"] = o;
}, function (t, e, n) {
function r(t) {
var e,
n,
r,
i = [];
for (e in t) for (n = t[e].eventInstances, r = 0; r < n.length; r++) i.push(n[r].toLegacy());
return i;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var i = n(2),
o = n(3),
s = n(0),
a = n(4),
l = n(11),
u = n(49),
d = n(230),
c = n(19),
p = function (t) {
function e(n, r) {
var i = t.call(this) || this;
return i.isRTL = !1, i.hitsNeededDepth = 0, i.hasAllDayBusinessHours = !1, i.isDatesRendered = !1, n && (i.view = n), r && (i.options = r), i.uid = String(e.guid++), i.childrenByUid = {}, i.nextDayThreshold = s.duration(i.opt("nextDayThreshold")), i.isRTL = i.opt("isRTL"), i.fillRendererClass && (i.fillRenderer = new i.fillRendererClass(i)), i.eventRendererClass && (i.eventRenderer = new i.eventRendererClass(i, i.fillRenderer)), i.helperRendererClass && i.eventRenderer && (i.helperRenderer = new i.helperRendererClass(i, i.eventRenderer)), i.businessHourRendererClass && i.fillRenderer && (i.businessHourRenderer = new i.businessHourRendererClass(i, i.fillRenderer)), i;
}
return i.__extends(e, t), e.prototype.addChild = function (t) {
return !this.childrenByUid[t.uid] && (this.childrenByUid[t.uid] = t, !0);
}, e.prototype.removeChild = function (t) {
return !!this.childrenByUid[t.uid] && (delete this.childrenByUid[t.uid], !0);
}, e.prototype.updateSize = function (t, e, n) {
this.callChildren("updateSize", arguments);
}, e.prototype.opt = function (t) {
return this._getView().opt(t);
}, e.prototype.publiclyTrigger = function () {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
var n = this._getCalendar();
return n.publiclyTrigger.apply(n, t);
}, e.prototype.hasPublicHandlers = function () {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
var n = this._getCalendar();
return n.hasPublicHandlers.apply(n, t);
}, e.prototype.executeDateRender = function (t) {
this.dateProfile = t, this.renderDates(t), this.isDatesRendered = !0, this.callChildren("executeDateRender", arguments);
}, e.prototype.executeDateUnrender = function () {
this.callChildren("executeDateUnrender", arguments), this.dateProfile = null, this.unrenderDates(), this.isDatesRendered = !1;
}, e.prototype.renderDates = function (t) {}, e.prototype.unrenderDates = function () {}, e.prototype.getNowIndicatorUnit = function () {}, e.prototype.renderNowIndicator = function (t) {
this.callChildren("renderNowIndicator", arguments);
}, e.prototype.unrenderNowIndicator = function () {
this.callChildren("unrenderNowIndicator", arguments);
}, e.prototype.renderBusinessHours = function (t) {
this.businessHourRenderer && this.businessHourRenderer.render(t), this.callChildren("renderBusinessHours", arguments);
}, e.prototype.unrenderBusinessHours = function () {
this.callChildren("unrenderBusinessHours", arguments), this.businessHourRenderer && this.businessHourRenderer.unrender();
}, e.prototype.executeEventRender = function (t) {
this.eventRenderer ? (this.eventRenderer.rangeUpdated(), this.eventRenderer.render(t)) : this.renderEvents && this.renderEvents(r(t)), this.callChildren("executeEventRender", arguments);
}, e.prototype.executeEventUnrender = function () {
this.callChildren("executeEventUnrender", arguments), this.eventRenderer ? this.eventRenderer.unrender() : this.destroyEvents && this.destroyEvents();
}, e.prototype.getBusinessHourSegs = function () {
var t = this.getOwnBusinessHourSegs();
return this.iterChildren(function (e) {
t.push.apply(t, e.getBusinessHourSegs());
}), t;
}, e.prototype.getOwnBusinessHourSegs = function () {
return this.businessHourRenderer ? this.businessHourRenderer.getSegs() : [];
}, e.prototype.getEventSegs = function () {
var t = this.getOwnEventSegs();
return this.iterChildren(function (e) {
t.push.apply(t, e.getEventSegs());
}), t;
}, e.prototype.getOwnEventSegs = function () {
return this.eventRenderer ? this.eventRenderer.getSegs() : [];
}, e.prototype.triggerAfterEventsRendered = function () {
this.triggerAfterEventSegsRendered(this.getEventSegs()), this.publiclyTrigger("eventAfterAllRender", {
context: this,
args: [this]
});
}, e.prototype.triggerAfterEventSegsRendered = function (t) {
var e = this;
this.hasPublicHandlers("eventAfterRender") && t.forEach(function (t) {
var n;
t.el && (n = t.footprint.getEventLegacy(), e.publiclyTrigger("eventAfterRender", {
context: n,
args: [n, t.el, e]
}));
});
}, e.prototype.triggerBeforeEventsDestroyed = function () {
this.triggerBeforeEventSegsDestroyed(this.getEventSegs());
}, e.prototype.triggerBeforeEventSegsDestroyed = function (t) {
var e = this;
this.hasPublicHandlers("eventDestroy") && t.forEach(function (t) {
var n;
t.el && (n = t.footprint.getEventLegacy(), e.publiclyTrigger("eventDestroy", {
context: n,
args: [n, t.el, e]
}));
});
}, e.prototype.showEventsWithId = function (t) {
this.getEventSegs().forEach(function (e) {
e.footprint.eventDef.id === t && e.el && e.el.css("visibility", "");
}), this.callChildren("showEventsWithId", arguments);
}, e.prototype.hideEventsWithId = function (t) {
this.getEventSegs().forEach(function (e) {
e.footprint.eventDef.id === t && e.el && e.el.css("visibility", "hidden");
}), this.callChildren("hideEventsWithId", arguments);
}, e.prototype.renderDrag = function (t, e, n) {
var r = !1;
return this.iterChildren(function (i) {
i.renderDrag(t, e, n) && (r = !0);
}), r;
}, e.prototype.unrenderDrag = function () {
this.callChildren("unrenderDrag", arguments);
}, e.prototype.renderEventResize = function (t, e, n) {
this.callChildren("renderEventResize", arguments);
}, e.prototype.unrenderEventResize = function () {
this.callChildren("unrenderEventResize", arguments);
}, e.prototype.renderSelectionFootprint = function (t) {
this.renderHighlight(t), this.callChildren("renderSelectionFootprint", arguments);
}, e.prototype.unrenderSelection = function () {
this.unrenderHighlight(), this.callChildren("unrenderSelection", arguments);
}, e.prototype.renderHighlight = function (t) {
this.fillRenderer && this.fillRenderer.renderFootprint("highlight", t, {
getClasses: function getClasses() {
return ["fc-highlight"];
}
}), this.callChildren("renderHighlight", arguments);
}, e.prototype.unrenderHighlight = function () {
this.fillRenderer && this.fillRenderer.unrender("highlight"), this.callChildren("unrenderHighlight", arguments);
}, e.prototype.hitsNeeded = function () {
this.hitsNeededDepth++ || this.prepareHits(), this.callChildren("hitsNeeded", arguments);
}, e.prototype.hitsNotNeeded = function () {
this.hitsNeededDepth && ! --this.hitsNeededDepth && this.releaseHits(), this.callChildren("hitsNotNeeded", arguments);
}, e.prototype.prepareHits = function () {}, e.prototype.releaseHits = function () {}, e.prototype.queryHit = function (t, e) {
var n,
r,
i = this.childrenByUid;
for (n in i) if (r = i[n].queryHit(t, e)) break;
return r;
}, e.prototype.getSafeHitFootprint = function (t) {
var e = this.getHitFootprint(t);
return this.dateProfile.activeUnzonedRange.containsRange(e.unzonedRange) ? e : null;
}, e.prototype.getHitFootprint = function (t) {}, e.prototype.getHitEl = function (t) {}, e.prototype.eventRangesToEventFootprints = function (t) {
var e,
n = [];
for (e = 0; e < t.length; e++) n.push.apply(n, this.eventRangeToEventFootprints(t[e]));
return n;
}, e.prototype.eventRangeToEventFootprints = function (t) {
return [c.eventRangeToEventFootprint(t)];
}, e.prototype.eventFootprintsToSegs = function (t) {
var e,
n = [];
for (e = 0; e < t.length; e++) n.push.apply(n, this.eventFootprintToSegs(t[e]));
return n;
}, e.prototype.eventFootprintToSegs = function (t) {
var e,
n,
r,
i = t.componentFootprint.unzonedRange;
for (e = this.componentFootprintToSegs(t.componentFootprint), n = 0; n < e.length; n++) r = e[n], i.isStart || (r.isStart = !1), i.isEnd || (r.isEnd = !1), r.footprint = t;
return e;
}, e.prototype.componentFootprintToSegs = function (t) {
return [];
}, e.prototype.callChildren = function (t, e) {
this.iterChildren(function (n) {
n[t].apply(n, e);
});
}, e.prototype.iterChildren = function (t) {
var e,
n = this.childrenByUid;
for (e in n) t(n[e]);
}, e.prototype._getCalendar = function () {
var t = this;
return t.calendar || t.view.calendar;
}, e.prototype._getView = function () {
return this.view;
}, e.prototype._getDateProfile = function () {
return this._getView().get("dateProfile");
}, e.prototype.buildGotoAnchorHtml = function (t, e, n) {
var r, i, s, u;
return o.isPlainObject(t) ? (r = t.date, i = t.type, s = t.forceOff) : r = t, r = l["default"](r), u = {
date: r.format("YYYY-MM-DD"),
type: i || "day"
}, "string" == typeof e && (n = e, e = null), e = e ? " " + a.attrsToStr(e) : "", n = n || "", !s && this.opt("navLinks") ? "<a" + e + ' data-goto="' + a.htmlEscape(JSON.stringify(u)) + '">' + n + "</a>" : "<span" + e + ">" + n + "</span>";
}, e.prototype.getAllDayHtml = function () {
return this.opt("allDayHtml") || a.htmlEscape(this.opt("allDayText"));
}, e.prototype.getDayClasses = function (t, e) {
var n,
r = this._getView(),
i = [];
return this.dateProfile.activeUnzonedRange.containsDate(t) ? (i.push("fc-" + a.dayIDs[t.day()]), r.isDateInOtherMonth(t, this.dateProfile) && i.push("fc-other-month"), n = r.calendar.getNow(), t.isSame(n, "day") ? (i.push("fc-today"), !0 !== e && i.push(r.calendar.theme.getClass("today"))) : t < n ? i.push("fc-past") : i.push("fc-future")) : i.push("fc-disabled-day"), i;
}, e.prototype.formatRange = function (t, e, n, r) {
var i = t.end;
return e && (i = i.clone().subtract(1)), u.formatRange(t.start, i, n, r, this.isRTL);
}, e.prototype.currentRangeAs = function (t) {
return this._getDateProfile().currentUnzonedRange.as(t);
}, e.prototype.computeDayRange = function (t) {
var e = this._getCalendar(),
n = e.msToUtcMoment(t.startMs, !0),
r = e.msToUtcMoment(t.endMs),
i = +r.time(),
o = r.clone().stripTime();
return i && i >= this.nextDayThreshold && o.add(1, "days"), o <= n && (o = n.clone().add(1, "days")), {
start: n,
end: o
};
}, e.prototype.isMultiDayRange = function (t) {
var e = this.computeDayRange(t);
return e.end.diff(e.start, "days") > 1;
}, e.guid = 0, e;
}(d["default"]);
e["default"] = p;
}, function (t, e, n) {
function r(t, e) {
return null == e ? t : i.isFunction(e) ? t.filter(e) : (e += "", t.filter(function (t) {
return t.id == e || t._id === e;
}));
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var i = n(3),
o = n(0),
s = n(4),
a = n(33),
l = n(225),
u = n(23),
d = n(13),
c = n(7),
p = n(257),
h = n(258),
f = n(259),
g = n(217),
v = n(32),
y = n(11),
m = n(5),
b = n(12),
w = n(16),
D = n(220),
E = n(218),
S = n(38),
C = n(36),
R = n(9),
T = n(39),
M = n(6),
I = n(57),
H = function () {
function t(t, e) {
this.loadingLevel = 0, this.ignoreUpdateViewSize = 0, this.freezeContentHeightDepth = 0, u["default"].needed(), this.el = t, this.viewsByType = {}, this.optionsManager = new h["default"](this, e), this.viewSpecManager = new f["default"](this.optionsManager, this), this.initMomentInternals(), this.initCurrentDate(), this.initEventManager(), this.constraints = new g["default"](this.eventManager, this), this.constructed();
}
return t.prototype.constructed = function () {}, t.prototype.getView = function () {
return this.view;
}, t.prototype.publiclyTrigger = function (t, e) {
var n,
r,
o = this.opt(t);
if (i.isPlainObject(e) ? (n = e.context, r = e.args) : i.isArray(e) && (r = e), null == n && (n = this.el[0]), r || (r = []), this.triggerWith(t, n, r), o) return o.apply(n, r);
}, t.prototype.hasPublicHandlers = function (t) {
return this.hasHandlers(t) || this.opt(t);
}, t.prototype.option = function (t, e) {
var n;
if ("string" == typeof t) {
if (void 0 === e) return this.optionsManager.get(t);
n = {}, n[t] = e, this.optionsManager.add(n);
} else "object" == _typeof(t) && this.optionsManager.add(t);
}, t.prototype.opt = function (t) {
return this.optionsManager.get(t);
}, t.prototype.instantiateView = function (t) {
var e = this.viewSpecManager.getViewSpec(t);
if (!e) throw new Error('View type "' + t + '" is not valid');
return new e["class"](this, e);
}, t.prototype.isValidViewType = function (t) {
return Boolean(this.viewSpecManager.getViewSpec(t));
}, t.prototype.changeView = function (t, e) {
e && (e.start && e.end ? this.optionsManager.recordOverrides({
visibleRange: e
}) : this.currentDate = this.moment(e).stripZone()), this.renderView(t);
}, t.prototype.zoomTo = function (t, e) {
var n;
e = e || "day", n = this.viewSpecManager.getViewSpec(e) || this.viewSpecManager.getUnitViewSpec(e), this.currentDate = t.clone(), this.renderView(n ? n.type : null);
}, t.prototype.initCurrentDate = function () {
var t = this.opt("defaultDate");
this.currentDate = null != t ? this.moment(t).stripZone() : this.getNow();
}, t.prototype.prev = function () {
var t = this.view,
e = t.dateProfileGenerator.buildPrev(t.get("dateProfile"));
e.isValid && (this.currentDate = e.date, this.renderView());
}, t.prototype.next = function () {
var t = this.view,
e = t.dateProfileGenerator.buildNext(t.get("dateProfile"));
e.isValid && (this.currentDate = e.date, this.renderView());
}, t.prototype.prevYear = function () {
this.currentDate.add(-1, "years"), this.renderView();
}, t.prototype.nextYear = function () {
this.currentDate.add(1, "years"), this.renderView();
}, t.prototype.today = function () {
this.currentDate = this.getNow(), this.renderView();
}, t.prototype.gotoDate = function (t) {
this.currentDate = this.moment(t).stripZone(), this.renderView();
}, t.prototype.incrementDate = function (t) {
this.currentDate.add(o.duration(t)), this.renderView();
}, t.prototype.getDate = function () {
return this.applyTimezone(this.currentDate);
}, t.prototype.pushLoading = function () {
this.loadingLevel++ || this.publiclyTrigger("loading", [!0, this.view]);
}, t.prototype.popLoading = function () {
--this.loadingLevel || this.publiclyTrigger("loading", [!1, this.view]);
}, t.prototype.render = function () {
this.contentEl ? this.elementVisible() && (this.calcSize(), this.updateViewSize()) : this.initialRender();
}, t.prototype.initialRender = function () {
var t = this,
e = this.el;
e.addClass("fc"), e.on("click.fc", "a[data-goto]", function (e) {
var n = i(e.currentTarget),
r = n.data("goto"),
o = t.moment(r.date),
a = r.type,
l = t.view.opt("navLink" + s.capitaliseFirstLetter(a) + "Click");
"function" == typeof l ? l(o, e) : ("string" == typeof l && (a = l), t.zoomTo(o, a));
}), this.optionsManager.watch("settingTheme", ["?theme", "?themeSystem"], function (n) {
var r = I.getThemeSystemClass(n.themeSystem || n.theme),
i = new r(t.optionsManager),
o = i.getClass("widget");
t.theme = i, o && e.addClass(o);
}, function () {
var n = t.theme.getClass("widget");
t.theme = null, n && e.removeClass(n);
}), this.optionsManager.watch("settingBusinessHourGenerator", ["?businessHours"], function (e) {
t.businessHourGenerator = new E["default"](e.businessHours, t), t.view && t.view.set("businessHourGenerator", t.businessHourGenerator);
}, function () {
t.businessHourGenerator = null;
}), this.optionsManager.watch("applyingDirClasses", ["?isRTL", "?locale"], function (t) {
e.toggleClass("fc-ltr", !t.isRTL), e.toggleClass("fc-rtl", t.isRTL);
}), this.contentEl = i("<div class='fc-view-container'>").prependTo(e), this.initToolbars(), this.renderHeader(), this.renderFooter(), this.renderView(this.opt("defaultView")), this.opt("handleWindowResize") && i(window).resize(this.windowResizeProxy = s.debounce(this.windowResize.bind(this), this.opt("windowResizeDelay")));
}, t.prototype.destroy = function () {
this.view && this.clearView(), this.toolbarsManager.proxyCall("removeElement"), this.contentEl.remove(), this.el.removeClass("fc fc-ltr fc-rtl"), this.optionsManager.unwatch("settingTheme"), this.optionsManager.unwatch("settingBusinessHourGenerator"), this.el.off(".fc"), this.windowResizeProxy && (i(window).unbind("resize", this.windowResizeProxy), this.windowResizeProxy = null), u["default"].unneeded();
}, t.prototype.elementVisible = function () {
return this.el.is(":visible");
}, t.prototype.bindViewHandlers = function (t) {
var e = this;
t.watch("titleForCalendar", ["title"], function (n) {
t === e.view && e.setToolbarsTitle(n.title);
}), t.watch("dateProfileForCalendar", ["dateProfile"], function (n) {
t === e.view && (e.currentDate = n.dateProfile.date, e.updateToolbarButtons(n.dateProfile));
});
}, t.prototype.unbindViewHandlers = function (t) {
t.unwatch("titleForCalendar"), t.unwatch("dateProfileForCalendar");
}, t.prototype.renderView = function (t) {
var e,
n = this.view;
this.freezeContentHeight(), n && t && n.type !== t && this.clearView(), !this.view && t && (e = this.view = this.viewsByType[t] || (this.viewsByType[t] = this.instantiateView(t)), this.bindViewHandlers(e), e.startBatchRender(), e.setElement(i("<div class='fc-view fc-" + t + "-view'>").appendTo(this.contentEl)), this.toolbarsManager.proxyCall("activateButton", t)), this.view && (this.view.get("businessHourGenerator") !== this.businessHourGenerator && this.view.set("businessHourGenerator", this.businessHourGenerator), this.view.setDate(this.currentDate), e && e.stopBatchRender()), this.thawContentHeight();
}, t.prototype.clearView = function () {
var t = this.view;
this.toolbarsManager.proxyCall("deactivateButton", t.type), this.unbindViewHandlers(t), t.removeElement(), t.unsetDate(), this.view = null;
}, t.prototype.reinitView = function () {
var t = this.view,
e = t.queryScroll();
this.freezeContentHeight(), this.clearView(), this.calcSize(), this.renderView(t.type), this.view.applyScroll(e), this.thawContentHeight();
}, t.prototype.getSuggestedViewHeight = function () {
return null == this.suggestedViewHeight && this.calcSize(), this.suggestedViewHeight;
}, t.prototype.isHeightAuto = function () {
return "auto" === this.opt("contentHeight") || "auto" === this.opt("height");
}, t.prototype.updateViewSize = function (t) {
void 0 === t && (t = !1);
var e,
n = this.view;
if (!this.ignoreUpdateViewSize && n) return t && (this.calcSize(), e = n.queryScroll()), this.ignoreUpdateViewSize++, n.updateSize(this.getSuggestedViewHeight(), this.isHeightAuto(), t), this.ignoreUpdateViewSize--, t && n.applyScroll(e), !0;
}, t.prototype.calcSize = function () {
this.elementVisible() && this._calcSize();
}, t.prototype._calcSize = function () {
var t = this.opt("contentHeight"),
e = this.opt("height");
this.suggestedViewHeight = "number" == typeof t ? t : "function" == typeof t ? t() : "number" == typeof e ? e - this.queryToolbarsHeight() : "function" == typeof e ? e() - this.queryToolbarsHeight() : "parent" === e ? this.el.parent().height() - this.queryToolbarsHeight() : Math.round(this.contentEl.width() / Math.max(this.opt("aspectRatio"), .5));
}, t.prototype.windowResize = function (t) {
t.target === window && this.view && this.view.isDatesRendered && this.updateViewSize(!0) && this.publiclyTrigger("windowResize", [this.view]);
}, t.prototype.freezeContentHeight = function () {
this.freezeContentHeightDepth++ || this.forceFreezeContentHeight();
}, t.prototype.forceFreezeContentHeight = function () {
this.contentEl.css({
width: "100%",
height: this.contentEl.height(),
overflow: "hidden"
});
}, t.prototype.thawContentHeight = function () {
this.freezeContentHeightDepth--, this.contentEl.css({
width: "",
height: "",
overflow: ""
}), this.freezeContentHeightDepth && this.forceFreezeContentHeight();
}, t.prototype.initToolbars = function () {
this.header = new p["default"](this, this.computeHeaderOptions()), this.footer = new p["default"](this, this.computeFooterOptions()), this.toolbarsManager = new l["default"]([this.header, this.footer]);
}, t.prototype.computeHeaderOptions = function () {
return {
extraClasses: "fc-header-toolbar",
layout: this.opt("header")
};
}, t.prototype.computeFooterOptions = function () {
return {
extraClasses: "fc-footer-toolbar",
layout: this.opt("footer")
};
}, t.prototype.renderHeader = function () {
var t = this.header;
t.setToolbarOptions(this.computeHeaderOptions()), t.render(), t.el && this.el.prepend(t.el);
}, t.prototype.renderFooter = function () {
var t = this.footer;
t.setToolbarOptions(this.computeFooterOptions()), t.render(), t.el && this.el.append(t.el);
}, t.prototype.setToolbarsTitle = function (t) {
this.toolbarsManager.proxyCall("updateTitle", t);
}, t.prototype.updateToolbarButtons = function (t) {
var e = this.getNow(),
n = this.view,
r = n.dateProfileGenerator.build(e),
i = n.dateProfileGenerator.buildPrev(n.get("dateProfile")),
o = n.dateProfileGenerator.buildNext(n.get("dateProfile"));
this.toolbarsManager.proxyCall(r.isValid && !t.currentUnzonedRange.containsDate(e) ? "enableButton" : "disableButton", "today"), this.toolbarsManager.proxyCall(i.isValid ? "enableButton" : "disableButton", "prev"), this.toolbarsManager.proxyCall(o.isValid ? "enableButton" : "disableButton", "next");
}, t.prototype.queryToolbarsHeight = function () {
return this.toolbarsManager.items.reduce(function (t, e) {
return t + (e.el ? e.el.outerHeight(!0) : 0);
}, 0);
}, t.prototype.select = function (t, e) {
this.view.select(this.buildSelectFootprint.apply(this, arguments));
}, t.prototype.unselect = function () {
this.view && this.view.unselect();
}, t.prototype.buildSelectFootprint = function (t, e) {
var n,
r = this.moment(t).stripZone();
return n = e ? this.moment(e).stripZone() : r.hasTime() ? r.clone().add(this.defaultTimedEventDuration) : r.clone().add(this.defaultAllDayEventDuration), new b["default"](new m["default"](r, n), !r.hasTime());
}, t.prototype.initMomentInternals = function () {
var t = this;
this.defaultAllDayEventDuration = o.duration(this.opt("defaultAllDayEventDuration")), this.defaultTimedEventDuration = o.duration(this.opt("defaultTimedEventDuration")), this.optionsManager.watch("buildingMomentLocale", ["?locale", "?monthNames", "?monthNamesShort", "?dayNames", "?dayNamesShort", "?firstDay", "?weekNumberCalculation"], function (e) {
var n,
r = e.weekNumberCalculation,
i = e.firstDay;
"iso" === r && (r = "ISO");
var o = Object.create(v.getMomentLocaleData(e.locale));
e.monthNames && (o._months = e.monthNames), e.monthNamesShort && (o._monthsShort = e.monthNamesShort), e.dayNames && (o._weekdays = e.dayNames), e.dayNamesShort && (o._weekdaysShort = e.dayNamesShort), null == i && "ISO" === r && (i = 1), null != i && (n = Object.create(o._week), n.dow = i, o._week = n), "ISO" !== r && "local" !== r && "function" != typeof r || (o._fullCalendar_weekCalc = r), t.localeData = o, t.currentDate && t.localizeMoment(t.currentDate);
});
}, t.prototype.moment = function () {
for (var t = [], e = 0; e < arguments.length; e++) t[e] = arguments[e];
var n;
return "local" === this.opt("timezone") ? (n = y["default"].apply(null, t), n.hasTime() && n.local()) : n = "UTC" === this.opt("timezone") ? y["default"].utc.apply(null, t) : y["default"].parseZone.apply(null, t), this.localizeMoment(n), n;
}, t.prototype.msToMoment = function (t, e) {
var n = y["default"].utc(t);
return e ? n.stripTime() : n = this.applyTimezone(n), this.localizeMoment(n), n;
}, t.prototype.msToUtcMoment = function (t, e) {
var n = y["default"].utc(t);
return e && n.stripTime(), this.localizeMoment(n), n;
}, t.prototype.localizeMoment = function (t) {
t._locale = this.localeData;
}, t.prototype.getIsAmbigTimezone = function () {
return "local" !== this.opt("timezone") && "UTC" !== this.opt("timezone");
}, t.prototype.applyTimezone = function (t) {
if (!t.hasTime()) return t.clone();
var e,
n = this.moment(t.toArray()),
r = t.time().asMilliseconds() - n.time().asMilliseconds();
return r && (e = n.clone().add(r), t.time().asMilliseconds() - e.time().asMilliseconds() == 0 && (n = e)), n;
}, t.prototype.footprintToDateProfile = function (t, e) {
void 0 === e && (e = !1);
var n,
r = y["default"].utc(t.unzonedRange.startMs);
return e || (n = y["default"].utc(t.unzonedRange.endMs)), t.isAllDay ? (r.stripTime(), n && n.stripTime()) : (r = this.applyTimezone(r), n && (n = this.applyTimezone(n))), this.localizeMoment(r), n && this.localizeMoment(n), new w["default"](r, n, this);
}, t.prototype.getNow = function () {
var t = this.opt("now");
return "function" == typeof t && (t = t()), this.moment(t).stripZone();
}, t.prototype.humanizeDuration = function (t) {
return t.locale(this.opt("locale")).humanize();
}, t.prototype.parseUnzonedRange = function (t) {
var e = null,
n = null;
return t.start && (e = this.moment(t.start).stripZone()), t.end && (n = this.moment(t.end).stripZone()), e || n ? e && n && n.isBefore(e) ? null : new m["default"](e, n) : null;
}, t.prototype.initEventManager = function () {
var t = this,
e = new D["default"](this),
n = this.opt("eventSources") || [],
r = this.opt("events");
this.eventManager = e, r && n.unshift(r), e.on("release", function (e) {
t.trigger("eventsReset", e);
}), e.freeze(), n.forEach(function (n) {
var r = S["default"].parse(n, t);
r && e.addSource(r);
}), e.thaw();
}, t.prototype.requestEvents = function (t, e) {
return this.eventManager.requestEvents(t, e, this.opt("timezone"), !this.opt("lazyFetching"));
}, t.prototype.getEventEnd = function (t) {
return t.end ? t.end.clone() : this.getDefaultEventEnd(t.allDay, t.start);
}, t.prototype.getDefaultEventEnd = function (t, e) {
var n = e.clone();
return t ? n.stripTime().add(this.defaultAllDayEventDuration) : n.add(this.defaultTimedEventDuration), this.getIsAmbigTimezone() && n.stripZone(), n;
}, t.prototype.rerenderEvents = function () {
this.view.flash("displayingEvents");
}, t.prototype.refetchEvents = function () {
this.eventManager.refetchAllSources();
}, t.prototype.renderEvents = function (t, e) {
this.eventManager.freeze();
for (var n = 0; n < t.length; n++) this.renderEvent(t[n], e);
this.eventManager.thaw();
}, t.prototype.renderEvent = function (t, e) {
void 0 === e && (e = !1);
var n = this.eventManager,
r = C["default"].parse(t, t.source || n.stickySource);
r && n.addEventDef(r, e);
}, t.prototype.removeEvents = function (t) {
var e,
n,
i = this.eventManager,
o = [],
s = {};
if (null == t) i.removeAllEventDefs();else {
for (i.getEventInstances().forEach(function (t) {
o.push(t.toLegacy());
}), o = r(o, t), n = 0; n < o.length; n++) e = this.eventManager.getEventDefByUid(o[n]._id), s[e.id] = !0;
i.freeze();
for (n in s) i.removeEventDefsById(n);
i.thaw();
}
}, t.prototype.clientEvents = function (t) {
var e = [];
return this.eventManager.getEventInstances().forEach(function (t) {
e.push(t.toLegacy());
}), r(e, t);
}, t.prototype.updateEvents = function (t) {
this.eventManager.freeze();
for (var e = 0; e < t.length; e++) this.updateEvent(t[e]);
this.eventManager.thaw();
}, t.prototype.updateEvent = function (t) {
var e,
n,
r = this.eventManager.getEventDefByUid(t._id);
r instanceof R["default"] && (e = r.buildInstance(), n = T["default"].createFromRawProps(e, t, null), this.eventManager.mutateEventsWithId(r.id, n));
}, t.prototype.getEventSources = function () {
return this.eventManager.otherSources.slice();
}, t.prototype.getEventSourceById = function (t) {
return this.eventManager.getSourceById(M["default"].normalizeId(t));
}, t.prototype.addEventSource = function (t) {
var e = S["default"].parse(t, this);
e && this.eventManager.addSource(e);
}, t.prototype.removeEventSources = function (t) {
var e,
n,
r = this.eventManager;
if (null == t) this.eventManager.removeAllSources();else {
for (e = r.multiQuerySources(t), r.freeze(), n = 0; n < e.length; n++) r.removeSource(e[n]);
r.thaw();
}
}, t.prototype.removeEventSource = function (t) {
var e,
n = this.eventManager,
r = n.querySources(t);
for (n.freeze(), e = 0; e < r.length; e++) n.removeSource(r[e]);
n.thaw();
}, t.prototype.refetchEventSources = function (t) {
var e,
n = this.eventManager,
r = n.multiQuerySources(t);
for (n.freeze(), e = 0; e < r.length; e++) n.refetchSource(r[e]);
n.thaw();
}, t.defaults = a.globalDefaults, t.englishDefaults = a.englishDefaults, t.rtlDefaults = a.rtlDefaults, t;
}();
e["default"] = H, d["default"].mixInto(H), c["default"].mixInto(H);
}, function (t, e, n) {
function r(t) {
var e,
n,
r,
i,
l = a.dataAttrPrefix;
return l && (l += "-"), e = t.data(l + "event") || null, e && (e = "object" == _typeof(e) ? o.extend({}, e) : {}, n = e.start, null == n && (n = e.time), r = e.duration, i = e.stick, delete e.start, delete e.time, delete e.duration, delete e.stick), null == n && (n = t.data(l + "start")), null == n && (n = t.data(l + "time")), null == r && (r = t.data(l + "duration")), null == i && (i = t.data(l + "stick")), n = null != n ? s.duration(n) : null, r = null != r ? s.duration(r) : null, i = Boolean(i), {
eventProps: e,
startTime: n,
duration: r,
stick: i
};
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var i = n(2),
o = n(3),
s = n(0),
a = n(18),
l = n(4),
u = n(11),
d = n(7),
c = n(17),
p = n(9),
h = n(20),
f = n(6),
g = n(14),
v = function (t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.isDragging = !1, e;
}
return i.__extends(e, t), e.prototype.end = function () {
this.dragListener && this.dragListener.endInteraction();
}, e.prototype.bindToDocument = function () {
this.listenTo(o(document), {
dragstart: this.handleDragStart,
sortstart: this.handleDragStart
});
}, e.prototype.unbindFromDocument = function () {
this.stopListeningTo(o(document));
}, e.prototype.handleDragStart = function (t, e) {
var n, r;
this.opt("droppable") && (n = o((e ? e.item : null) || t.target), r = this.opt("dropAccept"), (o.isFunction(r) ? r.call(n[0], n) : n.is(r)) && (this.isDragging || this.listenToExternalDrag(n, t, e)));
}, e.prototype.listenToExternalDrag = function (t, e, n) {
var i,
o = this,
s = this.component,
a = this.view,
u = r(t);
(this.dragListener = new c["default"](s, {
interactionStart: function interactionStart() {
o.isDragging = !0;
},
hitOver: function hitOver(t) {
var e,
n = !0,
r = t.component.getSafeHitFootprint(t);
r ? (i = o.computeExternalDrop(r, u), i ? (e = new h["default"](i.buildInstances()), n = u.eventProps ? s.isEventInstanceGroupAllowed(e) : s.isExternalInstanceGroupAllowed(e)) : n = !1) : n = !1, n || (i = null, l.disableCursor()), i && s.renderDrag(s.eventRangesToEventFootprints(e.sliceRenderRanges(s.dateProfile.renderUnzonedRange, a.calendar)));
},
hitOut: function hitOut() {
i = null;
},
hitDone: function hitDone() {
l.enableCursor(), s.unrenderDrag();
},
interactionEnd: function interactionEnd(e) {
i && a.reportExternalDrop(i, Boolean(u.eventProps), Boolean(u.stick), t, e, n), o.isDragging = !1, o.dragListener = null;
}
})).startDrag(e);
}, e.prototype.computeExternalDrop = function (t, e) {
var n,
r = this.view.calendar,
i = u["default"].utc(t.unzonedRange.startMs).stripZone();
return t.isAllDay && (e.startTime ? i.time(e.startTime) : i.stripTime()), e.duration && (n = i.clone().add(e.duration)), i = r.applyTimezone(i), n && (n = r.applyTimezone(n)), p["default"].parse(o.extend({}, e.eventProps, {
start: i,
end: n
}), new f["default"](r));
}, e;
}(g["default"]);
e["default"] = v, d["default"].mixInto(v), a.dataAttrPrefix = "";
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(4),
s = n(39),
a = n(40),
l = n(17),
u = n(14),
d = function (t) {
function e(e, n) {
var r = t.call(this, e) || this;
return r.isResizing = !1, r.eventPointing = n, r;
}
return r.__extends(e, t), e.prototype.end = function () {
this.dragListener && this.dragListener.endInteraction();
}, e.prototype.bindToEl = function (t) {
var e = this.component;
e.bindSegHandlerToEl(t, "mousedown", this.handleMouseDown.bind(this)), e.bindSegHandlerToEl(t, "touchstart", this.handleTouchStart.bind(this));
}, e.prototype.handleMouseDown = function (t, e) {
this.component.canStartResize(t, e) && this.buildDragListener(t, i(e.target).is(".fc-start-resizer")).startInteraction(e, {
distance: 5
});
}, e.prototype.handleTouchStart = function (t, e) {
this.component.canStartResize(t, e) && this.buildDragListener(t, i(e.target).is(".fc-start-resizer")).startInteraction(e);
}, e.prototype.buildDragListener = function (t, e) {
var n,
r,
i = this,
s = this.component,
a = this.view,
u = a.calendar,
d = u.eventManager,
c = t.el,
p = t.footprint.eventDef,
h = t.footprint.eventInstance;
return this.dragListener = new l["default"](s, {
scroll: this.opt("dragScroll"),
subjectEl: c,
interactionStart: function interactionStart() {
n = !1;
},
dragStart: function dragStart(e) {
n = !0, i.eventPointing.handleMouseout(t, e), i.segResizeStart(t, e);
},
hitOver: function hitOver(n, l, c) {
var h,
f = !0,
g = s.getSafeHitFootprint(c),
v = s.getSafeHitFootprint(n);
g && v ? (r = e ? i.computeEventStartResizeMutation(g, v, t.footprint) : i.computeEventEndResizeMutation(g, v, t.footprint), r ? (h = d.buildMutatedEventInstanceGroup(p.id, r), f = s.isEventInstanceGroupAllowed(h)) : f = !1) : f = !1, f ? r.isEmpty() && (r = null) : (r = null, o.disableCursor()), r && (a.hideEventsWithId(t.footprint.eventDef.id), a.renderEventResize(s.eventRangesToEventFootprints(h.sliceRenderRanges(s.dateProfile.renderUnzonedRange, u)), t));
},
hitOut: function hitOut() {
r = null;
},
hitDone: function hitDone() {
a.unrenderEventResize(t), a.showEventsWithId(t.footprint.eventDef.id), o.enableCursor();
},
interactionEnd: function interactionEnd(e) {
n && i.segResizeStop(t, e), r && a.reportEventResize(h, r, c, e), i.dragListener = null;
}
});
}, e.prototype.segResizeStart = function (t, e) {
this.isResizing = !0, this.component.publiclyTrigger("eventResizeStart", {
context: t.el[0],
args: [t.footprint.getEventLegacy(), e, {}, this.view]
});
}, e.prototype.segResizeStop = function (t, e) {
this.isResizing = !1, this.component.publiclyTrigger("eventResizeStop", {
context: t.el[0],
args: [t.footprint.getEventLegacy(), e, {}, this.view]
});
}, e.prototype.computeEventStartResizeMutation = function (t, e, n) {
var r,
i,
o = n.componentFootprint.unzonedRange,
l = this.component.diffDates(e.unzonedRange.getStart(), t.unzonedRange.getStart());
return o.getStart().add(l) < o.getEnd() && (r = new a["default"](), r.setStartDelta(l), i = new s["default"](), i.setDateMutation(r), i);
}, e.prototype.computeEventEndResizeMutation = function (t, e, n) {
var r,
i,
o = n.componentFootprint.unzonedRange,
l = this.component.diffDates(e.unzonedRange.getEnd(), t.unzonedRange.getEnd());
return o.getEnd().add(l) > o.getStart() && (r = new a["default"](), r.setEndDelta(l), i = new s["default"](), i.setDateMutation(r), i);
}, e;
}(u["default"]);
e["default"] = d;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(4),
o = n(39),
s = n(40),
a = n(59),
l = n(17),
u = n(226),
d = n(14),
c = function (t) {
function e(e, n) {
var r = t.call(this, e) || this;
return r.isDragging = !1, r.eventPointing = n, r;
}
return r.__extends(e, t), e.prototype.end = function () {
this.dragListener && this.dragListener.endInteraction();
}, e.prototype.getSelectionDelay = function () {
var t = this.opt("eventLongPressDelay");
return null == t && (t = this.opt("longPressDelay")), t;
}, e.prototype.bindToEl = function (t) {
var e = this.component;
e.bindSegHandlerToEl(t, "mousedown", this.handleMousedown.bind(this)), e.bindSegHandlerToEl(t, "touchstart", this.handleTouchStart.bind(this));
}, e.prototype.handleMousedown = function (t, e) {
!this.component.shouldIgnoreMouse() && this.component.canStartDrag(t, e) && this.buildDragListener(t).startInteraction(e, {
distance: 5
});
}, e.prototype.handleTouchStart = function (t, e) {
var n = this.component,
r = {
delay: this.view.isEventDefSelected(t.footprint.eventDef) ? 0 : this.getSelectionDelay()
};
n.canStartDrag(t, e) ? this.buildDragListener(t).startInteraction(e, r) : n.canStartSelection(t, e) && this.buildSelectListener(t).startInteraction(e, r);
}, e.prototype.buildSelectListener = function (t) {
var e = this,
n = this.view,
r = t.footprint.eventDef,
i = t.footprint.eventInstance;
if (this.dragListener) return this.dragListener;
var o = this.dragListener = new a["default"]({
dragStart: function dragStart(t) {
o.isTouch && !n.isEventDefSelected(r) && i && n.selectEventInstance(i);
},
interactionEnd: function interactionEnd(t) {
e.dragListener = null;
}
});
return o;
}, e.prototype.buildDragListener = function (t) {
var e,
n,
r,
o = this,
s = this.component,
a = this.view,
d = a.calendar,
c = d.eventManager,
p = t.el,
h = t.footprint.eventDef,
f = t.footprint.eventInstance;
if (this.dragListener) return this.dragListener;
var g = this.dragListener = new l["default"](a, {
scroll: this.opt("dragScroll"),
subjectEl: p,
subjectCenter: !0,
interactionStart: function interactionStart(r) {
t.component = s, e = !1, n = new u["default"](t.el, {
additionalClass: "fc-dragging",
parentEl: a.el,
opacity: g.isTouch ? null : o.opt("dragOpacity"),
revertDuration: o.opt("dragRevertDuration"),
zIndex: 2
}), n.hide(), n.start(r);
},
dragStart: function dragStart(n) {
g.isTouch && !a.isEventDefSelected(h) && f && a.selectEventInstance(f), e = !0, o.eventPointing.handleMouseout(t, n), o.segDragStart(t, n), a.hideEventsWithId(t.footprint.eventDef.id);
},
hitOver: function hitOver(e, l, u) {
var p,
f,
v,
y = !0;
t.hit && (u = t.hit), p = u.component.getSafeHitFootprint(u), f = e.component.getSafeHitFootprint(e), p && f ? (r = o.computeEventDropMutation(p, f, h), r ? (v = c.buildMutatedEventInstanceGroup(h.id, r), y = s.isEventInstanceGroupAllowed(v)) : y = !1) : y = !1, y || (r = null, i.disableCursor()), r && a.renderDrag(s.eventRangesToEventFootprints(v.sliceRenderRanges(s.dateProfile.renderUnzonedRange, d)), t, g.isTouch) ? n.hide() : n.show(), l && (r = null);
},
hitOut: function hitOut() {
a.unrenderDrag(t), n.show(), r = null;
},
hitDone: function hitDone() {
i.enableCursor();
},
interactionEnd: function interactionEnd(i) {
delete t.component, n.stop(!r, function () {
e && (a.unrenderDrag(t), o.segDragStop(t, i)), a.showEventsWithId(t.footprint.eventDef.id), r && a.reportEventDrop(f, r, p, i);
}), o.dragListener = null;
}
});
return g;
}, e.prototype.segDragStart = function (t, e) {
this.isDragging = !0, this.component.publiclyTrigger("eventDragStart", {
context: t.el[0],
args: [t.footprint.getEventLegacy(), e, {}, this.view]
});
}, e.prototype.segDragStop = function (t, e) {
this.isDragging = !1, this.component.publiclyTrigger("eventDragStop", {
context: t.el[0],
args: [t.footprint.getEventLegacy(), e, {}, this.view]
});
}, e.prototype.computeEventDropMutation = function (t, e, n) {
var r = new o["default"]();
return r.setDateMutation(this.computeEventDateMutation(t, e)), r;
}, e.prototype.computeEventDateMutation = function (t, e) {
var n,
r,
i = t.unzonedRange.getStart(),
o = e.unzonedRange.getStart(),
a = !1,
l = !1,
u = !1;
return t.isAllDay !== e.isAllDay && (a = !0, e.isAllDay ? (u = !0, i.stripTime()) : l = !0), n = this.component.diffDates(o, i), r = new s["default"](), r.clearEnd = a, r.forceTimed = l, r.forceAllDay = u, r.setDateDelta(n), r;
}, e;
}(d["default"]);
e["default"] = c;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(4),
o = n(17),
s = n(12),
a = n(5),
l = n(14),
u = function (t) {
function e(e) {
var n = t.call(this, e) || this;
return n.dragListener = n.buildDragListener(), n;
}
return r.__extends(e, t), e.prototype.end = function () {
this.dragListener.endInteraction();
}, e.prototype.getDelay = function () {
var t = this.opt("selectLongPressDelay");
return null == t && (t = this.opt("longPressDelay")), t;
}, e.prototype.bindToEl = function (t) {
var e = this,
n = this.component,
r = this.dragListener;
n.bindDateHandlerToEl(t, "mousedown", function (t) {
e.opt("selectable") && !n.shouldIgnoreMouse() && r.startInteraction(t, {
distance: e.opt("selectMinDistance")
});
}), n.bindDateHandlerToEl(t, "touchstart", function (t) {
e.opt("selectable") && !n.shouldIgnoreTouch() && r.startInteraction(t, {
delay: e.getDelay()
});
}), i.preventSelection(t);
}, e.prototype.buildDragListener = function () {
var t,
e = this,
n = this.component;
return new o["default"](n, {
scroll: this.opt("dragScroll"),
interactionStart: function interactionStart() {
t = null;
},
dragStart: function dragStart(t) {
e.view.unselect(t);
},
hitOver: function hitOver(r, o, s) {
var a, l;
s && (a = n.getSafeHitFootprint(s), l = n.getSafeHitFootprint(r), t = a && l ? e.computeSelection(a, l) : null, t ? n.renderSelectionFootprint(t) : !1 === t && i.disableCursor());
},
hitOut: function hitOut() {
t = null, n.unrenderSelection();
},
hitDone: function hitDone() {
i.enableCursor();
},
interactionEnd: function interactionEnd(n, r) {
!r && t && e.view.reportSelection(t, n);
}
});
}, e.prototype.computeSelection = function (t, e) {
var n = this.computeSelectionFootprint(t, e);
return !(n && !this.isSelectionFootprintAllowed(n)) && n;
}, e.prototype.computeSelectionFootprint = function (t, e) {
var n = [t.unzonedRange.startMs, t.unzonedRange.endMs, e.unzonedRange.startMs, e.unzonedRange.endMs];
return n.sort(i.compareNumbers), new s["default"](new a["default"](n[0], n[3]), t.isAllDay);
}, e.prototype.isSelectionFootprintAllowed = function (t) {
return this.component.dateProfile.validUnzonedRange.containsRange(t.unzonedRange) && this.view.calendar.constraints.isSelectionFootprintAllowed(t);
}, e;
}(l["default"]);
e["default"] = u;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(17),
o = n(14),
s = function (t) {
function e(e) {
var n = t.call(this, e) || this;
return n.dragListener = n.buildDragListener(), n;
}
return r.__extends(e, t), e.prototype.end = function () {
this.dragListener.endInteraction();
}, e.prototype.bindToEl = function (t) {
var e = this.component,
n = this.dragListener;
e.bindDateHandlerToEl(t, "mousedown", function (t) {
e.shouldIgnoreMouse() || n.startInteraction(t);
}), e.bindDateHandlerToEl(t, "touchstart", function (t) {
e.shouldIgnoreTouch() || n.startInteraction(t);
});
}, e.prototype.buildDragListener = function () {
var t,
e = this,
n = this.component,
r = new i["default"](n, {
scroll: this.opt("dragScroll"),
interactionStart: function interactionStart() {
t = r.origHit;
},
hitOver: function hitOver(e, n, r) {
n || (t = null);
},
hitOut: function hitOut() {
t = null;
},
interactionEnd: function interactionEnd(r, i) {
var o;
!i && t && (o = n.getSafeHitFootprint(t)) && e.view.triggerDayClick(o, n.getHitEl(t), r);
}
});
return r.shouldCancelTouchScroll = !1, r.scrollAlwaysKills = !0, r;
}, e;
}(o["default"]);
e["default"] = s;
}, function (t, e, n) {
function r(t) {
var e,
n = [],
r = [];
for (e = 0; e < t.length; e++) t[e].componentFootprint.isAllDay ? n.push(t[e]) : r.push(t[e]);
return {
allDay: n,
timed: r
};
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var i,
o,
s = n(2),
a = n(0),
l = n(3),
u = n(4),
d = n(41),
c = n(43),
p = n(239),
h = n(66),
f = function (t) {
function e(e, n) {
var r = t.call(this, e, n) || this;
return r.usesMinMaxTime = !0, r.timeGrid = r.instantiateTimeGrid(), r.addChild(r.timeGrid), r.opt("allDaySlot") && (r.dayGrid = r.instantiateDayGrid(), r.addChild(r.dayGrid)), r.scroller = new d["default"]({
overflowX: "hidden",
overflowY: "auto"
}), r;
}
return s.__extends(e, t), e.prototype.instantiateTimeGrid = function () {
var t = new this.timeGridClass(this);
return u.copyOwnProps(i, t), t;
}, e.prototype.instantiateDayGrid = function () {
var t = new this.dayGridClass(this);
return u.copyOwnProps(o, t), t;
}, e.prototype.renderSkeleton = function () {
var t, e;
this.el.addClass("fc-agenda-view").html(this.renderSkeletonHtml()), this.scroller.render(), t = this.scroller.el.addClass("fc-time-grid-container"), e = l('<div class="fc-time-grid">').appendTo(t), this.el.find(".fc-body > tr > td").append(t), this.timeGrid.headContainerEl = this.el.find(".fc-head-container"), this.timeGrid.setElement(e), this.dayGrid && (this.dayGrid.setElement(this.el.find(".fc-day-grid")), this.dayGrid.bottomCoordPadding = this.dayGrid.el.next("hr").outerHeight());
}, e.prototype.unrenderSkeleton = function () {
this.timeGrid.removeElement(), this.dayGrid && this.dayGrid.removeElement(), this.scroller.destroy();
}, e.prototype.renderSkeletonHtml = function () {
var t = this.calendar.theme;
return '<table class="' + t.getClass("tableGrid") + '">' + (this.opt("columnHeader") ? '<thead class="fc-head"><tr><td class="fc-head-container ' + t.getClass("widgetHeader") + '"> </td></tr></thead>' : "") + '<tbody class="fc-body"><tr><td class="' + t.getClass("widgetContent") + '">' + (this.dayGrid ? '<div class="fc-day-grid"></div><hr class="fc-divider ' + t.getClass("widgetHeader") + '"></hr>' : "") + "</td></tr></tbody></table>";
}, e.prototype.axisStyleAttr = function () {
return null != this.axisWidth ? 'style="width:' + this.axisWidth + 'px"' : "";
}, e.prototype.getNowIndicatorUnit = function () {
return this.timeGrid.getNowIndicatorUnit();
}, e.prototype.updateSize = function (e, n, r) {
var i, o, s;
if (t.prototype.updateSize.call(this, e, n, r), this.axisWidth = u.matchCellWidths(this.el.find(".fc-axis")), !this.timeGrid.colEls) return void (n || (o = this.computeScrollerHeight(e), this.scroller.setHeight(o)));
var a = this.el.find(".fc-row:not(.fc-scroller *)");
this.timeGrid.bottomRuleEl.hide(), this.scroller.clear(), u.uncompensateScroll(a), this.dayGrid && (this.dayGrid.removeSegPopover(), i = this.opt("eventLimit"), i && "number" != typeof i && (i = 5), i && this.dayGrid.limitRows(i)), n || (o = this.computeScrollerHeight(e), this.scroller.setHeight(o), s = this.scroller.getScrollbarWidths(), (s.left || s.right) && (u.compensateScroll(a, s), o = this.computeScrollerHeight(e), this.scroller.setHeight(o)), this.scroller.lockOverflow(s), this.timeGrid.getTotalSlatHeight() < o && this.timeGrid.bottomRuleEl.show());
}, e.prototype.computeScrollerHeight = function (t) {
return t - u.subtractInnerElHeight(this.el, this.scroller.el);
}, e.prototype.computeInitialDateScroll = function () {
var t = a.duration(this.opt("scrollTime")),
e = this.timeGrid.computeTimeTop(t);
return e = Math.ceil(e), e && e++, {
top: e
};
}, e.prototype.queryDateScroll = function () {
return {
top: this.scroller.getScrollTop()
};
}, e.prototype.applyDateScroll = function (t) {
void 0 !== t.top && this.scroller.setScrollTop(t.top);
}, e.prototype.getHitFootprint = function (t) {
return t.component.getHitFootprint(t);
}, e.prototype.getHitEl = function (t) {
return t.component.getHitEl(t);
}, e.prototype.executeEventRender = function (t) {
var e,
n,
r = {},
i = {};
for (e in t) n = t[e], n.getEventDef().isAllDay() ? r[e] = n : i[e] = n;
this.timeGrid.executeEventRender(i), this.dayGrid && this.dayGrid.executeEventRender(r);
}, e.prototype.renderDrag = function (t, e, n) {
var i = r(t),
o = !1;
return o = this.timeGrid.renderDrag(i.timed, e, n), this.dayGrid && (o = this.dayGrid.renderDrag(i.allDay, e, n) || o), o;
}, e.prototype.renderEventResize = function (t, e, n) {
var i = r(t);
this.timeGrid.renderEventResize(i.timed, e, n), this.dayGrid && this.dayGrid.renderEventResize(i.allDay, e, n);
}, e.prototype.renderSelectionFootprint = function (t) {
t.isAllDay ? this.dayGrid && this.dayGrid.renderSelectionFootprint(t) : this.timeGrid.renderSelectionFootprint(t);
}, e;
}(c["default"]);
e["default"] = f, f.prototype.timeGridClass = p["default"], f.prototype.dayGridClass = h["default"], i = {
renderHeadIntroHtml: function renderHeadIntroHtml() {
var t,
e = this.view,
n = e.calendar,
r = n.msToUtcMoment(this.dateProfile.renderUnzonedRange.startMs, !0);
return this.opt("weekNumbers") ? (t = r.format(this.opt("smallWeekFormat")), '<th class="fc-axis fc-week-number ' + n.theme.getClass("widgetHeader") + '" ' + e.axisStyleAttr() + ">" + e.buildGotoAnchorHtml({
date: r,
type: "week",
forceOff: this.colCnt > 1
}, u.htmlEscape(t)) + "</th>") : '<th class="fc-axis ' + n.theme.getClass("widgetHeader") + '" ' + e.axisStyleAttr() + "></th>";
},
renderBgIntroHtml: function renderBgIntroHtml() {
var t = this.view;
return '<td class="fc-axis ' + t.calendar.theme.getClass("widgetContent") + '" ' + t.axisStyleAttr() + "></td>";
},
renderIntroHtml: function renderIntroHtml() {
return '<td class="fc-axis" ' + this.view.axisStyleAttr() + "></td>";
}
}, o = {
renderBgIntroHtml: function renderBgIntroHtml() {
var t = this.view;
return '<td class="fc-axis ' + t.calendar.theme.getClass("widgetContent") + '" ' + t.axisStyleAttr() + "><span>" + t.getAllDayHtml() + "</span></td>";
},
renderIntroHtml: function renderIntroHtml() {
return '<td class="fc-axis" ' + this.view.axisStyleAttr() + "></td>";
}
};
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(0),
s = n(4),
a = n(42),
l = n(61),
u = n(65),
d = n(60),
c = n(58),
p = n(5),
h = n(12),
f = n(240),
g = n(241),
v = n(242),
y = [{
hours: 1
}, {
minutes: 30
}, {
minutes: 15
}, {
seconds: 30
}, {
seconds: 15
}],
m = function (t) {
function e(e) {
var n = t.call(this, e) || this;
return n.processOptions(), n;
}
return r.__extends(e, t), e.prototype.componentFootprintToSegs = function (t) {
var e,
n = this.sliceRangeByTimes(t.unzonedRange);
for (e = 0; e < n.length; e++) this.isRTL ? n[e].col = this.daysPerRow - 1 - n[e].dayIndex : n[e].col = n[e].dayIndex;
return n;
}, e.prototype.sliceRangeByTimes = function (t) {
var e,
n,
r = [];
for (n = 0; n < this.daysPerRow; n++) (e = t.intersect(this.dayRanges[n])) && r.push({
startMs: e.startMs,
endMs: e.endMs,
isStart: e.isStart,
isEnd: e.isEnd,
dayIndex: n
});
return r;
}, e.prototype.processOptions = function () {
var t,
e = this.opt("slotDuration"),
n = this.opt("snapDuration");
e = o.duration(e), n = n ? o.duration(n) : e, this.slotDuration = e, this.snapDuration = n, this.snapsPerSlot = e / n, t = this.opt("slotLabelFormat"), i.isArray(t) && (t = t[t.length - 1]), this.labelFormat = t || this.opt("smallTimeFormat"), t = this.opt("slotLabelInterval"), this.labelInterval = t ? o.duration(t) : this.computeLabelInterval(e);
}, e.prototype.computeLabelInterval = function (t) {
var e, n, r;
for (e = y.length - 1; e >= 0; e--) if (n = o.duration(y[e]), r = s.divideDurationByDuration(n, t), s.isInt(r) && r > 1) return n;
return o.duration(t);
}, e.prototype.renderDates = function (t) {
this.dateProfile = t, this.updateDayTable(), this.renderSlats(), this.renderColumns();
}, e.prototype.unrenderDates = function () {
this.unrenderColumns();
}, e.prototype.renderSkeleton = function () {
var t = this.view.calendar.theme;
this.el.html('<div class="fc-bg"></div><div class="fc-slats"></div><hr class="fc-divider ' + t.getClass("widgetHeader") + '" style="display:none"></hr>'), this.bottomRuleEl = this.el.find("hr");
}, e.prototype.renderSlats = function () {
var t = this.view.calendar.theme;
this.slatContainerEl = this.el.find("> .fc-slats").html('<table class="' + t.getClass("tableGrid") + '">' + this.renderSlatRowHtml() + "</table>"), this.slatEls = this.slatContainerEl.find("tr"), this.slatCoordCache = new c["default"]({
els: this.slatEls,
isVertical: !0
});
}, e.prototype.renderSlatRowHtml = function () {
for (var t, e, n, r = this.view, i = r.calendar, a = i.theme, l = this.isRTL, u = this.dateProfile, d = "", c = o.duration(+u.minTime), p = o.duration(0); c < u.maxTime;) t = i.msToUtcMoment(u.renderUnzonedRange.startMs).time(c), e = s.isInt(s.divideDurationByDuration(p, this.labelInterval)), n = '<td class="fc-axis fc-time ' + a.getClass("widgetContent") + '" ' + r.axisStyleAttr() + ">" + (e ? "<span>" + s.htmlEscape(t.format(this.labelFormat)) + "</span>" : "") + "</td>", d += '<tr data-time="' + t.format("HH:mm:ss") + '"' + (e ? "" : ' class="fc-minor"') + ">" + (l ? "" : n) + '<td class="' + a.getClass("widgetContent") + '"></td>' + (l ? n : "") + "</tr>", c.add(this.slotDuration), p.add(this.slotDuration);
return d;
}, e.prototype.renderColumns = function () {
var t = this.dateProfile,
e = this.view.calendar.theme;
this.dayRanges = this.dayDates.map(function (e) {
return new p["default"](e.clone().add(t.minTime), e.clone().add(t.maxTime));
}), this.headContainerEl && this.headContainerEl.html(this.renderHeadHtml()), this.el.find("> .fc-bg").html('<table class="' + e.getClass("tableGrid") + '">' + this.renderBgTrHtml(0) + "</table>"), this.colEls = this.el.find(".fc-day, .fc-disabled-day"), this.colCoordCache = new c["default"]({
els: this.colEls,
isHorizontal: !0
}), this.renderContentSkeleton();
}, e.prototype.unrenderColumns = function () {
this.unrenderContentSkeleton();
}, e.prototype.renderContentSkeleton = function () {
var t,
e,
n = "";
for (t = 0; t < this.colCnt; t++) n += '<td><div class="fc-content-col"><div class="fc-event-container fc-helper-container"></div><div class="fc-event-container"></div><div class="fc-highlight-container"></div><div class="fc-bgevent-container"></div><div class="fc-business-container"></div></div></td>';
e = this.contentSkeletonEl = i('<div class="fc-content-skeleton"><table><tr>' + n + "</tr></table></div>"), this.colContainerEls = e.find(".fc-content-col"), this.helperContainerEls = e.find(".fc-helper-container"), this.fgContainerEls = e.find(".fc-event-container:not(.fc-helper-container)"), this.bgContainerEls = e.find(".fc-bgevent-container"), this.highlightContainerEls = e.find(".fc-highlight-container"), this.businessContainerEls = e.find(".fc-business-container"), this.bookendCells(e.find("tr")), this.el.append(e);
}, e.prototype.unrenderContentSkeleton = function () {
this.contentSkeletonEl && (this.contentSkeletonEl.remove(), this.contentSkeletonEl = null, this.colContainerEls = null, this.helperContainerEls = null, this.fgContainerEls = null, this.bgContainerEls = null, this.highlightContainerEls = null, this.businessContainerEls = null);
}, e.prototype.groupSegsByCol = function (t) {
var e,
n = [];
for (e = 0; e < this.colCnt; e++) n.push([]);
for (e = 0; e < t.length; e++) n[t[e].col].push(t[e]);
return n;
}, e.prototype.attachSegsByCol = function (t, e) {
var n, r, i;
for (n = 0; n < this.colCnt; n++) for (r = t[n], i = 0; i < r.length; i++) e.eq(n).append(r[i].el);
}, e.prototype.getNowIndicatorUnit = function () {
return "minute";
}, e.prototype.renderNowIndicator = function (t) {
if (this.colContainerEls) {
var e,
n = this.componentFootprintToSegs(new h["default"](new p["default"](t, t.valueOf() + 1), !1)),
r = this.computeDateTop(t, t),
o = [];
for (e = 0; e < n.length; e++) o.push(i('<div class="fc-now-indicator fc-now-indicator-line"></div>').css("top", r).appendTo(this.colContainerEls.eq(n[e].col))[0]);
n.length > 0 && o.push(i('<div class="fc-now-indicator fc-now-indicator-arrow"></div>').css("top", r).appendTo(this.el.find(".fc-content-skeleton"))[0]), this.nowIndicatorEls = i(o);
}
}, e.prototype.unrenderNowIndicator = function () {
this.nowIndicatorEls && (this.nowIndicatorEls.remove(), this.nowIndicatorEls = null);
}, e.prototype.updateSize = function (e, n, r) {
t.prototype.updateSize.call(this, e, n, r), this.slatCoordCache.build(), r && this.updateSegVerticals([].concat(this.eventRenderer.getSegs(), this.businessSegs || []));
}, e.prototype.getTotalSlatHeight = function () {
return this.slatContainerEl.outerHeight();
}, e.prototype.computeDateTop = function (t, e) {
return this.computeTimeTop(o.duration(t - e.clone().stripTime()));
}, e.prototype.computeTimeTop = function (t) {
var e,
n,
r = this.slatEls.length,
i = this.dateProfile,
o = (t - i.minTime) / this.slotDuration;
return o = Math.max(0, o), o = Math.min(r, o), e = Math.floor(o), e = Math.min(e, r - 1), n = o - e, this.slatCoordCache.getTopPosition(e) + this.slatCoordCache.getHeight(e) * n;
}, e.prototype.updateSegVerticals = function (t) {
this.computeSegVerticals(t), this.assignSegVerticals(t);
}, e.prototype.computeSegVerticals = function (t) {
var e,
n,
r,
i = this.opt("agendaEventMinHeight");
for (e = 0; e < t.length; e++) n = t[e], r = this.dayDates[n.dayIndex], n.top = this.computeDateTop(n.startMs, r), n.bottom = Math.max(n.top + i, this.computeDateTop(n.endMs, r));
}, e.prototype.assignSegVerticals = function (t) {
var e, n;
for (e = 0; e < t.length; e++) n = t[e], n.el.css(this.generateSegVerticalCss(n));
}, e.prototype.generateSegVerticalCss = function (t) {
return {
top: t.top,
bottom: -t.bottom
};
}, e.prototype.prepareHits = function () {
this.colCoordCache.build(), this.slatCoordCache.build();
}, e.prototype.releaseHits = function () {
this.colCoordCache.clear();
}, e.prototype.queryHit = function (t, e) {
var n = this.snapsPerSlot,
r = this.colCoordCache,
i = this.slatCoordCache;
if (r.isLeftInBounds(t) && i.isTopInBounds(e)) {
var o = r.getHorizontalIndex(t),
s = i.getVerticalIndex(e);
if (null != o && null != s) {
var a = i.getTopOffset(s),
l = i.getHeight(s),
u = (e - a) / l,
d = Math.floor(u * n),
c = s * n + d,
p = a + d / n * l,
h = a + (d + 1) / n * l;
return {
col: o,
snap: c,
component: this,
left: r.getLeftOffset(o),
right: r.getRightOffset(o),
top: p,
bottom: h
};
}
}
}, e.prototype.getHitFootprint = function (t) {
var e,
n = this.getCellDate(0, t.col),
r = this.computeSnapTime(t.snap);
return n.time(r), e = n.clone().add(this.snapDuration), new h["default"](new p["default"](n, e), !1);
}, e.prototype.computeSnapTime = function (t) {
return o.duration(this.dateProfile.minTime + this.snapDuration * t);
}, e.prototype.getHitEl = function (t) {
return this.colEls.eq(t.col);
}, e.prototype.renderDrag = function (t, e, n) {
var r;
if (e) {
if (t.length) return this.helperRenderer.renderEventDraggingFootprints(t, e, n), !0;
} else for (r = 0; r < t.length; r++) this.renderHighlight(t[r].componentFootprint);
}, e.prototype.unrenderDrag = function () {
this.unrenderHighlight(), this.helperRenderer.unrender();
}, e.prototype.renderEventResize = function (t, e, n) {
this.helperRenderer.renderEventResizingFootprints(t, e, n);
}, e.prototype.unrenderEventResize = function () {
this.helperRenderer.unrender();
}, e.prototype.renderSelectionFootprint = function (t) {
this.opt("selectHelper") ? this.helperRenderer.renderComponentFootprint(t) : this.renderHighlight(t);
}, e.prototype.unrenderSelection = function () {
this.helperRenderer.unrender(), this.unrenderHighlight();
}, e;
}(a["default"]);
e["default"] = m, m.prototype.eventRendererClass = f["default"], m.prototype.businessHourRendererClass = l["default"], m.prototype.helperRendererClass = g["default"], m.prototype.fillRendererClass = v["default"], u["default"].mixInto(m), d["default"].mixInto(m);
}, function (t, e, n) {
function r(t) {
var e,
n,
r,
i = [];
for (e = 0; e < t.length; e++) {
for (n = t[e], r = 0; r < i.length && s(n, i[r]).length; r++);
n.level = r, (i[r] || (i[r] = [])).push(n);
}
return i;
}
function i(t) {
var e, n, r, i, o;
for (e = 0; e < t.length; e++) for (n = t[e], r = 0; r < n.length; r++) for (i = n[r], i.forwardSegs = [], o = e + 1; o < t.length; o++) s(i, t[o], i.forwardSegs);
}
function o(t) {
var e,
n,
r = t.forwardSegs,
i = 0;
if (void 0 === t.forwardPressure) {
for (e = 0; e < r.length; e++) n = r[e], o(n), i = Math.max(i, 1 + n.forwardPressure);
t.forwardPressure = i;
}
}
function s(t, e, n) {
void 0 === n && (n = []);
for (var r = 0; r < e.length; r++) a(t, e[r]) && n.push(e[r]);
return n;
}
function a(t, e) {
return t.bottom > e.top && t.top < e.bottom;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var l = n(2),
u = n(4),
d = n(44),
c = function (t) {
function e(e, n) {
var r = t.call(this, e, n) || this;
return r.timeGrid = e, r;
}
return l.__extends(e, t), e.prototype.renderFgSegs = function (t) {
this.renderFgSegsIntoContainers(t, this.timeGrid.fgContainerEls);
}, e.prototype.renderFgSegsIntoContainers = function (t, e) {
var n, r;
for (n = this.timeGrid.groupSegsByCol(t), r = 0; r < this.timeGrid.colCnt; r++) this.updateFgSegCoords(n[r]);
this.timeGrid.attachSegsByCol(n, e);
}, e.prototype.unrenderFgSegs = function () {
this.fgSegs && this.fgSegs.forEach(function (t) {
t.el.remove();
});
}, e.prototype.computeEventTimeFormat = function () {
return this.opt("noMeridiemTimeFormat");
}, e.prototype.computeDisplayEventEnd = function () {
return !0;
}, e.prototype.fgSegHtml = function (t, e) {
var n,
r,
i,
o = this.view,
s = o.calendar,
a = t.footprint.componentFootprint,
l = a.isAllDay,
d = t.footprint.eventDef,
c = o.isEventDefDraggable(d),
p = !e && t.isStart && o.isEventDefResizableFromStart(d),
h = !e && t.isEnd && o.isEventDefResizableFromEnd(d),
f = this.getSegClasses(t, c, p || h),
g = u.cssToStr(this.getSkinCss(d));
if (f.unshift("fc-time-grid-event", "fc-v-event"), o.isMultiDayRange(a.unzonedRange)) {
if (t.isStart || t.isEnd) {
var v = s.msToMoment(t.startMs),
y = s.msToMoment(t.endMs);
n = this._getTimeText(v, y, l), r = this._getTimeText(v, y, l, "LT"), i = this._getTimeText(v, y, l, null, !1);
}
} else n = this.getTimeText(t.footprint), r = this.getTimeText(t.footprint, "LT"), i = this.getTimeText(t.footprint, null, !1);
return '<a class="' + f.join(" ") + '"' + (d.url ? ' href="' + u.htmlEscape(d.url) + '"' : "") + (g ? ' style="' + g + '"' : "") + '><div class="fc-content">' + (n ? '<div class="fc-time" data-start="' + u.htmlEscape(i) + '" data-full="' + u.htmlEscape(r) + '"><span>' + u.htmlEscape(n) + "</span></div>" : "") + (d.title ? '<div class="fc-title">' + u.htmlEscape(d.title) + "</div>" : "") + '</div><div class="fc-bg"></div>' + (h ? '<div class="fc-resizer fc-end-resizer"></div>' : "") + "</a>";
}, e.prototype.updateFgSegCoords = function (t) {
this.timeGrid.computeSegVerticals(t), this.computeFgSegHorizontals(t), this.timeGrid.assignSegVerticals(t), this.assignFgSegHorizontals(t);
}, e.prototype.computeFgSegHorizontals = function (t) {
var e, n, s;
if (this.sortEventSegs(t), e = r(t), i(e), n = e[0]) {
for (s = 0; s < n.length; s++) o(n[s]);
for (s = 0; s < n.length; s++) this.computeFgSegForwardBack(n[s], 0, 0);
}
}, e.prototype.computeFgSegForwardBack = function (t, e, n) {
var r,
i = t.forwardSegs;
if (void 0 === t.forwardCoord) for (i.length ? (this.sortForwardSegs(i), this.computeFgSegForwardBack(i[0], e + 1, n), t.forwardCoord = i[0].backwardCoord) : t.forwardCoord = 1, t.backwardCoord = t.forwardCoord - (t.forwardCoord - n) / (e + 1), r = 0; r < i.length; r++) this.computeFgSegForwardBack(i[r], 0, t.forwardCoord);
}, e.prototype.sortForwardSegs = function (t) {
t.sort(u.proxy(this, "compareForwardSegs"));
}, e.prototype.compareForwardSegs = function (t, e) {
return e.forwardPressure - t.forwardPressure || (t.backwardCoord || 0) - (e.backwardCoord || 0) || this.compareEventSegs(t, e);
}, e.prototype.assignFgSegHorizontals = function (t) {
var e, n;
for (e = 0; e < t.length; e++) n = t[e], n.el.css(this.generateFgSegHorizontalCss(n)), n.footprint.eventDef.title && n.bottom - n.top < 30 && n.el.addClass("fc-short");
}, e.prototype.generateFgSegHorizontalCss = function (t) {
var e,
n,
r = this.opt("slotEventOverlap"),
i = t.backwardCoord,
o = t.forwardCoord,
s = this.timeGrid.generateSegVerticalCss(t),
a = this.timeGrid.isRTL;
return r && (o = Math.min(1, i + 2 * (o - i))), a ? (e = 1 - o, n = i) : (e = i, n = 1 - o), s.zIndex = t.level + 1, s.left = 100 * e + "%", s.right = 100 * n + "%", r && t.forwardPressure && (s[a ? "marginLeft" : "marginRight"] = 20), s;
}, e;
}(d["default"]);
e["default"] = c;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(63),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.renderSegs = function (t, e) {
var n,
r,
o,
s = [];
for (this.eventRenderer.renderFgSegsIntoContainers(t, this.component.helperContainerEls), n = 0; n < t.length; n++) r = t[n], e && e.col === r.col && (o = e.el, r.el.css({
left: o.css("left"),
right: o.css("right"),
"margin-left": o.css("margin-left"),
"margin-right": o.css("margin-right")
})), s.push(r.el[0]);
return i(s);
}, e;
}(o["default"]);
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(62),
o = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.attachSegEls = function (t, e) {
var n,
r = this.component;
return "bgEvent" === t ? n = r.bgContainerEls : "businessHours" === t ? n = r.businessContainerEls : "highlight" === t && (n = r.highlightContainerEls), r.updateSegVerticals(e), r.attachSegsByCol(r.groupSegsByCol(e), n), e.map(function (t) {
return t.el[0];
});
}, e;
}(i["default"]);
e["default"] = o;
}, function (t, e, n) {
function r(t, e) {
var n, r;
for (n = 0; n < e.length; n++) if (r = e[n], r.leftCol <= t.rightCol && r.rightCol >= t.leftCol) return !0;
return !1;
}
function i(t, e) {
return t.leftCol - e.leftCol;
}
Object.defineProperty(e, "__esModule", {
value: !0
});
var o = n(2),
s = n(3),
a = n(4),
l = n(44),
u = function (t) {
function e(e, n) {
var r = t.call(this, e, n) || this;
return r.dayGrid = e, r;
}
return o.__extends(e, t), e.prototype.renderBgRanges = function (e) {
e = s.grep(e, function (t) {
return t.eventDef.isAllDay();
}), t.prototype.renderBgRanges.call(this, e);
}, e.prototype.renderFgSegs = function (t) {
var e = this.rowStructs = this.renderSegRows(t);
this.dayGrid.rowEls.each(function (t, n) {
s(n).find(".fc-content-skeleton > table").append(e[t].tbodyEl);
});
}, e.prototype.unrenderFgSegs = function () {
for (var t, e = this.rowStructs || []; t = e.pop();) t.tbodyEl.remove();
this.rowStructs = null;
}, e.prototype.renderSegRows = function (t) {
var e,
n,
r = [];
for (e = this.groupSegRows(t), n = 0; n < e.length; n++) r.push(this.renderSegRow(n, e[n]));
return r;
}, e.prototype.renderSegRow = function (t, e) {
function n(t) {
for (; o < t;) d = (y[r - 1] || [])[o], d ? d.attr("rowspan", parseInt(d.attr("rowspan") || 1, 10) + 1) : (d = s("<td>"), a.append(d)), v[r][o] = d, y[r][o] = d, o++;
}
var r,
i,
o,
a,
l,
u,
d,
c = this.dayGrid.colCnt,
p = this.buildSegLevels(e),
h = Math.max(1, p.length),
f = s("<tbody>"),
g = [],
v = [],
y = [];
for (r = 0; r < h; r++) {
if (i = p[r], o = 0, a = s("<tr>"), g.push([]), v.push([]), y.push([]), i) for (l = 0; l < i.length; l++) {
for (u = i[l], n(u.leftCol), d = s('<td class="fc-event-container">').append(u.el), u.leftCol !== u.rightCol ? d.attr("colspan", u.rightCol - u.leftCol + 1) : y[r][o] = d; o <= u.rightCol;) v[r][o] = d, g[r][o] = u, o++;
a.append(d);
}
n(c), this.dayGrid.bookendCells(a), f.append(a);
}
return {
row: t,
tbodyEl: f,
cellMatrix: v,
segMatrix: g,
segLevels: p,
segs: e
};
}, e.prototype.buildSegLevels = function (t) {
var e,
n,
o,
s = [];
for (this.sortEventSegs(t), e = 0; e < t.length; e++) {
for (n = t[e], o = 0; o < s.length && r(n, s[o]); o++);
n.level = o, (s[o] || (s[o] = [])).push(n);
}
for (o = 0; o < s.length; o++) s[o].sort(i);
return s;
}, e.prototype.groupSegRows = function (t) {
var e,
n = [];
for (e = 0; e < this.dayGrid.rowCnt; e++) n.push([]);
for (e = 0; e < t.length; e++) n[t[e].row].push(t[e]);
return n;
}, e.prototype.computeEventTimeFormat = function () {
return this.opt("extraSmallTimeFormat");
}, e.prototype.computeDisplayEventEnd = function () {
return 1 === this.dayGrid.colCnt;
}, e.prototype.fgSegHtml = function (t, e) {
var n,
r,
i = this.view,
o = t.footprint.eventDef,
s = t.footprint.componentFootprint.isAllDay,
l = i.isEventDefDraggable(o),
u = !e && s && t.isStart && i.isEventDefResizableFromStart(o),
d = !e && s && t.isEnd && i.isEventDefResizableFromEnd(o),
c = this.getSegClasses(t, l, u || d),
p = a.cssToStr(this.getSkinCss(o)),
h = "";
return c.unshift("fc-day-grid-event", "fc-h-event"), t.isStart && (n = this.getTimeText(t.footprint)) && (h = '<span class="fc-time">' + a.htmlEscape(n) + "</span>"), r = '<span class="fc-title">' + (a.htmlEscape(o.title || "") || " ") + "</span>", '<a class="' + c.join(" ") + '"' + (o.url ? ' href="' + a.htmlEscape(o.url) + '"' : "") + (p ? ' style="' + p + '"' : "") + '><div class="fc-content">' + (this.dayGrid.isRTL ? r + " " + h : h + " " + r) + "</div>" + (u ? '<div class="fc-resizer fc-start-resizer"></div>' : "") + (d ? '<div class="fc-resizer fc-end-resizer"></div>' : "") + "</a>";
}, e;
}(l["default"]);
e["default"] = u;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(63),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.renderSegs = function (t, e) {
var n,
r = [];
return n = this.eventRenderer.renderSegRows(t), this.component.rowEls.each(function (t, o) {
var s,
a,
l = i(o),
u = i('<div class="fc-helper-skeleton"><table></table></div>');
e && e.row === t ? a = e.el.position().top : (s = l.find(".fc-content-skeleton tbody"), s.length || (s = l.find(".fc-content-skeleton table")), a = s.position().top), u.css("top", a).find("table").append(n[t].tbodyEl), l.append(u), r.push(u[0]);
}), i(r);
}, e;
}(o["default"]);
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(62),
s = function (t) {
function e() {
var e = null !== t && t.apply(this, arguments) || this;
return e.fillSegTag = "td", e;
}
return r.__extends(e, t), e.prototype.attachSegEls = function (t, e) {
var n,
r,
i,
o = [];
for (n = 0; n < e.length; n++) r = e[n], i = this.renderFillRow(t, r), this.component.rowEls.eq(r.row).append(i), o.push(i[0]);
return o;
}, e.prototype.renderFillRow = function (t, e) {
var n,
r,
o,
s = this.component.colCnt,
a = e.leftCol,
l = e.rightCol + 1;
return n = "businessHours" === t ? "bgevent" : t.toLowerCase(), r = i('<div class="fc-' + n + '-skeleton"><table><tr></tr></table></div>'), o = r.find("tr"), a > 0 && o.append(new Array(a + 1).join("<td></td>")), o.append(e.el.attr("colspan", l - a)), l < s && o.append(new Array(s - l + 1).join("<td></td>")), this.component.bookendCells(o), r;
}, e;
}(o["default"]);
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(0),
o = n(4),
s = n(67),
a = n(247),
l = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.setGridHeight = function (t, e) {
e && (t *= this.dayGrid.rowCnt / 6), o.distributeHeight(this.dayGrid.rowEls, t, !e);
}, e.prototype.isDateInOtherMonth = function (t, e) {
return t.month() !== i.utc(e.currentUnzonedRange.startMs).month();
}, e;
}(s["default"]);
e["default"] = l, l.prototype.dateProfileGeneratorClass = a["default"];
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(68),
o = n(5),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.buildRenderRange = function (e, n, r) {
var i,
s = t.prototype.buildRenderRange.call(this, e, n, r),
a = this.msToUtcMoment(s.startMs, r),
l = this.msToUtcMoment(s.endMs, r);
return this.opt("fixedWeekCount") && (i = Math.ceil(l.diff(a, "weeks", !0)), l.add(6 - i, "weeks")), new o["default"](a, l);
}, e;
}(i["default"]);
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(4),
s = n(5),
a = n(43),
l = n(41),
u = n(249),
d = n(250),
c = function (t) {
function e(e, n) {
var r = t.call(this, e, n) || this;
return r.segSelector = ".fc-list-item", r.scroller = new l["default"]({
overflowX: "hidden",
overflowY: "auto"
}), r;
}
return r.__extends(e, t), e.prototype.renderSkeleton = function () {
this.el.addClass("fc-list-view " + this.calendar.theme.getClass("listView")), this.scroller.render(), this.scroller.el.appendTo(this.el), this.contentEl = this.scroller.scrollEl;
}, e.prototype.unrenderSkeleton = function () {
this.scroller.destroy();
}, e.prototype.updateSize = function (e, n, r) {
t.prototype.updateSize.call(this, e, n, r), this.scroller.clear(), n || this.scroller.setHeight(this.computeScrollerHeight(e));
}, e.prototype.computeScrollerHeight = function (t) {
return t - o.subtractInnerElHeight(this.el, this.scroller.el);
}, e.prototype.renderDates = function (t) {
for (var e = this.calendar, n = e.msToUtcMoment(t.renderUnzonedRange.startMs, !0), r = e.msToUtcMoment(t.renderUnzonedRange.endMs, !0), i = [], o = []; n < r;) i.push(n.clone()), o.push(new s["default"](n, n.clone().add(1, "day"))), n.add(1, "day");
this.dayDates = i, this.dayRanges = o;
}, e.prototype.componentFootprintToSegs = function (t) {
var e,
n,
r,
i = this.dayRanges,
o = [];
for (e = 0; e < i.length; e++) if ((n = t.unzonedRange.intersect(i[e])) && (r = {
startMs: n.startMs,
endMs: n.endMs,
isStart: n.isStart,
isEnd: n.isEnd,
dayIndex: e
}, o.push(r), !r.isEnd && !t.isAllDay && e + 1 < i.length && t.unzonedRange.endMs < i[e + 1].startMs + this.nextDayThreshold)) {
r.endMs = t.unzonedRange.endMs, r.isEnd = !0;
break;
}
return o;
}, e.prototype.renderEmptyMessage = function () {
this.contentEl.html('<div class="fc-list-empty-wrap2"><div class="fc-list-empty-wrap1"><div class="fc-list-empty">' + o.htmlEscape(this.opt("noEventsMessage")) + "</div></div></div>");
}, e.prototype.renderSegList = function (t) {
var e,
n,
r,
o = this.groupSegsByDay(t),
s = i('<table class="fc-list-table ' + this.calendar.theme.getClass("tableList") + '"><tbody></tbody></table>'),
a = s.find("tbody");
for (e = 0; e < o.length; e++) if (n = o[e]) for (a.append(this.dayHeaderHtml(this.dayDates[e])), this.eventRenderer.sortEventSegs(n), r = 0; r < n.length; r++) a.append(n[r].el);
this.contentEl.empty().append(s);
}, e.prototype.groupSegsByDay = function (t) {
var e,
n,
r = [];
for (e = 0; e < t.length; e++) n = t[e], (r[n.dayIndex] || (r[n.dayIndex] = [])).push(n);
return r;
}, e.prototype.dayHeaderHtml = function (t) {
var e = this.opt("listDayFormat"),
n = this.opt("listDayAltFormat");
return '<tr class="fc-list-heading" data-date="' + t.format("YYYY-MM-DD") + '"><td class="' + (this.calendar.theme.getClass("tableListHeading") || this.calendar.theme.getClass("widgetHeader")) + '" colspan="3">' + (e ? this.buildGotoAnchorHtml(t, {
"class": "fc-list-heading-main"
}, o.htmlEscape(t.format(e))) : "") + (n ? this.buildGotoAnchorHtml(t, {
"class": "fc-list-heading-alt"
}, o.htmlEscape(t.format(n))) : "") + "</td></tr>";
}, e;
}(a["default"]);
e["default"] = c, c.prototype.eventRendererClass = u["default"], c.prototype.eventPointingClass = d["default"];
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(4),
o = n(44),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.renderFgSegs = function (t) {
t.length ? this.component.renderSegList(t) : this.component.renderEmptyMessage();
}, e.prototype.fgSegHtml = function (t) {
var e,
n = this.view,
r = n.calendar,
o = r.theme,
s = t.footprint,
a = s.eventDef,
l = s.componentFootprint,
u = a.url,
d = ["fc-list-item"].concat(this.getClasses(a)),
c = this.getBgColor(a);
return e = l.isAllDay ? n.getAllDayHtml() : n.isMultiDayRange(l.unzonedRange) ? t.isStart || t.isEnd ? i.htmlEscape(this._getTimeText(r.msToMoment(t.startMs), r.msToMoment(t.endMs), l.isAllDay)) : n.getAllDayHtml() : i.htmlEscape(this.getTimeText(s)), u && d.push("fc-has-url"), '<tr class="' + d.join(" ") + '">' + (this.displayEventTime ? '<td class="fc-list-item-time ' + o.getClass("widgetContent") + '">' + (e || "") + "</td>" : "") + '<td class="fc-list-item-marker ' + o.getClass("widgetContent") + '"><span class="fc-event-dot"' + (c ? ' style="background-color:' + c + '"' : "") + '></span></td><td class="fc-list-item-title ' + o.getClass("widgetContent") + '"><a' + (u ? ' href="' + i.htmlEscape(u) + '"' : "") + ">" + i.htmlEscape(a.title || "") + "</a></td></tr>";
}, e.prototype.computeEventTimeFormat = function () {
return this.opt("mediumTimeFormat");
}, e;
}(o["default"]);
e["default"] = s;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(64),
s = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e.prototype.handleClick = function (e, n) {
var r;
t.prototype.handleClick.call(this, e, n), i(n.target).closest("a[href]").length || (r = e.footprint.eventDef.url) && !n.isDefaultPrevented() && (window.location.href = r);
}, e;
}(o["default"]);
e["default"] = s;
},,,,,, function (t, e, n) {
var r = n(3),
i = n(18),
o = n(4),
s = n(232);
n(11), n(49), n(260), n(261), n(264), n(265), n(266), n(267), r.fullCalendar = i, r.fn.fullCalendar = function (t) {
var e = Array.prototype.slice.call(arguments, 1),
n = this;
return this.each(function (i, a) {
var l,
u = r(a),
d = u.data("fullCalendar");
"string" == typeof t ? "getCalendar" === t ? i || (n = d) : "destroy" === t ? d && (d.destroy(), u.removeData("fullCalendar")) : d ? r.isFunction(d[t]) ? (l = d[t].apply(d, e), i || (n = l), "destroy" === t && u.removeData("fullCalendar")) : o.warn("'" + t + "' is an unknown FullCalendar method.") : o.warn("Attempting to call a FullCalendar method on an element with no calendar.") : d || (d = new s["default"](u, t), u.data("fullCalendar", d), d.render());
}), n;
}, t.exports = i;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(3),
i = n(4),
o = function () {
function t(t, e) {
this.el = null, this.viewsWithButtons = [], this.calendar = t, this.toolbarOptions = e;
}
return t.prototype.setToolbarOptions = function (t) {
this.toolbarOptions = t;
}, t.prototype.render = function () {
var t = this.toolbarOptions.layout,
e = this.el;
t ? (e ? e.empty() : e = this.el = r("<div class='fc-toolbar " + this.toolbarOptions.extraClasses + "'>"), e.append(this.renderSection("left")).append(this.renderSection("right")).append(this.renderSection("center")).append('<div class="fc-clear"></div>')) : this.removeElement();
}, t.prototype.removeElement = function () {
this.el && (this.el.remove(), this.el = null);
}, t.prototype.renderSection = function (t) {
var e = this,
n = this.calendar,
o = n.theme,
s = n.optionsManager,
a = n.viewSpecManager,
l = r('<div class="fc-' + t + '">'),
u = this.toolbarOptions.layout[t],
d = s.get("customButtons") || {},
c = s.overrides.buttonText || {},
p = s.get("buttonText") || {};
return u && r.each(u.split(" "), function (t, s) {
var u,
h = r(),
f = !0;
r.each(s.split(","), function (t, s) {
var l, u, g, v, y, m, b, w, D;
"title" === s ? (h = h.add(r("<h2> </h2>")), f = !1) : ((l = d[s]) ? (g = function g(t) {
l.click && l.click.call(w[0], t);
}, (v = o.getCustomButtonIconClass(l)) || (v = o.getIconClass(s)) || (y = l.text)) : (u = a.getViewSpec(s)) ? (e.viewsWithButtons.push(s), g = function g() {
n.changeView(s);
}, (y = u.buttonTextOverride) || (v = o.getIconClass(s)) || (y = u.buttonTextDefault)) : n[s] && (g = function g() {
n[s]();
}, (y = c[s]) || (v = o.getIconClass(s)) || (y = p[s])), g && (b = ["fc-" + s + "-button", o.getClass("button"), o.getClass("stateDefault")], y ? (m = i.htmlEscape(y), D = "") : v && (m = "<span class='" + v + "'></span>", D = ' aria-label="' + s + '"'), w = r('<button type="button" class="' + b.join(" ") + '"' + D + ">" + m + "</button>").click(function (t) {
w.hasClass(o.getClass("stateDisabled")) || (g(t), (w.hasClass(o.getClass("stateActive")) || w.hasClass(o.getClass("stateDisabled"))) && w.removeClass(o.getClass("stateHover")));
}).mousedown(function () {
w.not("." + o.getClass("stateActive")).not("." + o.getClass("stateDisabled")).addClass(o.getClass("stateDown"));
}).mouseup(function () {
w.removeClass(o.getClass("stateDown"));
}).hover(function () {
w.not("." + o.getClass("stateActive")).not("." + o.getClass("stateDisabled")).addClass(o.getClass("stateHover"));
}, function () {
w.removeClass(o.getClass("stateHover")).removeClass(o.getClass("stateDown"));
}), h = h.add(w)));
}), f && h.first().addClass(o.getClass("cornerLeft")).end().last().addClass(o.getClass("cornerRight")).end(), h.length > 1 ? (u = r("<div>"), f && u.addClass(o.getClass("buttonGroup")), u.append(h), l.append(u)) : l.append(h);
}), l;
}, t.prototype.updateTitle = function (t) {
this.el && this.el.find("h2").text(t);
}, t.prototype.activateButton = function (t) {
this.el && this.el.find(".fc-" + t + "-button").addClass(this.calendar.theme.getClass("stateActive"));
}, t.prototype.deactivateButton = function (t) {
this.el && this.el.find(".fc-" + t + "-button").removeClass(this.calendar.theme.getClass("stateActive"));
}, t.prototype.disableButton = function (t) {
this.el && this.el.find(".fc-" + t + "-button").prop("disabled", !0).addClass(this.calendar.theme.getClass("stateDisabled"));
}, t.prototype.enableButton = function (t) {
this.el && this.el.find(".fc-" + t + "-button").prop("disabled", !1).removeClass(this.calendar.theme.getClass("stateDisabled"));
}, t.prototype.getViewsWithButtons = function () {
return this.viewsWithButtons;
}, t;
}();
e["default"] = o;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(3),
o = n(4),
s = n(33),
a = n(32),
l = n(51),
u = function (t) {
function e(e, n) {
var r = t.call(this) || this;
return r._calendar = e, r.overrides = i.extend({}, n), r.dynamicOverrides = {}, r.compute(), r;
}
return r.__extends(e, t), e.prototype.add = function (t) {
var e,
n = 0;
this.recordOverrides(t);
for (e in t) n++;
if (1 === n) {
if ("height" === e || "contentHeight" === e || "aspectRatio" === e) return void this._calendar.updateViewSize(!0);
if ("defaultDate" === e) return;
if ("businessHours" === e) return;
if (/^(event|select)(Overlap|Constraint|Allow)$/.test(e)) return;
if ("timezone" === e) return void this._calendar.view.flash("initialEvents");
}
this._calendar.renderHeader(), this._calendar.renderFooter(), this._calendar.viewsByType = {}, this._calendar.reinitView();
}, e.prototype.compute = function () {
var t, e, n, r, i;
t = o.firstDefined(this.dynamicOverrides.locale, this.overrides.locale), e = a.localeOptionHash[t], e || (t = s.globalDefaults.locale, e = a.localeOptionHash[t] || {}), n = o.firstDefined(this.dynamicOverrides.isRTL, this.overrides.isRTL, e.isRTL, s.globalDefaults.isRTL), r = n ? s.rtlDefaults : {}, this.dirDefaults = r, this.localeDefaults = e, i = s.mergeOptions([s.globalDefaults, r, e, this.overrides, this.dynamicOverrides]), a.populateInstanceComputableOptions(i), this.reset(i);
}, e.prototype.recordOverrides = function (t) {
var e;
for (e in t) this.dynamicOverrides[e] = t[e];
this._calendar.viewSpecManager.clearCache(), this.compute();
}, e;
}(l["default"]);
e["default"] = u;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(0),
i = n(3),
o = n(24),
s = n(4),
a = n(33),
l = n(32),
u = function () {
function t(t, e) {
this.optionsManager = t, this._calendar = e, this.clearCache();
}
return t.prototype.clearCache = function () {
this.viewSpecCache = {};
}, t.prototype.getViewSpec = function (t) {
var e = this.viewSpecCache;
return e[t] || (e[t] = this.buildViewSpec(t));
}, t.prototype.getUnitViewSpec = function (t) {
var e, n, r;
if (-1 !== i.inArray(t, s.unitsDesc)) for (e = this._calendar.header.getViewsWithButtons(), i.each(o.viewHash, function (t) {
e.push(t);
}), n = 0; n < e.length; n++) if ((r = this.getViewSpec(e[n])) && r.singleUnit === t) return r;
}, t.prototype.buildViewSpec = function (t) {
for (var e, n, i, l, u, d = this.optionsManager.overrides.views || {}, c = [], p = [], h = [], f = t; f;) e = o.viewHash[f], n = d[f], f = null, "function" == typeof e && (e = {
"class": e
}), e && (c.unshift(e), p.unshift(e.defaults || {}), i = i || e.duration, f = f || e.type), n && (h.unshift(n), i = i || n.duration, f = f || n.type);
return e = s.mergeProps(c), e.type = t, !!e["class"] && (i = i || this.optionsManager.dynamicOverrides.duration || this.optionsManager.overrides.duration, i && (l = r.duration(i), l.valueOf() && (u = s.computeDurationGreatestUnit(l, i), e.duration = l, e.durationUnit = u, 1 === l.as(u) && (e.singleUnit = u, h.unshift(d[u] || {})))), e.defaults = a.mergeOptions(p), e.overrides = a.mergeOptions(h), this.buildViewSpecOptions(e), this.buildViewSpecButtonText(e, t), e);
}, t.prototype.buildViewSpecOptions = function (t) {
var e = this.optionsManager;
t.options = a.mergeOptions([a.globalDefaults, t.defaults, e.dirDefaults, e.localeDefaults, e.overrides, t.overrides, e.dynamicOverrides]), l.populateInstanceComputableOptions(t.options);
}, t.prototype.buildViewSpecButtonText = function (t, e) {
function n(n) {
var r = n.buttonText || {};
return r[e] || (t.buttonTextKey ? r[t.buttonTextKey] : null) || (t.singleUnit ? r[t.singleUnit] : null);
}
var r = this.optionsManager;
t.buttonTextOverride = n(r.dynamicOverrides) || n(r.overrides) || t.overrides.buttonText, t.buttonTextDefault = n(r.localeDefaults) || n(r.dirDefaults) || t.defaults.buttonText || n(a.globalDefaults) || (t.duration ? this._calendar.humanizeDuration(t.duration) : null) || e;
}, t;
}();
e["default"] = u;
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(38),
i = n(56),
o = n(223),
s = n(224);
r["default"].registerClass(i["default"]), r["default"].registerClass(o["default"]), r["default"].registerClass(s["default"]);
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(57),
i = n(221),
o = n(222),
s = n(262),
a = n(263);
r.defineThemeSystem("standard", i["default"]), r.defineThemeSystem("jquery-ui", o["default"]), r.defineThemeSystem("bootstrap3", s["default"]), r.defineThemeSystem("bootstrap4", a["default"]);
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(22),
o = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e;
}(i["default"]);
e["default"] = o, o.prototype.classes = {
widget: "fc-bootstrap3",
tableGrid: "table-bordered",
tableList: "table",
tableListHeading: "active",
buttonGroup: "btn-group",
button: "btn btn-default",
stateActive: "active",
stateDisabled: "disabled",
today: "alert alert-info",
popover: "panel panel-default",
popoverHeader: "panel-heading",
popoverContent: "panel-body",
headerRow: "panel-default",
dayRow: "panel-default",
listView: "panel panel-default"
}, o.prototype.baseIconClass = "glyphicon", o.prototype.iconClasses = {
close: "glyphicon-remove",
prev: "glyphicon-chevron-left",
next: "glyphicon-chevron-right",
prevYear: "glyphicon-backward",
nextYear: "glyphicon-forward"
}, o.prototype.iconOverrideOption = "bootstrapGlyphicons", o.prototype.iconOverrideCustomButtonOption = "bootstrapGlyphicon", o.prototype.iconOverridePrefix = "glyphicon-";
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(2),
i = n(22),
o = function (t) {
function e() {
return null !== t && t.apply(this, arguments) || this;
}
return r.__extends(e, t), e;
}(i["default"]);
e["default"] = o, o.prototype.classes = {
widget: "fc-bootstrap4",
tableGrid: "table-bordered",
tableList: "table",
tableListHeading: "table-active",
buttonGroup: "btn-group",
button: "btn btn-primary",
stateActive: "active",
stateDisabled: "disabled",
today: "alert alert-info",
popover: "card card-primary",
popoverHeader: "card-header",
popoverContent: "card-body",
headerRow: "table-bordered",
dayRow: "table-bordered",
listView: "card card-primary"
}, o.prototype.baseIconClass = "fa", o.prototype.iconClasses = {
close: "fa-times",
prev: "fa-chevron-left",
next: "fa-chevron-right",
prevYear: "fa-angle-double-left",
nextYear: "fa-angle-double-right"
}, o.prototype.iconOverrideOption = "bootstrapFontAwesome", o.prototype.iconOverrideCustomButtonOption = "bootstrapFontAwesome", o.prototype.iconOverridePrefix = "fa-";
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(24),
i = n(67),
o = n(246);
r.defineView("basic", {
"class": i["default"]
}), r.defineView("basicDay", {
type: "basic",
duration: {
days: 1
}
}), r.defineView("basicWeek", {
type: "basic",
duration: {
weeks: 1
}
}), r.defineView("month", {
"class": o["default"],
duration: {
months: 1
},
defaults: {
fixedWeekCount: !0
}
});
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(24),
i = n(238);
r.defineView("agenda", {
"class": i["default"],
defaults: {
allDaySlot: !0,
slotDuration: "00:30:00",
slotEventOverlap: !0
}
}), r.defineView("agendaDay", {
type: "agenda",
duration: {
days: 1
}
}), r.defineView("agendaWeek", {
type: "agenda",
duration: {
weeks: 1
}
});
}, function (t, e, n) {
Object.defineProperty(e, "__esModule", {
value: !0
});
var r = n(24),
i = n(248);
r.defineView("list", {
"class": i["default"],
buttonTextKey: "list",
defaults: {
buttonText: "list",
listDayFormat: "LL",
noEventsMessage: TextUtils.i18n('CALENDARWEBCLIENT/INFO_NO_EVENTS_TO_DISPLAY')
}
}), r.defineView("listDay", {
type: "list",
duration: {
days: 1
},
defaults: {
listDayFormat: "dddd"
}
}), r.defineView("listWeek", {
type: "list",
duration: {
weeks: 1
},
defaults: {
listDayFormat: "dddd",
listDayAltFormat: "LL"
}
}), r.defineView("listMonth", {
type: "list",
duration: {
month: 1
},
defaults: {
listDayAltFormat: "dddd"
}
}), r.defineView("listYear", {
type: "list",
duration: {
year: 1
},
defaults: {
listDayAltFormat: "dddd"
}
});
}, function (t, e) {
Object.defineProperty(e, "__esModule", {
value: !0
});
}]);
});
/***/ }),
/***/ "5iHM":
/*!*******************************************************************!*\
!*** ./modules/CalendarWebclient/js/popups/CalendarSharePopup.js ***!
\*******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
$ = __webpack_require__(/*! jquery */ "M4cL"),
ko = __webpack_require__(/*! knockout */ "p09A"),
AddressUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Address.js */ "rBrp"),
TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "yU9o"),
CAbstractPopup = __webpack_require__(/*! modules/CoreWebclient/js/popups/CAbstractPopup.js */ "69av"),
ModulesManager = __webpack_require__(/*! modules/CoreWebclient/js/ModulesManager.js */ "5D2l"),
Screens = __webpack_require__(/*! modules/CoreWebclient/js/Screens.js */ "D2Gh");
/**
* @constructor
*/
function CCalendarSharePopup() {
CAbstractPopup.call(this);
this.guestsDom = ko.observable();
this.ownersDom = ko.observable();
this.guestsLock = ko.observable(false);
this.guests = ko.observable('').extend({
'reversible': true
});
this.guests.subscribe(function () {
if (!this.guestsLock()) {
$(this.guestsDom()).val(this.guests());
$(this.guestsDom()).inputosaurus('refresh');
}
}, this);
this.ownersLock = ko.observable(false);
this.owners = ko.observable('').extend({
'reversible': true
});
this.owners.subscribe(function () {
if (!this.ownersLock()) {
$(this.ownersDom()).val(this.owners());
$(this.ownersDom()).inputosaurus('refresh');
}
}, this);
this.fCallback = null;
this.calendarId = ko.observable(null);
this.selectedColor = ko.observable('');
this.calendarUrl = ko.observable('');
this.exportUrl = ko.observable('');
this.icsLink = ko.observable('');
this.isPublic = ko.observable(false);
this.shares = ko.observableArray([]);
this.owner = ko.observable('');
ko.computed(function () {
if (this.owner() && this.guestsDom()) {
this.initInputosaurus(this.guestsDom, this.guests, this.guestsLock);
}
}, this);
ko.computed(function () {
if (this.owner() && this.guestsDom()) {
this.initInputosaurus(this.ownersDom, this.owners, this.ownersLock);
}
}, this);
this.recivedAnim = ko.observable(false).extend({
'autoResetToFalse': 500
});
this.whomAnimate = ko.observable('');
this.newShare = ko.observable('');
this.newShareFocus = ko.observable(false);
this.newShareAccess = ko.observable(Enums.CalendarAccess.Read);
this.sharedToAll = ko.observable(false);
this.sharedToAllAccess = ko.observable(Enums.CalendarAccess.Read);
this.canAdd = ko.observable(false);
this.aAccess = [{
'value': Enums.CalendarAccess.Read,
'display': TextUtils.i18n('CALENDARWEBCLIENT/LABEL_READ_ACCESS')
}, {
'value': Enums.CalendarAccess.Write,
'display': TextUtils.i18n('CALENDARWEBCLIENT/LABEL_WRITE_ACCESS')
}];
}
_.extendOwn(CCalendarSharePopup.prototype, CAbstractPopup.prototype);
CCalendarSharePopup.prototype.PopupTemplate = 'CalendarWebclient_CalendarSharePopup';
/**
* @param {Function} fCallback
* @param {Object} oCalendar
*/
CCalendarSharePopup.prototype.onOpen = function (fCallback, oCalendar) {
if (_.isFunction(fCallback)) {
this.fCallback = fCallback;
}
if (!_.isUndefined(oCalendar)) {
this.selectedColor(oCalendar.color());
this.calendarId(oCalendar.id);
this.calendarUrl(oCalendar.davUrl() + oCalendar.url());
this.exportUrl(oCalendar.exportUrl());
this.icsLink(oCalendar.davUrl() + oCalendar.url() + '?export');
this.isPublic(oCalendar.isPublic());
this.owner(oCalendar.owner());
this.populateShares(oCalendar.shares());
this.sharedToAll(oCalendar.isSharedToAll());
this.sharedToAllAccess(oCalendar.sharedToAllAccess);
}
};
CCalendarSharePopup.prototype.onSaveClick = function () {
var aOwners = AddressUtils.getArrayRecipients(this.owners(), false),
aGuests = AddressUtils.getArrayRecipients(this.guests(), false);
if (this.isValidShares(aOwners, aGuests)) {
if (this.fCallback) {
this.fCallback(this.calendarId(), this.isPublic(), this.getShares(aOwners, aGuests), this.sharedToAll(), this.sharedToAllAccess());
}
this.closePopup();
}
};
CCalendarSharePopup.prototype.onClose = function () {
this.cleanAll();
};
CCalendarSharePopup.prototype.cleanAll = function () {
this.newShare('');
this.newShareAccess(Enums.CalendarAccess.Read);
this.shareToAllAccess = ko.observable(Enums.CalendarAccess.Read);
//this.shareAutocompleteItem(null);
this.canAdd(false);
};
/**
* @param {string} sEmail
*/
CCalendarSharePopup.prototype.itsMe = function (sEmail) {
return sEmail === App.getUserPublicId();
};
CCalendarSharePopup.prototype.initInputosaurus = function (koDom, koAddr, koLockAddr) {
if (koDom() && $(koDom()).length > 0) {
var suggestParameters = {
storage: 'team',
addContactGroups: false,
addUserGroups: false,
exceptEmail: this.owner(),
withoutEmptyEmails: false
},
autoCompleteSource = ModulesManager.run('ContactsWebclient', 'getSuggestionsAutocompleteCallback', [suggestParameters]);
$(koDom()).inputosaurus({
width: 'auto',
parseOnBlur: true,
autoCompleteSource: _.isFunction(autoCompleteSource) ? autoCompleteSource : function () {},
change: _.bind(function (ev) {
koLockAddr(true);
this.setRecipient(koAddr, ev.target.value);
koLockAddr(false);
}, this),
copy: _.bind(function (sVal) {
this.inputosaurusBuffer = sVal;
}, this),
paste: _.bind(function () {
var sInputosaurusBuffer = this.inputosaurusBuffer || '';
this.inputosaurusBuffer = '';
return sInputosaurusBuffer;
}, this),
mobileDevice: App.isMobile()
});
}
};
CCalendarSharePopup.prototype.setRecipient = function (koRecipient, sRecipient) {
if (koRecipient() === sRecipient) {
koRecipient.valueHasMutated();
} else {
koRecipient(sRecipient);
}
};
CCalendarSharePopup.prototype.isValidShares = function (aOwners, aGuests) {
var aConflictEmails = [];
_.each(aOwners, function (oOwnerAddress) {
_.each(aGuests, function (oGuestAddress) {
if (oOwnerAddress.email === oGuestAddress.email) {
aConflictEmails.push(oOwnerAddress.fullEmail);
}
});
});
if (aConflictEmails.length > 0) {
var sConflictEmails = TextUtils.encodeHtml(aConflictEmails.join(', ')),
iConflictCount = aConflictEmails.length;
Screens.showError(TextUtils.i18n('CALENDARWEBCLIENT/ERROR_SHARE_CONFLICT_EMAILS', {
'CONFLICT_EMAILS': sConflictEmails
}, null, iConflictCount));
return false;
}
return true;
};
CCalendarSharePopup.prototype.getShares = function (aOwners, aGuests) {
return $.merge(_.map(aGuests, function (oGuest) {
return {
name: oGuest.name,
email: oGuest.email,
access: Enums.CalendarAccess.Read
};
}), _.map(aOwners, function (oOwner) {
return {
name: oOwner.name,
email: oOwner.email,
access: Enums.CalendarAccess.Write
};
}));
};
CCalendarSharePopup.prototype.populateShares = function (aShares) {
var sGuests = '',
sOwners = '';
_.each(aShares, function (oShare) {
if (oShare.access === Enums.CalendarAccess.Read) {
sGuests = oShare.name !== '' && oShare.name !== oShare.email ? sGuests + '"' + oShare.name + '" <' + oShare.email + '>,' : sGuests + oShare.email + ', ';
} else if (oShare.access === Enums.CalendarAccess.Write) {
sOwners = oShare.name !== '' && oShare.name !== oShare.email ? sOwners + '"' + oShare.name + '" <' + oShare.email + '>,' : sOwners + oShare.email + ', ';
}
}, this);
this.setRecipient(this.guests, sGuests);
this.setRecipient(this.owners, sOwners);
};
module.exports = new CCalendarSharePopup();
/***/ }),
/***/ "B1ux":
/*!************************************************************!*\
!*** ./modules/CalendarWebclient/js/views/CalendarView.js ***!
\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
$ = __webpack_require__(/*! jquery */ "M4cL"),
ko = __webpack_require__(/*! knockout */ "p09A"),
moment = __webpack_require__(/*! moment-timezone */ "R+qY");
var DateUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Date.js */ "jFqX"),
TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
Types = __webpack_require__(/*! modules/CoreWebclient/js/utils/Types.js */ "ERH9"),
Api = __webpack_require__(/*! modules/CoreWebclient/js/Api.js */ "Z9uT"),
App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "yU9o"),
Browser = __webpack_require__(/*! modules/CoreWebclient/js/Browser.js */ "/Odb"),
CJua = __webpack_require__(/*! modules/CoreWebclient/js/CJua.js */ "hr1f"),
Screens = __webpack_require__(/*! modules/CoreWebclient/js/Screens.js */ "D2Gh"),
UserSettings = __webpack_require__(/*! modules/CoreWebclient/js/Settings.js */ "KIwC"),
Pulse = __webpack_require__(/*! modules/CoreWebclient/js/Pulse.js */ "jIlg"),
CAbstractScreenView = __webpack_require__(/*! modules/CoreWebclient/js/views/CAbstractScreenView.js */ "db2p"),
Popups = __webpack_require__(/*! modules/CoreWebclient/js/Popups.js */ "PMEU"),
ConfirmPopup = __webpack_require__(/*! modules/CoreWebclient/js/popups/ConfirmPopup.js */ "MYiO"),
Utils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Common.js */ "uQaC");
var EditCalendarPopup = __webpack_require__(/*! modules/CalendarWebclient/js/popups/EditCalendarPopup.js */ "Y4TL"),
EditEventPopup = __webpack_require__(/*! modules/CalendarWebclient/js/popups/EditEventPopup.js */ "fvQr"),
EditEventRecurrencePopup = __webpack_require__(/*! modules/CalendarWebclient/js/popups/EditEventRecurrencePopup.js */ "MfA3"),
GetCalendarLinkPopup = __webpack_require__(/*! modules/CalendarWebclient/js/popups/GetCalendarLinkPopup.js */ "dIGY"),
ImportCalendarPopup = __webpack_require__(/*! modules/CalendarWebclient/js/popups/ImportCalendarPopup.js */ "HOSH"),
SelectCalendarPopup = __webpack_require__(/*! modules/CalendarWebclient/js/popups/SelectCalendarPopup.js */ "/GNx"),
CalendarSharePopup = __webpack_require__(/*! modules/CalendarWebclient/js/popups/CalendarSharePopup.js */ "5iHM"),
FullCalendarUtils = __webpack_require__(/*! modules/CalendarWebclient/js/utils/FullCalendar.js */ "qq6A"),
Ajax = __webpack_require__(/*! modules/CalendarWebclient/js/Ajax.js */ "GBtk"),
CalendarCache = __webpack_require__(/*! modules/CalendarWebclient/js/Cache.js */ "Gndn"),
Settings = __webpack_require__(/*! modules/CalendarWebclient/js/Settings.js */ "MEQx"),
CCalendarListModel = __webpack_require__(/*! modules/CalendarWebclient/js/models/CCalendarListModel.js */ "Us81"),
CCalendarModel = __webpack_require__(/*! modules/CalendarWebclient/js/models/CCalendarModel.js */ "PGTe");
var bMobileDevice = false;
__webpack_require__(/*! jquery-ui/ui/widgets/datepicker */ "okSt");
/**
* @constructor
*/
function CCalendarView() {
CAbstractScreenView.call(this, 'CalendarWebclient');
this.browserTitle = ko.observable(TextUtils.i18n('CALENDARWEBCLIENT/HEADING_BROWSER_TAB'));
var self = this;
this.initialized = ko.observable(false);
this.isPublic = App.isPublic();
this.uploaderArea = ko.observable(null);
this.bDragActive = ko.observable(false);
this.bDragActiveComp = ko.computed(function () {
return this.bDragActive();
}, this);
this.aDayNames = TextUtils.i18n('COREWEBCLIENT/LIST_DAY_NAMES').split(' ');
this.popUpStatus = false;
this.linkRow = 0;
this.linkColumn = 0;
this.sTimeFormat = UserSettings.timeFormat() === Enums.TimeFormat.F24 ? 'HH:mm' : 'hh:mm A';
this.dateFormatForMoment = Utils.getDateFormatForMoment(UserSettings.dateFormat());
this.topPositionToday = ko.observable('.fc-widget-content.fc-today');
this.loadOnce = false;
this.scrollModel = ko.observable(null);
this.scrollHeight = 0;
this.dateTitle = ko.observable('');
this.aMonthNames = DateUtils.getMonthNamesArray();
this.selectedView = ko.observable('');
this.visibleWeekdayHeader = ko.computed(function () {
return this.selectedView() === 'month';
}, this);
this.selectedView.subscribe(function () {
this.resize();
}, this);
this.$calendarGrid = null;
this.calendarGridDom = ko.observable(null);
this.$datePicker = null;
this.datePickerDom = ko.observable(null);
this.calendars = new CCalendarListModel({
onCalendarCollectionChange: function onCalendarCollectionChange() {
self.refreshView();
},
onCalendarActiveChange: function onCalendarActiveChange() {
self.refreshView();
}
});
this.colors = Settings.CalendarColors;
this.busyDays = ko.observableArray([]);
this.$inlineEditedEvent = null;
this.inlineEditedEventText = null;
this.checkStarted = ko.observable(false);
this.loaded = false;
this.startDateTime = 0;
this.endDateTime = 0;
this.needsToReload = false;
this.bTimezoneChanged = false;
UserSettings.timezone.subscribe(function () {
this.startDateTime = 0;
this.endDateTime = 0;
this.needsToReload = true;
this.bTimezoneChanged = true;
this.getCalendars();
}, this);
this.calendarListClick = function (oItem) {
oItem.active(!oItem.active());
};
this.currentCalendarDropdown = ko.observable(false);
this.currentCalendarDropdownOffset = ko.observable(0);
this.calendarDropdownToggle = function (bValue, oElement) {
if (oElement && bValue) {
var position = oElement.position(),
height = oElement.outerHeight();
self.currentCalendarDropdownOffset(Types.pInt(position.top) + height);
}
self.currentCalendarDropdown(bValue);
};
this.calendarDropdownHide = _.throttle(_.bind(function () {
this.calendarDropdownToggle(false);
}, this), 500);
this.dayNamesResizeBinding = _.throttle(_.bind(this.resize, this), 50);
this.customscrollTop = ko.observable(0);
this.fullcalendarOptions = {
handleWindowResize: true,
eventLimit: 10,
header: false,
editable: !this.isPublic,
selectable: !this.isPublic,
allDayText: TextUtils.i18n('CALENDARWEBCLIENT/LABEL_ALL_DAY'),
dayNames: this.aDayNames,
monthNames: this.aMonthNames,
isRTL: UserSettings.IsRTL,
scrollTime: moment.duration(8, 'hours'),
forceEventDuration: true,
defaultTimedEventDuration: '00:00:01',
views: {
month: {
columnFormat: 'dddd' // Monday
},
week: {
columnFormat: 'dddd D' // Monday 7
},
day: {
columnFormat: 'dddd D' // Monday 7
},
listMonth: {
listDayFormat: this.dateFormatForMoment
}
},
displayEventEnd: {
month: true,
basicWeek: true,
"default": true
},
select: _.bind(this.createEventFromGrid, this),
eventClick: _.bind(this.eventClickCallback, this),
eventDragStart: _.bind(this.onEventDragStart, this),
eventDragStop: _.bind(this.onEventDragStop, this),
eventResizeStart: _.bind(this.onEventResizeStart, this),
eventResizeStop: _.bind(this.onEventResizeStop, this),
eventDrop: _.bind(this.moveEvent, this),
eventResize: _.bind(this.resizeEvent, this),
eventRender: function eventRender(oEv, oEl) {
if (Settings.AddDescriptionToTitle) {
var oTitle = oEl.find('.fc-title');
oTitle.html('<span class="subject-title">' + $.trim(oEv.subject.replace(/[\n\r]/g, ' ')) + '</span> ' + '<span class="desc-title">' + $.trim(oEv.description.replace(/[\n\r]/g, ' ')) + '</span> ' + '<span class="loc-title">' + $.trim(oEv.location.replace(/[\n\r]/g, ' ')) + '</span>');
}
if (oEv.isCalendarShared && oEv.isPrivate && Settings.AllowPrivateEvents) {
oEl.css('cursor', 'default');
// var oTitle = oEl.find('.fc-title');
// oTitle.html('<span class="subject-title" style="opacity: 0.5">[' + TextUtils.i18n('CALENDARWEBCLIENT/LABEL_NO_EVENT_INFORMATION') + ']</span> ');
}
if (oEv.type === 'VTODO') {
var content = oEl.find('.fc-content'),
title = content.find('.fc-title'),
completed = $('<label class="custom_checkbox round"><span class="icon"></span><input type="checkbox"></label>');
// fcTime = content.find('.fc-time')
if (oEv.status) {
completed.addClass('checked');
title.css('text-decoration-line', 'line-through');
} else {
completed.removeClass('checked');
title.css('text-decoration-line', 'unset');
}
oEl.addClass('fc-custom-task');
title.prepend(completed);
if (oEv.isCalendarShared && oEv.isPrivate && Settings.AllowPrivateEvents) {
completed.attr('readonly', true);
completed.css('cursor', 'default');
} else {
completed.on(function (event) {
if (oEv.status) {
oEv.status = false;
completed.removeClass('checked');
title.css('text-decoration-line', 'unset');
} else {
oEv.status = true;
completed.addClass('checked');
title.css('text-decoration-line', 'line-through');
}
oEv.modified = true;
if (oEv.rrule) {
oEv.allEvents = Enums.CalendarEditRecurrenceEvent.OnlyThisInstance;
}
self.updateEvent(oEv);
event.preventDefault();
event.stopPropagation();
});
}
}
},
eventAfterRender: _.bind(function (oEv, oEl) {}, this),
eventAfterAllRender: _.bind(this.updateAllEvents, this),
viewRender: _.bind(this.viewRenderCallback, this),
events: _.bind(this.eventsSource, this)
};
this.revertFunction = null;
this.bAllowShare = Settings.AllowShare;
this.bAllowTasks = Settings.AllowTasks;
this.defaultViewName = ko.computed(function () {
switch (Settings.DefaultTab) {
case Enums.CalendarDefaultTab.List:
return 'listWeek';
case Enums.CalendarDefaultTab.Day:
return 'agendaDay';
case Enums.CalendarDefaultTab.Week:
return 'agendaWeek';
case Enums.CalendarDefaultTab.Month:
default:
return 'month';
}
}, this);
this.iAutoReloadTimer = -1;
this.dragEventTrigger = false;
this.delayOnEventResult = false;
this.delayOnEventResultData = [];
this.refreshView = _.throttle(_.bind(this.refreshViewSingle, this), 100);
this.uploadCalendarId = ko.observable('');
this.changeFullCalendarDate = true;
this.domScrollWrapper = null;
this.hotKeysBind();
this.viewEventRoute = null;
App.broadcastEvent('CalendarWebclient::ConstructView::after', {
Name: this.ViewConstructorName,
View: this
});
}
_.extendOwn(CCalendarView.prototype, CAbstractScreenView.prototype);
CCalendarView.prototype.ViewTemplate = 'CalendarWebclient_CalendarView';
CCalendarView.prototype.ViewConstructorName = 'CCalendarView';
/**
* Hot keys events
*/
CCalendarView.prototype.hotKeysBind = function () {
var self = this;
$(document).on('keyup', function (ev) {
var iKey = ev.keyCode;
/* Close popup "more events" if click Esc button */
if (self.calendars.getEvents().length > 0 && self.selectedView() === 'month') {
if (iKey === Enums.Key.Esc && self.popUpStatus) {
/* two triggers for correct plugin working */
$('body').trigger('click');
/* popUpStatus has just been changed */
if (!self.popUpStatus) {
$('body').trigger('mousedown');
}
}
}
});
};
CCalendarView.prototype.getDateFromCurrentView = function (sDateType) {
var oView = this.$calendarGrid.fullCalendar('getView'),
oDate = oView && oView[sDateType] ? oView[sDateType] : null;
if (oDate && sDateType === 'end' && oView.name === 'agendaDay') {
oDate.add(1, 'd');
}
return oDate && oDate['unix'] ? oView[sDateType]['unix']() : 0;
};
/**
* @param {Object} oStart
* @param {Object} oEnd
* @param {*} mTimezone
* @param {Function} fCallback
*/
CCalendarView.prototype.eventsSource = function (oStart, oEnd, mTimezone, fCallback) {
fCallback(this.calendars.getEvents(oStart, oEnd));
};
CCalendarView.prototype.changeView = function (viewName) {
this.selectedView(viewName);
if (viewName === 'month') {
this.loadOnce = false;
}
this.$calendarGrid.fullCalendar('changeView', viewName);
};
CCalendarView.prototype.recreateFullCalendar = function (viewName) {
this.$calendarGrid.fullCalendar('destroy');
this.$calendarGrid.fullCalendar(this.fullcalendarOptions);
this.changeView(viewName);
};
CCalendarView.prototype.applyCalendarSettings = function () {
this.sTimeFormat = UserSettings.timeFormat() === Enums.TimeFormat.F24 ? 'HH:mm' : 'hh:mm A';
this.dateFormatForMoment = Utils.getDateFormatForMoment(UserSettings.dateFormat());
this.calendarGridDom().removeClass('fc-show-weekends');
if (Settings.HighlightWorkingDays) {
this.calendarGridDom().addClass('fc-show-weekends');
}
this.fullcalendarOptions.timeFormat = this.sTimeFormat;
this.fullcalendarOptions.views.listMonth.listDayFormat = this.dateFormatForMoment;
this.fullcalendarOptions.slotLabelFormat = this.sTimeFormat;
this.fullcalendarOptions.defaultView = this.defaultViewName();
this.fullcalendarOptions.lang = moment.locale();
this.applyFirstDay();
var showWeekNumbers = Settings.ShowWeekNumbers && Settings.WeekStartsOn == 1;
this.$datePicker.datepicker('option', 'showWeek', showWeekNumbers);
this.fullcalendarOptions.weekNumbers = showWeekNumbers;
this.fullcalendarOptions.weekNumberTitle = TextUtils.i18n('CALENDARWEBCLIENT/LABEL_WEEK_SHORT') + ' ';
this.fullcalendarOptions.weekNumberCalculation = 'ISO';
this.recreateFullCalendar(this.defaultViewName());
};
CCalendarView.prototype.applyFirstDay = function () {
var aDayNames = [],
sFirstDay = '',
sLastDay = '';
if (App.getUserRole() !== Enums.UserRole.Anonymous) {
this.fullcalendarOptions.firstDay = Settings.WeekStartsOn;
}
_.each(this.aDayNames, function (sDayName) {
aDayNames.push(sDayName);
});
switch (Settings.WeekStartsOn) {
case 1:
sLastDay = aDayNames.shift();
aDayNames.push(sLastDay);
break;
case 6:
sFirstDay = aDayNames.pop();
aDayNames.unshift(sFirstDay);
break;
}
this.$datePicker.datepicker('option', 'firstDay', Settings.WeekStartsOn);
};
CCalendarView.prototype.initDatePicker = function () {
this.$datePicker.datepicker({
showOtherMonths: true,
selectOtherMonths: true,
monthNames: this.aMonthNames,
dayNamesMin: TextUtils.i18n('COREWEBCLIENT/LIST_DAY_NAMES_MIN').split(' '),
showWeek: false,
weekHeader: TextUtils.i18n('CALENDARWEBCLIENT/LABEL_WEEK_SHORT'),
nextText: '',
prevText: '',
onChangeMonthYear: _.bind(this.changeMonthYearFromDatePicker, this),
onSelect: _.bind(this.selectDateFromDatePicker, this),
beforeShowDay: _.bind(this.getDayDescription, this)
});
};
CCalendarView.prototype.onBind = function () {
var self = this;
this.$calendarGrid = $(this.calendarGridDom());
this.$datePicker = $(this.datePickerDom());
if (!this.isPublic) {
this.initUploader();
}
/* Click more links */
$('body').on('click', function (e) {
if (self.calendars.getEvents().length > 0 && self.selectedView() === 'month') {
if ($(e.target).hasClass('fc-more')) {
var $this = $(e.target);
$('.fc-more-cell.active').removeClass('active');
$('.fc-row.fc-week.active').removeClass('active');
$this.closest('.fc-more-cell').addClass('active');
$this.closest('.fc-row.fc-week').addClass('active');
var $popup = $('body').find('.fc-popover.fc-more-popover'),
$parent = $this.closest('tr'),
$superParent = $this.closest('.fc-day-grid'),
indexColumn = Types.pInt($parent.find('.fc-more-cell.active').index('.fc-more-cell')),
indexRow = Types.pInt($superParent.find('.fc-row.fc-week.active').index('.fc-row.fc-week'));
if ($popup.length > 0) {
self.linkRow = indexRow;
self.linkColumn = indexColumn;
self.popUpStatus = true;
} else {
self.popUpStatus = false;
self.linkRow = 0;
self.linkColumn = 0;
}
} else if ($(e.target).hasClass('checkstate') || $(e.target).parent().hasClass('checkstate')) {
e.preventDefault();
} else {
self.popUpStatus = false;
self.linkRow = 0;
self.linkColumn = 0;
}
}
});
};
CCalendarView.prototype.onShow = function () {
var bInitialized = this.initialized();
if (!bInitialized) {
this.initDatePicker();
var oParent = this.$calendarGrid.parent();
if (oParent) {
this.fullcalendarOptions.height = oParent.height();
}
this.applyCalendarSettings();
this.highlightWeekInDayPicker();
this.initialized(true);
}
var sTimeFormat = UserSettings.timeFormat() === Enums.TimeFormat.F24 ? 'HH:mm' : 'hh:mm A';
var dateFormatForMoment = Utils.getDateFormatForMoment(UserSettings.dateFormat());
if (CalendarCache.calendarSettingsChanged() || this.sTimeFormat !== sTimeFormat || CalendarCache.calendarChanged() || this.dateFormatForMoment !== dateFormatForMoment) {
if (CalendarCache.calendarSettingsChanged() || this.sTimeFormat !== sTimeFormat || this.dateFormatForMoment !== dateFormatForMoment) {
this.applyCalendarSettings();
}
CalendarCache.calendarSettingsChanged(false);
CalendarCache.calendarChanged(false);
} else if (this.isPublic) {
this.$calendarGrid.fullCalendar('render');
this.applyDateTime();
}
this.$calendarGrid.fullCalendar();
if (bInitialized) {
this.getCalendars();
}
this.refetchEvents();
};
/**
* @param {Array} aParams
*/
CCalendarView.prototype.onRoute = function (aParams) {
var sCalendarId = aParams[0],
sEventId = aParams[1],
start = aParams[2],
oEvent = null;
this.$calendarGrid.fullCalendar('gotoDate', moment(start));
oEvent = this.getClientEvent(sCalendarId, sEventId);
if (oEvent !== null) {
this.eventClickCallback(oEvent);
} else {
this.viewEventRoute = {
CalendarId: sCalendarId,
EventId: sEventId
};
}
};
CCalendarView.prototype.getClientEvent = function (sCalendarId, sEventId) {
var oCalendar = null,
oEvent = null,
oEventResult = null,
aEvents = [];
aEvents = this.$calendarGrid.fullCalendar('clientEvents', sEventId);
if (Array.isArray(aEvents) && aEvents.length > 0) {
oCalendar = this.calendars.getCalendarById(sCalendarId);
if (oCalendar !== undefined) {
oEvent = _.find(aEvents, function (oEvent) {
return oEvent.calendarId === sCalendarId;
}, this);
if (oEvent !== undefined) {
oEventResult = oEvent;
}
}
}
return oEventResult;
};
CCalendarView.prototype.applyDateTime = function () {
FullCalendarUtils.recreateIfDateChanged(this.$calendarGrid, this.recreateFullCalendar.bind(this));
FullCalendarUtils.setTimeline();
};
/**
* When all event's rendered
*/
CCalendarView.prototype.updateAllEvents = function () {
if (this.calendars.getEvents().length > 0 && this.selectedView() === 'month') {
if (!this.loadOnce) {
this.topPositionToday.valueHasMutated();
this.loadOnce = true;
} else {
this.scrollModel()['vertical'].set(this.scrollHeight);
}
/* open current more link */
if (this.popUpStatus) {
$('body').find('.fc-row.fc-week').eq(this.linkRow).find('.fc-more-cell').eq(this.linkColumn).find('a.fc-more').click();
}
}
};
/**
* @param {Object} oView
* @param {Object} oElement
*/
CCalendarView.prototype.viewRenderCallback = function (oView, oElement) {
var prevDate = null,
constDate = '01/01/1971 ';
this.changeDate();
if (!this.loaded) {
this.initResizing();
}
if (oView.name !== 'month' && Settings.HighlightWorkingHours) {
$('.fc-slats tr').each(function () {
$('tr .fc-time span').each(function () {
var theValue = $(this).eq(0).text(),
theDate = theValue !== '' ? Date.parse(constDate + theValue) : prevDate,
rangeTimeFrom = Date.parse(constDate + Settings.WorkdayStarts + ':00'),
rangeTimeTo = Date.parse(constDate + Settings.WorkdayEnds + ':00');
prevDate = theDate;
if (theDate < rangeTimeFrom || theDate >= rangeTimeTo) {
$(this).parent().parent().addClass('fc-non-working-time');
$(this).parent().parent().next().addClass('fc-non-working-time');
}
});
});
}
this.activateCustomScrollInDayAndWeekView();
};
CCalendarView.prototype.collectBusyDays = function () {
var aBusyDays = [],
oStart = null,
oEnd = null,
iDaysDiff = 0,
iIndex = 0;
_.each(this.calendars.getEvents(), function (oEvent) {
oStart = moment(oEvent.start);
oEnd = oEvent.end ? moment(oEvent.end) : null;
if (oEvent.allDay && oEnd) {
oEnd.subtract(1, 'days');
}
iDaysDiff = oEnd ? oEnd.diff(oStart, 'days') : 0;
iIndex = 0;
for (; iIndex <= iDaysDiff; iIndex++) {
aBusyDays.push(oStart.clone().add(iIndex, 'days').toDate());
}
}, this);
this.busyDays(aBusyDays);
};
CCalendarView.prototype.refreshDatePicker = function () {
var self = this;
_.defer(function () {
self.collectBusyDays();
self.$datePicker.datepicker('refresh');
self.highlightWeekInDayPicker();
});
};
/**
* @param {Object} oDate
*/
CCalendarView.prototype.getDayDescription = function (oDate) {
var bSelectable = true,
oFoundBusyDay = _.find(this.busyDays(), function (oBusyDay) {
return oBusyDay.getDate() === oDate.getDate() && oBusyDay.getMonth() === oDate.getMonth() && oBusyDay.getYear() === oDate.getYear();
}, this),
sDayClass = oFoundBusyDay ? 'day_with_events' : '',
sDayTitle = '';
return [bSelectable, sDayClass, sDayTitle];
};
CCalendarView.prototype.initResizing = function () {
var fResize = _.throttle(_.bind(this.resize, this), 50);
$(window).bind('resize', function (e) {
if (e.target !== this && !Browser.ie8AndBelow) {
return;
}
fResize();
});
fResize();
};
CCalendarView.prototype.resize = function () {
var oParent = this.$calendarGrid.parent();
if (oParent) {
this.$calendarGrid.fullCalendar('option', 'height', oParent.height());
}
this.dayNamesResize();
};
CCalendarView.prototype.dayNamesResize = function () {
if (this.selectedView() === 'month') {
var oDayNamesHeaderItem = $('div.weekday-header-item'),
oFirstWeek = $('tr.fc-first td.fc-day'),
oFirstWeekWidth = $(oFirstWeek[0]).width(),
iIndex = 0;
if (oDayNamesHeaderItem.length === 7 && oFirstWeek.length === 7 && oFirstWeekWidth !== 0) {
for (; iIndex < 7; iIndex++) {
$(oDayNamesHeaderItem[iIndex]).width(oFirstWeekWidth);
}
}
}
};
/**
* @param {number} iYear
* @param {number} iMonth
* @param {Object} oInst
*/
CCalendarView.prototype.changeMonthYearFromDatePicker = function (iYear, iMonth, oInst) {
if (this.changeFullCalendarDate) {
var oDate = this.$calendarGrid.fullCalendar('getDate');
// Date object in javascript and fullcalendar use numbers 0,1,2...11 for monthes
// datepiker uses numbers 1,2,3...12 for monthes
oDate.month(iMonth - 1).year(iYear);
this.$calendarGrid.fullCalendar('gotoDate', oDate);
}
};
/**
* @param {string} sDate
* @param {Object} oInst
*/
CCalendarView.prototype.selectDateFromDatePicker = function (sDate, oInst) {
var oDate = moment(sDate, 'MM/DD/YYYY');
this.$calendarGrid.fullCalendar('gotoDate', oDate);
_.defer(_.bind(this.highlightWeekInDayPicker, this));
};
CCalendarView.prototype.highlightWeekInDayPicker = function () {
var $currentDay = this.$datePicker.find('td.ui-datepicker-current-day'),
$currentWeek = $currentDay.parent(),
$currentMonth = this.$datePicker.find('table.ui-datepicker-calendar'),
oView = this.$calendarGrid.fullCalendar('getView');
switch (oView.name) {
case 'agendaDay':
$currentMonth.addClass('highlight_day').removeClass('highlight_week');
break;
case 'agendaWeek':
$currentMonth.removeClass('highlight_day').addClass('highlight_week');
break;
default:
$currentMonth.removeClass('highlight_day').removeClass('highlight_week');
break;
}
$currentWeek.addClass('current_week');
};
CCalendarView.prototype.changeDateTitle = function () {
var oDate = this.$calendarGrid.fullCalendar('getDate').clone().locale(moment.locale()),
oView = this.$calendarGrid.fullCalendar('getView'),
sTitle = oDate.format('MMMM YYYY'),
oStart = oView.intervalStart.clone().locale(moment.locale()),
oEnd = oView.intervalEnd ? oView.intervalEnd.clone().add(-1, 'days').locale(moment.locale()) : null;
switch (oView.name) {
case 'agendaDay':
sTitle = oDate.format('MMMM D, YYYY');
break;
case 'agendaWeek':
if (oStart && oEnd) {
sTitle = oStart.format('MMMM D, YYYY') + ' - ' + oEnd.format('MMMM D, YYYY');
}
break;
}
this.dateTitle(sTitle);
};
CCalendarView.prototype.changeDate = function () {
this.changeDateInDatePicker();
this.changeDateTitle();
this.getTimeLimits();
this.getCalendars();
};
CCalendarView.prototype.changeDateInDatePicker = function () {
var oDateMoment = this.$calendarGrid.fullCalendar('getDate');
this.changeFullCalendarDate = false;
this.$datePicker.datepicker('setDate', oDateMoment.local().toDate());
this.changeFullCalendarDate = true;
this.highlightWeekInDayPicker();
};
CCalendarView.prototype.activateCustomScrollInDayAndWeekView = function () {
if (bMobileDevice) {
return;
}
var oView = this.$calendarGrid.fullCalendar('getView'),
sGridType = oView.name === 'month' ? 'day' : 'time',
oGridContainer = $('.fc-' + sGridType + '-grid-container');
if (!oGridContainer.hasClass('scroll-inner')) {
var oScrollWrapper = $('<div></div>');
oGridContainer.parent().append(oScrollWrapper);
oGridContainer.appendTo(oScrollWrapper);
if (!oScrollWrapper.hasClass('scroll-wrap')) {
oScrollWrapper.attr('data-bind', 'customScrollbar: {x: false, y: true, top: 0, scrollTo: topPositionToday, oScroll: scrollModel}');
oGridContainer.css({
overflow: 'hidden'
}).addClass('scroll-inner');
ko.applyBindings(this, oScrollWrapper[0]);
}
this.domScrollWrapper = oScrollWrapper;
}
};
CCalendarView.prototype.displayToday = function () {
this.$calendarGrid.fullCalendar('today');
};
CCalendarView.prototype.displayPrev = function () {
this.$calendarGrid.fullCalendar('prev');
};
CCalendarView.prototype.displayNext = function () {
this.$calendarGrid.fullCalendar('next');
};
CCalendarView.prototype.setAutoReloadTimer = function () {
var self = this;
clearTimeout(this.iAutoReloadTimer);
if (UserSettings.AutoRefreshIntervalMinutes > 0) {
this.iAutoReloadTimer = setTimeout(function () {
self.getCalendars();
}, UserSettings.AutoRefreshIntervalMinutes * 60 * 1000);
}
};
CCalendarView.prototype.getTimeLimits = function () {
var iStart = this.getDateFromCurrentView('start'),
iEnd = this.getDateFromCurrentView('end');
if (this.startDateTime === 0 && this.endDateTime === 0) {
this.startDateTime = iStart;
this.endDateTime = iEnd;
this.needsToReload = true;
} else if (iStart < this.startDateTime && iEnd > this.endDateTime) {
this.startDateTime = iStart;
this.endDateTime = iEnd;
this.needsToReload = true;
} else if (iStart < this.startDateTime) {
iEnd = this.startDateTime;
this.startDateTime = iStart;
this.needsToReload = true;
} else if (iEnd > this.endDateTime) {
iStart = this.endDateTime;
this.endDateTime = iEnd;
this.needsToReload = true;
}
};
CCalendarView.prototype.getCalendars = function () {
this.checkStarted(true);
this.setCalendarGridVisibility();
if (this.isPublic) {
Ajax.send('GetPublicCalendar', {
CalendarId: Settings.PublicCalendarId
}, this.onGetCalendarsResponse, this);
} else {
Ajax.send('GetCalendars', null, this.onGetCalendarsResponse, this);
}
};
/**
* @param {Object} oResponse
* @param {Object} oParameters
*/
CCalendarView.prototype.onGetCalendarsResponse = function (oResponse, oParameters) {
var aCalendarIds = [],
aNewCalendarIds = [],
oCalendar = null,
oClientCalendar = null;
if (this.loadOnce && this.selectedView() === 'month') {
this.scrollHeight = this.scrollModel()['vertical'].get();
} else {
this.scrollHeight = 0;
}
if (oResponse.Result) {
this.loaded = true;
_.each(oResponse.Result.Calendars, function (oCalendarData) {
if (!_.isEmpty(oCalendarData)) {
oCalendar = this.calendars.parseCalendar(oCalendarData);
aCalendarIds.push(oCalendar.id);
oClientCalendar = this.calendars.getCalendarById(oCalendar.id);
if (this.needsToReload || oClientCalendar && oClientCalendar.isSharedToAll || (oClientCalendar && oClientCalendar.sSyncToken) !== (oCalendar && oCalendar.sSyncToken)) {
oCalendar = this.calendars.parseAndAddCalendar(oCalendarData);
if (oCalendar) {
oCalendar.davUrl(Types.pString(oResponse.Result.ServerUrl));
if (this.isPublic) {
var oPublicHeaderItem = __webpack_require__(/*! modules/CalendarWebclient/js/views/PublicHeaderItem.js */ "mjCL");
oPublicHeaderItem.linkText(oCalendar.name());
this.browserTitle(oCalendar.name());
}
aNewCalendarIds.push(oCalendar.id);
}
}
}
}, this);
if (this.calendars.count() === 0 && this.isPublic && this.needsToReload) {
this.browserTitle(TextUtils.i18n('CALENDARWEBCLIENT/INFO_NO_CALENDAR_FOUND'));
Api.showErrorByCode(0, TextUtils.i18n('CALENDARWEBCLIENT/INFO_NO_CALENDAR_FOUND'), true);
}
this.needsToReload = false;
this.calendars.expunge(aCalendarIds);
_.each(aCalendarIds, function (sCalendarId) {
oCalendar = this.calendars.getCalendarById(sCalendarId);
if (oCalendar && oCalendar.eventsCount() > 0) {
oCalendar.reloadEvents();
}
}, this);
this.requestEvents(aNewCalendarIds);
} else {
this.setCalendarGridVisibility();
this.checkStarted(false);
}
};
/**
* @param {Array} aCalendarIds
*/
CCalendarView.prototype.requestEvents = function (aCalendarIds) {
var oOptions = {
CalendarIds: aCalendarIds,
Start: this.startDateTime,
End: this.endDateTime,
IsPublic: this.isPublic
};
if (this.isPublic && !App.getUserId()) {
oOptions.DefaultTimeZone = moment.tz.guess();
}
if (aCalendarIds.length > 0) {
Ajax.send('GetEvents', oOptions, this.onGetEventsResponse, this);
} else {
this.setAutoReloadTimer();
this.checkStarted(false);
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CCalendarView.prototype.onGetEventsResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
var oCalendar = null,
oParameters = oRequest.Parameters,
aCalendarIds = _.isArray(oParameters.CalendarIds) ? oParameters.CalendarIds : [],
aEvents = [];
_.each(oResponse.Result, function (oEventData) {
oCalendar = this.calendars.getCalendarById(oEventData.calendarId);
if (oCalendar) {
oEventData.isCalendarShared = oCalendar.isShared();
aEvents.push(oEventData.id);
var oEvent = oCalendar.getEvent(oEventData.id);
if (!oEvent) {
oCalendar.addEvent(oEventData);
} else if (this.bTimezoneChanged || oEvent.lastModified !== oEventData.lastModified) {
oCalendar.updateEvent(oEventData);
}
}
}, this);
this.bTimezoneChanged = false;
_.each(aCalendarIds, function (sCalendarId) {
oCalendar = this.calendars.getCalendarById(sCalendarId);
if (oCalendar && oCalendar.eventsCount() > 0 && oCalendar.active()) {
oCalendar.expungeEvents(aEvents, this.startDateTime, this.endDateTime, 'VEVENT');
}
}, this);
this.refreshView();
if (this.viewEventRoute) {
var oEvent = this.getClientEvent(this.viewEventRoute.CalendarId, this.viewEventRoute.EventId);
this.viewEventRoute = false;
if (oEvent !== null) {
this.eventClickCallback(oEvent);
}
}
}
this.setAutoReloadTimer();
this.checkStarted(false);
if (Settings.ShowTasksInCalendars) {
this.getTasks(aCalendarIds);
}
};
/**
* @param {Array} aCalendarIds
*/
CCalendarView.prototype.getTasks = function (aCalendarIds) {
if (this.bAllowTasks) {
if (Types.isNonEmptyArray(aCalendarIds)) {
Ajax.send('GetTasks', {
CalendarIds: aCalendarIds,
Start: this.startDateTime,
End: this.endDateTime,
IsPublic: this.isPublic
}, this.onGetTasksResponse, this);
} else {
this.setAutoReloadTimer();
this.checkStarted(false);
}
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CCalendarView.prototype.onGetTasksResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
var oCalendar = null,
oParameters = oRequest.Parameters,
aCalendarIds = _.isArray(oParameters.CalendarIds) ? oParameters.CalendarIds : [],
aTasks = [];
_.each(oResponse.Result, function (oTaskData) {
oCalendar = this.calendars.getCalendarById(oTaskData.calendarId);
if (oCalendar) {
oTaskData.isCalendarShared = oCalendar.isShared();
aTasks.push(oTaskData.id);
var oEvent = oCalendar.getEvent(oTaskData.id);
if (!oEvent) {
oCalendar.addEvent(oTaskData);
} else if (oEvent.lastModified !== oTaskData.lastModified) {
oCalendar.updateEvent(oTaskData);
}
}
}, this);
_.each(aCalendarIds, function (sCalendarId) {
oCalendar = this.calendars.getCalendarById(sCalendarId);
if (oCalendar && oCalendar.eventsCount() > 0 && oCalendar.active()) {
oCalendar.expungeEvents(aTasks, this.startDateTime, this.endDateTime, 'VTODO');
}
}, this);
this.refreshView();
}
this.setAutoReloadTimer();
this.checkStarted(false);
};
CCalendarView.prototype.setCalendarGridVisibility = function () {
this.$calendarGrid.css('visibility', '').find('.fc-view div').first().css('visibility', '');
};
CCalendarView.prototype.getUnusedColor = function () {
var colors = _.difference(this.colors, this.calendars.getColors());
return colors.length > 0 ? colors[0] : this.colors[0];
};
CCalendarView.prototype.openCreateCalendarForm = function () {
if (!this.isPublic) {
var oCalendar = new CCalendarModel();
oCalendar.color(this.getUnusedColor());
Popups.showPopup(EditCalendarPopup, [_.bind(this.createCalendarCallback, this), this.colors, oCalendar]);
}
};
CCalendarView.prototype.createCalendarCallback = function (aCalendar) {
if (aCalendar) {
this.calendars.parseAndAddCalendar(aCalendar);
}
};
/**
* @param {Object} oCalendar
*/
CCalendarView.prototype.openImportCalendarForm = function (oCalendar) {
if (!this.isPublic) {
Popups.showPopup(ImportCalendarPopup, [_.bind(this.getCalendars, this), oCalendar]);
}
};
/**
* @param {Object} oCalendar
*/
CCalendarView.prototype.openShareCalendarForm = function (oCalendar) {
Popups.showPopup(CalendarSharePopup, [_.bind(this.shareCalendar, this), oCalendar]);
};
/**
* @param {string} sId
* @param {boolean} bIsPublic
* @param {Array} aShares
* @param {boolean} bShareToAll
* @param {number} iShareToAllAccess
*/
CCalendarView.prototype.shareCalendar = function (sId, bIsPublic, aShares, bShareToAll, iShareToAllAccess) {
if (!this.isPublic) {
Ajax.send('UpdateCalendarShare', {
Id: sId,
IsPublic: bIsPublic ? 1 : 0,
Shares: JSON.stringify(aShares),
ShareToAll: bShareToAll ? 1 : 0,
ShareToAllAccess: iShareToAllAccess
}, this.onUpdateShareResponse, this);
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CCalendarView.prototype.onUpdateShareResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
this.getCalendars();
/* TODO:
var oCalendar = this.calendars.getCalendarById(oRequest.Parameters.Id);
if (oCalendar)
{
oCalendar.shares(JSON.parse(oRequest.Parameters.Shares));
if (oRequest.Parameters.ShareToAll === 1)
{
oCalendar.isShared(true);
oCalendar.isSharedToAll(true);
oCalendar.sharedToAllAccess = oRequest.Parameters.ShareToAllAccess;
}
else
{
oCalendar.isSharedToAll(false);
}
}
*/
} else {
Screens.showError(TextUtils.i18n('CALENDARWEBCLIENT/ERROR_SHARE_NOT_UPDATED'));
}
};
/**
* @param {Object} oCalendar
*/
CCalendarView.prototype.openUpdateCalendarForm = function (oCalendar) {
if (!this.isPublic) {
Popups.showPopup(EditCalendarPopup, [_.bind(this.updateCalendarCallback, this), this.colors, oCalendar]);
}
};
CCalendarView.prototype.updateCalendarCallback = function (oParameters) {
if (oParameters) {
var oCalendar = this.calendars.getCalendarById(oParameters.Id);
if (oCalendar) {
oCalendar.name(oParameters.Name);
oCalendar.description(oParameters.Description);
oCalendar.color(oParameters.Color);
this.refetchEvents();
}
}
};
/**
* @param {string} sColor
* @param {string} sId
*/
CCalendarView.prototype.updateCalendarColor = function (sColor, sId) {
if (!this.isPublic) {
Ajax.send('UpdateCalendarColor', {
Color: sColor,
Id: sId
}, this.onUpdateCalendarColorResponse, this);
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CCalendarView.prototype.onUpdateCalendarColorResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
var oParameters = oRequest.Parameters,
oCalendar = this.calendars.getCalendarById(oParameters.Id);
if (oCalendar) {
oCalendar.color(oParameters.Color);
this.refetchEvents();
}
}
};
/**
* @param {Object} oCalendar
*/
CCalendarView.prototype.openGetLinkCalendarForm = function (oCalendar) {
if (!this.isPublic) {
Popups.showPopup(GetCalendarLinkPopup, [_.bind(this.publicCalendar, this), oCalendar]);
}
};
/**
* @param {string} sId
* @param {boolean} bIsPublic
*/
CCalendarView.prototype.publicCalendar = function (sId, bIsPublic) {
if (!this.isPublic) {
Ajax.send('UpdateCalendarPublic', {
Id: sId,
IsPublic: bIsPublic
}, this.onUpdateCalendarPublicResponse, this);
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CCalendarView.prototype.onUpdateCalendarPublicResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
var oParameters = oRequest.Parameters,
oCalendar = this.calendars.getCalendarById(oParameters.Id);
if (oCalendar) {
oCalendar.isPublic(oParameters.IsPublic);
}
}
};
/**
* @param {string} sId
* @param {boolean} bIsUnsubscribe
*/
CCalendarView.prototype.deleteCalendar = function (sId, bIsUnsubscribe) {
var oCalendar = this.calendars.getCalendarById(sId),
sConfirm = oCalendar ? bIsUnsubscribe ? TextUtils.i18n('CALENDARWEBCLIENT/CONFIRM_UNSUBSCRIBE_CALENDAR', {
CALENDARNAME: TextUtils.encodeHtml(oCalendar.name())
}) : TextUtils.i18n('CALENDARWEBCLIENT/CONFIRM_REMOVE_CALENDAR', {
CALENDARNAME: TextUtils.encodeHtml(oCalendar.name())
}) : '',
fRemove = _.bind(function (bRemove) {
if (bRemove) {
Ajax.send('DeleteCalendar', {
Id: sId
}, this.onDeleteCalendarResponse, this);
}
}, this);
if (!this.isPublic && oCalendar) {
Popups.showPopup(ConfirmPopup, [sConfirm, fRemove]);
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CCalendarView.prototype.onDeleteCalendarResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
var oParameters = oRequest.Parameters,
oCalendar = this.calendars.getCalendarById(oParameters.Id);
if (oCalendar && !oCalendar.isDefault) {
if (this.calendars.currentCal().id === oCalendar.id) {
this.calendars.pickCurrentCalendar();
}
this.calendars.removeCalendar(oCalendar.id);
this.refetchEvents();
}
}
};
CCalendarView.prototype.onEventDragStart = function () {
this.dragEventTrigger = true;
this.refreshDatePicker();
};
CCalendarView.prototype.onEventDragStop = function (oEvent) {
var self = this;
this.dragEventTrigger = false;
if (this.delayOnEventResult && this.delayOnEventResultData && 0 < this.delayOnEventResultData.length) {
this.delayOnEventResult = false;
_.each(this.delayOnEventResultData, function (aData) {
self.onEventActionResponse(aData[0], aData[1], false);
});
this.delayOnEventResultData = [];
this.refreshView();
} else {
this.refreshDatePicker();
}
};
CCalendarView.prototype.onEventResizeStart = function () {
this.dragEventTrigger = true;
};
CCalendarView.prototype.onEventResizeStop = function () {
var self = this;
this.dragEventTrigger = false;
if (this.delayOnEventResult && this.delayOnEventResultData && 0 < this.delayOnEventResultData.length) {
this.delayOnEventResult = false;
_.each(this.delayOnEventResultData, function (aData) {
self.onEventActionResponse(aData[0], aData[1], false);
});
this.delayOnEventResultData = [];
this.refreshView();
} else {
this.refreshDatePicker();
}
};
CCalendarView.prototype.createEventInCurrentCalendar = function () {
this.calendars.pickCurrentCalendar();
this.createEventToday(this.calendars.currentCal());
};
/**
* @param {Object} oCalendar
*/
CCalendarView.prototype.createEventToday = function (oCalendar) {
var oToday = moment();
if (oToday.minutes() > 30) {
oToday.add(60 - oToday.minutes(), 'minutes');
} else {
oToday.minutes(30);
}
oToday.seconds(0).milliseconds(0);
this.openEventPopup(oCalendar, oToday, oToday.clone().add(30, 'minutes'), false);
};
/**
* @param {Object} oEventData
*/
CCalendarView.prototype.getParamsFromEventData = function (oEventData) {
var sBrowserTimezone = moment.tz.guess(),
sServerTimezone = UserSettings.timezone(),
oStart = moment.tz(oEventData.start.format('YYYY-MM-DD HH:mm:ss'), sServerTimezone || sBrowserTimezone),
oEnd = moment.tz(oEventData.end.format('YYYY-MM-DD HH:mm:ss'), sServerTimezone || sBrowserTimezone),
rrule = null;
if (oEventData.rrule) {
rrule = {
byDays: oEventData.rrule.byDays,
count: oEventData.rrule.count,
end: Types.pInt(oEventData.rrule.end),
interval: Types.pInt(oEventData.rrule.interval),
period: Types.pInt(oEventData.rrule.period),
until: Types.pInt(oEventData.rrule.until),
weekNum: oEventData.rrule.weekNum
};
}
return {
id: oEventData.id,
uid: oEventData.uid,
calendarId: oEventData.calendarId,
newCalendarId: oEventData.newCalendarId || oEventData.calendarId,
subject: oEventData.subject,
allDay: oEventData.allDay ? 1 : 0,
location: oEventData.location,
description: oEventData.description,
alarms: oEventData.alarms ? JSON.stringify(oEventData.alarms) : '[]',
attendees: oEventData.attendees ? JSON.stringify(oEventData.attendees) : '[]',
owner: oEventData.owner,
recurrenceId: oEventData.recurrenceId,
excluded: oEventData.excluded,
allEvents: oEventData.allEvents,
modified: oEventData.modified ? 1 : 0,
start: oStart.format(),
end: oEnd.format(),
startTS: oStart.unix(),
endTS: oEnd.unix(),
rrule: rrule ? JSON.stringify(rrule) : null,
type: oEventData.type,
status: oEventData.status,
withDate: oEventData.withDate,
isPrivate: oEventData.isPrivate
};
};
/**
* @param {Array} aParameters
*/
CCalendarView.prototype.getEventDataFromParams = function (aParameters) {
var oEventData = aParameters;
oEventData.alarms = aParameters.alarms || [];
oEventData.attendees = aParameters.attendees || [];
if (aParameters.rrule) {
oEventData.rrule = aParameters.rrule;
}
return oEventData;
};
/**
* @param {Object} oStart
* @param {Object} oEnd
*/
CCalendarView.prototype.createEventFromGrid = function (oStart, oEnd) {
var bAllDay = !oStart.hasTime();
this.calendars.pickCurrentCalendar();
this.openEventPopup(this.calendars.currentCal(), oStart.local(), oEnd.local(), bAllDay);
};
/**
* @param {Object} oCalendar
* @param {Object} oStart
* @param {Object} oEnd
* @param {boolean} bAllDay
*/
CCalendarView.prototype.openEventPopup = function (oCalendar, oStart, oEnd, bAllDay) {
if (!this.isPublic && oCalendar) {
Popups.showPopup(EditEventPopup, [{
CallbackSave: _.bind(this.createEvent, this),
CallbackDelete: _.bind(this.deleteEvent, this),
Calendars: this.calendars,
SelectedCalendar: oCalendar ? oCalendar.id : 0,
Start: oStart,
End: oEnd,
AllDay: bAllDay,
TimeFormat: this.sTimeFormat,
DateFormat: UserSettings.dateFormat(),
Organizer: App.getUserPublicId(),
CallbackAttendeeActionDecline: _.bind(this.attendeeActionDecline, this)
}]);
}
};
/**
* @param {Object} oEventData
*/
CCalendarView.prototype.createEvent = function (oEventData) {
var aParameters = this.getParamsFromEventData(oEventData);
if (!this.isPublic) {
aParameters.calendarId = oEventData.newCalendarId;
aParameters.selectStart = this.getDateFromCurrentView('start');
aParameters.selectEnd = this.getDateFromCurrentView('end');
Ajax.send('CreateEvent', aParameters, this.onEventActionResponseWithSubThrottle, this);
}
};
/**
* @param {Object} oEventData
*/
CCalendarView.prototype.eventClickCallback = function (oEventData) {
if (oEventData.isCalendarShared && oEventData.isPrivate && Settings.AllowPrivateEvents) {
return; // reject editing
}
var
/**
* @param {number} iResult
*/
fCallback = _.bind(function (iResult) {
var oParams = {
ID: oEventData.id,
Uid: oEventData.uid,
RecurrenceId: oEventData.recurrenceId,
Calendars: this.calendars,
SelectedCalendar: oEventData.calendarId,
AllDay: oEventData.allDay,
Location: oEventData.location,
Description: oEventData.description,
Subject: oEventData.subject,
Alarms: oEventData.alarms,
Attendees: oEventData.attendees,
RRule: oEventData.rrule ? oEventData.rrule : null,
Excluded: oEventData.excluded ? oEventData.excluded : false,
Owner: oEventData.owner,
Organizer: oEventData.organizer,
Appointment: oEventData.appointment,
OwnerName: oEventData.ownerName,
TimeFormat: this.sTimeFormat,
DateFormat: UserSettings.dateFormat(),
AllEvents: iResult,
CallbackSave: _.bind(this.updateEvent, this),
CallbackDelete: _.bind(this.deleteEvent, this),
CallbackAttendeeActionDecline: _.bind(this.attendeeActionDecline, this),
Type: oEventData.type,
Status: oEventData.status,
IsPrivate: oEventData.isPrivate
};
if (iResult !== Enums.CalendarEditRecurrenceEvent.None) {
if (iResult === Enums.CalendarEditRecurrenceEvent.AllEvents && oEventData.rrule) {
oParams.Start = moment.unix(oEventData.rrule.startBase);
oParams.End = moment.unix(oEventData.rrule.endBase);
} else {
oParams.Start = oEventData.start.clone();
oParams.Start = oParams.Start.local();
oParams.End = oEventData.end.clone();
oParams.End = oParams.End.local();
}
Popups.showPopup(EditEventPopup, [oParams]);
}
}, this),
oCalendar = this.calendars.getCalendarById(oEventData.calendarId);
if (oEventData.rrule && !oCalendar.subscribed()) {
if (oEventData.excluded) {
fCallback(Enums.CalendarEditRecurrenceEvent.OnlyThisInstance);
} else {
Popups.showPopup(EditEventRecurrencePopup, [fCallback, oEventData.type]);
}
} else {
fCallback(Enums.CalendarEditRecurrenceEvent.AllEvents);
}
};
/**
* @param {string} sMethod
* @param {Object} oParameters
* @param {Function=} fRevertFunc = undefined
*/
CCalendarView.prototype.eventAction = function (sMethod, oParameters, fRevertFunc) {
var oCalendar = this.calendars.getCalendarById(oParameters.calendarId);
if (!oCalendar.isEditable()) {
if (fRevertFunc) {
fRevertFunc();
}
} else {
if (!this.isPublic) {
if (fRevertFunc) {
this.revertFunction = fRevertFunc;
}
Ajax.send(sMethod, oParameters, this.onEventActionResponseWithSubThrottle, this);
}
}
};
/**
* @param {Object} oEventData
*/
CCalendarView.prototype.updateEvent = function (oEventData) {
var oParameters = this.getParamsFromEventData(oEventData);
oParameters.selectStart = this.getDateFromCurrentView('start');
oParameters.selectEnd = this.getDateFromCurrentView('end');
if (oEventData.modified) {
this.calendars.setDefault(oEventData.newCalendarId);
this.eventAction('UpdateEvent', oParameters);
}
};
/**
* @param {Object} oEventData
* @param {number} delta
* @param {Function} revertFunc
*/
CCalendarView.prototype.moveEvent = function (oEventData, delta, revertFunc) {
var oParameters = this.getParamsFromEventData(oEventData);
oParameters.selectStart = this.getDateFromCurrentView('start');
oParameters.selectEnd = this.getDateFromCurrentView('end');
if (!this.isPublic) {
if (oParameters.rrule) {
revertFunc(false);
} else {
oParameters.allEvents = Enums.CalendarEditRecurrenceEvent.AllEvents;
this.eventAction('UpdateEvent', oParameters, revertFunc);
}
}
};
/**
* @param {Object} oEventData
* @param {number} delta
* @param {Function} revertFunc
*/
CCalendarView.prototype.resizeEvent = function (oEventData, delta, revertFunc) {
var _oEventData$rrule;
if (oEventData !== null && oEventData !== void 0 && (_oEventData$rrule = oEventData.rrule) !== null && _oEventData$rrule !== void 0 && _oEventData$rrule.until) {
var localUntill = new Date(oEventData.rrule.until * 1000),
utcUntil = new Date(localUntill.getUTCFullYear(), localUntill.getUTCMonth(), localUntill.getUTCDate(), localUntill.getUTCHours(), localUntill.getUTCMinutes(), localUntill.getUTCSeconds());
oEventData.rrule.until = moment(utcUntil).unix();
}
var oParameters = this.getParamsFromEventData(oEventData),
/**
* @param {number} iResult
*/
fCallback = _.bind(function (iResult) {
if (iResult !== Enums.CalendarEditRecurrenceEvent.None) {
oParameters.allEvents = iResult;
this.eventAction('UpdateEvent', oParameters, revertFunc);
} else {
revertFunc();
}
}, this);
oParameters.selectStart = this.getDateFromCurrentView('start');
oParameters.selectEnd = this.getDateFromCurrentView('end');
if (oEventData.rrule) {
if (oParameters.excluded) {
fCallback(Enums.CalendarEditRecurrenceEvent.OnlyThisInstance);
} else {
Popups.showPopup(EditEventRecurrencePopup, [fCallback, oEventData.type]);
}
} else {
fCallback(Enums.CalendarEditRecurrenceEvent.AllEvents);
}
};
/**
* @param {Object} oEventData
*/
CCalendarView.prototype.deleteEvent = function (oEventData) {
this.eventAction('DeleteEvent', this.getParamsFromEventData(oEventData));
CalendarCache.markIcalNotSaved(oEventData.uid);
};
/**
* @param {Object} oData
* @param {Object} oParameters
*/
CCalendarView.prototype.onEventActionResponseWithSubThrottle = function (oData, oParameters) {
if (this.dragEventTrigger) {
this.delayOnEventResult = true;
this.delayOnEventResultData.push([oData, oParameters]);
} else {
this.onEventActionResponse(oData, oParameters, true);
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
* @param {boolean} bDoRefresh
*/
CCalendarView.prototype.onEventActionResponse = function (oResponse, oRequest, bDoRefresh) {
var oParameters = oRequest.Parameters,
oCalendar = this.calendars.getCalendarById(oParameters && oParameters.calendarId),
oEvent = null,
iScrollTop = 0;
if (oResponse && oResponse.Result && oCalendar) {
iScrollTop = $('.calendar .fc-widget-content .scroll-inner').scrollTop();
if (oRequest.Method === 'CreateEvent' || oRequest.Method === 'UpdateEvent') {
oEvent = oCalendar.getEvent(oParameters.id);
if ((oEvent && oEvent.rrule || oParameters.rrule) && oParameters.allEvents === Enums.CalendarEditRecurrenceEvent.AllEvents) {
oCalendar.removeEventByUid(oParameters.uid);
} else {
oCalendar.removeEvent(oParameters.id);
}
if (oParameters.newCalendarId && oParameters.newCalendarId !== oParameters.calendarId) {
oCalendar = this.calendars.getCalendarById(oParameters.newCalendarId);
}
_.each(oResponse.Result.Events, function (oEventData) {
oCalendar.addEvent(oEventData);
}, this);
oCalendar.sSyncToken = oResponse.Result.SyncToken;
if (!oCalendar.active()) {
oCalendar.active(true);
}
if (bDoRefresh) {
this.refreshView();
}
this.restoreScroll(iScrollTop);
this.calendars.pickCurrentCalendar();
} else if (oRequest.Method === 'DeleteEvent') {
oCalendar.sSyncToken = oResponse.Result;
if (oParameters.allEvents === Enums.CalendarEditRecurrenceEvent.OnlyThisInstance) {
oCalendar.removeEvent(oParameters.id);
} else {
oCalendar.removeEventByUid(oParameters.uid);
}
if (bDoRefresh) {
this.refreshView();
}
this.restoreScroll(iScrollTop);
}
} else if (oRequest.Method === 'UpdateEvent' && !oResponse.Result && Enums.Errors.NotDisplayedError === Types.pInt(oResponse.ErrorCode)) {
this.revertFunction = null;
} else {
Api.showErrorByCode(oResponse, TextUtils.i18n('CALENDARWEBCLIENT/ERROR_EVENT_NOT_UPDATED'));
if (this.revertFunction) {
this.revertFunction();
}
}
this.revertFunction = null;
};
/**
* @param {Object} oCalendar
* @param {string} sId
*/
CCalendarView.prototype.attendeeActionDecline = function (oCalendar, sId) {
oCalendar.removeEvent(sId);
this.refreshView();
};
CCalendarView.prototype.refetchEvents = function () {
this.$calendarGrid.fullCalendar('refetchEvents');
};
CCalendarView.prototype.refreshViewSingle = function () {
this.refetchEvents();
this.refreshDatePicker();
};
CCalendarView.prototype.refreshView = function () {};
/**
* Initializes file uploader.
*/
CCalendarView.prototype.initUploader = function () {
var self = this;
if (this.uploaderArea()) {
this.oJua = new CJua({
action: '?/Api/',
name: 'jua-uploader',
queueSize: 2,
dragAndDropElement: this.uploaderArea(),
disableAjaxUpload: false,
disableFolderDragAndDrop: false,
disableDragAndDrop: false,
disableAutoUploadOnDrop: true,
hidden: _.extendOwn({
Module: Settings.ServerModuleName,
Method: 'UploadCalendar',
Parameters: function Parameters() {
return JSON.stringify({
CalendarID: self.uploadCalendarId()
});
}
}, App.getCommonRequestParameters())
});
this.oJua.on('onDrop', _.bind(this.onFileDrop, this)).on('onComplete', _.bind(this.onFileUploadComplete, this)).on('onBodyDragEnter', _.bind(this.bDragActive, this, true)).on('onBodyDragLeave', _.bind(this.bDragActive, this, false));
}
};
CCalendarView.prototype.onFileDrop = function (oFile, oEvent, fProceedUploading) {
var editableCalendars = this.calendars.collection().filter(function (calendar) {
return calendar.isEditable();
});
var calendarToSelect = editableCalendars.find(function (calendar) {
return calendar.isDefault;
}) || editableCalendars[0];
if (!calendarToSelect) {
Screens.showError(TextUtils.i18n('CALENDARWEBCLIENT/ERROR_NO_EDITABLE_CALENDAR'));
return;
}
if (editableCalendars.length > 1) {
Popups.showPopup(SelectCalendarPopup, [{
CallbackSave: _.bind(this.uploadToSelectedCalendar, this),
ProceedUploading: fProceedUploading,
Calendars: this.calendars,
EditableCalendars: editableCalendars,
DefaultCalendarId: calendarToSelect.id
}]);
} else {
this.uploadToSelectedCalendar(calendarToSelect.id, fProceedUploading);
}
};
CCalendarView.prototype.onFileUploadComplete = function (sFileUid, bResponseReceived, oResponse) {
var bError = !bResponseReceived || !oResponse || !oResponse.Result;
if (!bError) {
this.getCalendars();
} else {
if (oResponse && oResponse.ErrorCode && oResponse.ErrorCode === Enums.Errors.IncorrectFileExtension) {
Screens.showError(TextUtils.i18n('CALENDARWEBCLIENT/ERROR_FILE_NOT_ICS'));
} else {
Screens.showError(TextUtils.i18n('COREWEBCLIENT/ERROR_UPLOAD_FILE'));
}
}
};
CCalendarView.prototype.uploadToSelectedCalendar = function (selectedCalendarId, fProceedUploading) {
this.uploadCalendarId(selectedCalendarId);
this.checkStarted(true);
fProceedUploading();
};
/**
* @param {number} iScrollTop
*/
CCalendarView.prototype.restoreScroll = function (iScrollTop) {
if (Types.isPositiveNumber(iScrollTop) && this.domScrollWrapper && this.domScrollWrapper.data('customscroll') && this.domScrollWrapper.data('customscroll')['vertical']) {
this.domScrollWrapper.data('customscroll')['vertical'].set(iScrollTop);
}
};
var calendarView = new CCalendarView();
Pulse.registerEveryMinuteFunction(function () {
calendarView.applyDateTime();
});
module.exports = calendarView;
/***/ }),
/***/ "DIlQ":
/*!****************************************************************************!*\
!*** ./modules/CalendarWebclient/js/vendors/fullcalendar/fullcalendar.css ***!
\****************************************************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "LboF");
/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "5Hnr");
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "shRe");
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "3c4z");
/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "3mzb");
/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "Hd6Y");
/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
/* harmony import */ var _node_modules_css_loader_dist_cjs_js_fullcalendar_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!./fullcalendar.css */ "fxCR");
var options = {};
options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_fullcalendar_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_fullcalendar_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_fullcalendar_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_fullcalendar_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
/***/ }),
/***/ "HOSH":
/*!********************************************************************!*\
!*** ./modules/CalendarWebclient/js/popups/ImportCalendarPopup.js ***!
\********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
ko = __webpack_require__(/*! knockout */ "p09A"),
TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "yU9o"),
CJua = __webpack_require__(/*! modules/CoreWebclient/js/CJua.js */ "hr1f"),
Screens = __webpack_require__(/*! modules/CoreWebclient/js/Screens.js */ "D2Gh"),
UserSettings = __webpack_require__(/*! modules/CoreWebclient/js/Settings.js */ "KIwC"),
CAbstractPopup = __webpack_require__(/*! modules/CoreWebclient/js/popups/CAbstractPopup.js */ "69av"),
Settings = __webpack_require__(/*! modules/CalendarWebclient/js/Settings.js */ "MEQx");
/**
* @constructor
*/
function CImportCalendarPopup() {
CAbstractPopup.call(this);
this.fCallback = null;
this.oJua = null;
this.allowDragNDrop = ko.observable(false);
this.importing = ko.observable(false);
this.color = ko.observable('');
this.calendarId = ko.observable('');
this.importButtonDom = ko.observable(null);
}
_.extendOwn(CImportCalendarPopup.prototype, CAbstractPopup.prototype);
CImportCalendarPopup.prototype.PopupTemplate = 'CalendarWebclient_ImportCalendarPopup';
/**
* @param {Function} fCallback
* @param {Object} oCalendar
*/
CImportCalendarPopup.prototype.onOpen = function (fCallback, oCalendar) {
if (_.isFunction(fCallback)) {
this.fCallback = fCallback;
}
if (oCalendar) {
this.color(oCalendar.color ? oCalendar.color() : '');
this.calendarId(oCalendar.id ? oCalendar.id : '');
}
};
/**
* @param {Object} $oViewModel
*/
CImportCalendarPopup.prototype.onBind = function ($oViewModel) {
var self = this;
this.oJua = new CJua({
'action': '?/Api/',
'name': 'jua-uploader',
'queueSize': 1,
'clickElement': this.importButtonDom(),
'hiddenElementsPosition': UserSettings.IsRTL ? 'right' : 'left',
'disableAjaxUpload': false,
'disableDragAndDrop': true,
'disableMultiple': true,
'hidden': _.extendOwn({
'Module': Settings.ServerModuleName,
'Method': 'UploadCalendar',
'Parameters': function Parameters() {
return JSON.stringify({
'CalendarID': self.calendarId()
});
}
}, App.getCommonRequestParameters())
});
this.oJua.on('onStart', _.bind(this.onFileUploadStart, this)).on('onComplete', _.bind(this.onFileUploadComplete, this));
this.allowDragNDrop(this.oJua.isDragAndDropSupported());
};
CImportCalendarPopup.prototype.onFileUploadStart = function () {
this.importing(true);
};
/**
* @param {string} sFileUid
* @param {boolean} bResponseReceived
* @param {Object} oResponse
*/
CImportCalendarPopup.prototype.onFileUploadComplete = function (sFileUid, bResponseReceived, oResponse) {
var bError = !bResponseReceived || !oResponse || !oResponse.Result;
this.importing(false);
if (!bError) {
this.fCallback();
this.closePopup();
} else {
if (oResponse && oResponse.ErrorCode && oResponse.ErrorCode === Enums.Errors.IncorrectFileExtension) {
Screens.showError(TextUtils.i18n('CALENDARWEBCLIENT/ERROR_FILE_NOT_ICS'));
} else {
Screens.showError(TextUtils.i18n('COREWEBCLIENT/ERROR_UPLOAD_FILE'));
}
}
};
module.exports = new CImportCalendarPopup();
/***/ }),
/***/ "Hd6Y":
/*!*********************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
\*********************************************************************/
/***/ ((module) => {
"use strict";
/* istanbul ignore next */
function styleTagTransform(css, styleElement) {
if (styleElement.styleSheet) {
styleElement.styleSheet.cssText = css;
} else {
while (styleElement.firstChild) {
styleElement.removeChild(styleElement.firstChild);
}
styleElement.appendChild(document.createTextNode(css));
}
}
module.exports = styleTagTransform;
/***/ }),
/***/ "Hf+z":
/*!**************************************************************!*\
!*** ./node_modules/css-loader/dist/runtime/noSourceMaps.js ***!
\**************************************************************/
/***/ ((module) => {
"use strict";
module.exports = function (i) {
return i[1];
};
/***/ }),
/***/ "IWqs":
/*!******************************************************************!*\
!*** ./modules/CalendarWebclient/js/views/IcalAttachmentView.js ***!
\******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
ko = __webpack_require__(/*! knockout */ "p09A"),
Types = __webpack_require__(/*! modules/CoreWebclient/js/utils/Types.js */ "ERH9"),
App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "yU9o"),
CalendarCache = __webpack_require__(/*! modules/CalendarWebclient/js/Cache.js */ "Gndn"),
CIcalModel = __webpack_require__(/*! modules/CalendarWebclient/js/models/CIcalModel.js */ "c2WT");
function CIcalAttachmentView() {
this.ical = ko.observable(null);
}
CIcalAttachmentView.prototype.ViewTemplate = 'CalendarWebclient_IcalAttachmentView';
/**
* Receives properties of the message that is displaying in the message pane.
* It is called every time the message is changing in the message pane.
* Receives null if there is no message in the pane.
*
* @param {Object|null} oMessageProps Information about message in message pane.
* @param {String} oMessageProps.sFromEmail Message sender email.
* @param {Array} oMessageProps.aToEmails
* @param {Object} oMessageProps.oIcal
*/
CIcalAttachmentView.prototype.doAfterPopulatingMessage = function (oMessageProps) {
var aExtend = oMessageProps && Types.isNonEmptyArray(oMessageProps.aExtend) ? oMessageProps.aExtend : [],
oFoundRawIcal = _.find(aExtend, function (oRawIcal) {
return oRawIcal['@Object'] === 'Object/Aurora\\Modules\\Calendar\\Classes\\Ics';
});
if (oFoundRawIcal) {
var sAttendee = null,
oIcal = CalendarCache.getIcal(oFoundRawIcal.File);
if (_.isFunction(App.getAttendee)) {
sAttendee = App.getAttendee(oMessageProps.aToEmails);
}
if (!oIcal) {
oIcal = new CIcalModel(oFoundRawIcal, sAttendee);
// animation of buttons turns on with delay
// so it does not trigger when placing initial values
oIcal.animation(false);
_.defer(_.bind(function () {
if (oIcal !== null) {
oIcal.animation(true);
}
}, this));
oIcal.updateAttendeeStatus(oMessageProps.sFromEmail);
}
this.ical(oIcal);
} else {
this.ical(null);
}
};
module.exports = new CIcalAttachmentView();
/***/ }),
/***/ "LboF":
/*!****************************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
\****************************************************************************/
/***/ ((module) => {
"use strict";
var stylesInDOM = [];
function getIndexByIdentifier(identifier) {
var result = -1;
for (var i = 0; i < stylesInDOM.length; i++) {
if (stylesInDOM[i].identifier === identifier) {
result = i;
break;
}
}
return result;
}
function modulesToDom(list, options) {
var idCountMap = {};
var identifiers = [];
for (var i = 0; i < list.length; i++) {
var item = list[i];
var id = options.base ? item[0] + options.base : item[0];
var count = idCountMap[id] || 0;
var identifier = "".concat(id, " ").concat(count);
idCountMap[id] = count + 1;
var indexByIdentifier = getIndexByIdentifier(identifier);
var obj = {
css: item[1],
media: item[2],
sourceMap: item[3],
supports: item[4],
layer: item[5]
};
if (indexByIdentifier !== -1) {
stylesInDOM[indexByIdentifier].references++;
stylesInDOM[indexByIdentifier].updater(obj);
} else {
var updater = addElementStyle(obj, options);
options.byIndex = i;
stylesInDOM.splice(i, 0, {
identifier: identifier,
updater: updater,
references: 1
});
}
identifiers.push(identifier);
}
return identifiers;
}
function addElementStyle(obj, options) {
var api = options.domAPI(options);
api.update(obj);
var updater = function updater(newObj) {
if (newObj) {
if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
return;
}
api.update(obj = newObj);
} else {
api.remove();
}
};
return updater;
}
module.exports = function (list, options) {
options = options || {};
list = list || [];
var lastIdentifiers = modulesToDom(list, options);
return function update(newList) {
newList = newList || [];
for (var i = 0; i < lastIdentifiers.length; i++) {
var identifier = lastIdentifiers[i];
var index = getIndexByIdentifier(identifier);
stylesInDOM[index].references--;
}
var newLastIdentifiers = modulesToDom(newList, options);
for (var _i = 0; _i < lastIdentifiers.length; _i++) {
var _identifier = lastIdentifiers[_i];
var _index = getIndexByIdentifier(_identifier);
if (stylesInDOM[_index].references === 0) {
stylesInDOM[_index].updater();
stylesInDOM.splice(_index, 1);
}
}
lastIdentifiers = newLastIdentifiers;
};
};
/***/ }),
/***/ "M9QL":
/*!*************************************************!*\
!*** ./modules/CalendarWebclient/js/manager.js ***!
\*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
module.exports = function (oAppData) {
var TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "yU9o"),
ModulesManager = __webpack_require__(/*! modules/CoreWebclient/js/ModulesManager.js */ "5D2l"),
Settings = __webpack_require__(/*! modules/CalendarWebclient/js/Settings.js */ "MEQx");
var calendarViewInstance = null;
var getCalendarViewInstance = function getCalendarViewInstance() {
if (!calendarViewInstance) {
calendarViewInstance = __webpack_require__(/*! modules/CalendarWebclient/js/views/CalendarView.js */ "B1ux");
}
return calendarViewInstance;
};
Settings.init(oAppData);
if (!ModulesManager.isModuleAvailable(Settings.ServerModuleName)) {
return null;
}
__webpack_require__(/*! modules/CalendarWebclient/js/enums.js */ "2DD2");
__webpack_require__(/*! modules/CalendarWebclient/js/vendors/fullcalendar/fullcalendar.css */ "DIlQ");
__webpack_require__(/*! modules/CalendarWebclient/js/vendors/fullcalendar/fullcalendar.js */ "5dlS");
if (App.isPublic()) {
return {
getScreens: function getScreens() {
return _defineProperty({}, Settings.HashModuleName, getCalendarViewInstance);
},
getHeaderItem: function getHeaderItem() {
return {
item: __webpack_require__(/*! modules/CalendarWebclient/js/views/PublicHeaderItem.js */ "mjCL"),
name: Settings.HashModuleName
};
}
};
} else if (App.isUserNormalOrTenant()) {
if (App.isNewTab()) {
return {
start: function start(ModulesManager) {
if (Settings.AllowAppointments) {
App.subscribeEvent('MailWebclient::RegisterMessagePaneController', function (fRegisterMessagePaneController) {
fRegisterMessagePaneController(__webpack_require__(/*! modules/CalendarWebclient/js/views/IcalAttachmentView.js */ "IWqs"), 'BeforeMessageBody');
});
}
}
};
} else {
__webpack_require__(/*! modules/CalendarWebclient/js/koBindings.js */ "j5Ay");
__webpack_require__(/*! modules/CalendarWebclient/js/MainTabExtMethods.js */ "PBoS");
return {
start: function start(ModulesManager) {
if (Settings.AllowAppointments) {
App.subscribeEvent('MailWebclient::RegisterMessagePaneController', function (fRegisterMessagePaneController) {
fRegisterMessagePaneController(__webpack_require__(/*! modules/CalendarWebclient/js/views/IcalAttachmentView.js */ "IWqs"), 'BeforeMessageBody');
});
}
ModulesManager.run('SettingsWebclient', 'registerSettingsTab', [function () {
return __webpack_require__(/*! modules/CalendarWebclient/js/views/CalendarSettingsFormView.js */ "nRis");
}, Settings.HashModuleName, TextUtils.i18n('CALENDARWEBCLIENT/LABEL_SETTINGS_TAB')]);
App.broadcastEvent('RegisterNewItemElement', {
'title': TextUtils.i18n('CALENDARWEBCLIENT/ACTION_CREATE_EVENT'),
'handler': function handler() {
window.location.hash = Settings.HashModuleName;
var calendarViewInstance = getCalendarViewInstance();
calendarViewInstance.createEventInCurrentCalendar();
if (calendarViewInstance.calendars.currentCal()) {
calendarViewInstance.createEventInCurrentCalendar();
} else {
var currentCalSubscribtion = calendarViewInstance.calendars.currentCal.subscribe(function () {
calendarViewInstance.createEventInCurrentCalendar();
currentCalSubscribtion.dispose();
});
}
},
'className': 'item_calendar',
'order': 4,
'column': 1
});
},
getScreens: function getScreens() {
return _defineProperty({}, Settings.HashModuleName, getCalendarViewInstance);
},
getHeaderItem: function getHeaderItem() {
return {
item: __webpack_require__(/*! modules/CalendarWebclient/js/views/HeaderItemView.js */ "x4WY"),
name: Settings.HashModuleName
};
},
getWeekStartsOn: function getWeekStartsOn() {
return Settings.WeekStartsOn;
},
getMobileSyncSettingsView: function getMobileSyncSettingsView() {
return __webpack_require__(/*! modules/CalendarWebclient/js/views/MobileSyncSettingsView.js */ "PRUh");
}
};
}
}
return null;
};
/***/ }),
/***/ "PBoS":
/*!***********************************************************!*\
!*** ./modules/CalendarWebclient/js/MainTabExtMethods.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var CalendarCache = __webpack_require__(/*! modules/CalendarWebclient/js/Cache.js */ "Gndn"),
MainTabCalendarMethods = {
markIcalTypeByFile: function markIcalTypeByFile(sFile, sType, sCancelDecision, sReplyDecision, sCalendarId, sSelectedCalendar) {
CalendarCache.markIcalTypeByFile(sFile, sType, sCancelDecision, sReplyDecision, sCalendarId, sSelectedCalendar);
},
markCalendarChanged: function markCalendarChanged() {
CalendarCache.calendarChanged(true);
}
};
window.MainTabCalendarMethods = MainTabCalendarMethods;
module.exports = {};
/***/ }),
/***/ "PRUh":
/*!**********************************************************************!*\
!*** ./modules/CalendarWebclient/js/views/MobileSyncSettingsView.js ***!
\**********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
ko = __webpack_require__(/*! knockout */ "p09A");
/**
* @constructor
*/
function CMobileSyncSettingsView() {
this.davCalendars = ko.observable([]);
this.visible = ko.computed(function () {
return this.davCalendars().length > 0;
}, this);
}
CMobileSyncSettingsView.prototype.ViewTemplate = 'CalendarWebclient_MobileSyncSettingsView';
/**
* @param {Object} oDav
*/
CMobileSyncSettingsView.prototype.populate = function (oDav) {
if (_.isArray(oDav.Calendars)) {
this.davCalendars(oDav.Calendars);
}
};
module.exports = new CMobileSyncSettingsView();
/***/ }),
/***/ "Y4TL":
/*!******************************************************************!*\
!*** ./modules/CalendarWebclient/js/popups/EditCalendarPopup.js ***!
\******************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
ko = __webpack_require__(/*! knockout */ "p09A"),
TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
Types = __webpack_require__(/*! modules/CoreWebclient/js/utils/Types.js */ "ERH9"),
Popups = __webpack_require__(/*! modules/CoreWebclient/js/Popups.js */ "PMEU"),
CAbstractPopup = __webpack_require__(/*! modules/CoreWebclient/js/popups/CAbstractPopup.js */ "69av"),
AlertPopup = __webpack_require__(/*! modules/CoreWebclient/js/popups/AlertPopup.js */ "Rjyw"),
Settings = __webpack_require__(/*! modules/CalendarWebclient/js/Settings.js */ "MEQx"),
App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "yU9o"),
Ajax = __webpack_require__(/*! modules/CalendarWebclient/js/Ajax.js */ "GBtk"),
Api = __webpack_require__(/*! modules/CoreWebclient/js/Api.js */ "Z9uT");
var _require = __webpack_require__(/*! ../views/CalendarView */ "B1ux"),
applyCalendarSettings = _require.applyCalendarSettings;
/**
* @constructor
*/
function CEditCalendarPopup() {
CAbstractPopup.call(this);
this.fCallback = null;
this.calendarId = ko.observable(null);
this.calendarName = ko.observable('');
this.calendarDescription = ko.observable('');
this.calendarNameFocus = ko.observable(false);
this.calendarDescriptionFocus = ko.observable(false);
this.colors = ko.observableArray([]);
this.selectedColor = ko.observable(this.colors()[0]);
this.popupHeading = ko.observable('');
this.allowSubscribedCalendars = ko.observable(Settings.AllowSubscribedCalendars);
this.calendarSubscribed = ko.observable(false);
this.calendarSource = ko.observable('');
this.calendarSourceFocus = ko.observable(false);
}
_.extendOwn(CEditCalendarPopup.prototype, CAbstractPopup.prototype);
CEditCalendarPopup.prototype.PopupTemplate = 'CalendarWebclient_EditCalendarPopup';
/**
* @param {Function} fCallback
* @param {Array} aColors
* @param {Object} oCalendar
*/
CEditCalendarPopup.prototype.onOpen = function (fCallback, aColors, oCalendar) {
this.fCallback = fCallback;
if (Types.isNonEmptyArray(aColors)) {
this.colors(aColors);
this.selectedColor(aColors[0]);
}
if (oCalendar) {
this.popupHeading(oCalendar.name() ? TextUtils.i18n('CALENDARWEBCLIENT/HEADING_EDIT_CALENDAR') : TextUtils.i18n('CALENDARWEBCLIENT/HEADING_CREATE_CALENDAR'));
this.calendarName(oCalendar.name ? oCalendar.name() : '');
this.calendarDescription(oCalendar.description ? oCalendar.description() : '');
this.selectedColor(oCalendar.color ? oCalendar.color() : '');
this.calendarId(oCalendar.id ? oCalendar.id : null);
this.calendarSubscribed(oCalendar.subscribed ? oCalendar.subscribed() : false);
this.calendarSource(oCalendar.source ? oCalendar.source() : '');
} else {
this.popupHeading(TextUtils.i18n('CALENDARWEBCLIENT/HEADING_CREATE_CALENDAR'));
}
};
CEditCalendarPopup.prototype.onClose = function () {
this.calendarName('');
this.calendarDescription('');
this.selectedColor(this.colors[0]);
this.calendarId(null);
this.calendarSubscribed(false);
this.calendarSource('');
};
CEditCalendarPopup.prototype.save = function () {
if (this.calendarName() === '') {
Popups.showPopup(AlertPopup, [TextUtils.i18n('CALENDARWEBCLIENT/ERROR_CALENDAR_NAME_BLANK')]);
} else {
if (!App.isPublic()) {
if (this.calendarId() !== null) {
// update calendar
if (!this.calendarSubscribed()) {
Ajax.send('UpdateCalendar', {
'Name': this.calendarName(),
'Description': this.calendarDescription(),
'Color': this.selectedColor(),
'Id': this.calendarId()
}, this.onUpdateCalendarResponse, this);
} else {
Ajax.send('UpdateSubscribedCalendar', {
'Name': this.calendarName(),
'Source': this.calendarSource(),
'Color': this.selectedColor(),
'Id': this.calendarId()
}, this.onUpdateCalendarResponse, this);
}
} else {
// create calendar
if (this.calendarSubscribed()) {
Ajax.send('CreateSubscribedCalendar', {
'Name': this.calendarName(),
'Source': this.calendarSource(),
'Color': this.selectedColor()
}, this.onCreateCalendarResponse, this);
} else {
Ajax.send('CreateCalendar', {
'Name': this.calendarName(),
'Description': this.calendarDescription(),
'Color': this.selectedColor()
}, this.onCreateCalendarResponse, this);
}
}
}
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CEditCalendarPopup.prototype.onCreateCalendarResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
if (_.isFunction(this.fCallback)) {
this.fCallback(oResponse.Result);
this.closePopup();
}
} else {
Api.showErrorByCode(oResponse);
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CEditCalendarPopup.prototype.onUpdateCalendarResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
if (_.isFunction(this.fCallback)) {
this.fCallback(oRequest.Parameters);
this.closePopup();
}
} else {
Api.showErrorByCode(oResponse);
}
};
module.exports = new CEditCalendarPopup();
/***/ }),
/***/ "c2WT":
/*!***********************************************************!*\
!*** ./modules/CalendarWebclient/js/models/CIcalModel.js ***!
\***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
ko = __webpack_require__(/*! knockout */ "p09A"),
TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
Types = __webpack_require__(/*! modules/CoreWebclient/js/utils/Types.js */ "ERH9"),
Api = __webpack_require__(/*! modules/CoreWebclient/js/Api.js */ "Z9uT"),
App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "yU9o"),
DataFromServer = __webpack_require__(/*! modules/CalendarWebclient/js/utils/DataFromServer.js */ "hL0g"),
Ajax = __webpack_require__(/*! modules/CalendarWebclient/js/Ajax.js */ "GBtk"),
CalendarCache = __webpack_require__(/*! modules/CalendarWebclient/js/Cache.js */ "Gndn"),
HeaderItemView = !App.isNewTab() && !App.isMobile() ? __webpack_require__(/*! modules/CalendarWebclient/js/views/HeaderItemView.js */ "x4WY") : null,
MainTab = App.isNewTab() && window.opener ? window.opener.MainTabCalendarMethods : null;
/**
* @constructor
* @param {Object} oRawIcal
* @param {string} sAttendee
*/
function CIcalModel(oRawIcal, sAttendee) {
this.oRawIcal = oRawIcal;
this.uid = ko.observable(Types.pString(oRawIcal.Uid));
this.lastModification = ko.observable(true);
this.sSequence = Types.pInt(oRawIcal.Sequence);
this.file = ko.observable(Types.pString(oRawIcal.File));
this.attendee = ko.observable(Types.pString(oRawIcal.Attendee));
this.attendeeText = ko.observable('');
this.organizer = ko.observable(Types.pString(oRawIcal.Organizer.Email));
this.organizerText = ko.observable(oRawIcal.Organizer.DisplayName ? Types.pString(oRawIcal.Organizer.DisplayName) + " <" + this.organizer() + ">" : this.organizer());
this.attendeeList = ko.observable(Types.pArray(oRawIcal.AttendeeList).map(function (value, index) {
return value['Email'];
}));
this.attendeeListText = ko.computed(function () {
if (this.oRawIcal.AttendeeList.length === 1 && this.oRawIcal.AttendeeList[0]['Email'] === this.attendee()) {
this.attendeeText = this.oRawIcal.AttendeeList[0]['DisplayName'] ? this.oRawIcal.AttendeeList[0]['DisplayName'] + " <" + this.oRawIcal.AttendeeList[0]['Email'] + ">" : this.oRawIcal.AttendeeList[0]['Email'];
return '';
}
return Types.pArray(oRawIcal.AttendeeList).map(function (value, index) {
return value['DisplayName'] ? value['DisplayName'] + " <" + value['Email'] + ">" : value['Email'];
}).join(', ');
}, this);
this.summary = ko.observable(Types.pString(oRawIcal.Summary));
this.type = ko.observable(Types.pString(oRawIcal.Type));
this.location = ko.observable(DataFromServer.parseDescriptionLocation(oRawIcal.Location));
this.description = ko.observable(DataFromServer.parseDescriptionLocation(oRawIcal.Description));
this.when = ko.computed(function () {
return this.getWhenDateTime(oRawIcal);
}, this);
this.calendarId = ko.observable(Types.pString(oRawIcal.CalendarId));
this.calendarId.subscribe(function () {
// change oRawIcal so that the calendarId will be correct in a new tab
this.oRawIcal.CalendarId = this.calendarId();
}, this);
CalendarCache.addIcal(this);
this.icalType = ko.observable('');
this.icalConfig = ko.observable('');
this.type.subscribe(function () {
// change oRawIcal so that the type will be correct in a new tab
this.oRawIcal.Type = this.type();
this.parseType();
}, this);
this.icalType.subscribe(function () {
if (this.attendee() === '' && this.icalType() !== Enums.IcalType.Reply) {
this.attendee(sAttendee);
}
}, this);
this.isAppointmentActionInProgress = ko.observable(false);
this.isRequestType = ko.computed(function () {
return this.icalType() === Enums.IcalType.Request;
}, this);
this.isCancelType = ko.computed(function () {
return this.icalType() === Enums.IcalType.Cancel;
}, this);
this.cancelDecision = ko.observable('');
this.isReplyType = ko.computed(function () {
return this.icalType() === Enums.IcalType.Reply;
}, this);
this.replyDecision = ko.observable('');
this.isSaveType = ko.computed(function () {
return this.icalType() === Enums.IcalType.Save;
}, this);
this.isJustSaved = ko.observable(false);
this.isAccepted = ko.computed(function () {
return this.icalConfig() === Enums.IcalConfig.Accepted;
}, this);
this.isDeclined = ko.computed(function () {
return this.icalConfig() === Enums.IcalConfig.Declined;
}, this);
this.isTentative = ko.computed(function () {
return this.icalConfig() === Enums.IcalConfig.Tentative;
}, this);
this.getCalendars = function () {
return _.filter(CalendarCache.calendars(), function (oCalendar) {
return !oCalendar.readonly;
});
};
this.calendars = ko.observableArray(this.getCalendars());
if (this.calendars().length === 0) {
var fCalSubscription = CalendarCache.calendars.subscribe(function (val) {
this.calendars(this.getCalendars());
this.selectedCalendarId(Types.pString(oRawIcal.CalendarId));
fCalSubscription.dispose();
}, this);
}
this.selectedCalendarId = ko.observable(Types.pString(oRawIcal.CalendarId));
this.chosenCalendarName = ko.computed(function () {
var oFoundCal = null;
if (this.calendarId() !== '') {
oFoundCal = _.find(this.calendars(), function (oCal) {
return oCal.id === this.calendarId();
}, this);
}
return oFoundCal ? oFoundCal.name : '';
}, this);
this.calendarIsChosen = ko.computed(function () {
return this.chosenCalendarName() !== '';
}, this);
this.visibleCalendarDropdown = ko.computed(function () {
return !this.calendarIsChosen() && this.calendars().length > 1 && (this.isRequestType() || this.isSaveType());
}, this);
this.visibleCalendarName = ko.computed(function () {
return this.calendarIsChosen();
}, this);
this.firstCalendarName = ko.computed(function () {
return this.calendars()[0] ? this.calendars()[0].name : '';
}, this);
this.visibleFirstCalendarName = ko.computed(function () {
return this.calendars().length === 1 && !this.calendarIsChosen();
}, this);
this.visibleCalendarRow = ko.computed(function () {
return this.attendee() !== '' && (this.visibleCalendarDropdown() || this.visibleCalendarName() || this.visibleFirstCalendarName());
}, this);
this.visibleRequestButtons = ko.computed(function () {
return this.isRequestType() && this.attendee() !== '';
}, this);
// animation of buttons turns on with delay
// so it does not trigger when placing initial values
this.animation = ko.observable(false);
this.parseType();
}
CIcalModel.prototype.getWhenDateTime = function (oRawIcal) {
var sWhen = '';
// regexp must be called only once!
var regex = /\d{2}:\d{2}(:\d{2})?/gm;
if (oRawIcal.Start && oRawIcal.End) {
var oStart = DataFromServer.getDateTimeObject(oRawIcal.Start);
var oEnd = DataFromServer.getDateTimeObject(oRawIcal.End);
var sStartDate = oStart.getDate();
var sEndDate = oEnd.getDate();
switch (true) {
// date without time assumes it's an all day event
case !regex.test(oRawIcal.Start):
sWhen = oStart.getDate();
break;
// has time and dates are equal
case sStartDate === sEndDate:
sWhen = sStartDate + ' ' + oStart.getTime() + ' - ' + oEnd.getTime();
break;
// has time and dates are not equal. a long event
case sStartDate !== sEndDate:
sWhen = sStartDate + ' ' + oStart.getTime() + ' - ' + sEndDate + ' ' + oEnd.getTime();
break;
}
} else if (oRawIcal.When) {
var oWhen = DataFromServer.getDateTimeObject(oRawIcal.When);
sWhen = regex.test(oRawIcal.When) ? oWhen.getFullDate() : oWhen.getDate();
}
return sWhen;
};
CIcalModel.prototype.parseType = function () {
var aTypeParts = this.type().split('-'),
sType = aTypeParts.shift(),
sFoundType = _.find(Enums.IcalType, function (sIcalType) {
return sType === sIcalType;
}, this),
sConfig = aTypeParts.join('-'),
sFoundConfig = _.find(Enums.IcalConfig, function (sIcalConfig) {
return sConfig === sIcalConfig;
}, this);
if (sType !== sFoundType) {
sType = Enums.IcalType.Save;
}
this.icalType(sType);
if (sConfig !== sFoundConfig) {
sConfig = Enums.IcalConfig.NeedsAction;
}
this.icalConfig(sConfig);
this.fillDecisions();
};
CIcalModel.prototype.fillDecisions = function () {
this.cancelDecision(TextUtils.i18n('CALENDARWEBCLIENT/INFO_CANCELED_APPOINTMENT', {
'SENDER': App.currentAccountEmail()
}));
if (this.attendee() === '') {
this.replyDecision('');
} else {
var textReplacer = {
'ATTENDEE': this.attendee()
};
switch (this.icalConfig()) {
case Enums.IcalConfig.Accepted:
this.replyDecision(TextUtils.i18n('CALENDARWEBCLIENT/INFO_ACCEPTED_APPOINTMENT', textReplacer));
break;
case Enums.IcalConfig.Declined:
this.replyDecision(TextUtils.i18n('CALENDARWEBCLIENT/INFO_DECLINED_APPOINTMENT', textReplacer));
break;
case Enums.IcalConfig.Tentative:
this.replyDecision(TextUtils.i18n('CALENDARWEBCLIENT/INFO_TENTATIVELY_ACCEPTED_APPOINTMENT', textReplacer));
break;
}
}
};
CIcalModel.prototype.acceptAppointment = function () {
if (!this.isAppointmentActionInProgress()) {
this.calendarId(this.selectedCalendarId());
this.changeAndSaveConfig(Enums.IcalConfig.Accepted);
}
};
CIcalModel.prototype.tentativeAppointment = function () {
if (!this.isAppointmentActionInProgress()) {
this.calendarId(this.selectedCalendarId());
this.changeAndSaveConfig(Enums.IcalConfig.Tentative);
}
};
CIcalModel.prototype.declineAppointment = function () {
if (!this.isAppointmentActionInProgress()) {
this.calendarId('');
this.selectedCalendarId('');
this.changeAndSaveConfig(Enums.IcalConfig.Declined);
}
};
/**
* @param {string} sConfig
*/
CIcalModel.prototype.changeAndSaveConfig = function (sConfig) {
if (this.icalConfig() !== sConfig) {
if (sConfig !== Enums.IcalConfig.Declined || this.icalConfig() !== Enums.IcalConfig.NeedsAction) {
this.showChanges();
}
this.changeConfig(sConfig);
this.setAppointmentAction();
}
};
/**
* @param {string} sConfig
*/
CIcalModel.prototype.changeConfig = function (sConfig) {
this.type(this.icalType() + '-' + sConfig);
if (MainTab) {
MainTab.markIcalTypeByFile(this.file(), this.type(), this.cancelDecision(), this.replyDecision(), this.calendarId(), this.selectedCalendarId());
} else {
CalendarCache.markIcalTypeByFile(this.file(), this.type(), this.cancelDecision(), this.replyDecision(), this.calendarId(), this.selectedCalendarId());
}
};
CIcalModel.prototype.markNeededAction = function () {
this.calendarId('');
this.selectedCalendarId('');
this.changeConfig(Enums.IcalConfig.NeedsAction);
};
CIcalModel.prototype.markNotSaved = function () {
this.calendarId('');
this.selectedCalendarId('');
};
CIcalModel.prototype.markTentative = function () {
this.changeConfig(Enums.IcalConfig.Tentative);
};
CIcalModel.prototype.markAccepted = function () {
this.changeConfig(Enums.IcalConfig.Accepted);
};
CIcalModel.prototype.setAppointmentAction = function () {
this.isAppointmentActionInProgress(true);
Ajax.send('SetAppointmentAction', {
'AppointmentAction': this.icalConfig(),
'CalendarId': this.selectedCalendarId(),
'File': this.file(),
'Attendee': this.attendee()
}, this.onSetAppointmentActionResponse, this, 'CalendarMeetingsPlugin');
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CIcalModel.prototype.onSetAppointmentActionResponse = function (oResponse, oRequest) {
this.isAppointmentActionInProgress(false);
if (!oResponse.Result) {
Api.showErrorByCode(oResponse, TextUtils.i18n('COREWEBCLIENT/ERROR_UNKNOWN'));
} else {
this.markChanges();
}
};
CIcalModel.prototype.addEvents = function () {
Ajax.send('AddEventsFromFile', {
'CalendarId': this.selectedCalendarId(),
'File': this.file()
}, this.onAddEventsFromFileResponse, this);
this.isJustSaved(true);
this.calendarId(this.selectedCalendarId());
setTimeout(_.bind(function () {
this.isJustSaved(false);
}, this), 20000);
this.showChanges();
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CIcalModel.prototype.onAddEventsFromFileResponse = function (oResponse, oRequest) {
if (!oResponse.Result) {
this.isJustSaved(false);
this.calendarId('');
Api.showErrorByCode(oResponse);
} else {
if (_.isArray(oResponse.Result) && oResponse.Result.length > 0) {
this.uid(oResponse.Result[0]);
}
this.markChanges();
}
};
/**
* @param {string} sEmail
*/
CIcalModel.prototype.updateAttendeeStatus = function (sEmail) {
if (this.icalType() === Enums.IcalType.Cancel || this.icalType() === Enums.IcalType.Reply) {
Ajax.send('UpdateAttendeeStatus', {
'File': this.file(),
'FromEmail': sEmail
}, this.onUpdateAttendeeStatusResponse, this, 'CalendarMeetingsPlugin');
}
};
/**
* @param {Object} oResponse
* @param {Object} oRequest
*/
CIcalModel.prototype.onUpdateAttendeeStatusResponse = function (oResponse, oRequest) {
if (oResponse.Result) {
if (typeof oResponse.Result === 'string') {
this.type(oResponse.Result);
}
this.showChanges();
this.markChanges();
}
};
CIcalModel.prototype.showChanges = function () {
if (HeaderItemView) {
HeaderItemView.recivedAnim(true);
}
};
CIcalModel.prototype.markChanges = function () {
if (MainTab) {
MainTab.markCalendarChanged();
} else {
CalendarCache.calendarChanged(true);
}
};
module.exports = CIcalModel;
/***/ }),
/***/ "dIGY":
/*!*********************************************************************!*\
!*** ./modules/CalendarWebclient/js/popups/GetCalendarLinkPopup.js ***!
\*********************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
ko = __webpack_require__(/*! knockout */ "p09A"),
CAbstractPopup = __webpack_require__(/*! modules/CoreWebclient/js/popups/CAbstractPopup.js */ "69av");
/**
* @constructor
*/
function CGetCalendarLinkPopup() {
CAbstractPopup.call(this);
this.fCallback = null;
this.calendarId = ko.observable(null);
this.selectedColor = ko.observable('');
this.calendarUrl = ko.observable('');
this.exportUrl = ko.observable('');
this.icsLink = ko.observable('');
this.isPublicSourceValue = ko.observable(false);
this.isPublic = ko.observable(false);
this.isPublicChanged = ko.computed(function () {
return this.isPublicSourceValue() !== this.isPublic();
}, this);
this.pubUrl = ko.observable('');
this.canShare = ko.observable(false);
}
_.extendOwn(CGetCalendarLinkPopup.prototype, CAbstractPopup.prototype);
CGetCalendarLinkPopup.prototype.PopupTemplate = 'CalendarWebclient_GetCalendarLinkPopup';
/**
* @param {Function} fCallback
* @param {Object} oCalendar
*/
CGetCalendarLinkPopup.prototype.onOpen = function (fCallback, oCalendar) {
if (_.isFunction(fCallback)) {
this.fCallback = fCallback;
}
if (oCalendar) {
this.selectedColor(oCalendar.color());
this.calendarId(oCalendar.id);
this.calendarUrl(oCalendar.davUrl() + oCalendar.url());
this.exportUrl(oCalendar.exportUrl());
this.icsLink(oCalendar.davUrl() + oCalendar.url() + '?export');
this.isPublicSourceValue(oCalendar.isPublic());
this.isPublic(oCalendar.isPublic());
this.pubUrl(oCalendar.pubUrl());
this.exportUrl(oCalendar.exportUrl());
this.canShare(oCalendar.canShare());
}
};
CGetCalendarLinkPopup.prototype.cancelPopup = function () {
if (this.fCallback) {
this.fCallback(this.calendarId(), this.isPublic());
}
this.closePopup();
};
module.exports = new CGetCalendarLinkPopup();
/***/ }),
/***/ "fxCR":
/*!******************************************************************************************************************!*\
!*** ./node_modules/css-loader/dist/cjs.js!./modules/CalendarWebclient/js/vendors/fullcalendar/fullcalendar.css ***!
\******************************************************************************************************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "Hf+z");
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "+vjt");
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `/*!
* FullCalendar v3.4.0 Stylesheet
* Docs & License: https://fullcalendar.io/
* (c) 2017 Adam Shaw
*/
.fc {
direction: ltr;
text-align: left;
}
.fc-rtl {
text-align: right;
}
body .fc { /* extra precedence to overcome jqui */
font-size: 1em;
}
/* Colors
--------------------------------------------------------------------------------------------------*/
.fc-unthemed th,
.fc-unthemed td,
.fc-unthemed thead,
.fc-unthemed tbody,
.fc-unthemed .fc-divider,
.fc-unthemed .fc-row,
.fc-unthemed .fc-content, /* for gutter border */
.fc-unthemed .fc-popover,
.fc-unthemed .fc-list-view,
.fc-unthemed .fc-list-heading td {
border-color: #ddd;
}
.fc-unthemed .fc-popover {
background-color: #fff;
}
.fc-unthemed .fc-divider,
.fc-unthemed .fc-popover .fc-header,
.fc-unthemed .fc-list-heading td {
background: #eee;
}
.fc-unthemed .fc-popover .fc-header .fc-close {
color: #666;
}
.fc-unthemed td.fc-today {
background: #fcf8e3;
}
.fc-highlight { /* when user is selecting cells */
background: #bce8f1;
opacity: .3;
}
.fc-bgevent { /* default look for background events */
background: rgb(143, 223, 130);
opacity: .3;
}
.fc-nonbusiness { /* default look for non-business-hours areas */
/* will inherit .fc-bgevent's styles */
background: #d7d7d7;
}
.fc-unthemed .fc-disabled-day {
background: #d7d7d7;
opacity: .3;
}
.ui-widget .fc-disabled-day { /* themed */
background-image: none;
}
/* Icons (inline elements with styled text that mock arrow icons)
--------------------------------------------------------------------------------------------------*/
.fc-icon {
display: inline-block;
height: 1em;
line-height: 1em;
font-size: 1em;
text-align: center;
overflow: hidden;
font-family: "Courier New", Courier, monospace;
/* don't allow browser text-selection */
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
/*
Acceptable font-family overrides for individual icons:
"Arial", sans-serif
"Times New Roman", serif
NOTE: use percentage font sizes or else old IE chokes
*/
.fc-icon:after {
position: relative;
}
.fc-icon-left-single-arrow:after {
content: "\\02039";
font-weight: bold;
font-size: 200%;
top: -7%;
}
.fc-icon-right-single-arrow:after {
content: "\\0203A";
font-weight: bold;
font-size: 200%;
top: -7%;
}
.fc-icon-left-double-arrow:after {
content: "\\000AB";
font-size: 160%;
top: -7%;
}
.fc-icon-right-double-arrow:after {
content: "\\000BB";
font-size: 160%;
top: -7%;
}
.fc-icon-left-triangle:after {
content: "\\25C4";
font-size: 125%;
top: 3%;
}
.fc-icon-right-triangle:after {
content: "\\25BA";
font-size: 125%;
top: 3%;
}
.fc-icon-down-triangle:after {
content: "\\25BC";
font-size: 125%;
top: 2%;
}
.fc-icon-x:after {
content: "\\000D7";
font-size: 200%;
top: 6%;
}
/* Buttons (styled <button> tags, normalized to work cross-browser)
--------------------------------------------------------------------------------------------------*/
.fc button {
/* force height to include the border and padding */
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
/* dimensions */
margin: 0;
height: 2.1em;
padding: 0 .6em;
/* text & cursor */
font-size: 1em; /* normalize */
white-space: nowrap;
cursor: pointer;
}
/* Firefox has an annoying inner border */
.fc button::-moz-focus-inner { margin: 0; padding: 0; }
.fc-state-default { /* non-theme */
border: 1px solid;
}
.fc-state-default.fc-corner-left { /* non-theme */
border-top-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.fc-state-default.fc-corner-right { /* non-theme */
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
/* icons in buttons */
.fc button .fc-icon { /* non-theme */
position: relative;
top: -0.05em; /* seems to be a good adjustment across browsers */
margin: 0 .2em;
vertical-align: middle;
}
/*
button states
borrowed from twitter bootstrap (http://twitter.github.com/bootstrap/)
*/
.fc-state-default {
background-color: #f5f5f5;
background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
background-repeat: repeat-x;
border-color: #e6e6e6 #e6e6e6 #bfbfbf;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
color: #333;
text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.fc-state-hover,
.fc-state-down,
.fc-state-active,
.fc-state-disabled {
color: #333333;
background-color: #e6e6e6;
}
.fc-state-hover {
color: #333333;
text-decoration: none;
background-position: 0 -15px;
-webkit-transition: background-position 0.1s linear;
-moz-transition: background-position 0.1s linear;
-o-transition: background-position 0.1s linear;
transition: background-position 0.1s linear;
}
.fc-state-down,
.fc-state-active {
background-color: #cccccc;
background-image: none;
box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
}
.fc-state-disabled {
cursor: default;
background-image: none;
opacity: 0.65;
box-shadow: none;
}
/* Buttons Groups
--------------------------------------------------------------------------------------------------*/
.fc-button-group {
display: inline-block;
}
/*
every button that is not first in a button group should scootch over one pixel and cover the
previous button's border...
*/
.fc .fc-button-group > * { /* extra precedence b/c buttons have margin set to zero */
float: left;
margin: 0 0 0 -1px;
}
.fc .fc-button-group > :first-child { /* same */
margin-left: 0;
}
/* Popover
--------------------------------------------------------------------------------------------------*/
.fc-popover {
position: absolute;
box-shadow: 0 2px 6px rgba(0,0,0,.15);
}
.fc-popover .fc-header { /* TODO: be more consistent with fc-head/fc-body */
padding: 2px 4px;
}
.fc-popover .fc-header .fc-title {
margin: 0 2px;
}
.fc-popover .fc-header .fc-close {
cursor: pointer;
}
.fc-ltr .fc-popover .fc-header .fc-title,
.fc-rtl .fc-popover .fc-header .fc-close {
float: left;
}
.fc-rtl .fc-popover .fc-header .fc-title,
.fc-ltr .fc-popover .fc-header .fc-close {
float: right;
}
/* unthemed */
.fc-unthemed .fc-popover {
border-width: 1px;
border-style: solid;
}
.fc-unthemed .fc-popover .fc-header .fc-close {
font-size: .9em;
margin-top: 2px;
}
/* jqui themed */
.fc-popover > .ui-widget-header + .ui-widget-content {
border-top: 0; /* where they meet, let the header have the border */
}
/* Misc Reusable Components
--------------------------------------------------------------------------------------------------*/
.fc-divider {
border-style: solid;
border-width: 1px;
}
hr.fc-divider {
height: 0;
margin: 0;
padding: 0 0 2px; /* height is unreliable across browsers, so use padding */
border-width: 1px 0;
}
.fc-clear {
clear: both;
}
.fc-bg,
.fc-bgevent-skeleton,
.fc-highlight-skeleton,
.fc-helper-skeleton {
/* these element should always cling to top-left/right corners */
position: absolute;
top: 0;
left: 0;
right: 0;
}
.fc-bg {
bottom: 0; /* strech bg to bottom edge */
}
.fc-bg table {
height: 100%; /* strech bg to bottom edge */
}
/* Tables
--------------------------------------------------------------------------------------------------*/
.fc table {
width: 100%;
box-sizing: border-box; /* fix scrollbar issue in firefox */
table-layout: fixed;
border-collapse: collapse;
border-spacing: 0;
font-size: 1em; /* normalize cross-browser */
}
.fc th {
text-align: center;
}
.fc th,
.fc td {
border-style: solid;
border-width: 1px;
padding: 0;
vertical-align: top;
}
.fc td.fc-today {
border-style: double; /* overcome neighboring borders */
}
/* Internal Nav Links
--------------------------------------------------------------------------------------------------*/
a[data-goto] {
cursor: pointer;
}
a[data-goto]:hover {
text-decoration: underline;
}
/* Fake Table Rows
--------------------------------------------------------------------------------------------------*/
.fc .fc-row { /* extra precedence to overcome themes w/ .ui-widget-content forcing a 1px border */
/* no visible border by default. but make available if need be (scrollbar width compensation) */
border-style: solid;
border-width: 0;
}
.fc-row table {
/* don't put left/right border on anything within a fake row.
the outer tbody will worry about this */
border-left: 0 hidden transparent;
border-right: 0 hidden transparent;
/* no bottom borders on rows */
border-bottom: 0 hidden transparent;
}
.fc-row:first-child table {
border-top: 0 hidden transparent; /* no top border on first row */
}
/* Day Row (used within the header and the DayGrid)
--------------------------------------------------------------------------------------------------*/
.fc-row {
position: relative;
}
.fc-row .fc-bg {
z-index: 1;
}
/* highlighting cells & background event skeleton */
.fc-row .fc-bgevent-skeleton,
.fc-row .fc-highlight-skeleton {
bottom: 0; /* stretch skeleton to bottom of row */
}
.fc-row .fc-bgevent-skeleton table,
.fc-row .fc-highlight-skeleton table {
height: 100%; /* stretch skeleton to bottom of row */
}
.fc-row .fc-highlight-skeleton td,
.fc-row .fc-bgevent-skeleton td {
border-color: transparent;
}
.fc-row .fc-bgevent-skeleton {
z-index: 2;
}
.fc-row .fc-highlight-skeleton {
z-index: 3;
}
/*
row content (which contains day/week numbers and events) as well as "helper" (which contains
temporary rendered events).
*/
.fc-row .fc-content-skeleton {
position: relative;
z-index: 4;
padding-bottom: 2px; /* matches the space above the events */
}
.fc-row .fc-helper-skeleton {
z-index: 5;
}
.fc-row .fc-content-skeleton td,
.fc-row .fc-helper-skeleton td {
/* see-through to the background below */
background: none; /* in case <td>s are globally styled */
border-color: transparent;
/* don't put a border between events and/or the day number */
border-bottom: 0;
}
.fc-row .fc-content-skeleton tbody td, /* cells with events inside (so NOT the day number cell) */
.fc-row .fc-helper-skeleton tbody td {
/* don't put a border between event cells */
border-top: 0;
}
/* Scrolling Container
--------------------------------------------------------------------------------------------------*/
.fc-scroller {
-webkit-overflow-scrolling: touch;
}
/* TODO: move to agenda/basic */
.fc-scroller > .fc-day-grid,
.fc-scroller > .fc-time-grid {
position: relative; /* re-scope all positions */
width: 100%; /* hack to force re-sizing this inner element when scrollbars appear/disappear */
}
/* Global Event Styles
--------------------------------------------------------------------------------------------------*/
.fc-event {
position: relative; /* for resize handle and other inner positioning */
display: block; /* make the <a> tag block */
font-size: .85em;
line-height: 1.3;
border-radius: 3px;
border: 1px solid #3a87ad; /* default BORDER color */
font-weight: normal; /* undo jqui's ui-widget-header bold */
}
.fc-event,
.fc-event-dot {
background-color: #3a87ad; /* default BACKGROUND color */
}
/* overpower some of bootstrap's and jqui's styles on <a> tags */
.fc-event,
.fc-event:hover,
.ui-widget .fc-event {
color: #fff; /* default TEXT color */
text-decoration: none; /* if <a> has an href */
}
.fc-event[href],
.fc-event.fc-draggable {
cursor: pointer; /* give events with links and draggable events a hand mouse pointer */
}
.fc-not-allowed, /* causes a "warning" cursor. applied on body */
.fc-not-allowed .fc-event { /* to override an event's custom cursor */
cursor: not-allowed;
}
.fc-event .fc-bg { /* the generic .fc-bg already does position */
z-index: 1;
background: #fff;
opacity: .25;
}
.fc-event .fc-content {
position: relative;
z-index: 2;
}
/* resizer (cursor AND touch devices) */
.fc-event .fc-resizer {
position: absolute;
z-index: 4;
}
/* resizer (touch devices) */
.fc-event .fc-resizer {
display: none;
}
.fc-event.fc-allow-mouse-resize .fc-resizer,
.fc-event.fc-selected .fc-resizer {
/* only show when hovering or selected (with touch) */
display: block;
}
/* hit area */
.fc-event.fc-selected .fc-resizer:before {
/* 40x40 touch area */
content: "";
position: absolute;
z-index: 9999; /* user of this util can scope within a lower z-index */
top: 50%;
left: 50%;
width: 40px;
height: 40px;
margin-left: -20px;
margin-top: -20px;
}
/* Event Selection (only for touch devices)
--------------------------------------------------------------------------------------------------*/
.fc-event.fc-selected {
z-index: 9999 !important; /* overcomes inline z-index */
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
.fc-event.fc-selected.fc-dragging {
box-shadow: 0 2px 7px rgba(0, 0, 0, 0.3);
}
/* Horizontal Events
--------------------------------------------------------------------------------------------------*/
/* bigger touch area when selected */
.fc-h-event.fc-selected:before {
content: "";
position: absolute;
z-index: 3; /* below resizers */
top: -10px;
bottom: -10px;
left: 0;
right: 0;
}
/* events that are continuing to/from another week. kill rounded corners and butt up against edge */
.fc-ltr .fc-h-event.fc-not-start,
.fc-rtl .fc-h-event.fc-not-end {
margin-left: 0;
border-left-width: 0;
padding-left: 1px; /* replace the border with padding */
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.fc-ltr .fc-h-event.fc-not-end,
.fc-rtl .fc-h-event.fc-not-start {
margin-right: 0;
border-right-width: 0;
padding-right: 1px; /* replace the border with padding */
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
/* resizer (cursor AND touch devices) */
/* left resizer */
.fc-ltr .fc-h-event .fc-start-resizer,
.fc-rtl .fc-h-event .fc-end-resizer {
cursor: w-resize;
left: -1px; /* overcome border */
}
/* right resizer */
.fc-ltr .fc-h-event .fc-end-resizer,
.fc-rtl .fc-h-event .fc-start-resizer {
cursor: e-resize;
right: -1px; /* overcome border */
}
/* resizer (mouse devices) */
.fc-h-event.fc-allow-mouse-resize .fc-resizer {
width: 7px;
top: -1px; /* overcome top border */
bottom: -1px; /* overcome bottom border */
}
/* resizer (touch devices) */
.fc-h-event.fc-selected .fc-resizer {
/* 8x8 little dot */
border-radius: 4px;
border-width: 1px;
width: 6px;
height: 6px;
border-style: solid;
border-color: inherit;
background: #fff;
/* vertically center */
top: 50%;
margin-top: -4px;
}
/* left resizer */
.fc-ltr .fc-h-event.fc-selected .fc-start-resizer,
.fc-rtl .fc-h-event.fc-selected .fc-end-resizer {
margin-left: -4px; /* centers the 8x8 dot on the left edge */
}
/* right resizer */
.fc-ltr .fc-h-event.fc-selected .fc-end-resizer,
.fc-rtl .fc-h-event.fc-selected .fc-start-resizer {
margin-right: -4px; /* centers the 8x8 dot on the right edge */
}
/* DayGrid events
----------------------------------------------------------------------------------------------------
We use the full "fc-day-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/
.fc-day-grid-event {
margin: 1px 2px 0; /* spacing between events and edges */
padding: 0 1px;
}
tr:first-child > td > .fc-day-grid-event {
margin-top: 2px; /* a little bit more space before the first event */
}
.fc-day-grid-event.fc-selected:after {
content: "";
position: absolute;
z-index: 1; /* same z-index as fc-bg, behind text */
/* overcome the borders */
top: -1px;
right: -1px;
bottom: -1px;
left: -1px;
/* darkening effect */
background: #000;
opacity: .25;
}
.fc-day-grid-event .fc-content { /* force events to be one-line tall */
white-space: nowrap;
overflow: hidden;
}
.fc-day-grid-event .fc-time {
font-weight: bold;
}
/* resizer (cursor devices) */
/* left resizer */
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer,
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer {
margin-left: -2px; /* to the day cell's edge */
}
/* right resizer */
.fc-ltr .fc-day-grid-event.fc-allow-mouse-resize .fc-end-resizer,
.fc-rtl .fc-day-grid-event.fc-allow-mouse-resize .fc-start-resizer {
margin-right: -2px; /* to the day cell's edge */
}
/* Event Limiting
--------------------------------------------------------------------------------------------------*/
/* "more" link that represents hidden events */
a.fc-more {
margin: 1px 3px;
font-size: .85em;
cursor: pointer;
text-decoration: none;
}
a.fc-more:hover {
text-decoration: underline;
}
.fc-limited { /* rows and cells that are hidden because of a "more" link */
display: none;
}
/* popover that appears when "more" link is clicked */
.fc-day-grid .fc-row {
z-index: 1; /* make the "more" popover one higher than this */
}
.fc-more-popover {
z-index: 2;
width: 220px;
}
.fc-more-popover .fc-event-container {
padding: 10px;
}
/* Now Indicator
--------------------------------------------------------------------------------------------------*/
.fc-now-indicator {
position: absolute;
border: 0 solid red;
}
/* Utilities
--------------------------------------------------------------------------------------------------*/
.fc-unselectable {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-touch-callout: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/* Toolbar
--------------------------------------------------------------------------------------------------*/
.fc-toolbar {
text-align: center;
}
.fc-toolbar.fc-header-toolbar {
margin-bottom: 1em;
}
.fc-toolbar.fc-footer-toolbar {
margin-top: 1em;
}
.fc-toolbar .fc-left {
float: left;
}
.fc-toolbar .fc-right {
float: right;
}
.fc-toolbar .fc-center {
display: inline-block;
}
/* the things within each left/right/center section */
.fc .fc-toolbar > * > * { /* extra precedence to override button border margins */
float: left;
margin-left: .75em;
}
/* the first thing within each left/center/right section */
.fc .fc-toolbar > * > :first-child { /* extra precedence to override button border margins */
margin-left: 0;
}
/* title text */
.fc-toolbar h2 {
margin: 0;
}
/* button layering (for border precedence) */
.fc-toolbar button {
position: relative;
}
.fc-toolbar .fc-state-hover,
.fc-toolbar .ui-state-hover {
z-index: 2;
}
.fc-toolbar .fc-state-down {
z-index: 3;
}
.fc-toolbar .fc-state-active,
.fc-toolbar .ui-state-active {
z-index: 4;
}
.fc-toolbar button:focus {
z-index: 5;
}
/* View Structure
--------------------------------------------------------------------------------------------------*/
/* undo twitter bootstrap's box-sizing rules. normalizes positioning techniques */
/* don't do this for the toolbar because we'll want bootstrap to style those buttons as some pt */
.fc-view-container *,
.fc-view-container *:before,
.fc-view-container *:after {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.fc-view, /* scope positioning and z-index's for everything within the view */
.fc-view > table { /* so dragged elements can be above the view's main element */
position: relative;
z-index: 1;
}
/* BasicView
--------------------------------------------------------------------------------------------------*/
/* day row structure */
.fc-basicWeek-view .fc-content-skeleton,
.fc-basicDay-view .fc-content-skeleton {
/* there may be week numbers in these views, so no padding-top */
padding-bottom: 1em; /* ensure a space at bottom of cell for user selecting/clicking */
}
.fc-basic-view .fc-body .fc-row {
min-height: 4em; /* ensure that all rows are at least this tall */
}
/* a "rigid" row will take up a constant amount of height because content-skeleton is absolute */
.fc-row.fc-rigid {
overflow: hidden;
}
.fc-row.fc-rigid .fc-content-skeleton {
position: absolute;
top: 0;
left: 0;
right: 0;
}
/* week and day number styling */
.fc-day-top.fc-other-month {
opacity: 0.3;
}
.fc-basic-view .fc-week-number,
.fc-basic-view .fc-day-number {
padding: 2px;
}
.fc-basic-view th.fc-week-number,
.fc-basic-view th.fc-day-number {
padding: 0 2px; /* column headers can't have as much v space */
}
.fc-ltr .fc-basic-view .fc-day-top .fc-day-number { float: right; }
.fc-rtl .fc-basic-view .fc-day-top .fc-day-number { float: left; }
.fc-ltr .fc-basic-view .fc-day-top .fc-week-number { float: left; border-radius: 0 0 3px 0; }
.fc-rtl .fc-basic-view .fc-day-top .fc-week-number { float: right; border-radius: 0 0 0 3px; }
.fc-basic-view .fc-day-top .fc-week-number {
min-width: 1.5em;
text-align: center;
background-color: #f2f2f2;
color: #808080;
}
/* when week/day number have own column */
.fc-basic-view td.fc-week-number {
text-align: center;
}
.fc-basic-view td.fc-week-number > * {
/* work around the way we do column resizing and ensure a minimum width */
display: inline-block;
min-width: 1.25em;
}
/* AgendaView all-day area
--------------------------------------------------------------------------------------------------*/
.fc-agenda-view .fc-day-grid {
position: relative;
z-index: 2; /* so the "more.." popover will be over the time grid */
}
.fc-agenda-view .fc-day-grid .fc-row {
min-height: 3em; /* all-day section will never get shorter than this */
}
.fc-agenda-view .fc-day-grid .fc-row .fc-content-skeleton {
padding-bottom: 1em; /* give space underneath events for clicking/selecting days */
}
/* TimeGrid axis running down the side (for both the all-day area and the slot area)
--------------------------------------------------------------------------------------------------*/
.fc .fc-axis { /* .fc to overcome default cell styles */
vertical-align: middle;
padding: 0 4px;
white-space: nowrap;
}
.fc-ltr .fc-axis {
text-align: right;
}
.fc-rtl .fc-axis {
text-align: left;
}
.ui-widget td.fc-axis {
font-weight: normal; /* overcome jqui theme making it bold */
}
/* TimeGrid Structure
--------------------------------------------------------------------------------------------------*/
.fc-time-grid-container, /* so scroll container's z-index is below all-day */
.fc-time-grid { /* so slats/bg/content/etc positions get scoped within here */
position: relative;
z-index: 1;
}
.fc-time-grid {
min-height: 100%; /* so if height setting is 'auto', .fc-bg stretches to fill height */
}
.fc-time-grid table { /* don't put outer borders on slats/bg/content/etc */
border: 0 hidden transparent;
}
.fc-time-grid > .fc-bg {
z-index: 1;
}
.fc-time-grid .fc-slats,
.fc-time-grid > hr { /* the <hr> AgendaView injects when grid is shorter than scroller */
position: relative;
z-index: 2;
}
.fc-time-grid .fc-content-col {
position: relative; /* because now-indicator lives directly inside */
}
.fc-time-grid .fc-content-skeleton {
position: absolute;
z-index: 3;
top: 0;
left: 0;
right: 0;
}
/* divs within a cell within the fc-content-skeleton */
.fc-time-grid .fc-business-container {
position: relative;
z-index: 1;
}
.fc-time-grid .fc-bgevent-container {
position: relative;
z-index: 2;
}
.fc-time-grid .fc-highlight-container {
position: relative;
z-index: 3;
}
.fc-time-grid .fc-event-container {
position: relative;
z-index: 4;
}
.fc-time-grid .fc-now-indicator-line {
z-index: 5;
}
.fc-time-grid .fc-helper-container { /* also is fc-event-container */
position: relative;
z-index: 6;
}
/* TimeGrid Slats (lines that run horizontally)
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-slats td {
height: 1.5em;
border-bottom: 0; /* each cell is responsible for its top border */
}
.fc-time-grid .fc-slats .fc-minor td {
border-top-style: dotted;
}
.fc-time-grid .fc-slats .ui-widget-content { /* for jqui theme */
background: none; /* see through to fc-bg */
}
/* TimeGrid Highlighting Slots
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-highlight-container { /* a div within a cell within the fc-highlight-skeleton */
position: relative; /* scopes the left/right of the fc-highlight to be in the column */
}
.fc-time-grid .fc-highlight {
position: absolute;
left: 0;
right: 0;
/* top and bottom will be in by JS */
}
/* TimeGrid Event Containment
--------------------------------------------------------------------------------------------------*/
.fc-ltr .fc-time-grid .fc-event-container { /* space on the sides of events for LTR (default) */
margin: 0 2.5% 0 2px;
}
.fc-rtl .fc-time-grid .fc-event-container { /* space on the sides of events for RTL */
margin: 0 2px 0 2.5%;
}
.fc-time-grid .fc-event,
.fc-time-grid .fc-bgevent {
position: absolute;
z-index: 1; /* scope inner z-index's */
}
.fc-time-grid .fc-bgevent {
/* background events always span full width */
left: 0;
right: 0;
}
/* Generic Vertical Event
--------------------------------------------------------------------------------------------------*/
.fc-v-event.fc-not-start { /* events that are continuing from another day */
/* replace space made by the top border with padding */
border-top-width: 0;
padding-top: 1px;
/* remove top rounded corners */
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.fc-v-event.fc-not-end {
/* replace space made by the top border with padding */
border-bottom-width: 0;
padding-bottom: 1px;
/* remove bottom rounded corners */
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
/* TimeGrid Event Styling
----------------------------------------------------------------------------------------------------
We use the full "fc-time-grid-event" class instead of using descendants because the event won't
be a descendant of the grid when it is being dragged.
*/
.fc-time-grid-event {
overflow: hidden; /* don't let the bg flow over rounded corners */
}
.fc-time-grid-event.fc-selected {
/* need to allow touch resizers to extend outside event's bounding box */
/* common fc-selected styles hide the fc-bg, so don't need this anyway */
overflow: visible;
}
.fc-time-grid-event.fc-selected .fc-bg {
display: none; /* hide semi-white background, to appear darker */
}
.fc-time-grid-event .fc-content {
overflow: hidden; /* for when .fc-selected */
}
.fc-time-grid-event .fc-time,
.fc-time-grid-event .fc-title {
padding: 0 1px;
}
.fc-time-grid-event .fc-time {
font-size: .85em;
white-space: nowrap;
}
/* short mode, where time and title are on the same line */
.fc-time-grid-event.fc-short .fc-content {
/* don't wrap to second line (now that contents will be inline) */
white-space: nowrap;
}
.fc-time-grid-event.fc-short .fc-time,
.fc-time-grid-event.fc-short .fc-title {
/* put the time and title on the same line */
display: inline-block;
vertical-align: top;
}
.fc-time-grid-event.fc-short .fc-time span {
display: none; /* don't display the full time text... */
}
.fc-time-grid-event.fc-short .fc-time:before {
content: attr(data-start); /* ...instead, display only the start time */
}
.fc-time-grid-event.fc-short .fc-time:after {
content: "\\000A0-\\000A0"; /* seperate with a dash, wrapped in nbsp's */
}
.fc-time-grid-event.fc-short .fc-title {
font-size: .85em; /* make the title text the same size as the time */
padding: 0; /* undo padding from above */
}
/* resizer (cursor device) */
.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer {
left: 0;
right: 0;
bottom: 0;
height: 8px;
overflow: hidden;
line-height: 8px;
font-size: 11px;
font-family: monospace;
text-align: center;
cursor: s-resize;
}
.fc-time-grid-event.fc-allow-mouse-resize .fc-resizer:after {
content: "=";
}
/* resizer (touch device) */
.fc-time-grid-event.fc-selected .fc-resizer {
/* 10x10 dot */
border-radius: 5px;
border-width: 1px;
width: 8px;
height: 8px;
border-style: solid;
border-color: inherit;
background: #fff;
/* horizontally center */
left: 50%;
margin-left: -5px;
/* center on the bottom edge */
bottom: -5px;
}
/* Now Indicator
--------------------------------------------------------------------------------------------------*/
.fc-time-grid .fc-now-indicator-line {
border-top-width: 1px;
left: 0;
right: 0;
}
/* arrow on axis */
.fc-time-grid .fc-now-indicator-arrow {
margin-top: -5px; /* vertically center on top coordinate */
}
.fc-ltr .fc-time-grid .fc-now-indicator-arrow {
left: 0;
/* triangle pointing right... */
border-width: 5px 0 5px 6px;
border-top-color: transparent;
border-bottom-color: transparent;
}
.fc-rtl .fc-time-grid .fc-now-indicator-arrow {
right: 0;
/* triangle pointing left... */
border-width: 5px 6px 5px 0;
border-top-color: transparent;
border-bottom-color: transparent;
}
/* List View
--------------------------------------------------------------------------------------------------*/
/* possibly reusable */
.fc-event-dot {
display: inline-block;
width: 10px;
height: 10px;
border-radius: 5px;
}
/* view wrapper */
.fc-rtl .fc-list-view {
direction: rtl; /* unlike core views, leverage browser RTL */
}
.fc-list-view {
border-width: 1px;
border-style: solid;
}
/* table resets */
.fc .fc-list-table {
table-layout: auto; /* for shrinkwrapping cell content */
}
.fc-list-table td {
border-width: 1px 0 0;
padding: 8px 14px;
}
.fc-list-table tr:first-child td {
border-top-width: 0;
}
/* day headings with the list */
.fc-list-heading {
border-bottom-width: 1px;
}
.fc-list-heading td {
font-weight: bold;
}
.fc-ltr .fc-list-heading-main { float: left; }
.fc-ltr .fc-list-heading-alt { float: right; }
.fc-rtl .fc-list-heading-main { float: right; }
.fc-rtl .fc-list-heading-alt { float: left; }
/* event list items */
.fc-list-item.fc-has-url {
cursor: pointer; /* whole row will be clickable */
}
.fc-list-item:hover td {
background-color: #f5f5f5;
}
.fc-list-item-marker,
.fc-list-item-time {
white-space: nowrap;
width: 1px;
}
/* make the dot closer to the event title */
.fc-ltr .fc-list-item-marker { padding-right: 0; }
.fc-rtl .fc-list-item-marker { padding-left: 0; }
.fc-list-item-title a {
/* every event title cell has an <a> tag */
text-decoration: none;
color: inherit;
}
.fc-list-item-title a[href]:hover {
/* hover effect only on titles with hrefs */
text-decoration: underline;
}
/* message when no events */
.fc-list-empty-wrap2 {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.fc-list-empty-wrap1 {
width: 100%;
height: 100%;
display: table;
}
.fc-list-empty {
display: table-cell;
vertical-align: middle;
text-align: center;
}
.fc-unthemed .fc-list-empty { /* theme will provide own background */
background-color: #eee;
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
/***/ }),
/***/ "j5Ay":
/*!****************************************************!*\
!*** ./modules/CalendarWebclient/js/koBindings.js ***!
\****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
$ = __webpack_require__(/*! jquery */ "M4cL"),
ko = __webpack_require__(/*! knockout */ "p09A"),
Types = __webpack_require__(/*! modules/CoreWebclient/js/utils/Types.js */ "ERH9"),
Browser = __webpack_require__(/*! modules/CoreWebclient/js/Browser.js */ "/Odb"),
UserSettings = __webpack_require__(/*! modules/CoreWebclient/js/Settings.js */ "KIwC");
ko.bindingHandlers.autosize = {
'init': function init(oElement, fValueAccessor, fAllBindingsAccessor, oViewModel, bindingContext) {
var jqEl = $(oElement),
oOptions = fValueAccessor(),
iHeight = jqEl.height(),
iOuterHeight = jqEl.outerHeight(),
iInnerHeight = jqEl.innerHeight(),
iBorder = iOuterHeight - iInnerHeight,
iVerticalPadding = iInnerHeight - iHeight,
iMinHeight = oOptions.minHeight ? oOptions.minHeight : 0,
iMaxHeight = oOptions.maxHeight ? oOptions.maxHeight : 0,
iScrollableHeight = oOptions.scrollableHeight ? oOptions.scrollableHeight : 1000,
// max-height of .scrollable_field
/**
* @param {boolean=} bIgnoreScrollableHeight
*/
fResize = function fResize(bIgnoreScrollableHeight) {
var iPadding = Browser.firefox ? Types.pInt(jqEl.css('padding-top')) * 2 : 0;
if (iMaxHeight) {
/* 0-timeout to get the already changed text */
setTimeout(function () {
if (jqEl.prop('scrollHeight') < iMaxHeight) {
jqEl.height(iMinHeight - iVerticalPadding - iBorder);
jqEl.height(jqEl.prop('scrollHeight') + iPadding - iVerticalPadding);
} else {
jqEl.height(iMaxHeight - iVerticalPadding - iBorder);
}
}, 100);
} else if (bIgnoreScrollableHeight || jqEl.prop('scrollHeight') < iScrollableHeight) {
setTimeout(function () {
var h = iMinHeight - iVerticalPadding - iBorder;
jqEl.height(h);
var h1 = jqEl.prop('scrollHeight') + iPadding - iVerticalPadding;
jqEl.height(h1);
}, 100);
}
};
jqEl.on('keydown paste', function () {
fResize();
});
if (ko.isObservable(oOptions === null || oOptions === void 0 ? void 0 : oOptions.autosizeTrigger)) {
oOptions.autosizeTrigger.subscribe(function (arg) {
fResize(arg);
}, this);
}
fResize();
}
};
ko.bindingHandlers.fade = {
'init': function init(oElement, fValueAccessor, fAllBindingsAccessor, oViewModel, bindingContext) {
var jqEl = $(oElement),
jqElFaded = $('<span class="faded"></span>'),
oOptions = _.defaults(fValueAccessor(), {
'color': null,
'css': 'fadeout'
}),
oColor = oOptions.color,
sCss = oOptions.css,
updateColor = function updateColor(sColor) {
if (sColor === '') {
return;
}
var oHex2Rgb = hex2Rgb(sColor),
sRGBColor = "rgba(" + oHex2Rgb.r + "," + oHex2Rgb.g + "," + oHex2Rgb.b;
colorIt(sColor, sRGBColor);
},
hex2Rgb = function hex2Rgb(sHex) {
// Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF")
var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i,
result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(sHex);
sHex = sHex.replace(shorthandRegex, function (m, r, g, b) {
return r + r + g + g + b + b;
});
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
},
colorIt = function colorIt(hex, rgb) {
if (UserSettings.IsRTL) {
jqElFaded.css("filter", "progid:DXImageTransform.Microsoft.gradient(startColorstr='" + hex + "', endColorstr='" + hex + "',GradientType=1 )").css("background-image", "-webkit-gradient(linear, left top, right top, color-stop(0%," + rgb + ",1)" + "), color-stop(100%," + rgb + ",0)" + "))").css("background-image", "-moz-linear-gradient(left, " + rgb + ",1)" + "0%, " + rgb + ",0)" + "100%)").css("background-image", "-webkit-linear-gradient(left, " + rgb + "1)" + "0%," + rgb + ",0)" + "100%)").css("background-image", "-o-linear-gradient(left, " + rgb + ",1)" + "0%," + rgb + ",0)" + "100%)").css("background-image", "-ms-linear-gradient(left, " + rgb + ",1)" + "0%," + rgb + ",0)" + "100%)").css("background-image", "linear-gradient(left, " + rgb + ",1)" + "0%," + rgb + ",0)" + "100%)");
} else {
jqElFaded.css("filter", "progid:DXImageTransform.Microsoft.gradient(startColorstr='" + hex + "', endColorstr='" + hex + "',GradientType=1 )").css("background-image", "-webkit-gradient(linear, left top, right top, color-stop(0%," + rgb + ",0)" + "), color-stop(100%," + rgb + ",1)" + "))").css("background-image", "-moz-linear-gradient(left, " + rgb + ",0)" + "0%, " + rgb + ",1)" + "100%)").css("background-image", "-webkit-linear-gradient(left, " + rgb + ",0)" + "0%," + rgb + ",1)" + "100%)").css("background-image", "-o-linear-gradient(left, " + rgb + ",0)" + "0%," + rgb + ",1)" + "100%)").css("background-image", "-ms-linear-gradient(left, " + rgb + ",0)" + "0%," + rgb + ",1)" + "100%)").css("background-image", "linear-gradient(left, " + rgb + ",0)" + "0%," + rgb + ",1)" + "100%)");
}
};
jqEl.parent().addClass(sCss);
jqEl.after(jqElFaded);
if (oOptions.color.subscribe !== undefined) {
updateColor(oColor());
oColor.subscribe(function (sColor) {
updateColor(sColor);
}, this);
}
}
};
module.exports = {};
/***/ }),
/***/ "mjCL":
/*!****************************************************************!*\
!*** ./modules/CalendarWebclient/js/views/PublicHeaderItem.js ***!
\****************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var App = __webpack_require__(/*! modules/CoreWebclient/js/App.js */ "yU9o"),
TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
CHeaderItemView = __webpack_require__(/*! modules/CoreWebclient/js/views/CHeaderItemView.js */ "cR1d"),
sTabTitle = App.isPublic() ? '' : TextUtils.i18n('CALENDARWEBCLIENT/ACTION_SHOW_CALENDAR'),
PublicHeaderItem = new CHeaderItemView(sTabTitle);
module.exports = PublicHeaderItem;
/***/ }),
/***/ "nRis":
/*!************************************************************************!*\
!*** ./modules/CalendarWebclient/js/views/CalendarSettingsFormView.js ***!
\************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var _ = __webpack_require__(/*! underscore */ "C3HO"),
ko = __webpack_require__(/*! knockout */ "p09A"),
Types = __webpack_require__(/*! modules/CoreWebclient/js/utils/Types.js */ "ERH9"),
TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
UserSettings = __webpack_require__(/*! modules/CoreWebclient/js/Settings.js */ "KIwC"),
ModulesManager = __webpack_require__(/*! modules/CoreWebclient/js/ModulesManager.js */ "5D2l"),
CAbstractSettingsFormView = ModulesManager.run('SettingsWebclient', 'getAbstractSettingsFormViewClass'),
CalendarUtils = __webpack_require__(/*! modules/CalendarWebclient/js/utils/Calendar.js */ "+Yv3"),
CalendarCache = __webpack_require__(/*! modules/CalendarWebclient/js/Cache.js */ "Gndn"),
Settings = __webpack_require__(/*! modules/CalendarWebclient/js/Settings.js */ "MEQx");
function GetClosestValue(aTimes, sValue) {
var oTime = _.find(aTimes, function (oTmpTime) {
return oTmpTime.value === sValue;
});
return oTime || !aTimes[0] ? sValue : aTimes[0].value;
}
/**
* @constructor
*/
function CCalendarSettingsFormView() {
CAbstractSettingsFormView.call(this, Settings.ServerModuleName);
this.availableTimes = ko.observableArray(CalendarUtils.getTimeListStepHour(UserSettings.timeFormat() !== Enums.TimeFormat.F24 ? 'hh:mm A' : 'HH:mm'));
UserSettings.timeFormat.subscribe(function () {
this.availableTimes(CalendarUtils.getTimeListStepHour(UserSettings.timeFormat() !== Enums.TimeFormat.F24 ? 'hh:mm A' : 'HH:mm'));
}, this);
/* Editable fields */
this.showWeekends = ko.observable(Settings.HighlightWorkingDays);
this.showWeekNumbers = ko.observable(Settings.ShowWeekNumbers);
this.selectedWorkdayStarts = ko.observable(GetClosestValue(this.availableTimes(), Settings.WorkdayStarts));
this.selectedWorkdayEnds = ko.observable(GetClosestValue(this.availableTimes(), Settings.WorkdayEnds));
this.showWorkday = ko.observable(Settings.HighlightWorkingHours);
this.weekStartsOn = ko.observable(Settings.WeekStartsOn);
this.defaultTab = ko.observable(Settings.DefaultTab);
this.defaultReminders = ko.observable(Settings.DefaultReminders);
/*-- Editable fields */
this.showWeekNumbersAccaptable = ko.computed(function () {
return this.weekStartsOn() == 1;
}, this);
this.bAllowDefaultReminders = Settings.AllowDefaultReminders;
var reminderOptions = _.union(Settings.DefaultReminders, Settings.ReminderValuesInMinutes).map(function (iMinutes) {
var bSelected = Settings.DefaultReminders.indexOf(iMinutes) >= 0;
return {
'value': iMinutes,
'label': TextUtils.i18n('CALENDARWEBCLIENT/INFO_REMINDER', {
'REMINDERS': CalendarUtils.getReminderFiendlyTitle(iMinutes)
}),
'selected': ko.observable(bSelected)
};
});
this.reminderOptions = ko.observableArray(reminderOptions);
this.displayReminderSelector = ko.observable(false);
this.selectedReminderOptions = ko.computed(function () {
var selectedOptions = _.sortBy(this.reminderOptions().filter(function (option) {
return option.selected();
}), 'value');
this.defaultReminders(selectedOptions.map(function (option) {
return option.value;
}));
this.displayReminderSelector(selectedOptions.length <= 4);
return selectedOptions;
}, this);
this.selectedReminder = ko.observable(null);
this.selectedReminder.subscribe(function (v) {
var oFoundOption = this.reminderOptions().find(function (option) {
return option.value === Types.pInt(v);
});
if (oFoundOption) {
this.selectReminder(oFoundOption);
this.selectedReminder('');
}
}, this);
}
_.extendOwn(CCalendarSettingsFormView.prototype, CAbstractSettingsFormView.prototype);
CCalendarSettingsFormView.prototype.ViewTemplate = 'CalendarWebclient_CalendarSettingsFormView';
CCalendarSettingsFormView.prototype.getCurrentValues = function () {
return [this.showWeekends(), this.showWeekNumbers(), this.selectedWorkdayStarts(), this.selectedWorkdayEnds(), this.showWorkday(), this.weekStartsOn(), this.defaultTab(), this.defaultReminders()];
};
CCalendarSettingsFormView.prototype.revertGlobalValues = function () {
this.showWeekends(Settings.HighlightWorkingDays);
this.showWeekNumbers(Settings.ShowWeekNumbers);
this.selectedWorkdayStarts(GetClosestValue(this.availableTimes(), Settings.WorkdayStarts));
this.selectedWorkdayEnds(GetClosestValue(this.availableTimes(), Settings.WorkdayEnds));
this.showWorkday(Settings.HighlightWorkingHours);
this.weekStartsOn(Settings.WeekStartsOn);
this.defaultTab(Settings.DefaultTab);
this.defaultReminders(Settings.DefaultReminders);
};
CCalendarSettingsFormView.prototype.getParametersForSave = function () {
return {
'HighlightWorkingDays': this.showWeekends(),
'HighlightWorkingHours': this.showWorkday(),
'ShowWeekNumbers': this.showWeekNumbers(),
'WorkdayStarts': Types.pInt(this.selectedWorkdayStarts()),
'WorkdayEnds': Types.pInt(this.selectedWorkdayEnds()),
'WeekStartsOn': Types.pInt(this.weekStartsOn()),
'DefaultTab': Types.pInt(this.defaultTab()),
'DefaultReminders': this.defaultReminders()
};
};
/**
* @param {Object} oParameters
*/
CCalendarSettingsFormView.prototype.applySavedValues = function (oParameters) {
CalendarCache.calendarSettingsChanged(true);
Settings.update(oParameters.HighlightWorkingDays, oParameters.HighlightWorkingHours, oParameters.WorkdayStarts, oParameters.WorkdayEnds, oParameters.WeekStartsOn, oParameters.DefaultTab, oParameters.DefaultReminders);
};
CCalendarSettingsFormView.prototype.setAccessLevel = function (sEntityType, iEntityId) {
this.visible(sEntityType === '');
};
CCalendarSettingsFormView.prototype.selectReminder = function (oReminder) {
oReminder.selected(true);
};
CCalendarSettingsFormView.prototype.removeReminder = function (oReminder) {
oReminder.selected(false);
};
module.exports = new CCalendarSettingsFormView();
/***/ }),
/***/ "qq6A":
/*!************************************************************!*\
!*** ./modules/CalendarWebclient/js/utils/FullCalendar.js ***!
\************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var $ = __webpack_require__(/*! jquery */ "M4cL");
var currentDate = new Date();
module.exports = {
recreateIfDateChanged: function recreateIfDateChanged(calendarGrid, recreateFullCalendar) {
var nowDate = new Date();
var isDateChanged = currentDate.getFullYear() !== nowDate.getFullYear() || currentDate.getMonth() !== nowDate.getMonth() || currentDate.getDate() !== nowDate.getDate();
if (isDateChanged) {
currentDate = nowDate;
var todayDate = calendarGrid.fullCalendar('getDate').toDate();
var viewName = calendarGrid.fullCalendar('getView').name;
recreateFullCalendar(viewName);
calendarGrid.fullCalendar('gotoDate', todayDate);
}
},
setTimeline: function setTimeline() {
// find timeline
var parentDiv = $('.fc-slats:visible').parent();
var timeline = parentDiv.children('.timeline');
// if timeline isn't there, add it
if (timeline.length === 0) {
timeline = $('<hr>').addClass('timeline');
parentDiv.prepend(timeline);
}
timeline.css('left', $('td .fc-axis').width() + 10);
timeline.show();
var now = new Date();
var curSeconds = now.getHours() * 60 * 60 + now.getMinutes() * 60 + now.getSeconds();
var percentOfDay = curSeconds / 86400; //24 * 60 * 60 = 86400, % of seconds in a day
var topLoc = Math.floor(parentDiv.height() * percentOfDay);
timeline.css('top', "".concat(topLoc, "px"));
}
};
/***/ }),
/***/ "shRe":
/*!********************************************************************!*\
!*** ./node_modules/style-loader/dist/runtime/insertBySelector.js ***!
\********************************************************************/
/***/ ((module) => {
"use strict";
var memo = {};
/* istanbul ignore next */
function getTarget(target) {
if (typeof memo[target] === "undefined") {
var styleTarget = document.querySelector(target);
// Special case to return head of iframe instead of iframe itself
if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
try {
// This will throw an exception if access to iframe is blocked
// due to cross-origin restrictions
styleTarget = styleTarget.contentDocument.head;
} catch (e) {
// istanbul ignore next
styleTarget = null;
}
}
memo[target] = styleTarget;
}
return memo[target];
}
/* istanbul ignore next */
function insertBySelector(insert, style) {
var target = getTarget(insert);
if (!target) {
throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
}
target.appendChild(style);
}
module.exports = insertBySelector;
/***/ }),
/***/ "x4WY":
/*!**************************************************************!*\
!*** ./modules/CalendarWebclient/js/views/HeaderItemView.js ***!
\**************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
var TextUtils = __webpack_require__(/*! modules/CoreWebclient/js/utils/Text.js */ "LKDt"),
CHeaderItemView = __webpack_require__(/*! modules/CoreWebclient/js/views/CHeaderItemView.js */ "cR1d");
module.exports = new CHeaderItemView(TextUtils.i18n('CALENDARWEBCLIENT/ACTION_SHOW_CALENDAR'));
/***/ })
}]);