/*!
FullCalendar v5.10.0
Docs & License: https://fullcalendar.io/
(c) 2021 Adam Shaw
*/
var FullCalendar = function(e) {
"use strict";
var t = function(e, n) {
return (t = Object.setPrototypeOf || {
__proto__: []
}
instanceof Array && function(e, t) {
e.__proto__ = t
} || function(e, t) {
for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n])
})(e, n)
};
function n(e, n) {
if ("function" != typeof n && null !== n) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null");
function r() {
this.constructor = e
}
t(e, n), e.prototype = null === n ? Object.create(n) : (r.prototype = n.prototype, new r)
}
var r = function() {
return (r = Object.assign || function(e) {
for (var t, n = 1, r = arguments.length; n < r; n++)
for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
return e
}).apply(this, arguments)
};
function o(e, t, n) {
if (n || 2 === arguments.length)
for (var r, o = 0, i = t.length; o < i; o++) !r && o in t || (r || (r = Array.prototype.slice.call(t, 0, o)), r[o] = t[o]);
return e.concat(r || t)
}
var i, a, s, l, u, c = {},
d = [],
p = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord| itera/i;
function f(e, t) {
for (var n in t) e[n] = t[n];
return e
}
function h(e) {
var t = e.parentNode;
t && t.removeChild(e)
}
function v(e, t, n) {
var r, o, i, a = arguments,
s = {};
for (i in t) "key" == i ? r = t[i] : "ref" == i ? o = t[i] : s[i] = t[i];
if (arguments.length > 3)
for (n = [n], i = 3; i < arguments.length; i++) n.push(a[i]);
if (null != n && (s.children = n), "function" == typeof e && null != e.defaultProps)
for (i in e.defaultProps) void 0 === s[i] && (s[i] = e.defaultProps[i]);
return g(e, s, r, o, null)
}
function g(e, t, n, r, o) {
var a = {
type: e,
props: t,
key: n,
ref: r,
__k: null,
__: null,
__b: 0,
__e: null,
__d: void 0,
__c: null,
__h: null,
constructor: void 0,
__v: null == o ? ++i.__v : o
};
return null != i.vnode && i.vnode(a), a
}
function m(e) {
return e.children
}
function y(e, t) {
this.props = e, this.context = t
}
function E(e, t) {
if (null == t) return e.__ ? E(e.__, e.__.__k.indexOf(e) + 1) : null;
for (var n; t < e.__k.length; t++)
if (null != (n = e.__k[t]) && null != n.__e) return n.__e;
return "function" == typeof e.type ? E(e) : null
}
function S(e) {
var t, n;
if (null != (e = e.__) && null != e.__c) {
for (e.__e = e.__c.base = null, t = 0; t < e.__k.length; t++)
if (null != (n = e.__k[t]) && null != n.__e) {
e.__e = e.__c.base = n.__e;
break
}
return S(e)
}
}
function b(e) {
(!e.__d && (e.__d = !0) && a.push(e) && !D.__r++ || l !== i.debounceRendering) && ((l = i.debounceRendering) || s)(D)
}
function D() {
for (var e; D.__r = a.length;) e = a.sort((function(e, t) {
return e.__v.__b - t.__v.__b
})), a = [], e.some((function(e) {
var t, n, r, o, i, a;
e.__d && (i = (o = (t = e).__v).__e, (a = t.__P) && (n = [], (r = f({}, o)).__v = o.__v + 1, I(a, o, r, t.__n, void 0 !== a.ownerSVGElement, null != o.__h ? [i] : null, n, null == i ? E(o) : i, o.__h), P(n, o), o.__e != i && S(o)))
}))
}
function C(e, t, n, r, o, i, a, s, l, u) {
var p, f, h, v, y, S, b, D = r && r.__k || d,
C = D.length;
for (n.__k = [], p = 0; p < t.length; p++)
if (null != (v = n.__k[p] = null == (v = t[p]) || "boolean" == typeof v ? null : "string" == typeof v || "number" == typeof v || "bigint" == typeof v ? g(null, v, null, null, v) : Array.isArray(v) ? g(m, {
children: v
}, null, null, null) : v.__b > 0 ? g(v.type, v.props, v.key, null, v.__v) : v)) {
if (v.__ = n, v.__b = n.__b + 1, null === (h = D[p]) || h && v.key == h.key && v.type === h.type) D[p] = void 0;
else
for (f = 0; f < C; f++) {
if ((h = D[f]) && v.key == h.key && v.type === h.type) {
D[f] = void 0;
break
}
h = null
}
I(e, v, h = h || c, o, i, a, s, l, u), y = v.__e, (f = v.ref) && h.ref != f && (b || (b = []), h.ref && b.push(h.ref, null, v), b.push(f, v.__c || y, v)), null != y ? (null == S && (S = y), "function" == typeof v.type && null != v.__k && v.__k === h.__k ? v.__d = l = w(v, l, e) : l = _(e, v, h, D, y, l), u || "option" !== n.type ? "function" == typeof n.type && (n.__d = l) : e.value = "") : l && h.__e == l && l.parentNode != e && (l = E(h))
}
for (n.__e = S, p = C; p--;) null != D[p] && ("function" == typeof n.type && null != D[p].__e && D[p].__e == n.__d && (n.__d = E(r, p + 1)), O(D[p], D[p]));
if (b)
for (p = 0; p < b.length; p++) H(b[p], b[++p], b[++p])
}
function w(e, t, n) {
var r, o;
for (r = 0; r < e.__k.length; r++)(o = e.__k[r]) && (o.__ = e, t = "function" == typeof o.type ? w(o, t, n) : _(n, o, o, e.__k, o.__e, t));
return t
}
function R(e, t) {
return t = t || [], null == e || "boolean" == typeof e || (Array.isArray(e) ? e.some((function(e) {
R(e, t)
})) : t.push(e)), t
}
function _(e, t, n, r, o, i) {
var a, s, l;
if (void 0 !== t.__d) a = t.__d, t.__d = void 0;
else if (null == n || o != i || null == o.parentNode) e: if (null == i || i.parentNode !== e) e.appendChild(o), a = null;
else {
for (s = i, l = 0;
(s = s.nextSibling) && l < r.length; l += 2)
if (s == o) break e;
e.insertBefore(o, i), a = i
}
return void 0 !== a ? a : o.nextSibling
}
function T(e, t, n) {
"-" === t[0] ? e.setProperty(t, n) : e[t] = null == n ? "" : "number" != typeof n || p.test(t) ? n : n + "px"
}
function k(e, t, n, r, o) {
var i;
e: if ("style" === t)
if ("string" == typeof n) e.style.cssText = n;
else {
if ("string" == typeof r && (e.style.cssText = r = ""), r)
for (t in r) n && t in n || T(e.style, t, "");
if (n)
for (t in n) r && n[t] === r[t] || T(e.style, t, n[t])
}
else if ("o" === t[0] && "n" === t[1]) i = t !== (t = t.replace(/Capture$/, "")), t = t.toLowerCase() in e ? t.toLowerCase().slice(2) : t.slice(2), e.l || (e.l = {}), e.l[t + i] = n, n ? r || e.addEventListener(t, i ? M : x, i) : e.removeEventListener(t, i ? M : x, i);
else if ("dangerouslySetInnerHTML" !== t) {
if (o) t = t.replace(/xlink[H:h]/, "h").replace(/sName$/, "s");
else if ("href" !== t && "list" !== t && "form" !== t && "tabIndex" !== t && "download" !== t && t in e) try {
e[t] = null == n ? "" : n;
break e
} catch (e) {}
"function" == typeof n || (null != n && (!1 !== n || "a" === t[0] && "r" === t[1]) ? e.setAttribute(t, n) : e.removeAttribute(t))
}
}
function x(e) {
this.l[e.type + !1](i.event ? i.event(e) : e)
}
function M(e) {
this.l[e.type + !0](i.event ? i.event(e) : e)
}
function I(e, t, n, r, o, a, s, l, u) {
var c, d, p, h, v, g, E, S, b, D, w, R = t.type;
if (void 0 !== t.constructor) return null;
null != n.__h && (u = n.__h, l = t.__e = n.__e, t.__h = null, a = [l]), (c = i.__b) && c(t);
try {
e: if ("function" == typeof R) {
if (S = t.props, b = (c = R.contextType) && r[c.__c], D = c ? b ? b.props.value : c.__ : r, n.__c ? E = (d = t.__c = n.__c).__ = d.__E : ("prototype" in R && R.prototype.render ? t.__c = d = new R(S, D) : (t.__c = d = new y(S, D), d.constructor = R, d.render = A), b && b.sub(d), d.props = S, d.state || (d.state = {}), d.context = D, d.__n = r, p = d.__d = !0, d.__h = []), null == d.__s && (d.__s = d.state), null != R.getDerivedStateFromProps && (d.__s == d.state && (d.__s = f({}, d.__s)), f(d.__s, R.getDerivedStateFromProps(S, d.__s))), h = d.props, v = d.state, p) null == R.getDerivedStateFromProps && null != d.componentWillMount && d.componentWillMount(), null != d.componentDidMount && d.__h.push(d.componentDidMount);
else {
if (null == R.getDerivedStateFromProps && S !== h && null != d.componentWillReceiveProps && d.componentWillReceiveProps(S, D), !d.__e && null != d.shouldComponentUpdate && !1 === d.shouldComponentUpdate(S, d.__s, D) || t.__v === n.__v) {
d.props = S, d.state = d.__s, t.__v !== n.__v && (d.__d = !1), d.__v = t, t.__e = n.__e, t.__k = n.__k, t.__k.forEach((function(e) {
e && (e.__ = t)
})), d.__h.length && s.push(d);
break e
}
null != d.componentWillUpdate && d.componentWillUpdate(S, d.__s, D), null != d.componentDidUpdate && d.__h.push((function() {
d.componentDidUpdate(h, v, g)
}))
}
d.context = D, d.props = S, d.state = d.__s, (c = i.__r) && c(t), d.__d = !1, d.__v = t, d.__P = e, c = d.render(d.props, d.state, d.context), d.state = d.__s, null != d.getChildContext && (r = f(f({}, r), d.getChildContext())), p || null == d.getSnapshotBeforeUpdate || (g = d.getSnapshotBeforeUpdate(h, v)), w = null != c && c.type === m && null == c.key ? c.props.children : c, C(e, Array.isArray(w) ? w : [w], t, n, r, o, a, s, l, u), d.base = t.__e, t.__h = null, d.__h.length && s.push(d), E && (d.__E = d.__ = null), d.__e = !1
} else null == a && t.__v === n.__v ? (t.__k = n.__k, t.__e = n.__e) : t.__e = N(n.__e, t, n, r, o, a, s, u);
(c = i.diffed) && c(t)
}
catch (e) {
t.__v = null, (u || null != a) && (t.__e = l, t.__h = !!u, a[a.indexOf(l)] = null), i.__e(e, t, n)
}
}
function P(e, t) {
i.__c && i.__c(t, e), e.some((function(t) {
try {
e = t.__h, t.__h = [], e.some((function(e) {
e.call(t)
}))
} catch (e) {
i.__e(e, t.__v)
}
}))
}
function N(e, t, n, r, o, i, a, s) {
var l, u, p, f, v = n.props,
g = t.props,
m = t.type,
y = 0;
if ("svg" === m && (o = !0), null != i)
for (; y < i.length; y++)
if ((l = i[y]) && (l === e || (m ? l.localName == m : 3 == l.nodeType))) {
e = l, i[y] = null;
break
}
if (null == e) {
if (null === m) return document.createTextNode(g);
e = o ? document.createElementNS("http://www.w3.org/2000/svg", m) : document.createElement(m, g.is && g), i = null, s = !1
}
if (null === m) v === g || s && e.data === g || (e.data = g);
else {
if (i = i && d.slice.call(e.childNodes), u = (v = n.props || c).dangerouslySetInnerHTML, p = g.dangerouslySetInnerHTML, !s) {
if (null != i)
for (v = {}, f = 0; f < e.attributes.length; f++) v[e.attributes[f].name] = e.attributes[f].value;
(p || u) && (p && (u && p.__html == u.__html || p.__html === e.innerHTML) || (e.innerHTML = p && p.__html || ""))
}
if (function(e, t, n, r, o) {
var i;
for (i in n) "children" === i || "key" === i || i in t || k(e, i, null, n[i], r);
for (i in t) o && "function" != typeof t[i] || "children" === i || "key" === i || "value" === i || "checked" === i || n[i] === t[i] || k(e, i, t[i], n[i], r)
}(e, g, v, o, s), p) t.__k = [];
else if (y = t.props.children, C(e, Array.isArray(y) ? y : [y], t, n, r, o && "foreignObject" !== m, i, a, e.firstChild, s), null != i)
for (y = i.length; y--;) null != i[y] && h(i[y]);
s || ("value" in g && void 0 !== (y = g.value) && (y !== e.value || "progress" === m && !y) && k(e, "value", y, v.value, !1), "checked" in g && void 0 !== (y = g.checked) && y !== e.checked && k(e, "checked", y, v.checked, !1))
}
return e
}
function H(e, t, n) {
try {
"function" == typeof e ? e(t) : e.current = t
} catch (e) {
i.__e(e, n)
}
}
function O(e, t, n) {
var r, o, a;
if (i.unmount && i.unmount(e), (r = e.ref) && (r.current && r.current !== e.__e || H(r, null, t)), n || "function" == typeof e.type || (n = null != (o = e.__e)), e.__e = e.__d = void 0, null != (r = e.__c)) {
if (r.componentWillUnmount) try {
r.componentWillUnmount()
} catch (e) {
i.__e(e, t)
}
r.base = r.__P = null
}
if (r = e.__k)
for (a = 0; a < r.length; a++) r[a] && O(r[a], t, n);
null != o && h(o)
}
function A(e, t, n) {
return this.constructor(e, n)
}
function L(e, t, n) {
var r, o, a;
i.__ && i.__(e, t), o = (r = "function" == typeof n) ? null : n && n.__k || t.__k, a = [], I(t, e = (!r && n || t).__k = v(m, null, [e]), o || c, c, void 0 !== t.ownerSVGElement, !r && n ? [n] : o ? null : t.firstChild ? d.slice.call(t.childNodes) : null, a, !r && n ? n : o ? o.__e : t.firstChild, r), P(a, e)
}
i = {
__e: function(e, t) {
for (var n, r, o; t = t.__;)
if ((n = t.__c) && !n.__) try {
if ((r = n.constructor) && null != r.getDerivedStateFromError && (n.setState(r.getDerivedStateFromError(e)), o = n.__d), null != n.componentDidCatch && (n.componentDidCatch(e), o = n.__d), o) return n.__E = n
} catch (t) {
e = t
}
throw e
},
__v: 0
}, y.prototype.setState = function(e, t) {
var n;
n = null != this.__s && this.__s !== this.state ? this.__s : this.__s = f({}, this.state), "function" == typeof e && (e = e(f({}, n), this.props)), e && f(n, e), null != e && this.__v && (t && this.__h.push(t), b(this))
}, y.prototype.forceUpdate = function(e) {
this.__v && (this.__e = !0, e && this.__h.push(e), b(this))
}, y.prototype.render = m, a = [], s = "function" == typeof Promise ? Promise.prototype.then.bind(Promise.resolve()) : setTimeout, D.__r = 0, u = 0;
var U, W = [],
V = i.__b,
F = i.__r,
B = i.diffed,
z = i.__c,
j = i.unmount;
function G() {
W.forEach((function(e) {
if (e.__P) try {
e.__H.__h.forEach(Y), e.__H.__h.forEach(Z), e.__H.__h = []
} catch (t) {
e.__H.__h = [], i.__e(t, e.__v)
}
})), W = []
}
i.__b = function(e) {
V && V(e)
}, i.__r = function(e) {
F && F(e);
var t = e.__c.__H;
t && (t.__h.forEach(Y), t.__h.forEach(Z), t.__h = [])
}, i.diffed = function(e) {
B && B(e);
var t = e.__c;
t && t.__H && t.__H.__h.length && (1 !== W.push(t) && U === i.requestAnimationFrame || ((U = i.requestAnimationFrame) || function(e) {
var t, n = function() {
clearTimeout(r), q && cancelAnimationFrame(t), setTimeout(e)
},
r = setTimeout(n, 100);
q && (t = requestAnimationFrame(n))
})(G))
}, i.__c = function(e, t) {
t.some((function(e) {
try {
e.__h.forEach(Y), e.__h = e.__h.filter((function(e) {
return !e.__ || Z(e)
}))
} catch (n) {
t.some((function(e) {
e.__h && (e.__h = [])
})), t = [], i.__e(n, e.__v)
}
})), z && z(e, t)
}, i.unmount = function(e) {
j && j(e);
var t = e.__c;
if (t && t.__H) try {
t.__H.__.forEach(Y)
} catch (e) {
i.__e(e, t.__v)
}
};
var q = "function" == typeof requestAnimationFrame;
function Y(e) {
"function" == typeof e.__c && e.__c()
}
function Z(e) {
e.__c = e.__()
}
function X(e, t) {
for (var n in e)
if ("__source" !== n && !(n in t)) return !0;
for (var r in t)
if ("__source" !== r && e[r] !== t[r]) return !0;
return !1
}
function K(e) {
this.props = e
}(K.prototype = new y).isPureReactComponent = !0, K.prototype.shouldComponentUpdate = function(e, t) {
return X(this.props, e) || X(this.state, t)
};
var $ = i.__b;
i.__b = function(e) {
e.type && e.type.__f && e.ref && (e.props.ref = e.ref, e.ref = null), $ && $(e)
};
var J = i.__e;
i.__e = function(e, t, n) {
if (e.then)
for (var r, o = t; o = o.__;)
if ((r = o.__c) && r.__c) return null == t.__e && (t.__e = n.__e, t.__k = n.__k), r.__c(e, t);
J(e, t, n)
};
var Q = i.unmount;
function ee() {
this.__u = 0, this.t = null, this.__b = null
}
function te(e) {
var t = e.__.__c;
return t && t.__e && t.__e(e)
}
function ne() {
this.u = null, this.o = null
}
i.unmount = function(e) {
var t = e.__c;
t && t.__R && t.__R(), t && !0 === e.__h && (e.type = null), Q && Q(e)
}, (ee.prototype = new y).__c = function(e, t) {
var n = t.__c,
r = this;
null == r.t && (r.t = []), r.t.push(n);
var o = te(r.__v),
i = !1,
a = function() {
i || (i = !0, n.__R = null, o ? o(s) : s())
};
n.__R = a;
var s = function() {
if (!--r.__u) {
if (r.state.__e) {
var e = r.state.__e;
r.__v.__k[0] = function e(t, n, r) {
return t && (t.__v = null, t.__k = t.__k && t.__k.map((function(t) {
return e(t, n, r)
})), t.__c && t.__c.__P === n && (t.__e && r.insertBefore(t.__e, t.__d), t.__c.__e = !0, t.__c.__P = r)), t
}(e, e.__c.__P, e.__c.__O)
}
var t;
for (r.setState({
__e: r.__b = null
}); t = r.t.pop();) t.forceUpdate()
}
},
l = !0 === t.__h;
r.__u++ || l || r.setState({
__e: r.__b = r.__v.__k[0]
}), e.then(a, a)
}, ee.prototype.componentWillUnmount = function() {
this.t = []
}, ee.prototype.render = function(e, t) {
if (this.__b) {
if (this.__v.__k) {
var n = document.createElement("div"),
r = this.__v.__k[0].__c;
this.__v.__k[0] = function e(t, n, r) {
return t && (t.__c && t.__c.__H && (t.__c.__H.__.forEach((function(e) {
"function" == typeof e.__c && e.__c()
})), t.__c.__H = null), null != (t = function(e, t) {
for (var n in t) e[n] = t[n];
return e
}({}, t)).__c && (t.__c.__P === r && (t.__c.__P = n), t.__c = null), t.__k = t.__k && t.__k.map((function(t) {
return e(t, n, r)
}))), t
}(this.__b, n, r.__O = r.__P)
}
this.__b = null
}
var o = t.__e && v(m, null, e.fallback);
return o && (o.__h = null), [v(m, null, t.__e ? null : e.children), o]
};
var re = function(e, t, n) {
if (++n[1] === n[0] && e.o.delete(t), e.props.revealOrder && ("t" !== e.props.revealOrder[0] || !e.o.size))
for (n = e.u; n;) {
for (; n.length > 3;) n.pop()();
if (n[1] < n[0]) break;
e.u = n = n[2]
}
};
function oe(e) {
return this.getChildContext = function() {
return e.context
}, e.children
}
function ie(e) {
var t = this,
n = e.i;
t.componentWillUnmount = function() {
L(null, t.l), t.l = null, t.i = null
}, t.i && t.i !== n && t.componentWillUnmount(), e.__v ? (t.l || (t.i = n, t.l = {
nodeType: 1,
parentNode: n,
childNodes: [],
appendChild: function(e) {
this.childNodes.push(e), t.i.appendChild(e)
},
insertBefore: function(e, n) {
this.childNodes.push(e), t.i.appendChild(e)
},
removeChild: function(e) {
this.childNodes.splice(this.childNodes.indexOf(e) >>> 1, 1), t.i.removeChild(e)
}
}), L(v(oe, {
context: t.context
}, e.__v), t.l)) : t.l && t.componentWillUnmount()
}(ne.prototype = new y).__e = function(e) {
var t = this,
n = te(t.__v),
r = t.o.get(e);
return r[0]++,
function(o) {
var i = function() {
t.props.revealOrder ? (r.push(o), re(t, e, r)) : o()
};
n ? n(i) : i()
}
}, ne.prototype.render = function(e) {
this.u = null, this.o = new Map;
var t = R(e.children);
e.revealOrder && "b" === e.revealOrder[0] && t.reverse();
for (var n = t.length; n--;) this.o.set(t[n], this.u = [1, 0, this.u]);
return e.children
}, ne.prototype.componentDidUpdate = ne.prototype.componentDidMount = function() {
var e = this;
this.o.forEach((function(t, n) {
re(e, n, t)
}))
};
var ae = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103,
se = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|fill|flood|font|glyph(?!R)|horiz|marker(?!H|W|U)|overline|paint|stop|strikethrough|stroke|text(?!L)|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,
le = function(e) {
return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/i : /fil|che|ra/i).test(e)
};
y.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach((function(e) {
Object.defineProperty(y.prototype, e, {
configurable: !0,
get: function() {
return this["UNSAFE_" + e]
},
set: function(t) {
Object.defineProperty(this, e, {
configurable: !0,
writable: !0,
value: t
})
}
})
}));
var ue = i.event;
function ce() {}
function de() {
return this.cancelBubble
}
function pe() {
return this.defaultPrevented
}
i.event = function(e) {
return ue && (e = ue(e)), e.persist = ce, e.isPropagationStopped = de, e.isDefaultPrevented = pe, e.nativeEvent = e
};
var fe = {
configurable: !0,
get: function() {
return this.class
}
},
he = i.vnode;
i.vnode = function(e) {
var t = e.type,
n = e.props,
r = n;
if ("string" == typeof t) {
for (var o in r = {}, n) {
var i = n[o];
"value" === o && "defaultValue" in n && null == i || ("defaultValue" === o && "value" in n && null == n.value ? o = "value" : "download" === o && !0 === i ? i = "" : /ondoubleclick/i.test(o) ? o = "ondblclick" : /^onchange(textarea|input)/i.test(o + t) && !le(n.type) ? o = "oninput" : /^on(Ani|Tra|Tou|BeforeInp)/.test(o) ? o = o.toLowerCase() : se.test(o) ? o = o.replace(/[A-Z0-9]/, "-$&").toLowerCase() : null === i && (i = void 0), r[o] = i)
}
"select" == t && r.multiple && Array.isArray(r.value) && (r.value = R(n.children).forEach((function(e) {
e.props.selected = -1 != r.value.indexOf(e.props.value)
}))), "select" == t && null != r.defaultValue && (r.value = R(n.children).forEach((function(e) {
e.props.selected = r.multiple ? -1 != r.defaultValue.indexOf(e.props.value) : r.defaultValue == e.props.value
}))), e.props = r
}
t && n.class != n.className && (fe.enumerable = "className" in n, null != n.className && (r.class = n.className), Object.defineProperty(r, "className", fe)), e.$$typeof = ae, he && he(e)
};
var ve = i.__r;
i.__r = function(e) {
ve && ve(e)
}, "object" == typeof performance && "function" == typeof performance.now && performance.now.bind(performance);
var ge = "undefined" != typeof globalThis ? globalThis : window;
ge.FullCalendarVDom ? console.warn("FullCalendar VDOM already loaded") : ge.FullCalendarVDom = {
Component: y,
createElement: v,
render: L,
createRef: function() {
return {
current: null
}
},
Fragment: m,
createContext: function(e) {
var t = function(e, t) {
var n = {
__c: t = "__cC" + u++,
__: e,
Consumer: function(e, t) {
return e.children(t)
},
Provider: function(e) {
var n, r;
return this.getChildContext || (n = [], (r = {})[t] = this, this.getChildContext = function() {
return r
}, this.shouldComponentUpdate = function(e) {
this.props.value !== e.value && n.some(b)
}, this.sub = function(e) {
n.push(e);
var t = e.componentWillUnmount;
e.componentWillUnmount = function() {
n.splice(n.indexOf(e), 1), t && t.call(e)
}
}), e.children
}
};
return n.Provider.__ = n.Consumer.contextType = n
}(e),
n = t.Provider;
return t.Provider = function() {
var e = this,
t = !this.getChildContext,
r = n.apply(this, arguments);
if (t) {
var o = [];
this.shouldComponentUpdate = function(t) {
e.props.value !== t.value && o.forEach((function(e) {
e.context = t.value, e.forceUpdate()
}))
}, this.sub = function(e) {
o.push(e);
var t = e.componentWillUnmount;
e.componentWillUnmount = function() {
o.splice(o.indexOf(e), 1), t && t.call(e)
}
}
}
return r
}, t
},
createPortal: function(e, t) {
return v(ie, {
__v: e,
i: t
})
},
flushToDom: function() {
var e = i.debounceRendering,
t = [];
function n(e) {
t.push(e)
}
i.debounceRendering = n, L(v(me, {}), document.createElement("div"));
for (; t.length;) t.shift()();
i.debounceRendering = e
},
unmountComponentAtNode: function(e) {
L(null, e)
}
};
var me = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
return v("div", {})
}, t.prototype.componentDidMount = function() {
this.setState({})
}, t
}(y);
var ye = function() {
function e(e, t) {
this.context = e, this.internalEventSource = t
}
return e.prototype.remove = function() {
this.context.dispatch({
type: "REMOVE_EVENT_SOURCE",
sourceId: this.internalEventSource.sourceId
})
}, e.prototype.refetch = function() {
this.context.dispatch({
type: "FETCH_EVENT_SOURCES",
sourceIds: [this.internalEventSource.sourceId],
isRefetch: !0
})
}, Object.defineProperty(e.prototype, "id", {
get: function() {
return this.internalEventSource.publicId
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "url", {
get: function() {
return this.internalEventSource.meta.url
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "format", {
get: function() {
return this.internalEventSource.meta.format
},
enumerable: !1,
configurable: !0
}), e
}();
function Ee(e) {
e.parentNode && e.parentNode.removeChild(e)
}
function Se(e, t) {
if (e.closest) return e.closest(t);
if (!document.documentElement.contains(e)) return null;
do {
if (be(e, t)) return e;
e = e.parentElement || e.parentNode
} while (null !== e && 1 === e.nodeType);
return null
}
function be(e, t) {
return (e.matches || e.matchesSelector || e.msMatchesSelector).call(e, t)
}
function De(e, t) {
for (var n = e instanceof HTMLElement ? [e] : e, r = [], o = 0; o < n.length; o += 1)
for (var i = n[o].querySelectorAll(t), a = 0; a < i.length; a += 1) r.push(i[a]);
return r
}
var Ce = /(top|left|right|bottom|width|height)$/i;
function we(e, t) {
for (var n in t) Re(e, n, t[n])
}
function Re(e, t, n) {
null == n ? e.style[t] = "" : "number" == typeof n && Ce.test(t) ? e.style[t] = n + "px" : e.style[t] = n
}
function _e(e) {
var t, n;
return null !== (n = null === (t = e.composedPath) || void 0 === t ? void 0 : t.call(e)[0]) && void 0 !== n ? n : e.target
}
function Te(e) {
return e.getRootNode ? e.getRootNode() : document
}
var ke = 0;
function xe() {
return "fc-dom-" + (ke += 1)
}
function Me(e) {
e.preventDefault()
}
function Ie(e, t, n, r) {
var o = function(e, t) {
return function(n) {
var r = Se(n.target, e);
r && t.call(r, n, r)
}
}(n, r);
return e.addEventListener(t, o),
function() {
e.removeEventListener(t, o)
}
}
var Pe = ["webkitTransitionEnd", "otransitionend", "oTransitionEnd", "msTransitionEnd", "transitionend"];
function Ne(e, t) {
var n = function(r) {
t(r), Pe.forEach((function(t) {
e.removeEventListener(t, n)
}))
};
Pe.forEach((function(t) {
e.addEventListener(t, n)
}))
}
function He(e) {
return r({
onClick: e
}, Oe(e))
}
function Oe(e) {
return {
tabIndex: 0,
onKeyDown: function(t) {
"Enter" !== t.key && " " !== t.key || (e(t), t.preventDefault())
}
}
}
var Ae = 0;
function Le() {
return String(Ae += 1)
}
function Ue() {
document.body.classList.add("fc-not-allowed")
}
function We() {
document.body.classList.remove("fc-not-allowed")
}
function Ve(e) {
e.classList.add("fc-unselectable"), e.addEventListener("selectstart", Me)
}
function Fe(e) {
e.classList.remove("fc-unselectable"), e.removeEventListener("selectstart", Me)
}
function Be(e) {
e.addEventListener("contextmenu", Me)
}
function ze(e) {
e.removeEventListener("contextmenu", Me)
}
function je(e) {
var t, n, r = [],
o = [];
for ("string" == typeof e ? o = e.split(/\s*,\s*/) : "function" == typeof e ? o = [e] : Array.isArray(e) && (o = e), t = 0; t < o.length; t += 1) "string" == typeof(n = o[t]) ? 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 Ge(e, t, n) {
var r, o;
for (r = 0; r < n.length; r += 1)
if (o = qe(e, t, n[r])) return o;
return 0
}
function qe(e, t, n) {
return n.func ? n.func(e, t) : Ye(e[n.field], t[n.field]) * (n.order || 1)
}
function Ye(e, t) {
return e || t ? null == t ? -1 : null == e ? 1 : "string" == typeof e || "string" == typeof t ? String(e).localeCompare(String(t)) : e - t : 0
}
function Ze(e, t) {
var n = String(e);
return "000".substr(0, t - n.length) + n
}
function Xe(e, t, n) {
return "function" == typeof e ? e.apply(void 0, t) : "string" == typeof e ? t.reduce((function(e, t, n) {
return e.replace("$" + n, t || "")
}), e) : n
}
function Ke(e, t) {
return e - t
}
function $e(e) {
return e % 1 == 0
}
function Je(e) {
var t = e.querySelector(".fc-scrollgrid-shrink-frame"),
n = e.querySelector(".fc-scrollgrid-shrink-cushion");
if (!t) throw new Error("needs fc-scrollgrid-shrink-frame className");
if (!n) throw new Error("needs fc-scrollgrid-shrink-cushion className");
return e.getBoundingClientRect().width - t.getBoundingClientRect().width + n.getBoundingClientRect().width
}
var Qe = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
function et(e, t) {
var n = ft(e);
return n[2] += 7 * t, ht(n)
}
function tt(e, t) {
var n = ft(e);
return n[2] += t, ht(n)
}
function nt(e, t) {
var n = ft(e);
return n[6] += t, ht(n)
}
function rt(e, t) {
return ot(e, t) / 7
}
function ot(e, t) {
return (t.valueOf() - e.valueOf()) / 864e5
}
function it(e, t) {
var n = lt(e),
r = lt(t);
return {
years: 0,
months: 0,
days: Math.round(ot(n, r)),
milliseconds: t.valueOf() - r.valueOf() - (e.valueOf() - n.valueOf())
}
}
function at(e, t) {
var n = st(e, t);
return null !== n && n % 7 == 0 ? n / 7 : null
}
function st(e, t) {
return gt(e) === gt(t) ? Math.round(ot(e, t)) : null
}
function lt(e) {
return ht([e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()])
}
function ut(e, t, n, r) {
var o = ht([t, 0, 1 + ct(t, n, r)]),
i = lt(e),
a = Math.round(ot(o, i));
return Math.floor(a / 7) + 1
}
function ct(e, t, n) {
var r = 7 + t - n;
return -((7 + ht([e, 0, r]).getUTCDay() - t) % 7) + r - 1
}
function dt(e) {
return [e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()]
}
function pt(e) {
return new Date(e[0], e[1] || 0, null == e[2] ? 1 : e[2], e[3] || 0, e[4] || 0, e[5] || 0)
}
function ft(e) {
return [e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate(), e.getUTCHours(), e.getUTCMinutes(), e.getUTCSeconds(), e.getUTCMilliseconds()]
}
function ht(e) {
return 1 === e.length && (e = e.concat([0])), new Date(Date.UTC.apply(Date, e))
}
function vt(e) {
return !isNaN(e.valueOf())
}
function gt(e) {
return 1e3 * e.getUTCHours() * 60 * 60 + 1e3 * e.getUTCMinutes() * 60 + 1e3 * e.getUTCSeconds() + e.getUTCMilliseconds()
}
function mt(e, t, n, r) {
return {
instanceId: Le(),
defId: e,
range: t,
forcedStartTzo: null == n ? null : n,
forcedEndTzo: null == r ? null : r
}
}
var yt = Object.prototype.hasOwnProperty;
function Et(e, t) {
var n = {};
if (t)
for (var r in t) {
for (var o = [], i = e.length - 1; i >= 0; i -= 1) {
var a = e[i][r];
if ("object" == typeof a && a) o.unshift(a);
else if (void 0 !== a) {
n[r] = a;
break
}
}
o.length && (n[r] = Et(o))
}
for (i = e.length - 1; i >= 0; i -= 1) {
var s = e[i];
for (var l in s) l in n || (n[l] = s[l])
}
return n
}
function St(e, t) {
var n = {};
for (var r in e) t(e[r], r) && (n[r] = e[r]);
return n
}
function bt(e, t) {
var n = {};
for (var r in e) n[r] = t(e[r], r);
return n
}
function Dt(e) {
for (var t = {}, n = 0, r = e; n < r.length; n++) {
t[r[n]] = !0
}
return t
}
function Ct(e) {
var t = [];
for (var n in e) t.push(e[n]);
return t
}
function wt(e, t) {
if (e === t) return !0;
for (var n in e)
if (yt.call(e, n) && !(n in t)) return !1;
for (var n in t)
if (yt.call(t, n) && e[n] !== t[n]) return !1;
return !0
}
function Rt(e, t) {
var n = [];
for (var r in e) yt.call(e, r) && (r in t || n.push(r));
for (var r in t) yt.call(t, r) && e[r] !== t[r] && n.push(r);
return n
}
function _t(e, t, n) {
if (void 0 === n && (n = {}), e === t) return !0;
for (var r in t)
if (!(r in e) || !Tt(e[r], t[r], n[r])) return !1;
for (var r in e)
if (!(r in t)) return !1;
return !0
}
function Tt(e, t, n) {
return e === t || !0 === n || !!n && n(e, t)
}
function kt(e, t, n, r) {
void 0 === t && (t = 0), void 0 === r && (r = 1);
var o = [];
null == n && (n = Object.keys(e).length);
for (var i = t; i < n; i += r) {
var a = e[i];
void 0 !== a && o.push(a)
}
return o
}
function xt(e, t, n) {
var r = n.dateEnv,
o = n.pluginHooks,
i = n.options,
a = e.defs,
s = e.instances;
for (var l in s = St(s, (function(e) {
return !a[e.defId].recurringDef
})), a) {
var u = a[l];
if (u.recurringDef) {
var c = u.recurringDef.duration;
c || (c = u.allDay ? i.defaultAllDayEventDuration : i.defaultTimedEventDuration);
for (var d = 0, p = Mt(u, c, t, r, o.recurringTypes); d < p.length; d++) {
var f = p[d],
h = mt(l, {
start: f,
end: r.add(f, c)
});
s[h.instanceId] = h
}
}
}
return {
defs: a,
instances: s
}
}
function Mt(e, t, n, r, o) {
var i = o[e.recurringDef.typeId].expand(e.recurringDef.typeData, {
start: r.subtract(n.start, t),
end: n.end
}, r);
return e.allDay && (i = i.map(lt)), i
}
var It = ["years", "months", "days", "milliseconds"],
Pt = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;
function Nt(e, t) {
var n;
return "string" == typeof e ? function(e) {
var t = Pt.exec(e);
if (t) {
var n = t[1] ? -1 : 1;
return {
years: 0,
months: 0,
days: n * (t[2] ? parseInt(t[2], 10) : 0),
milliseconds: n * (60 * (t[3] ? parseInt(t[3], 10) : 0) * 60 * 1e3 + 60 * (t[4] ? parseInt(t[4], 10) : 0) * 1e3 + 1e3 * (t[5] ? parseInt(t[5], 10) : 0) + (t[6] ? parseInt(t[6], 10) : 0))
}
}
return null
}(e) : "object" == typeof e && e ? Ht(e) : "number" == typeof e ? Ht(((n = {})[t || "milliseconds"] = e, n)) : null
}
function Ht(e) {
var t = {
years: e.years || e.year || 0,
months: e.months || e.month || 0,
days: e.days || e.day || 0,
milliseconds: 60 * (e.hours || e.hour || 0) * 60 * 1e3 + 60 * (e.minutes || e.minute || 0) * 1e3 + 1e3 * (e.seconds || e.second || 0) + (e.milliseconds || e.millisecond || e.ms || 0)
},
n = e.weeks || e.week;
return n && (t.days += 7 * n, t.specifiedWeeks = !0), t
}
function Ot(e, t) {
return {
years: e.years + t.years,
months: e.months + t.months,
days: e.days + t.days,
milliseconds: e.milliseconds + t.milliseconds
}
}
function At(e, t) {
return {
years: e.years * t,
months: e.months * t,
days: e.days * t,
milliseconds: e.milliseconds * t
}
}
function Lt(e) {
return Ut(e) / 864e5
}
function Ut(e) {
return 31536e6 * e.years + 2592e6 * e.months + 864e5 * e.days + e.milliseconds
}
function Wt(e, t) {
for (var n = null, r = 0; r < It.length; r += 1) {
var o = It[r];
if (t[o]) {
var i = e[o] / t[o];
if (!$e(i) || null !== n && n !== i) return null;
n = i
} else if (e[o]) return null
}
return n
}
function Vt(e) {
var t = e.milliseconds;
if (t) {
if (t % 1e3 != 0) return {
unit: "millisecond",
value: t
};
if (t % 6e4 != 0) return {
unit: "second",
value: t / 1e3
};
if (t % 36e5 != 0) return {
unit: "minute",
value: t / 6e4
};
if (t) return {
unit: "hour",
value: t / 36e5
}
}
return e.days ? e.specifiedWeeks && e.days % 7 == 0 ? {
unit: "week",
value: e.days / 7
} : {
unit: "day",
value: e.days
} : e.months ? {
unit: "month",
value: e.months
} : e.years ? {
unit: "year",
value: e.years
} : {
unit: "millisecond",
value: 0
}
}
function Ft(e, t, n) {
void 0 === n && (n = !1);
var r = e.toISOString();
return r = r.replace(".000", ""), n && (r = r.replace("T00:00:00Z", "")), r.length > 10 && (null == t ? r = r.replace("Z", "") : 0 !== t && (r = r.replace("Z", jt(t, !0)))), r
}
function Bt(e) {
return e.toISOString().replace(/T.*$/, "")
}
function zt(e) {
return Ze(e.getUTCHours(), 2) + ":" + Ze(e.getUTCMinutes(), 2) + ":" + Ze(e.getUTCSeconds(), 2)
}
function jt(e, t) {
void 0 === t && (t = !1);
var n = e < 0 ? "-" : "+",
r = Math.abs(e),
o = Math.floor(r / 60),
i = Math.round(r % 60);
return t ? n + Ze(o, 2) + ":" + Ze(i, 2) : "GMT" + n + o + (i ? ":" + Ze(i, 2) : "")
}
function Gt(e, t, n) {
if (e === t) return !0;
var r, o = e.length;
if (o !== t.length) return !1;
for (r = 0; r < o; r += 1)
if (!(n ? n(e[r], t[r]) : e[r] === t[r])) return !1;
return !0
}
function qt(e, t, n) {
var r, o;
return function() {
for (var i = [], a = 0; a < arguments.length; a++) i[a] = arguments[a];
if (r) {
if (!Gt(r, i)) {
n && n(o);
var s = e.apply(this, i);
t && t(s, o) || (o = s)
}
} else o = e.apply(this, i);
return r = i, o
}
}
function Yt(e, t, n) {
var r, o, i = this;
return function(a) {
if (r) {
if (!wt(r, a)) {
n && n(o);
var s = e.call(i, a);
t && t(s, o) || (o = s)
}
} else o = e.call(i, a);
return r = a, o
}
}
var Zt = {
week: 3,
separator: 0,
omitZeroMinute: 0,
meridiem: 0,
omitCommas: 0
},
Xt = {
timeZoneName: 7,
era: 6,
year: 5,
month: 4,
day: 2,
weekday: 2,
hour: 1,
minute: 1,
second: 1
},
Kt = /\s*([ap])\.?m\.?/i,
$t = /,/g,
Jt = /\s+/g,
Qt = /\u200e/g,
en = /UTC|GMT/,
tn = function() {
function e(e) {
var t = {},
n = {},
r = 0;
for (var o in e) o in Zt ? (n[o] = e[o], r = Math.max(Zt[o], r)) : (t[o] = e[o], o in Xt && (r = Math.max(Xt[o], r)));
this.standardDateProps = t, this.extendedSettings = n, this.severity = r, this.buildFormattingFunc = qt(nn)
}
return e.prototype.format = function(e, t) {
return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, t)(e)
}, e.prototype.formatRange = function(e, t, n, r) {
var o = this.standardDateProps,
i = this.extendedSettings,
a = function(e, t, n) {
if (n.getMarkerYear(e) !== n.getMarkerYear(t)) return 5;
if (n.getMarkerMonth(e) !== n.getMarkerMonth(t)) return 4;
if (n.getMarkerDay(e) !== n.getMarkerDay(t)) return 2;
if (gt(e) !== gt(t)) return 1;
return 0
}(e.marker, t.marker, n.calendarSystem);
if (!a) return this.format(e, n);
var s = a;
!(s > 1) || "numeric" !== o.year && "2-digit" !== o.year || "numeric" !== o.month && "2-digit" !== o.month || "numeric" !== o.day && "2-digit" !== o.day || (s = 1);
var l = this.format(e, n),
u = this.format(t, n);
if (l === u) return l;
var c = nn(function(e, t) {
var n = {};
for (var r in e)(!(r in Xt) || Xt[r] <= t) && (n[r] = e[r]);
return n
}(o, s), i, n),
d = c(e),
p = c(t),
f = function(e, t, n, r) {
var o = 0;
for (; o < e.length;) {
var i = e.indexOf(t, o);
if (-1 === i) break;
var a = e.substr(0, i);
o = i + t.length;
for (var s = e.substr(o), l = 0; l < n.length;) {
var u = n.indexOf(r, l);
if (-1 === u) break;
var c = n.substr(0, u);
l = u + r.length;
var d = n.substr(l);
if (a === c && s === d) return {
before: a,
after: s
}
}
}
return null
}(l, d, u, p),
h = i.separator || r || n.defaultSeparator || "";
return f ? f.before + d + h + p + f.after : l + h + u
}, e.prototype.getLargestUnit = function() {
switch (this.severity) {
case 7:
case 6:
case 5:
return "year";
case 4:
return "month";
case 3:
return "week";
case 2:
return "day";
default:
return "time"
}
}, e
}();
function nn(e, t, n) {
var o = Object.keys(e).length;
return 1 === o && "short" === e.timeZoneName ? function(e) {
return jt(e.timeZoneOffset)
} : 0 === o && t.week ? function(e) {
return function(e, t, n, r, o) {
var i = [];
"long" === o ? i.push(n) : "short" !== o && "narrow" !== o || i.push(t);
"long" !== o && "short" !== o || i.push(" ");
i.push(r.simpleNumberFormat.format(e)), "rtl" === r.options.direction && i.reverse();
return i.join("")
}(n.computeWeekNumber(e.marker), n.weekText, n.weekTextLong, n.locale, t.week)
} : function(e, t, n) {
e = r({}, e), t = r({}, t),
function(e, t) {
e.timeZoneName && (e.hour || (e.hour = "2-digit"), e.minute || (e.minute = "2-digit"));
"long" === e.timeZoneName && (e.timeZoneName = "short");
t.omitZeroMinute && (e.second || e.millisecond) && delete t.omitZeroMinute
}(e, t), e.timeZone = "UTC";
var o, i = new Intl.DateTimeFormat(n.locale.codes, e);
if (t.omitZeroMinute) {
var a = r({}, e);
delete a.minute, o = new Intl.DateTimeFormat(n.locale.codes, a)
}
return function(r) {
var a = r.marker;
return function(e, t, n, r, o) {
e = e.replace(Qt, ""), "short" === n.timeZoneName && (e = function(e, t) {
var n = !1;
e = e.replace(en, (function() {
return n = !0, t
})), n || (e += " " + t);
return e
}(e, "UTC" === o.timeZone || null == t.timeZoneOffset ? "UTC" : jt(t.timeZoneOffset)));
r.omitCommas && (e = e.replace($t, "").trim());
r.omitZeroMinute && (e = e.replace(":00", ""));
!1 === r.meridiem ? e = e.replace(Kt, "").trim() : "narrow" === r.meridiem ? e = e.replace(Kt, (function(e, t) {
return t.toLocaleLowerCase()
})) : "short" === r.meridiem ? e = e.replace(Kt, (function(e, t) {
return t.toLocaleLowerCase() + "m"
})) : "lowercase" === r.meridiem && (e = e.replace(Kt, (function(e) {
return e.toLocaleLowerCase()
})));
return e = (e = e.replace(Jt, " ")).trim()
}((o && !a.getUTCMinutes() ? o : i).format(a), r, e, t, n)
}
}(e, t, n)
}
function rn(e, t) {
var n = t.markerToArray(e.marker);
return {
marker: e.marker,
timeZoneOffset: e.timeZoneOffset,
array: n,
year: n[0],
month: n[1],
day: n[2],
hour: n[3],
minute: n[4],
second: n[5],
millisecond: n[6]
}
}
function on(e, t, n, r) {
var o = rn(e, n.calendarSystem);
return {
date: o,
start: o,
end: t ? rn(t, n.calendarSystem) : null,
timeZone: n.timeZone,
localeCodes: n.locale.codes,
defaultSeparator: r || n.defaultSeparator
}
}
var an = function() {
function e(e) {
this.cmdStr = e
}
return e.prototype.format = function(e, t, n) {
return t.cmdFormatter(this.cmdStr, on(e, null, t, n))
}, e.prototype.formatRange = function(e, t, n, r) {
return n.cmdFormatter(this.cmdStr, on(e, t, n, r))
}, e
}(),
sn = function() {
function e(e) {
this.func = e
}
return e.prototype.format = function(e, t, n) {
return this.func(on(e, null, t, n))
}, e.prototype.formatRange = function(e, t, n, r) {
return this.func(on(e, t, n, r))
}, e
}();
function ln(e) {
return "object" == typeof e && e ? new tn(e) : "string" == typeof e ? new an(e) : "function" == typeof e ? new sn(e) : null
}
var un = {
navLinkDayClick: yn,
navLinkWeekClick: yn,
duration: Nt,
bootstrapFontAwesome: yn,
buttonIcons: yn,
customButtons: yn,
defaultAllDayEventDuration: Nt,
defaultTimedEventDuration: Nt,
nextDayThreshold: Nt,
scrollTime: Nt,
scrollTimeReset: Boolean,
slotMinTime: Nt,
slotMaxTime: Nt,
dayPopoverFormat: ln,
slotDuration: Nt,
snapDuration: Nt,
headerToolbar: yn,
footerToolbar: yn,
defaultRangeSeparator: String,
titleRangeSeparator: String,
forceEventDuration: Boolean,
dayHeaders: Boolean,
dayHeaderFormat: ln,
dayHeaderClassNames: yn,
dayHeaderContent: yn,
dayHeaderDidMount: yn,
dayHeaderWillUnmount: yn,
dayCellClassNames: yn,
dayCellContent: yn,
dayCellDidMount: yn,
dayCellWillUnmount: yn,
initialView: String,
aspectRatio: Number,
weekends: Boolean,
weekNumberCalculation: yn,
weekNumbers: Boolean,
weekNumberClassNames: yn,
weekNumberContent: yn,
weekNumberDidMount: yn,
weekNumberWillUnmount: yn,
editable: Boolean,
viewClassNames: yn,
viewDidMount: yn,
viewWillUnmount: yn,
nowIndicator: Boolean,
nowIndicatorClassNames: yn,
nowIndicatorContent: yn,
nowIndicatorDidMount: yn,
nowIndicatorWillUnmount: yn,
showNonCurrentDates: Boolean,
lazyFetching: Boolean,
startParam: String,
endParam: String,
timeZoneParam: String,
timeZone: String,
locales: yn,
locale: yn,
themeSystem: String,
dragRevertDuration: Number,
dragScroll: Boolean,
allDayMaintainDuration: Boolean,
unselectAuto: Boolean,
dropAccept: yn,
eventOrder: je,
eventOrderStrict: Boolean,
handleWindowResize: Boolean,
windowResizeDelay: Number,
longPressDelay: Number,
eventDragMinDistance: Number,
expandRows: Boolean,
height: yn,
contentHeight: yn,
direction: String,
weekNumberFormat: ln,
eventResizableFromStart: Boolean,
displayEventTime: Boolean,
displayEventEnd: Boolean,
weekText: String,
weekTextLong: String,
progressiveEventRendering: Boolean,
businessHours: yn,
initialDate: yn,
now: yn,
eventDataTransform: yn,
stickyHeaderDates: yn,
stickyFooterScrollbar: yn,
viewHeight: yn,
defaultAllDay: Boolean,
eventSourceFailure: yn,
eventSourceSuccess: yn,
eventDisplay: String,
eventStartEditable: Boolean,
eventDurationEditable: Boolean,
eventOverlap: yn,
eventConstraint: yn,
eventAllow: yn,
eventBackgroundColor: String,
eventBorderColor: String,
eventTextColor: String,
eventColor: String,
eventClassNames: yn,
eventContent: yn,
eventDidMount: yn,
eventWillUnmount: yn,
selectConstraint: yn,
selectOverlap: yn,
selectAllow: yn,
droppable: Boolean,
unselectCancel: String,
slotLabelFormat: yn,
slotLaneClassNames: yn,
slotLaneContent: yn,
slotLaneDidMount: yn,
slotLaneWillUnmount: yn,
slotLabelClassNames: yn,
slotLabelContent: yn,
slotLabelDidMount: yn,
slotLabelWillUnmount: yn,
dayMaxEvents: yn,
dayMaxEventRows: yn,
dayMinWidth: Number,
slotLabelInterval: Nt,
allDayText: String,
allDayClassNames: yn,
allDayContent: yn,
allDayDidMount: yn,
allDayWillUnmount: yn,
slotMinWidth: Number,
navLinks: Boolean,
eventTimeFormat: ln,
rerenderDelay: Number,
moreLinkText: yn,
moreLinkHint: yn,
selectMinDistance: Number,
selectable: Boolean,
selectLongPressDelay: Number,
eventLongPressDelay: Number,
selectMirror: Boolean,
eventMaxStack: Number,
eventMinHeight: Number,
eventMinWidth: Number,
eventShortHeight: Number,
slotEventOverlap: Boolean,
plugins: yn,
firstDay: Number,
dayCount: Number,
dateAlignment: String,
dateIncrement: Nt,
hiddenDays: yn,
monthMode: Boolean,
fixedWeekCount: Boolean,
validRange: yn,
visibleRange: yn,
titleFormat: yn,
eventInteractive: Boolean,
noEventsText: String,
viewHint: yn,
navLinkHint: yn,
closeHint: String,
timeHint: String,
eventHint: String,
moreLinkClick: yn,
moreLinkClassNames: yn,
moreLinkContent: yn,
moreLinkDidMount: yn,
moreLinkWillUnmount: yn
},
cn = {
eventDisplay: "auto",
defaultRangeSeparator: " - ",
titleRangeSeparator: " – ",
defaultTimedEventDuration: "01:00:00",
defaultAllDayEventDuration: {
day: 1
},
forceEventDuration: !1,
nextDayThreshold: "00:00:00",
dayHeaders: !0,
initialView: "",
aspectRatio: 1.35,
headerToolbar: {
start: "title",
center: "",
end: "today prev,next"
},
weekends: !0,
weekNumbers: !1,
weekNumberCalculation: "local",
editable: !1,
nowIndicator: !1,
scrollTime: "06:00:00",
scrollTimeReset: !0,
slotMinTime: "00:00:00",
slotMaxTime: "24:00:00",
showNonCurrentDates: !0,
lazyFetching: !0,
startParam: "start",
endParam: "end",
timeZoneParam: "timeZone",
timeZone: "local",
locales: [],
locale: "",
themeSystem: "standard",
dragRevertDuration: 500,
dragScroll: !0,
allDayMaintainDuration: !1,
unselectAuto: !0,
dropAccept: "*",
eventOrder: "start,-duration,allDay,title",
dayPopoverFormat: {
month: "long",
day: "numeric",
year: "numeric"
},
handleWindowResize: !0,
windowResizeDelay: 100,
longPressDelay: 1e3,
eventDragMinDistance: 5,
expandRows: !1,
navLinks: !1,
selectable: !1,
eventMinHeight: 15,
eventMinWidth: 30,
eventShortHeight: 30
},
dn = {
datesSet: yn,
eventsSet: yn,
eventAdd: yn,
eventChange: yn,
eventRemove: yn,
windowResize: yn,
eventClick: yn,
eventMouseEnter: yn,
eventMouseLeave: yn,
select: yn,
unselect: yn,
loading: yn,
_unmount: yn,
_beforeprint: yn,
_afterprint: yn,
_noEventDrop: yn,
_noEventResize: yn,
_resize: yn,
_scrollRequest: yn
},
pn = {
buttonText: yn,
buttonHints: yn,
views: yn,
plugins: yn,
initialEvents: yn,
events: yn,
eventSources: yn
},
fn = {
headerToolbar: hn,
footerToolbar: hn,
buttonText: hn,
buttonHints: hn,
buttonIcons: hn
};
function hn(e, t) {
return "object" == typeof e && "object" == typeof t && e && t ? wt(e, t) : e === t
}
var vn = {
type: String,
component: yn,
buttonText: String,
buttonTextKey: String,
dateProfileGeneratorClass: yn,
usesMinMaxTime: Boolean,
classNames: yn,
content: yn,
didMount: yn,
willUnmount: yn
};
function gn(e) {
return Et(e, fn)
}
function mn(e, t) {
var n = {},
r = {};
for (var o in t) o in e && (n[o] = t[o](e[o]));
for (var o in e) o in t || (r[o] = e[o]);
return {
refined: n,
extra: r
}
}
function yn(e) {
return e
}
function En(e, t, n, r) {
for (var o = {
defs: {},
instances: {}
}, i = An(n), a = 0, s = e; a < s.length; a++) {
var l = Hn(s[a], t, n, r, i);
l && Sn(l, o)
}
return o
}
function Sn(e, t) {
return void 0 === t && (t = {
defs: {},
instances: {}
}), t.defs[e.def.defId] = e.def, e.instance && (t.instances[e.instance.instanceId] = e.instance), t
}
function bn(e, t) {
var n = e.instances[t];
if (n) {
var r = e.defs[n.defId],
o = wn(e, (function(e) {
return t = r, n = e, Boolean(t.groupId && t.groupId === n.groupId);
var t, n
}));
return o.defs[r.defId] = r, o.instances[n.instanceId] = n, o
}
return {
defs: {},
instances: {}
}
}
function Dn() {
return {
defs: {},
instances: {}
}
}
function Cn(e, t) {
return {
defs: r(r({}, e.defs), t.defs),
instances: r(r({}, e.instances), t.instances)
}
}
function wn(e, t) {
var n = St(e.defs, t),
r = St(e.instances, (function(e) {
return n[e.defId]
}));
return {
defs: n,
instances: r
}
}
function Rn(e) {
return Array.isArray(e) ? e : "string" == typeof e ? e.split(/\s+/) : []
}
var _n = {
display: String,
editable: Boolean,
startEditable: Boolean,
durationEditable: Boolean,
constraint: yn,
overlap: yn,
allow: yn,
className: Rn,
classNames: Rn,
color: String,
backgroundColor: String,
borderColor: String,
textColor: String
},
Tn = {
display: null,
startEditable: null,
durationEditable: null,
constraints: [],
overlap: null,
allows: [],
backgroundColor: "",
borderColor: "",
textColor: "",
classNames: []
};
function kn(e, t) {
var n = function(e, t) {
return Array.isArray(e) ? En(e, null, t, !0) : "object" == typeof e && e ? En([e], null, t, !0) : null != e ? String(e) : null
}(e.constraint, t);
return {
display: e.display || null,
startEditable: null != e.startEditable ? e.startEditable : e.editable,
durationEditable: null != e.durationEditable ? e.durationEditable : e.editable,
constraints: null != n ? [n] : [],
overlap: null != e.overlap ? e.overlap : null,
allows: null != e.allow ? [e.allow] : [],
backgroundColor: e.backgroundColor || e.color || "",
borderColor: e.borderColor || e.color || "",
textColor: e.textColor || "",
classNames: (e.className || []).concat(e.classNames || [])
}
}
function xn(e) {
return e.reduce(Mn, Tn)
}
function Mn(e, t) {
return {
display: null != t.display ? t.display : e.display,
startEditable: null != t.startEditable ? t.startEditable : e.startEditable,
durationEditable: null != t.durationEditable ? t.durationEditable : e.durationEditable,
constraints: e.constraints.concat(t.constraints),
overlap: "boolean" == typeof t.overlap ? t.overlap : e.overlap,
allows: e.allows.concat(t.allows),
backgroundColor: t.backgroundColor || e.backgroundColor,
borderColor: t.borderColor || e.borderColor,
textColor: t.textColor || e.textColor,
classNames: e.classNames.concat(t.classNames)
}
}
var In = {
id: String,
groupId: String,
title: String,
url: String,
interactive: Boolean
},
Pn = {
start: yn,
end: yn,
date: yn,
allDay: Boolean
},
Nn = r(r(r({}, In), Pn), {
extendedProps: yn
});
function Hn(e, t, n, r, o) {
void 0 === o && (o = An(n));
var i = On(e, n, o),
a = i.refined,
s = i.extra,
l = function(e, t) {
var n = null;
e && (n = e.defaultAllDay);
null == n && (n = t.options.defaultAllDay);
return n
}(t, n),
u = function(e, t, n, r) {
for (var o = 0; o < r.length; o += 1) {
var i = r[o].parse(e, n);
if (i) {
var a = e.allDay;
return null == a && null == (a = t) && null == (a = i.allDayGuess) && (a = !1), {
allDay: a,
duration: i.duration,
typeData: i.typeData,
typeId: o
}
}
}
return null
}(a, l, n.dateEnv, n.pluginHooks.recurringTypes);
if (u) return (c = Ln(a, s, t ? t.sourceId : "", u.allDay, Boolean(u.duration), n)).recurringDef = {
typeId: u.typeId,
typeData: u.typeData,
duration: u.duration
}, {
def: c,
instance: null
};
var c, d = function(e, t, n, r) {
var o, i, a = e.allDay,
s = null,
l = !1,
u = null,
c = null != e.start ? e.start : e.date;
if (o = n.dateEnv.createMarkerMeta(c)) s = o.marker;
else if (!r) return null;
null != e.end && (i = n.dateEnv.createMarkerMeta(e.end));
null == a && (a = null != t ? t : (!o || o.isTimeUnspecified) && (!i || i.isTimeUnspecified));
a && s && (s = lt(s));
i && (u = i.marker, a && (u = lt(u)), s && u <= s && (u = null));
u ? l = !0 : r || (l = n.options.forceEventDuration || !1, u = n.dateEnv.add(s, a ? n.options.defaultAllDayEventDuration : n.options.defaultTimedEventDuration));
return {
allDay: a,
hasEnd: l,
range: {
start: s,
end: u
},
forcedStartTzo: o ? o.forcedTzo : null,
forcedEndTzo: i ? i.forcedTzo : null
}
}(a, l, n, r);
return d ? {
def: c = Ln(a, s, t ? t.sourceId : "", d.allDay, d.hasEnd, n),
instance: mt(c.defId, d.range, d.forcedStartTzo, d.forcedEndTzo)
} : null
}
function On(e, t, n) {
return void 0 === n && (n = An(t)), mn(e, n)
}
function An(e) {
return r(r(r({}, _n), Nn), e.pluginHooks.eventRefiners)
}
function Ln(e, t, n, o, i, a) {
for (var s = {
title: e.title || "",
groupId: e.groupId || "",
publicId: e.id || "",
url: e.url || "",
recurringDef: null,
defId: Le(),
sourceId: n,
allDay: o,
hasEnd: i,
interactive: e.interactive,
ui: kn(e, a),
extendedProps: r(r({}, e.extendedProps || {}), t)
}, l = 0, u = a.pluginHooks.eventDefMemberAdders; l < u.length; l++) {
var c = u[l];
r(s, c(e))
}
return Object.freeze(s.ui.classNames), Object.freeze(s.extendedProps), s
}
function Un(e) {
var t = Math.floor(ot(e.start, e.end)) || 1,
n = lt(e.start);
return {
start: n,
end: tt(n, t)
}
}
function Wn(e, t) {
void 0 === t && (t = Nt(0));
var n = null,
r = null;
if (e.end) {
r = lt(e.end);
var o = e.end.valueOf() - r.valueOf();
o && o >= Ut(t) && (r = tt(r, 1))
}
return e.start && (n = lt(e.start), r && r <= n && (r = tt(n, 1))), {
start: n,
end: r
}
}
function Vn(e) {
var t = Wn(e);
return ot(t.start, t.end) > 1
}
function Fn(e, t, n, r) {
return "year" === r ? Nt(n.diffWholeYears(e, t), "year") : "month" === r ? Nt(n.diffWholeMonths(e, t), "month") : it(e, t)
}
function Bn(e, t) {
var n, r, o = [],
i = t.start;
for (e.sort(zn), n = 0; n < e.length; n += 1)(r = e[n]).start > i && o.push({
start: i,
end: r.start
}), r.end > i && (i = r.end);
return i < t.end && o.push({
start: i,
end: t.end
}), o
}
function zn(e, t) {
return e.start.valueOf() - t.start.valueOf()
}
function jn(e, t) {
var n = e.start,
r = e.end,
o = null;
return null !== t.start && (n = null === n ? t.start : new Date(Math.max(n.valueOf(), t.start.valueOf()))), null != t.end && (r = null === r ? t.end : new Date(Math.min(r.valueOf(), t.end.valueOf()))), (null === n || null === r || n < r) && (o = {
start: n,
end: r
}), o
}
function Gn(e, t) {
return (null === e.start ? null : e.start.valueOf()) === (null === t.start ? null : t.start.valueOf()) && (null === e.end ? null : e.end.valueOf()) === (null === t.end ? null : t.end.valueOf())
}
function qn(e, t) {
return (null === e.end || null === t.start || e.end > t.start) && (null === e.start || null === t.end || e.start < t.end)
}
function Yn(e, t) {
return (null === e.start || null !== t.start && t.start >= e.start) && (null === e.end || null !== t.end && t.end <= e.end)
}
function Zn(e, t) {
return (null === e.start || t >= e.start) && (null === e.end || t < e.end)
}
function Xn(e, t, n, r) {
var o = {},
i = {},
a = {},
s = [],
l = [],
u = Qn(e.defs, t);
for (var c in e.defs) {
"inverse-background" === (f = u[(S = e.defs[c]).defId]).display && (S.groupId ? (o[S.groupId] = [], a[S.groupId] || (a[S.groupId] = S)) : i[c] = [])
}
for (var d in e.instances) {
var p = e.instances[d],
f = u[(S = e.defs[p.defId]).defId],
h = p.range,
v = !S.allDay && r ? Wn(h, r) : h,
g = jn(v, n);
g && ("inverse-background" === f.display ? S.groupId ? o[S.groupId].push(g) : i[p.defId].push(g) : "none" !== f.display && ("background" === f.display ? s : l).push({
def: S,
ui: f,
instance: p,
range: g,
isStart: v.start && v.start.valueOf() === g.start.valueOf(),
isEnd: v.end && v.end.valueOf() === g.end.valueOf()
}))
}
for (var m in o)
for (var y = 0, E = Bn(o[m], n); y < E.length; y++) {
var S, b = E[y];
f = u[(S = a[m]).defId];
s.push({
def: S,
ui: f,
instance: null,
range: b,
isStart: !1,
isEnd: !1
})
}
for (var c in i)
for (var D = 0, C = Bn(i[c], n); D < C.length; D++) {
b = C[D];
s.push({
def: e.defs[c],
ui: u[c],
instance: null,
range: b,
isStart: !1,
isEnd: !1
})
}
return {
bg: s,
fg: l
}
}
function Kn(e) {
return "background" === e.ui.display || "inverse-background" === e.ui.display
}
function $n(e, t) {
e.fcSeg = t
}
function Jn(e) {
return e.fcSeg || e.parentNode.fcSeg || null
}
function Qn(e, t) {
return bt(e, (function(e) {
return er(e, t)
}))
}
function er(e, t) {
var n = [];
return t[""] && n.push(t[""]), t[e.defId] && n.push(t[e.defId]), n.push(e.ui), xn(n)
}
function tr(e, t) {
var n = e.map(nr);
return n.sort((function(e, n) {
return Ge(e, n, t)
})), n.map((function(e) {
return e._seg
}))
}
function nr(e) {
var t = e.eventRange,
n = t.def,
o = t.instance ? t.instance.range : t.range,
i = o.start ? o.start.valueOf() : 0,
a = o.end ? o.end.valueOf() : 0;
return r(r(r({}, n.extendedProps), n), {
id: n.publicId,
start: i,
end: a,
duration: a - i,
allDay: Number(n.allDay),
_seg: e
})
}
function rr(e, t) {
for (var n = t.pluginHooks.isDraggableTransformers, r = e.eventRange, o = r.def, i = r.ui, a = i.startEditable, s = 0, l = n; s < l.length; s++) {
a = (0, l[s])(a, o, i, t)
}
return a
}
function or(e, t) {
return e.isStart && e.eventRange.ui.durationEditable && t.options.eventResizableFromStart
}
function ir(e, t) {
return e.isEnd && e.eventRange.ui.durationEditable
}
function ar(e, t, n, r, o, i, a) {
var s = n.dateEnv,
l = n.options,
u = l.displayEventTime,
c = l.displayEventEnd,
d = e.eventRange.def,
p = e.eventRange.instance;
null == u && (u = !1 !== r), null == c && (c = !1 !== o);
var f = p.range.start,
h = p.range.end,
v = i || e.start || e.eventRange.range.start,
g = a || e.end || e.eventRange.range.end,
m = lt(f).valueOf() === lt(v).valueOf(),
y = lt(nt(h, -1)).valueOf() === lt(nt(g, -1)).valueOf();
return u && !d.allDay && (m || y) ? (v = m ? f : v, g = y ? h : g, c && d.hasEnd ? s.formatRange(v, g, t, {
forcedStartTzo: i ? null : p.forcedStartTzo,
forcedEndTzo: a ? null : p.forcedEndTzo
}) : s.format(v, t, {
forcedTzo: i ? null : p.forcedStartTzo
})) : ""
}
function sr(e, t, n) {
var r = e.eventRange.range;
return {
isPast: r.end < (n || t.start),
isFuture: r.start >= (n || t.end),
isToday: t && Zn(t, r.start)
}
}
function lr(e) {
var t = ["fc-event"];
return e.isMirror && t.push("fc-event-mirror"), e.isDraggable && t.push("fc-event-draggable"), (e.isStartResizable || e.isEndResizable) && t.push("fc-event-resizable"), e.isDragging && t.push("fc-event-dragging"), e.isResizing && t.push("fc-event-resizing"), e.isSelected && t.push("fc-event-selected"), e.isStart && t.push("fc-event-start"), e.isEnd && t.push("fc-event-end"), e.isPast && t.push("fc-event-past"), e.isToday && t.push("fc-event-today"), e.isFuture && t.push("fc-event-future"), t
}
function ur(e) {
return e.instance ? e.instance.instanceId : e.def.defId + ":" + e.range.start.toISOString()
}
function cr(e, t) {
var n = e.eventRange,
r = n.def,
o = n.instance,
i = r.url;
if (i) return {
href: i
};
var a = t.emitter,
s = t.options.eventInteractive;
return null == s && null == (s = r.interactive) && (s = Boolean(a.hasHandlers("eventClick"))), s ? Oe((function(e) {
a.trigger("eventClick", {
el: e.target,
event: new xr(t, r, o),
jsEvent: e,
view: t.viewApi
})
})) : {}
}
var dr = {
start: yn,
end: yn,
allDay: Boolean
};
function pr(e, t, n) {
var o = function(e, t) {
var n = mn(e, dr),
o = n.refined,
i = n.extra,
a = o.start ? t.createMarkerMeta(o.start) : null,
s = o.end ? t.createMarkerMeta(o.end) : null,
l = o.allDay;
null == l && (l = a && a.isTimeUnspecified && (!s || s.isTimeUnspecified));
return r({
range: {
start: a ? a.marker : null,
end: s ? s.marker : null
},
allDay: l
}, i)
}(e, t),
i = o.range;
if (!i.start) return null;
if (!i.end) {
if (null == n) return null;
i.end = t.add(i.start, n)
}
return o
}
function fr(e, t) {
return Gn(e.range, t.range) && e.allDay === t.allDay && function(e, t) {
for (var n in t)
if ("range" !== n && "allDay" !== n && e[n] !== t[n]) return !1;
for (var n in e)
if (!(n in t)) return !1;
return !0
}(e, t)
}
function hr(e, t, n) {
return r(r({}, vr(e, t, n)), {
timeZone: t.timeZone
})
}
function vr(e, t, n) {
return {
start: t.toDate(e.start),
end: t.toDate(e.end),
startStr: t.formatIso(e.start, {
omitTime: n
}),
endStr: t.formatIso(e.end, {
omitTime: n
})
}
}
function gr(e, t, n) {
var r = On({
editable: !1
}, n),
o = Ln(r.refined, r.extra, "", e.allDay, !0, n);
return {
def: o,
ui: er(o, t),
instance: mt(o.defId, e.range),
range: e.range,
isStart: !0,
isEnd: !0
}
}
function mr(e, t, n) {
n.emitter.trigger("select", r(r({}, yr(e, n)), {
jsEvent: t ? t.origEvent : null,
view: n.viewApi || n.calendarApi.view
}))
}
function yr(e, t) {
for (var n, o, i = {}, a = 0, s = t.pluginHooks.dateSpanTransforms; a < s.length; a++) {
var l = s[a];
r(i, l(e, t))
}
return r(i, (n = e, o = t.dateEnv, r(r({}, vr(n.range, o, n.allDay)), {
allDay: n.allDay
}))), i
}
function Er(e, t, n) {
var r = n.dateEnv,
o = n.options,
i = t;
return e ? (i = lt(i), i = r.add(i, o.defaultAllDayEventDuration)) : i = r.add(i, o.defaultTimedEventDuration), i
}
function Sr(e, t, n, r) {
var o = Qn(e.defs, t),
i = {
defs: {},
instances: {}
};
for (var a in e.defs) {
var s = e.defs[a];
i.defs[a] = br(s, o[a], n, r)
}
for (var l in e.instances) {
var u = e.instances[l];
s = i.defs[u.defId];
i.instances[l] = Dr(u, s, o[u.defId], n, r)
}
return i
}
function br(e, t, n, o) {
var i = n.standardProps || {};
null == i.hasEnd && t.durationEditable && (n.startDelta || n.endDelta) && (i.hasEnd = !0);
var a = r(r(r({}, e), i), {
ui: r(r({}, e.ui), i.ui)
});
n.extendedProps && (a.extendedProps = r(r({}, a.extendedProps), n.extendedProps));
for (var s = 0, l = o.pluginHooks.eventDefMutationAppliers; s < l.length; s++) {
(0, l[s])(a, n, o)
}
return !a.hasEnd && o.options.forceEventDuration && (a.hasEnd = !0), a
}
function Dr(e, t, n, o, i) {
var a = i.dateEnv,
s = o.standardProps && !0 === o.standardProps.allDay,
l = o.standardProps && !1 === o.standardProps.hasEnd,
u = r({}, e);
return s && (u.range = Un(u.range)), o.datesDelta && n.startEditable && (u.range = {
start: a.add(u.range.start, o.datesDelta),
end: a.add(u.range.end, o.datesDelta)
}), o.startDelta && n.durationEditable && (u.range = {
start: a.add(u.range.start, o.startDelta),
end: u.range.end
}), o.endDelta && n.durationEditable && (u.range = {
start: u.range.start,
end: a.add(u.range.end, o.endDelta)
}), l && (u.range = {
start: u.range.start,
end: Er(t.allDay, u.range.start, i)
}), t.allDay && (u.range = {
start: lt(u.range.start),
end: lt(u.range.end)
}), u.range.end < u.range.start && (u.range.end = Er(t.allDay, u.range.start, i)), u
}
var Cr = function() {
function e(e, t, n) {
this.type = e, this.getCurrentData = t, this.dateEnv = n
}
return Object.defineProperty(e.prototype, "calendar", {
get: function() {
return this.getCurrentData().calendarApi
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "title", {
get: function() {
return this.getCurrentData().viewTitle
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "activeStart", {
get: function() {
return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.start)
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "activeEnd", {
get: function() {
return this.dateEnv.toDate(this.getCurrentData().dateProfile.activeRange.end)
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "currentStart", {
get: function() {
return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.start)
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "currentEnd", {
get: function() {
return this.dateEnv.toDate(this.getCurrentData().dateProfile.currentRange.end)
},
enumerable: !1,
configurable: !0
}), e.prototype.getOption = function(e) {
return this.getCurrentData().options[e]
}, e
}(),
wr = {
id: String,
defaultAllDay: Boolean,
url: String,
format: String,
events: yn,
eventDataTransform: yn,
success: yn,
failure: yn
};
function Rr(e, t, n) {
var r;
if (void 0 === n && (n = _r(t)), "string" == typeof e ? r = {
url: e
} : "function" == typeof e || Array.isArray(e) ? r = {
events: e
} : "object" == typeof e && e && (r = e), r) {
var o = mn(r, n),
i = o.refined,
a = o.extra,
s = function(e, t) {
for (var n = t.pluginHooks.eventSourceDefs, r = n.length - 1; r >= 0; r -= 1) {
var o = n[r].parseMeta(e);
if (o) return {
sourceDefId: r,
meta: o
}
}
return null
}(i, t);
if (s) return {
_raw: e,
isFetching: !1,
latestFetchId: "",
fetchRange: null,
defaultAllDay: i.defaultAllDay,
eventDataTransform: i.eventDataTransform,
success: i.success,
failure: i.failure,
publicId: i.id || "",
sourceId: Le(),
sourceDefId: s.sourceDefId,
meta: s.meta,
ui: kn(i, t),
extendedProps: a
}
}
return null
}
function _r(e) {
return r(r(r({}, _n), wr), e.pluginHooks.eventSourceRefiners)
}
function Tr(e, t) {
return "function" == typeof e && (e = e()), null == e ? t.createNowMarker() : t.createMarker(e)
}
var kr = function() {
function e() {}
return e.prototype.getCurrentData = function() {
return this.currentDataManager.getCurrentData()
}, e.prototype.dispatch = function(e) {
return this.currentDataManager.dispatch(e)
}, Object.defineProperty(e.prototype, "view", {
get: function() {
return this.getCurrentData().viewApi
},
enumerable: !1,
configurable: !0
}), e.prototype.batchRendering = function(e) {
e()
}, e.prototype.updateSize = function() {
this.trigger("_resize", !0)
}, e.prototype.setOption = function(e, t) {
this.dispatch({
type: "SET_OPTION",
optionName: e,
rawOptionValue: t
})
}, e.prototype.getOption = function(e) {
return this.currentDataManager.currentCalendarOptionsInput[e]
}, e.prototype.getAvailableLocaleCodes = function() {
return Object.keys(this.getCurrentData().availableRawLocales)
}, e.prototype.on = function(e, t) {
var n = this.currentDataManager;
n.currentCalendarOptionsRefiners[e] ? n.emitter.on(e, t) : console.warn("Unknown listener name '" + e + "'")
}, e.prototype.off = function(e, t) {
this.currentDataManager.emitter.off(e, t)
}, e.prototype.trigger = function(e) {
for (var t, n = [], r = 1; r < arguments.length; r++) n[r - 1] = arguments[r];
(t = this.currentDataManager.emitter).trigger.apply(t, o([e], n))
}, e.prototype.changeView = function(e, t) {
var n = this;
this.batchRendering((function() {
if (n.unselect(), t)
if (t.start && t.end) n.dispatch({
type: "CHANGE_VIEW_TYPE",
viewType: e
}), n.dispatch({
type: "SET_OPTION",
optionName: "visibleRange",
rawOptionValue: t
});
else {
var r = n.getCurrentData().dateEnv;
n.dispatch({
type: "CHANGE_VIEW_TYPE",
viewType: e,
dateMarker: r.createMarker(t)
})
}
else n.dispatch({
type: "CHANGE_VIEW_TYPE",
viewType: e
})
}))
}, e.prototype.zoomTo = function(e, t) {
var n;
t = t || "day", n = this.getCurrentData().viewSpecs[t] || this.getUnitViewSpec(t), this.unselect(), n ? this.dispatch({
type: "CHANGE_VIEW_TYPE",
viewType: n.type,
dateMarker: e
}) : this.dispatch({
type: "CHANGE_DATE",
dateMarker: e
})
}, e.prototype.getUnitViewSpec = function(e) {
var t, n, r = this.getCurrentData(),
o = r.viewSpecs,
i = r.toolbarConfig,
a = [].concat(i.header ? i.header.viewsWithButtons : [], i.footer ? i.footer.viewsWithButtons : []);
for (var s in o) a.push(s);
for (t = 0; t < a.length; t += 1)
if ((n = o[a[t]]) && n.singleUnit === e) return n;
return null
}, e.prototype.prev = function() {
this.unselect(), this.dispatch({
type: "PREV"
})
}, e.prototype.next = function() {
this.unselect(), this.dispatch({
type: "NEXT"
})
}, e.prototype.prevYear = function() {
var e = this.getCurrentData();
this.unselect(), this.dispatch({
type: "CHANGE_DATE",
dateMarker: e.dateEnv.addYears(e.currentDate, -1)
})
}, e.prototype.nextYear = function() {
var e = this.getCurrentData();
this.unselect(), this.dispatch({
type: "CHANGE_DATE",
dateMarker: e.dateEnv.addYears(e.currentDate, 1)
})
}, e.prototype.today = function() {
var e = this.getCurrentData();
this.unselect(), this.dispatch({
type: "CHANGE_DATE",
dateMarker: Tr(e.calendarOptions.now, e.dateEnv)
})
}, e.prototype.gotoDate = function(e) {
var t = this.getCurrentData();
this.unselect(), this.dispatch({
type: "CHANGE_DATE",
dateMarker: t.dateEnv.createMarker(e)
})
}, e.prototype.incrementDate = function(e) {
var t = this.getCurrentData(),
n = Nt(e);
n && (this.unselect(), this.dispatch({
type: "CHANGE_DATE",
dateMarker: t.dateEnv.add(t.currentDate, n)
}))
}, e.prototype.getDate = function() {
var e = this.getCurrentData();
return e.dateEnv.toDate(e.currentDate)
}, e.prototype.formatDate = function(e, t) {
var n = this.getCurrentData().dateEnv;
return n.format(n.createMarker(e), ln(t))
}, e.prototype.formatRange = function(e, t, n) {
var r = this.getCurrentData().dateEnv;
return r.formatRange(r.createMarker(e), r.createMarker(t), ln(n), n)
}, e.prototype.formatIso = function(e, t) {
var n = this.getCurrentData().dateEnv;
return n.formatIso(n.createMarker(e), {
omitTime: t
})
}, e.prototype.select = function(e, t) {
var n;
n = null == t ? null != e.start ? e : {
start: e,
end: null
} : {
start: e,
end: t
};
var r = this.getCurrentData(),
o = pr(n, r.dateEnv, Nt({
days: 1
}));
o && (this.dispatch({
type: "SELECT_DATES",
selection: o
}), mr(o, null, r))
}, e.prototype.unselect = function(e) {
var t = this.getCurrentData();
t.dateSelection && (this.dispatch({
type: "UNSELECT_DATES"
}), function(e, t) {
t.emitter.trigger("unselect", {
jsEvent: e ? e.origEvent : null,
view: t.viewApi || t.calendarApi.view
})
}(e, t))
}, e.prototype.addEvent = function(e, t) {
if (e instanceof xr) {
var n = e._def,
r = e._instance;
return this.getCurrentData().eventStore.defs[n.defId] || (this.dispatch({
type: "ADD_EVENTS",
eventStore: Sn({
def: n,
instance: r
})
}), this.triggerEventAdd(e)), e
}
var o, i = this.getCurrentData();
if (t instanceof ye) o = t.internalEventSource;
else if ("boolean" == typeof t) t && (o = Ct(i.eventSources)[0]);
else if (null != t) {
var a = this.getEventSourceById(t);
if (!a) return console.warn('Could not find an event source with ID "' + t + '"'), null;
o = a.internalEventSource
}
var s = Hn(e, o, i, !1);
if (s) {
var l = new xr(i, s.def, s.def.recurringDef ? null : s.instance);
return this.dispatch({
type: "ADD_EVENTS",
eventStore: Sn(s)
}), this.triggerEventAdd(l), l
}
return null
}, e.prototype.triggerEventAdd = function(e) {
var t = this;
this.getCurrentData().emitter.trigger("eventAdd", {
event: e,
relatedEvents: [],
revert: function() {
t.dispatch({
type: "REMOVE_EVENTS",
eventStore: Mr(e)
})
}
})
}, e.prototype.getEventById = function(e) {
var t = this.getCurrentData(),
n = t.eventStore,
r = n.defs,
o = n.instances;
for (var i in e = String(e), r) {
var a = r[i];
if (a.publicId === e) {
if (a.recurringDef) return new xr(t, a, null);
for (var s in o) {
var l = o[s];
if (l.defId === a.defId) return new xr(t, a, l)
}
}
}
return null
}, e.prototype.getEvents = function() {
var e = this.getCurrentData();
return Ir(e.eventStore, e)
}, e.prototype.removeAllEvents = function() {
this.dispatch({
type: "REMOVE_ALL_EVENTS"
})
}, e.prototype.getEventSources = function() {
var e = this.getCurrentData(),
t = e.eventSources,
n = [];
for (var r in t) n.push(new ye(e, t[r]));
return n
}, e.prototype.getEventSourceById = function(e) {
var t = this.getCurrentData(),
n = t.eventSources;
for (var r in e = String(e), n)
if (n[r].publicId === e) return new ye(t, n[r]);
return null
}, e.prototype.addEventSource = function(e) {
var t = this.getCurrentData();
if (e instanceof ye) return t.eventSources[e.internalEventSource.sourceId] || this.dispatch({
type: "ADD_EVENT_SOURCES",
sources: [e.internalEventSource]
}), e;
var n = Rr(e, t);
return n ? (this.dispatch({
type: "ADD_EVENT_SOURCES",
sources: [n]
}), new ye(t, n)) : null
}, e.prototype.removeAllEventSources = function() {
this.dispatch({
type: "REMOVE_ALL_EVENT_SOURCES"
})
}, e.prototype.refetchEvents = function() {
this.dispatch({
type: "FETCH_EVENT_SOURCES",
isRefetch: !0
})
}, e.prototype.scrollToTime = function(e) {
var t = Nt(e);
t && this.trigger("_scrollRequest", {
time: t
})
}, e
}(),
xr = function() {
function e(e, t, n) {
this._context = e, this._def = t, this._instance = n || null
}
return e.prototype.setProp = function(e, t) {
var n, r;
if (e in Pn) console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");
else if ("id" === e) t = In[e](t), this.mutate({
standardProps: {
publicId: t
}
});
else if (e in In) t = In[e](t), this.mutate({
standardProps: (n = {}, n[e] = t, n)
});
else if (e in _n) {
var o = _n[e](t);
"color" === e ? o = {
backgroundColor: t,
borderColor: t
} : "editable" === e ? o = {
startEditable: t,
durationEditable: t
} : ((r = {})[e] = t, o = r), this.mutate({
standardProps: {
ui: o
}
})
} else console.warn("Could not set prop '" + e + "'. Use setExtendedProp instead.")
}, e.prototype.setExtendedProp = function(e, t) {
var n;
this.mutate({
extendedProps: (n = {}, n[e] = t, n)
})
}, e.prototype.setStart = function(e, t) {
void 0 === t && (t = {});
var n = this._context.dateEnv,
r = n.createMarker(e);
if (r && this._instance) {
var o = Fn(this._instance.range.start, r, n, t.granularity);
t.maintainDuration ? this.mutate({
datesDelta: o
}) : this.mutate({
startDelta: o
})
}
}, e.prototype.setEnd = function(e, t) {
void 0 === t && (t = {});
var n, r = this._context.dateEnv;
if ((null == e || (n = r.createMarker(e))) && this._instance)
if (n) {
var o = Fn(this._instance.range.end, n, r, t.granularity);
this.mutate({
endDelta: o
})
} else this.mutate({
standardProps: {
hasEnd: !1
}
})
}, e.prototype.setDates = function(e, t, n) {
void 0 === n && (n = {});
var r, o, i, a = this._context.dateEnv,
s = {
allDay: n.allDay
},
l = a.createMarker(e);
if (l && ((null == t || (r = a.createMarker(t))) && this._instance)) {
var u = this._instance.range;
!0 === n.allDay && (u = Un(u));
var c = Fn(u.start, l, a, n.granularity);
if (r) {
var d = Fn(u.end, r, a, n.granularity);
i = d, (o = c).years === i.years && o.months === i.months && o.days === i.days && o.milliseconds === i.milliseconds ? this.mutate({
datesDelta: c,
standardProps: s
}) : this.mutate({
startDelta: c,
endDelta: d,
standardProps: s
})
} else s.hasEnd = !1, this.mutate({
datesDelta: c,
standardProps: s
})
}
}, e.prototype.moveStart = function(e) {
var t = Nt(e);
t && this.mutate({
startDelta: t
})
}, e.prototype.moveEnd = function(e) {
var t = Nt(e);
t && this.mutate({
endDelta: t
})
}, e.prototype.moveDates = function(e) {
var t = Nt(e);
t && this.mutate({
datesDelta: t
})
}, e.prototype.setAllDay = function(e, t) {
void 0 === t && (t = {});
var n = {
allDay: e
},
r = t.maintainDuration;
null == r && (r = this._context.options.allDayMaintainDuration), this._def.allDay !== e && (n.hasEnd = r), this.mutate({
standardProps: n
})
}, e.prototype.formatRange = function(e) {
var t = this._context.dateEnv,
n = this._instance,
r = ln(e);
return this._def.hasEnd ? t.formatRange(n.range.start, n.range.end, r, {
forcedStartTzo: n.forcedStartTzo,
forcedEndTzo: n.forcedEndTzo
}) : t.format(n.range.start, r, {
forcedTzo: n.forcedStartTzo
})
}, e.prototype.mutate = function(t) {
var n = this._instance;
if (n) {
var r = this._def,
o = this._context,
i = o.getCurrentData().eventStore,
a = bn(i, n.instanceId);
a = Sr(a, {
"": {
display: "",
startEditable: !0,
durationEditable: !0,
constraints: [],
overlap: null,
allows: [],
backgroundColor: "",
borderColor: "",
textColor: "",
classNames: []
}
}, t, o);
var s = new e(o, r, n);
this._def = a.defs[r.defId], this._instance = a.instances[n.instanceId], o.dispatch({
type: "MERGE_EVENTS",
eventStore: a
}), o.emitter.trigger("eventChange", {
oldEvent: s,
event: this,
relatedEvents: Ir(a, o, n),
revert: function() {
o.dispatch({
type: "RESET_EVENTS",
eventStore: i
})
}
})
}
}, e.prototype.remove = function() {
var e = this._context,
t = Mr(this);
e.dispatch({
type: "REMOVE_EVENTS",
eventStore: t
}), e.emitter.trigger("eventRemove", {
event: this,
relatedEvents: [],
revert: function() {
e.dispatch({
type: "MERGE_EVENTS",
eventStore: t
})
}
})
}, Object.defineProperty(e.prototype, "source", {
get: function() {
var e = this._def.sourceId;
return e ? new ye(this._context, this._context.getCurrentData().eventSources[e]) : null
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "start", {
get: function() {
return this._instance ? this._context.dateEnv.toDate(this._instance.range.start) : null
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "end", {
get: function() {
return this._instance && this._def.hasEnd ? this._context.dateEnv.toDate(this._instance.range.end) : null
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "startStr", {
get: function() {
var e = this._instance;
return e ? this._context.dateEnv.formatIso(e.range.start, {
omitTime: this._def.allDay,
forcedTzo: e.forcedStartTzo
}) : ""
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "endStr", {
get: function() {
var e = this._instance;
return e && this._def.hasEnd ? this._context.dateEnv.formatIso(e.range.end, {
omitTime: this._def.allDay,
forcedTzo: e.forcedEndTzo
}) : ""
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "id", {
get: function() {
return this._def.publicId
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "groupId", {
get: function() {
return this._def.groupId
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "allDay", {
get: function() {
return this._def.allDay
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "title", {
get: function() {
return this._def.title
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "url", {
get: function() {
return this._def.url
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "display", {
get: function() {
return this._def.ui.display || "auto"
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "startEditable", {
get: function() {
return this._def.ui.startEditable
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "durationEditable", {
get: function() {
return this._def.ui.durationEditable
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "constraint", {
get: function() {
return this._def.ui.constraints[0] || null
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "overlap", {
get: function() {
return this._def.ui.overlap
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "allow", {
get: function() {
return this._def.ui.allows[0] || null
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "backgroundColor", {
get: function() {
return this._def.ui.backgroundColor
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "borderColor", {
get: function() {
return this._def.ui.borderColor
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "textColor", {
get: function() {
return this._def.ui.textColor
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "classNames", {
get: function() {
return this._def.ui.classNames
},
enumerable: !1,
configurable: !0
}), Object.defineProperty(e.prototype, "extendedProps", {
get: function() {
return this._def.extendedProps
},
enumerable: !1,
configurable: !0
}), e.prototype.toPlainObject = function(e) {
void 0 === e && (e = {});
var t = this._def,
n = t.ui,
o = this.startStr,
i = this.endStr,
a = {};
return t.title && (a.title = t.title), o && (a.start = o), i && (a.end = i), t.publicId && (a.id = t.publicId), t.groupId && (a.groupId = t.groupId), t.url && (a.url = t.url), n.display && "auto" !== n.display && (a.display = n.display), e.collapseColor && n.backgroundColor && n.backgroundColor === n.borderColor ? a.color = n.backgroundColor : (n.backgroundColor && (a.backgroundColor = n.backgroundColor), n.borderColor && (a.borderColor = n.borderColor)), n.textColor && (a.textColor = n.textColor), n.classNames.length && (a.classNames = n.classNames), Object.keys(t.extendedProps).length && (e.collapseExtendedProps ? r(a, t.extendedProps) : a.extendedProps = t.extendedProps), a
}, e.prototype.toJSON = function() {
return this.toPlainObject()
}, e
}();
function Mr(e) {
var t, n, r = e._def,
o = e._instance;
return {
defs: (t = {}, t[r.defId] = r, t),
instances: o ? (n = {}, n[o.instanceId] = o, n) : {}
}
}
function Ir(e, t, n) {
var r = e.defs,
o = e.instances,
i = [],
a = n ? n.instanceId : "";
for (var s in o) {
var l = o[s],
u = r[l.defId];
l.instanceId !== a && i.push(new xr(t, u, l))
}
return i
}
var Pr = {};
var Nr, Hr = function() {
function e() {}
return e.prototype.getMarkerYear = function(e) {
return e.getUTCFullYear()
}, e.prototype.getMarkerMonth = function(e) {
return e.getUTCMonth()
}, e.prototype.getMarkerDay = function(e) {
return e.getUTCDate()
}, e.prototype.arrayToMarker = function(e) {
return ht(e)
}, e.prototype.markerToArray = function(e) {
return ft(e)
}, e
}();
Nr = Hr, Pr["gregory"] = Nr;
var Or = /^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;
function Ar(e) {
var t = Or.exec(e);
if (t) {
var n = new Date(Date.UTC(Number(t[1]), t[3] ? Number(t[3]) - 1 : 0, Number(t[5] || 1), Number(t[7] || 0), Number(t[8] || 0), Number(t[10] || 0), t[12] ? 1e3 * Number("0." + t[12]) : 0));
if (vt(n)) {
var r = null;
return t[13] && (r = ("-" === t[15] ? -1 : 1) * (60 * Number(t[16] || 0) + Number(t[18] || 0))), {
marker: n,
isTimeUnspecified: !t[6],
timeZoneOffset: r
}
}
}
return null
}
var Lr = function() {
function e(e) {
var t = this.timeZone = e.timeZone,
n = "local" !== t && "UTC" !== t;
e.namedTimeZoneImpl && n && (this.namedTimeZoneImpl = new e.namedTimeZoneImpl(t)), this.canComputeOffset = Boolean(!n || this.namedTimeZoneImpl), this.calendarSystem = function(e) {
return new Pr[e]
}(e.calendarSystem), this.locale = e.locale, this.weekDow = e.locale.week.dow, this.weekDoy = e.locale.week.doy, "ISO" === e.weekNumberCalculation && (this.weekDow = 1, this.weekDoy = 4), "number" == typeof e.firstDay && (this.weekDow = e.firstDay), "function" == typeof e.weekNumberCalculation && (this.weekNumberFunc = e.weekNumberCalculation), this.weekText = null != e.weekText ? e.weekText : e.locale.options.weekText, this.weekTextLong = (null != e.weekTextLong ? e.weekTextLong : e.locale.options.weekTextLong) || this.weekText, this.cmdFormatter = e.cmdFormatter, this.defaultSeparator = e.defaultSeparator
}
return e.prototype.createMarker = function(e) {
var t = this.createMarkerMeta(e);
return null === t ? null : t.marker
}, e.prototype.createNowMarker = function() {
return this.canComputeOffset ? this.timestampToMarker((new Date).valueOf()) : ht(dt(new Date))
}, e.prototype.createMarkerMeta = function(e) {
if ("string" == typeof e) return this.parse(e);
var t = null;
return "number" == typeof e ? t = this.timestampToMarker(e) : e instanceof Date ? (e = e.valueOf(), isNaN(e) || (t = this.timestampToMarker(e))) : Array.isArray(e) && (t = ht(e)), null !== t && vt(t) ? {
marker: t,
isTimeUnspecified: !1,
forcedTzo: null
} : null
}, e.prototype.parse = function(e) {
var t = Ar(e);
if (null === t) return null;
var n = t.marker,
r = null;
return null !== t.timeZoneOffset && (this.canComputeOffset ? n = this.timestampToMarker(n.valueOf() - 60 * t.timeZoneOffset * 1e3) : r = t.timeZoneOffset), {
marker: n,
isTimeUnspecified: t.isTimeUnspecified,
forcedTzo: r
}
}, e.prototype.getYear = function(e) {
return this.calendarSystem.getMarkerYear(e)
}, e.prototype.getMonth = function(e) {
return this.calendarSystem.getMarkerMonth(e)
}, e.prototype.add = function(e, t) {
var n = this.calendarSystem.markerToArray(e);
return n[0] += t.years, n[1] += t.months, n[2] += t.days, n[6] += t.milliseconds, this.calendarSystem.arrayToMarker(n)
}, e.prototype.subtract = function(e, t) {
var n = this.calendarSystem.markerToArray(e);
return n[0] -= t.years, n[1] -= t.months, n[2] -= t.days, n[6] -= t.milliseconds, this.calendarSystem.arrayToMarker(n)
}, e.prototype.addYears = function(e, t) {
var n = this.calendarSystem.markerToArray(e);
return n[0] += t, this.calendarSystem.arrayToMarker(n)
}, e.prototype.addMonths = function(e, t) {
var n = this.calendarSystem.markerToArray(e);
return n[1] += t, this.calendarSystem.arrayToMarker(n)
}, e.prototype.diffWholeYears = function(e, t) {
var n = this.calendarSystem;
return gt(e) === gt(t) && n.getMarkerDay(e) === n.getMarkerDay(t) && n.getMarkerMonth(e) === n.getMarkerMonth(t) ? n.getMarkerYear(t) - n.getMarkerYear(e) : null
}, e.prototype.diffWholeMonths = function(e, t) {
var n = this.calendarSystem;
return gt(e) === gt(t) && n.getMarkerDay(e) === n.getMarkerDay(t) ? n.getMarkerMonth(t) - n.getMarkerMonth(e) + 12 * (n.getMarkerYear(t) - n.getMarkerYear(e)) : null
}, e.prototype.greatestWholeUnit = function(e, t) {
var n = this.diffWholeYears(e, t);
return null !== n ? {
unit: "year",
value: n
} : null !== (n = this.diffWholeMonths(e, t)) ? {
unit: "month",
value: n
} : null !== (n = at(e, t)) ? {
unit: "week",
value: n
} : null !== (n = st(e, t)) ? {
unit: "day",
value: n
} : $e(n = function(e, t) {
return (t.valueOf() - e.valueOf()) / 36e5
}(e, t)) ? {
unit: "hour",
value: n
} : $e(n = function(e, t) {
return (t.valueOf() - e.valueOf()) / 6e4
}(e, t)) ? {
unit: "minute",
value: n
} : $e(n = function(e, t) {
return (t.valueOf() - e.valueOf()) / 1e3
}(e, t)) ? {
unit: "second",
value: n
} : {
unit: "millisecond",
value: t.valueOf() - e.valueOf()
}
}, e.prototype.countDurationsBetween = function(e, t, n) {
var r;
return n.years && null !== (r = this.diffWholeYears(e, t)) ? r / (Lt(n) / 365) : n.months && null !== (r = this.diffWholeMonths(e, t)) ? r / function(e) {
return Lt(e) / 30
}(n) : n.days && null !== (r = st(e, t)) ? r / Lt(n) : (t.valueOf() - e.valueOf()) / Ut(n)
}, e.prototype.startOf = function(e, t) {
return "year" === t ? this.startOfYear(e) : "month" === t ? this.startOfMonth(e) : "week" === t ? this.startOfWeek(e) : "day" === t ? lt(e) : "hour" === t ? function(e) {
return ht([e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate(), e.getUTCHours()])
}(e) : "minute" === t ? function(e) {
return ht([e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate(), e.getUTCHours(), e.getUTCMinutes()])
}(e) : "second" === t ? function(e) {
return ht([e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate(), e.getUTCHours(), e.getUTCMinutes(), e.getUTCSeconds()])
}(e) : null
}, e.prototype.startOfYear = function(e) {
return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e)])
}, e.prototype.startOfMonth = function(e) {
return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e), this.calendarSystem.getMarkerMonth(e)])
}, e.prototype.startOfWeek = function(e) {
return this.calendarSystem.arrayToMarker([this.calendarSystem.getMarkerYear(e), this.calendarSystem.getMarkerMonth(e), e.getUTCDate() - (e.getUTCDay() - this.weekDow + 7) % 7])
}, e.prototype.computeWeekNumber = function(e) {
return this.weekNumberFunc ? this.weekNumberFunc(this.toDate(e)) : function(e, t, n) {
var r = e.getUTCFullYear(),
o = ut(e, r, t, n);
if (o < 1) return ut(e, r - 1, t, n);
var i = ut(e, r + 1, t, n);
return i >= 1 ? Math.min(o, i) : o
}(e, this.weekDow, this.weekDoy)
}, e.prototype.format = function(e, t, n) {
return void 0 === n && (n = {}), t.format({
marker: e,
timeZoneOffset: null != n.forcedTzo ? n.forcedTzo : this.offsetForMarker(e)
}, this)
}, e.prototype.formatRange = function(e, t, n, r) {
return void 0 === r && (r = {}), r.isEndExclusive && (t = nt(t, -1)), n.formatRange({
marker: e,
timeZoneOffset: null != r.forcedStartTzo ? r.forcedStartTzo : this.offsetForMarker(e)
}, {
marker: t,
timeZoneOffset: null != r.forcedEndTzo ? r.forcedEndTzo : this.offsetForMarker(t)
}, this, r.defaultSeparator)
}, e.prototype.formatIso = function(e, t) {
void 0 === t && (t = {});
var n = null;
return t.omitTimeZoneOffset || (n = null != t.forcedTzo ? t.forcedTzo : this.offsetForMarker(e)), Ft(e, n, t.omitTime)
}, e.prototype.timestampToMarker = function(e) {
return "local" === this.timeZone ? ht(dt(new Date(e))) : "UTC" !== this.timeZone && this.namedTimeZoneImpl ? ht(this.namedTimeZoneImpl.timestampToArray(e)) : new Date(e)
}, e.prototype.offsetForMarker = function(e) {
return "local" === this.timeZone ? -pt(ft(e)).getTimezoneOffset() : "UTC" === this.timeZone ? 0 : this.namedTimeZoneImpl ? this.namedTimeZoneImpl.offsetForArray(ft(e)) : null
}, e.prototype.toDate = function(e, t) {
return "local" === this.timeZone ? pt(ft(e)) : "UTC" === this.timeZone ? new Date(e.valueOf()) : this.namedTimeZoneImpl ? new Date(e.valueOf() - 1e3 * this.namedTimeZoneImpl.offsetForArray(ft(e)) * 60) : new Date(e.valueOf() - (t || 0))
}, e
}(),
Ur = [],
Wr = {
code: "en",
week: {
dow: 0,
doy: 4
},
direction: "ltr",
buttonText: {
prev: "prev",
next: "next",
prevYear: "prev year",
nextYear: "next year",
year: "year",
today: "today",
month: "month",
week: "week",
day: "day",
list: "list"
},
weekText: "W",
weekTextLong: "Week",
closeHint: "Close",
timeHint: "Time",
eventHint: "Event",
allDayText: "all-day",
moreLinkText: "more",
noEventsText: "No events to display"
},
Vr = r(r({}, Wr), {
buttonHints: {
prev: "Previous $0",
next: "Next $0",
today: function(e, t) {
return "day" === t ? "Today" : "This " + e
}
},
viewHint: "$0 view",
navLinkHint: "Go to $0",
moreLinkHint: function(e) {
return "Show " + e + " more event" + (1 === e ? "" : "s")
}
});
function Fr(e) {
for (var t = e.length > 0 ? e[0].code : "en", n = Ur.concat(e), r = {
en: Vr
}, o = 0, i = n; o < i.length; o++) {
var a = i[o];
r[a.code] = a
}
return {
map: r,
defaultCode: t
}
}
function Br(e, t) {
return "object" != typeof e || Array.isArray(e) ? function(e, t) {
var n = [].concat(e || []),
r = function(e, t) {
for (var n = 0; n < e.length; n += 1)
for (var r = e[n].toLocaleLowerCase().split("-"), o = r.length; o > 0; o -= 1) {
var i = r.slice(0, o).join("-");
if (t[i]) return t[i]
}
return null
}(n, t) || Vr;
return zr(e, n, r)
}(e, t) : zr(e.code, [e.code], e)
}
function zr(e, t, n) {
var r = Et([Wr, n], ["buttonText"]);
delete r.code;
var o = r.week;
return delete r.week, {
codeArg: e,
codes: t,
week: o,
simpleNumberFormat: new Intl.NumberFormat(e),
options: r
}
}
function jr(e) {
var t = Br(e.locale || "en", Fr([]).map);
return new Lr(r(r({
timeZone: cn.timeZone,
calendarSystem: "gregory"
}, e), {
locale: t
}))
}
var Gr, qr = {
startTime: "09:00",
endTime: "17:00",
daysOfWeek: [1, 2, 3, 4, 5],
display: "inverse-background",
classNames: "fc-non-business",
groupId: "_businessHours"
};
function Yr(e, t) {
return En(function(e) {
var t;
t = !0 === e ? [{}] : Array.isArray(e) ? e.filter((function(e) {
return e.daysOfWeek
})) : "object" == typeof e && e ? [e] : [];
return t = t.map((function(e) {
return r(r({}, qr), e)
}))
}(e), null, t)
}
function Zr(e, t) {
return e.left >= t.left && e.left < t.right && e.top >= t.top && e.top < t.bottom
}
function Xr(e, t) {
var n = {
left: Math.max(e.left, t.left),
right: Math.min(e.right, t.right),
top: Math.max(e.top, t.top),
bottom: Math.min(e.bottom, t.bottom)
};
return n.left < n.right && n.top < n.bottom && n
}
function Kr(e, t) {
return {
left: Math.min(Math.max(e.left, t.left), t.right),
top: Math.min(Math.max(e.top, t.top), t.bottom)
}
}
function $r(e) {
return {
left: (e.left + e.right) / 2,
top: (e.top + e.bottom) / 2
}
}
function Jr(e, t) {
return {
left: e.left - t.left,
top: e.top - t.top
}
}
function Qr() {
return null == Gr && (Gr = function() {
if ("undefined" == typeof document) return !0;
var e = document.createElement("div");
e.style.position = "absolute", e.style.top = "0px", e.style.left = "0px", e.innerHTML = "
", e.querySelector("table").style.height = "100px", e.querySelector("div").style.height = "100%", document.body.appendChild(e);
var t = e.querySelector("div").offsetHeight > 0;
return document.body.removeChild(e), t
}()), Gr
}
var eo = {
defs: {},
instances: {}
},
to = function() {
function e() {
this.getKeysForEventDefs = qt(this._getKeysForEventDefs), this.splitDateSelection = qt(this._splitDateSpan), this.splitEventStore = qt(this._splitEventStore), this.splitIndividualUi = qt(this._splitIndividualUi), this.splitEventDrag = qt(this._splitInteraction), this.splitEventResize = qt(this._splitInteraction), this.eventUiBuilders = {}
}
return e.prototype.splitProps = function(e) {
var t = this,
n = this.getKeyInfo(e),
r = this.getKeysForEventDefs(e.eventStore),
o = this.splitDateSelection(e.dateSelection),
i = this.splitIndividualUi(e.eventUiBases, r),
a = this.splitEventStore(e.eventStore, r),
s = this.splitEventDrag(e.eventDrag),
l = this.splitEventResize(e.eventResize),
u = {};
for (var c in this.eventUiBuilders = bt(n, (function(e, n) {
return t.eventUiBuilders[n] || qt(no)
})), n) {
var d = n[c],
p = a[c] || eo,
f = this.eventUiBuilders[c];
u[c] = {
businessHours: d.businessHours || e.businessHours,
dateSelection: o[c] || null,
eventStore: p,
eventUiBases: f(e.eventUiBases[""], d.ui, i[c]),
eventSelection: p.instances[e.eventSelection] ? e.eventSelection : "",
eventDrag: s[c] || null,
eventResize: l[c] || null
}
}
return u
}, e.prototype._splitDateSpan = function(e) {
var t = {};
if (e)
for (var n = 0, r = this.getKeysForDateSpan(e); n < r.length; n++) {
t[r[n]] = e
}
return t
}, e.prototype._getKeysForEventDefs = function(e) {
var t = this;
return bt(e.defs, (function(e) {
return t.getKeysForEventDef(e)
}))
}, e.prototype._splitEventStore = function(e, t) {
var n = e.defs,
r = e.instances,
o = {};
for (var i in n)
for (var a = 0, s = t[i]; a < s.length; a++) {
o[p = s[a]] || (o[p] = {
defs: {},
instances: {}
}), o[p].defs[i] = n[i]
}
for (var l in r)
for (var u = r[l], c = 0, d = t[u.defId]; c < d.length; c++) {
var p;
o[p = d[c]] && (o[p].instances[l] = u)
}
return o
}, e.prototype._splitIndividualUi = function(e, t) {
var n = {};
for (var r in e)
if (r)
for (var o = 0, i = t[r]; o < i.length; o++) {
var a = i[o];
n[a] || (n[a] = {}), n[a][r] = e[r]
}
return n
}, e.prototype._splitInteraction = function(e) {
var t = {};
if (e) {
var n = this._splitEventStore(e.affectedEvents, this._getKeysForEventDefs(e.affectedEvents)),
r = this._getKeysForEventDefs(e.mutatedEvents),
o = this._splitEventStore(e.mutatedEvents, r),
i = function(r) {
t[r] || (t[r] = {
affectedEvents: n[r] || eo,
mutatedEvents: o[r] || eo,
isEvent: e.isEvent
})
};
for (var a in n) i(a);
for (var a in o) i(a)
}
return t
}, e
}();
function no(e, t, n) {
var o = [];
e && o.push(e), t && o.push(t);
var i = {
"": xn(o)
};
return n && r(i, n), i
}
function ro(e, t, n, r) {
return {
dow: e.getUTCDay(),
isDisabled: Boolean(r && !Zn(r.activeRange, e)),
isOther: Boolean(r && !Zn(r.currentRange, e)),
isToday: Boolean(t && Zn(t, e)),
isPast: Boolean(n ? e < n : !!t && e < t.start),
isFuture: Boolean(n ? e > n : !!t && e >= t.end)
}
}
function oo(e, t) {
var n = ["fc-day", "fc-day-" + Qe[e.dow]];
return e.isDisabled ? n.push("fc-day-disabled") : (e.isToday && (n.push("fc-day-today"), n.push(t.getClass("today"))), e.isPast && n.push("fc-day-past"), e.isFuture && n.push("fc-day-future"), e.isOther && n.push("fc-day-other")), n
}
var io = ln({
year: "numeric",
month: "long",
day: "numeric"
}),
ao = ln({
week: "long"
});
function so(e, t, n, o) {
void 0 === n && (n = "day"), void 0 === o && (o = !0);
var i = e.dateEnv,
a = e.options,
s = e.calendarApi,
l = i.format(t, "week" === n ? ao : io);
if (a.navLinks) {
var u = i.toDate(t),
c = function(e) {
var r = "day" === n ? a.navLinkDayClick : "week" === n ? a.navLinkWeekClick : null;
"function" == typeof r ? r.call(s, i.toDate(t), e) : ("string" == typeof r && (n = r), s.zoomTo(t, n))
};
return r({
title: Xe(a.navLinkHint, [l, u], l),
"data-navlink": ""
}, o ? He(c) : {
onClick: c
})
}
return {
"aria-label": l
}
}
var lo, uo = null;
function co() {
return null === uo && (uo = function() {
var e = document.createElement("div");
we(e, {
position: "absolute",
top: -1e3,
left: 0,
border: 0,
padding: 0,
overflow: "scroll",
direction: "rtl"
}), e.innerHTML = "", document.body.appendChild(e);
var t = e.firstChild.getBoundingClientRect().left > e.getBoundingClientRect().left;
return Ee(e), t
}()), uo
}
function po() {
return lo || (lo = function() {
var e = document.createElement("div");
e.style.overflow = "scroll", e.style.position = "absolute", e.style.top = "-9999px", e.style.left = "-9999px", document.body.appendChild(e);
var t = fo(e);
return document.body.removeChild(e), t
}()), lo
}
function fo(e) {
return {
x: e.offsetHeight - e.clientHeight,
y: e.offsetWidth - e.clientWidth
}
}
function ho(e, t) {
void 0 === t && (t = !1);
var n = window.getComputedStyle(e),
r = parseInt(n.borderLeftWidth, 10) || 0,
o = parseInt(n.borderRightWidth, 10) || 0,
i = parseInt(n.borderTopWidth, 10) || 0,
a = parseInt(n.borderBottomWidth, 10) || 0,
s = fo(e),
l = s.y - r - o,
u = {
borderLeft: r,
borderRight: o,
borderTop: i,
borderBottom: a,
scrollbarBottom: s.x - i - a,
scrollbarLeft: 0,
scrollbarRight: 0
};
return co() && "rtl" === n.direction ? u.scrollbarLeft = l : u.scrollbarRight = l, t && (u.paddingLeft = parseInt(n.paddingLeft, 10) || 0, u.paddingRight = parseInt(n.paddingRight, 10) || 0, u.paddingTop = parseInt(n.paddingTop, 10) || 0, u.paddingBottom = parseInt(n.paddingBottom, 10) || 0), u
}
function vo(e, t, n) {
void 0 === t && (t = !1);
var r = n ? e.getBoundingClientRect() : go(e),
o = ho(e, t),
i = {
left: r.left + o.borderLeft + o.scrollbarLeft,
right: r.right - o.borderRight - o.scrollbarRight,
top: r.top + o.borderTop,
bottom: r.bottom - o.borderBottom - o.scrollbarBottom
};
return t && (i.left += o.paddingLeft, i.right -= o.paddingRight, i.top += o.paddingTop, i.bottom -= o.paddingBottom), i
}
function go(e) {
var t = e.getBoundingClientRect();
return {
left: t.left + window.pageXOffset,
top: t.top + window.pageYOffset,
right: t.right + window.pageXOffset,
bottom: t.bottom + window.pageYOffset
}
}
function mo(e) {
for (var t = []; e instanceof HTMLElement;) {
var n = window.getComputedStyle(e);
if ("fixed" === n.position) break;
/(auto|scroll)/.test(n.overflow + n.overflowY + n.overflowX) && t.push(e), e = e.parentNode
}
return t
}
function yo(e, t, n) {
var r = !1,
o = function() {
r || (r = !0, t.apply(this, arguments))
},
i = function() {
r || (r = !0, n && n.apply(this, arguments))
},
a = e(o, i);
a && "function" == typeof a.then && a.then(o, i)
}
var Eo = function() {
function e() {
this.handlers = {}, this.thisContext = null
}
return e.prototype.setThisContext = function(e) {
this.thisContext = e
}, e.prototype.setOptions = function(e) {
this.options = e
}, e.prototype.on = function(e, t) {
! function(e, t, n) {
(e[t] || (e[t] = [])).push(n)
}(this.handlers, e, t)
}, e.prototype.off = function(e, t) {
! function(e, t, n) {
n ? e[t] && (e[t] = e[t].filter((function(e) {
return e !== n
}))) : delete e[t]
}(this.handlers, e, t)
}, e.prototype.trigger = function(e) {
for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
for (var r = this.handlers[e] || [], o = this.options && this.options[e], i = [].concat(o || [], r), a = 0, s = i; a < s.length; a++) {
var l = s[a];
l.apply(this.thisContext, t)
}
}, e.prototype.hasHandlers = function(e) {
return Boolean(this.handlers[e] && this.handlers[e].length || this.options && this.options[e])
}, e
}();
var So = function() {
function e(e, t, n, r) {
this.els = t;
var o = this.originClientRect = e.getBoundingClientRect();
n && this.buildElHorizontals(o.left), r && this.buildElVerticals(o.top)
}
return e.prototype.buildElHorizontals = function(e) {
for (var t = [], n = [], r = 0, o = this.els; r < o.length; r++) {
var i = o[r].getBoundingClientRect();
t.push(i.left - e), n.push(i.right - e)
}
this.lefts = t, this.rights = n
}, e.prototype.buildElVerticals = function(e) {
for (var t = [], n = [], r = 0, o = this.els; r < o.length; r++) {
var i = o[r].getBoundingClientRect();
t.push(i.top - e), n.push(i.bottom - e)
}
this.tops = t, this.bottoms = n
}, e.prototype.leftToIndex = function(e) {
var t, n = this.lefts,
r = this.rights,
o = n.length;
for (t = 0; t < o; t += 1)
if (e >= n[t] && e < r[t]) return t
}, e.prototype.topToIndex = function(e) {
var t, n = this.tops,
r = this.bottoms,
o = n.length;
for (t = 0; t < o; t += 1)
if (e >= n[t] && e < r[t]) return t
}, e.prototype.getWidth = function(e) {
return this.rights[e] - this.lefts[e]
}, e.prototype.getHeight = function(e) {
return this.bottoms[e] - this.tops[e]
}, e
}(),
bo = function() {
function e() {}
return e.prototype.getMaxScrollTop = function() {
return this.getScrollHeight() - this.getClientHeight()
}, e.prototype.getMaxScrollLeft = function() {
return this.getScrollWidth() - this.getClientWidth()
}, e.prototype.canScrollVertically = function() {
return this.getMaxScrollTop() > 0
}, e.prototype.canScrollHorizontally = function() {
return this.getMaxScrollLeft() > 0
}, e.prototype.canScrollUp = function() {
return this.getScrollTop() > 0
}, e.prototype.canScrollDown = function() {
return this.getScrollTop() < this.getMaxScrollTop()
}, e.prototype.canScrollLeft = function() {
return this.getScrollLeft() > 0
}, e.prototype.canScrollRight = function() {
return this.getScrollLeft() < this.getMaxScrollLeft()
}, e
}(),
Do = function(e) {
function t(t) {
var n = e.call(this) || this;
return n.el = t, n
}
return n(t, e), t.prototype.getScrollTop = function() {
return this.el.scrollTop
}, t.prototype.getScrollLeft = function() {
return this.el.scrollLeft
}, t.prototype.setScrollTop = function(e) {
this.el.scrollTop = e
}, t.prototype.setScrollLeft = function(e) {
this.el.scrollLeft = e
}, t.prototype.getScrollWidth = function() {
return this.el.scrollWidth
}, t.prototype.getScrollHeight = function() {
return this.el.scrollHeight
}, t.prototype.getClientHeight = function() {
return this.el.clientHeight
}, t.prototype.getClientWidth = function() {
return this.el.clientWidth
}, t
}(bo),
Co = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.getScrollTop = function() {
return window.pageYOffset
}, t.prototype.getScrollLeft = function() {
return window.pageXOffset
}, t.prototype.setScrollTop = function(e) {
window.scroll(window.pageXOffset, e)
}, t.prototype.setScrollLeft = function(e) {
window.scroll(e, window.pageYOffset)
}, t.prototype.getScrollWidth = function() {
return document.documentElement.scrollWidth
}, t.prototype.getScrollHeight = function() {
return document.documentElement.scrollHeight
}, t.prototype.getClientHeight = function() {
return document.documentElement.clientHeight
}, t.prototype.getClientWidth = function() {
return document.documentElement.clientWidth
}, t
}(bo),
wo = function() {
function e(e) {
this.iconOverrideOption && this.setIconOverride(e[this.iconOverrideOption])
}
return e.prototype.setIconOverride = function(e) {
var t, n;
if ("object" == typeof e && e) {
for (n in t = r({}, this.iconClasses), e) t[n] = this.applyIconOverridePrefix(e[n]);
this.iconClasses = t
} else !1 === e && (this.iconClasses = {})
}, e.prototype.applyIconOverridePrefix = function(e) {
var t = this.iconOverridePrefix;
return t && 0 !== e.indexOf(t) && (e = t + e), e
}, e.prototype.getClass = function(e) {
return this.classes[e] || ""
}, e.prototype.getIconClass = function(e, t) {
var n;
return (n = t && this.rtlIconClasses && this.rtlIconClasses[e] || this.iconClasses[e]) ? this.baseIconClass + " " + n : ""
}, e.prototype.getCustomButtonIconClass = function(e) {
var t;
return this.iconOverrideCustomButtonOption && (t = e[this.iconOverrideCustomButtonOption]) ? this.baseIconClass + " " + this.applyIconOverridePrefix(t) : ""
}, e
}();
if (wo.prototype.classes = {}, wo.prototype.iconClasses = {}, wo.prototype.baseIconClass = "", wo.prototype.iconOverridePrefix = "", "undefined" == typeof FullCalendarVDom) throw new Error("Please import the top-level fullcalendar lib before attempting to import a plugin.");
var Ro = FullCalendarVDom.Component,
_o = FullCalendarVDom.createElement,
To = FullCalendarVDom.render,
ko = FullCalendarVDom.createRef,
xo = FullCalendarVDom.Fragment,
Mo = FullCalendarVDom.createContext,
Io = FullCalendarVDom.createPortal,
Po = FullCalendarVDom.flushToDom,
No = FullCalendarVDom.unmountComponentAtNode,
Ho = function() {
function e(e, t, n, o) {
var i = this;
this.execFunc = e, this.emitter = t, this.scrollTime = n, this.scrollTimeReset = o, this.handleScrollRequest = function(e) {
i.queuedRequest = r({}, i.queuedRequest || {}, e), i.drain()
}, t.on("_scrollRequest", this.handleScrollRequest), this.fireInitialScroll()
}
return e.prototype.detach = function() {
this.emitter.off("_scrollRequest", this.handleScrollRequest)
}, e.prototype.update = function(e) {
e && this.scrollTimeReset ? this.fireInitialScroll() : this.drain()
}, e.prototype.fireInitialScroll = function() {
this.handleScrollRequest({
time: this.scrollTime
})
}, e.prototype.drain = function() {
this.queuedRequest && this.execFunc(this.queuedRequest) && (this.queuedRequest = null)
}, e
}(),
Oo = Mo({});
function Ao(e, t, n, r, o, i, a, s, l, u, c, d, p) {
return {
dateEnv: o,
options: n,
pluginHooks: a,
emitter: u,
dispatch: s,
getCurrentData: l,
calendarApi: c,
viewSpec: e,
viewApi: t,
dateProfileGenerator: r,
theme: i,
isRtl: "rtl" === n.direction,
addResizeHandler: function(e) {
u.on("_resize", e)
},
removeResizeHandler: function(e) {
u.off("_resize", e)
},
createScrollResponder: function(e) {
return new Ho(e, u, Nt(n.scrollTime), n.scrollTimeReset)
},
registerInteractiveComponent: d,
unregisterInteractiveComponent: p
}
}
var Lo = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.shouldComponentUpdate = function(e, t) {
return this.debug && console.log(Rt(e, this.props), Rt(t, this.state)), !_t(this.props, e, this.propEquality) || !_t(this.state, t, this.stateEquality)
}, t.addPropsEquality = Wo, t.addStateEquality = Vo, t.contextType = Oo, t
}(Ro);
Lo.prototype.propEquality = {}, Lo.prototype.stateEquality = {};
var Uo = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.contextType = Oo, t
}(Lo);
function Wo(e) {
var t = Object.create(this.prototype.propEquality);
r(t, e), this.prototype.propEquality = t
}
function Vo(e) {
var t = Object.create(this.prototype.stateEquality);
r(t, e), this.prototype.stateEquality = t
}
function Fo(e, t) {
"function" == typeof e ? e(t) : e && (e.current = t)
}
var Bo = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.uid = Le(), t
}
return n(t, e), t.prototype.prepareHits = function() {}, t.prototype.queryHit = function(e, t, n, r) {
return null
}, t.prototype.isValidSegDownEl = function(e) {
return !this.props.eventDrag && !this.props.eventResize && !Se(e, ".fc-event-mirror")
}, t.prototype.isValidDateDownEl = function(e) {
return !(Se(e, ".fc-event:not(.fc-bg-event)") || Se(e, ".fc-more-link") || Se(e, "a[data-navlink]") || Se(e, ".fc-popover"))
}, t
}(Uo);
function zo(e) {
return {
id: Le(),
deps: e.deps || [],
reducers: e.reducers || [],
isLoadingFuncs: e.isLoadingFuncs || [],
contextInit: [].concat(e.contextInit || []),
eventRefiners: e.eventRefiners || {},
eventDefMemberAdders: e.eventDefMemberAdders || [],
eventSourceRefiners: e.eventSourceRefiners || {},
isDraggableTransformers: e.isDraggableTransformers || [],
eventDragMutationMassagers: e.eventDragMutationMassagers || [],
eventDefMutationAppliers: e.eventDefMutationAppliers || [],
dateSelectionTransformers: e.dateSelectionTransformers || [],
datePointTransforms: e.datePointTransforms || [],
dateSpanTransforms: e.dateSpanTransforms || [],
views: e.views || {},
viewPropsTransformers: e.viewPropsTransformers || [],
isPropsValid: e.isPropsValid || null,
externalDefTransforms: e.externalDefTransforms || [],
viewContainerAppends: e.viewContainerAppends || [],
eventDropTransformers: e.eventDropTransformers || [],
componentInteractions: e.componentInteractions || [],
calendarInteractions: e.calendarInteractions || [],
themeClasses: e.themeClasses || {},
eventSourceDefs: e.eventSourceDefs || [],
cmdFormatter: e.cmdFormatter,
recurringTypes: e.recurringTypes || [],
namedTimeZonedImpl: e.namedTimeZonedImpl,
initialView: e.initialView || "",
elementDraggingImpl: e.elementDraggingImpl,
optionChangeHandlers: e.optionChangeHandlers || {},
scrollGridImpl: e.scrollGridImpl || null,
contentTypeHandlers: e.contentTypeHandlers || {},
listenerRefiners: e.listenerRefiners || {},
optionRefiners: e.optionRefiners || {},
propSetHandlers: e.propSetHandlers || {}
}
}
function jo() {
var e, t = [],
n = [];
return function(o, i) {
return e && Gt(o, t) && Gt(i, n) || (e = function(e, t) {
var n = {},
o = {
reducers: [],
isLoadingFuncs: [],
contextInit: [],
eventRefiners: {},
eventDefMemberAdders: [],
eventSourceRefiners: {},
isDraggableTransformers: [],
eventDragMutationMassagers: [],
eventDefMutationAppliers: [],
dateSelectionTransformers: [],
datePointTransforms: [],
dateSpanTransforms: [],
views: {},
viewPropsTransformers: [],
isPropsValid: null,
externalDefTransforms: [],
viewContainerAppends: [],
eventDropTransformers: [],
componentInteractions: [],
calendarInteractions: [],
themeClasses: {},
eventSourceDefs: [],
cmdFormatter: null,
recurringTypes: [],
namedTimeZonedImpl: null,
initialView: "",
elementDraggingImpl: null,
optionChangeHandlers: {},
scrollGridImpl: null,
contentTypeHandlers: {},
listenerRefiners: {},
optionRefiners: {},
propSetHandlers: {}
};
function i(e) {
for (var t = 0, a = e; t < a.length; t++) {
var s = a[t];
n[s.id] || (n[s.id] = !0, i(s.deps), u = s, o = {
reducers: (l = o).reducers.concat(u.reducers),
isLoadingFuncs: l.isLoadingFuncs.concat(u.isLoadingFuncs),
contextInit: l.contextInit.concat(u.contextInit),
eventRefiners: r(r({}, l.eventRefiners), u.eventRefiners),
eventDefMemberAdders: l.eventDefMemberAdders.concat(u.eventDefMemberAdders),
eventSourceRefiners: r(r({}, l.eventSourceRefiners), u.eventSourceRefiners),
isDraggableTransformers: l.isDraggableTransformers.concat(u.isDraggableTransformers),
eventDragMutationMassagers: l.eventDragMutationMassagers.concat(u.eventDragMutationMassagers),
eventDefMutationAppliers: l.eventDefMutationAppliers.concat(u.eventDefMutationAppliers),
dateSelectionTransformers: l.dateSelectionTransformers.concat(u.dateSelectionTransformers),
datePointTransforms: l.datePointTransforms.concat(u.datePointTransforms),
dateSpanTransforms: l.dateSpanTransforms.concat(u.dateSpanTransforms),
views: r(r({}, l.views), u.views),
viewPropsTransformers: l.viewPropsTransformers.concat(u.viewPropsTransformers),
isPropsValid: u.isPropsValid || l.isPropsValid,
externalDefTransforms: l.externalDefTransforms.concat(u.externalDefTransforms),
viewContainerAppends: l.viewContainerAppends.concat(u.viewContainerAppends),
eventDropTransformers: l.eventDropTransformers.concat(u.eventDropTransformers),
calendarInteractions: l.calendarInteractions.concat(u.calendarInteractions),
componentInteractions: l.componentInteractions.concat(u.componentInteractions),
themeClasses: r(r({}, l.themeClasses), u.themeClasses),
eventSourceDefs: l.eventSourceDefs.concat(u.eventSourceDefs),
cmdFormatter: u.cmdFormatter || l.cmdFormatter,
recurringTypes: l.recurringTypes.concat(u.recurringTypes),
namedTimeZonedImpl: u.namedTimeZonedImpl || l.namedTimeZonedImpl,
initialView: l.initialView || u.initialView,
elementDraggingImpl: l.elementDraggingImpl || u.elementDraggingImpl,
optionChangeHandlers: r(r({}, l.optionChangeHandlers), u.optionChangeHandlers),
scrollGridImpl: u.scrollGridImpl || l.scrollGridImpl,
contentTypeHandlers: r(r({}, l.contentTypeHandlers), u.contentTypeHandlers),
listenerRefiners: r(r({}, l.listenerRefiners), u.listenerRefiners),
optionRefiners: r(r({}, l.optionRefiners), u.optionRefiners),
propSetHandlers: r(r({}, l.propSetHandlers), u.propSetHandlers)
})
}
var l, u
}
return e && i(e), i(t), o
}(o, i)), t = o, n = i, e
}
}
var Go = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t
}(wo);
function qo(e, t, n, o) {
if (t[e]) return t[e];
var i = function(e, t, n, o) {
var i = n[e],
a = o[e],
s = function(e) {
return i && null !== i[e] ? i[e] : a && null !== a[e] ? a[e] : null
},
l = s("component"),
u = s("superType"),
c = null;
if (u) {
if (u === e) throw new Error("Can't have a custom view type that references itself");
c = qo(u, t, n, o)
}!l && c && (l = c.component);
if (!l) return null;
return {
type: e,
component: l,
defaults: r(r({}, c ? c.defaults : {}), i ? i.rawOptions : {}),
overrides: r(r({}, c ? c.overrides : {}), a ? a.rawOptions : {})
}
}(e, t, n, o);
return i && (t[e] = i), i
}
Go.prototype.classes = {
root: "fc-theme-standard",
tableCellShaded: "fc-cell-shaded",
buttonGroup: "fc-button-group",
button: "fc-button fc-button-primary",
buttonActive: "fc-button-active"
}, Go.prototype.baseIconClass = "fc-icon", Go.prototype.iconClasses = {
close: "fc-icon-x",
prev: "fc-icon-chevron-left",
next: "fc-icon-chevron-right",
prevYear: "fc-icon-chevrons-left",
nextYear: "fc-icon-chevrons-right"
}, Go.prototype.rtlIconClasses = {
prev: "fc-icon-chevron-right",
next: "fc-icon-chevron-left",
prevYear: "fc-icon-chevrons-right",
nextYear: "fc-icon-chevrons-left"
}, Go.prototype.iconOverrideOption = "buttonIcons", Go.prototype.iconOverrideCustomButtonOption = "icon", Go.prototype.iconOverridePrefix = "fc-icon-";
var Yo = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.rootElRef = ko(), t.handleRootEl = function(e) {
Fo(t.rootElRef, e), t.props.elRef && Fo(t.props.elRef, e)
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props,
n = t.hookProps;
return _o($o, {
hookProps: n,
didMount: t.didMount,
willUnmount: t.willUnmount,
elRef: this.handleRootEl
}, (function(r) {
return _o(Xo, {
hookProps: n,
content: t.content,
defaultContent: t.defaultContent,
backupElRef: e.rootElRef
}, (function(e, o) {
return t.children(r, Qo(t.classNames, n), e, o)
}))
}))
}, t
}(Uo),
Zo = Mo(0);
function Xo(e) {
return _o(Zo.Consumer, null, (function(t) {
return _o(Ko, r({
renderId: t
}, e))
}))
}
var Ko = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.innerElRef = ko(), t
}
return n(t, e), t.prototype.render = function() {
return this.props.children(this.innerElRef, this.renderInnerContent())
}, t.prototype.componentDidMount = function() {
this.updateCustomContent()
}, t.prototype.componentDidUpdate = function() {
this.updateCustomContent()
}, t.prototype.componentWillUnmount = function() {
this.customContentInfo && this.customContentInfo.destroy && this.customContentInfo.destroy()
}, t.prototype.renderInnerContent = function() {
var e = this.customContentInfo,
t = this.getInnerContent(),
n = this.getContentMeta(t);
return e && e.contentKey === n.contentKey ? e && (e.contentVal = t[n.contentKey]) : (e && (e.destroy && e.destroy(), e = this.customContentInfo = null), n.contentKey && (e = this.customContentInfo = r({
contentKey: n.contentKey,
contentVal: t[n.contentKey]
}, n.buildLifecycleFuncs()))), e ? [] : t
}, t.prototype.getInnerContent = function() {
var e = this.props,
t = ei(e.content, e.hookProps);
return void 0 === t && (t = ei(e.defaultContent, e.hookProps)), null == t ? null : t
}, t.prototype.getContentMeta = function(e) {
var t = this.context.pluginHooks.contentTypeHandlers,
n = "",
r = null;
if (e)
for (var o in t)
if (void 0 !== e[o]) {
n = o, r = t[o];
break
}
return {
contentKey: n,
buildLifecycleFuncs: r
}
}, t.prototype.updateCustomContent = function() {
this.customContentInfo && this.customContentInfo.render(this.innerElRef.current || this.props.backupElRef.current, this.customContentInfo.contentVal)
}, t
}(Uo),
$o = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.handleRootEl = function(e) {
t.rootEl = e, t.props.elRef && Fo(t.props.elRef, e)
}, t
}
return n(t, e), t.prototype.render = function() {
return this.props.children(this.handleRootEl)
}, t.prototype.componentDidMount = function() {
var e = this.props.didMount;
e && e(r(r({}, this.props.hookProps), {
el: this.rootEl
}))
}, t.prototype.componentWillUnmount = function() {
var e = this.props.willUnmount;
e && e(r(r({}, this.props.hookProps), {
el: this.rootEl
}))
}, t
}(Uo);
function Jo() {
var e, t, n = [];
return function(r, o) {
return t && wt(t, o) && r === e || (e = r, t = o, n = Qo(r, o)), n
}
}
function Qo(e, t) {
return "function" == typeof e && (e = e(t)), Rn(e)
}
function ei(e, t) {
return "function" == typeof e ? e(t, _o) : e
}
var ti = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.normalizeClassNames = Jo(), t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = t.options,
r = {
view: t.viewApi
},
o = this.normalizeClassNames(n.viewClassNames, r);
return _o($o, {
hookProps: r,
didMount: n.viewDidMount,
willUnmount: n.viewWillUnmount,
elRef: e.elRef
}, (function(t) {
return e.children(t, ["fc-" + e.viewSpec.type + "-view", "fc-view"].concat(o))
}))
}, t
}(Uo);
function ni(e) {
return bt(e, ri)
}
function ri(e) {
var t, n = "function" == typeof e ? {
component: e
} : e,
o = n.component;
return n.content && (t = n, o = function(e) {
return _o(Oo.Consumer, null, (function(n) {
return _o(ti, {
viewSpec: n.viewSpec
}, (function(o, i) {
var a = r(r({}, e), {
nextDayThreshold: n.options.nextDayThreshold
});
return _o(Yo, {
hookProps: a,
classNames: t.classNames,
content: t.content,
didMount: t.didMount,
willUnmount: t.willUnmount,
elRef: o
}, (function(e, t, n, r) {
return _o("div", {
className: i.concat(t).join(" "),
ref: e
}, r)
}))
}))
}))
}), {
superType: n.type,
component: o,
rawOptions: n
}
}
function oi(e, t, n, o) {
var i = ni(e),
a = ni(t.views);
return bt(function(e, t) {
var n, r = {};
for (n in e) qo(n, r, e, t);
for (n in t) qo(n, r, e, t);
return r
}(i, a), (function(e) {
return function(e, t, n, o, i) {
var a = e.overrides.duration || e.defaults.duration || o.duration || n.duration,
s = null,
l = "",
u = "",
c = {};
if (a && (s = function(e) {
var t = JSON.stringify(e),
n = ii[t];
void 0 === n && (n = Nt(e), ii[t] = n);
return n
}(a))) {
var d = Vt(s);
l = d.unit, 1 === d.value && (u = l, c = t[l] ? t[l].rawOptions : {})
}
var p = function(t) {
var n = t.buttonText || {},
r = e.defaults.buttonTextKey;
return null != r && null != n[r] ? n[r] : null != n[e.type] ? n[e.type] : null != n[u] ? n[u] : null
},
f = function(t) {
var n = t.buttonHints || {},
r = e.defaults.buttonTextKey;
return null != r && null != n[r] ? n[r] : null != n[e.type] ? n[e.type] : null != n[u] ? n[u] : null
};
return {
type: e.type,
component: e.component,
duration: s,
durationUnit: l,
singleUnit: u,
optionDefaults: e.defaults,
optionOverrides: r(r({}, c), e.overrides),
buttonTextOverride: p(o) || p(n) || e.overrides.buttonText,
buttonTextDefault: p(i) || e.defaults.buttonText || p(cn) || e.type,
buttonTitleOverride: f(o) || f(n) || e.overrides.buttonHint,
buttonTitleDefault: f(i) || e.defaults.buttonHint || f(cn)
}
}(e, a, t, n, o)
}))
}
var ii = {};
var ai = function() {
function e(e) {
this.props = e, this.nowDate = Tr(e.nowInput, e.dateEnv), this.initHiddenDays()
}
return e.prototype.buildPrev = function(e, t, n) {
var r = this.props.dateEnv,
o = r.subtract(r.startOf(t, e.currentRangeUnit), e.dateIncrement);
return this.build(o, -1, n)
}, e.prototype.buildNext = function(e, t, n) {
var r = this.props.dateEnv,
o = r.add(r.startOf(t, e.currentRangeUnit), e.dateIncrement);
return this.build(o, 1, n)
}, e.prototype.build = function(e, t, n) {
void 0 === n && (n = !0);
var r, o, i, a, s, l, u, c, d = this.props;
return r = this.buildValidRange(), r = this.trimHiddenDays(r), n && (u = e, e = null != (c = r).start && u < c.start ? c.start : null != c.end && u >= c.end ? new Date(c.end.valueOf() - 1) : u), o = this.buildCurrentRangeInfo(e, t), i = /^(year|month|week|day)$/.test(o.unit), a = this.buildRenderRange(this.trimHiddenDays(o.range), o.unit, i), s = a = this.trimHiddenDays(a), d.showNonCurrentDates || (s = jn(s, o.range)), s = jn(s = this.adjustActiveRange(s), r), l = qn(o.range, r), {
validRange: r,
currentRange: o.range,
currentRangeUnit: o.unit,
isRangeAllDay: i,
activeRange: s,
renderRange: a,
slotMinTime: d.slotMinTime,
slotMaxTime: d.slotMaxTime,
isValid: l,
dateIncrement: this.buildDateIncrement(o.duration)
}
}, e.prototype.buildValidRange = function() {
var e = this.props.validRangeInput,
t = "function" == typeof e ? e.call(this.props.calendarApi, this.nowDate) : e;
return this.refineRange(t) || {
start: null,
end: null
}
}, e.prototype.buildCurrentRangeInfo = function(e, t) {
var n, r = this.props,
o = null,
i = null,
a = null;
return r.duration ? (o = r.duration, i = r.durationUnit, a = this.buildRangeFromDuration(e, t, o, i)) : (n = this.props.dayCount) ? (i = "day", a = this.buildRangeFromDayCount(e, t, n)) : (a = this.buildCustomVisibleRange(e)) ? i = r.dateEnv.greatestWholeUnit(a.start, a.end).unit : (i = Vt(o = this.getFallbackDuration()).unit, a = this.buildRangeFromDuration(e, t, o, i)), {
duration: o,
unit: i,
range: a
}
}, e.prototype.getFallbackDuration = function() {
return Nt({
day: 1
})
}, e.prototype.adjustActiveRange = function(e) {
var t = this.props,
n = t.dateEnv,
r = t.usesMinMaxTime,
o = t.slotMinTime,
i = t.slotMaxTime,
a = e.start,
s = e.end;
return r && (Lt(o) < 0 && (a = lt(a), a = n.add(a, o)), Lt(i) > 1 && (s = tt(s = lt(s), -1), s = n.add(s, i))), {
start: a,
end: s
}
}, e.prototype.buildRangeFromDuration = function(e, t, n, r) {
var o, i, a, s = this.props,
l = s.dateEnv,
u = s.dateAlignment;
if (!u) {
var c = this.props.dateIncrement;
u = c && Ut(c) < Ut(n) ? Vt(c).unit : r
}
function d() {
o = l.startOf(e, u), i = l.add(o, n), a = {
start: o,
end: i
}
}
return Lt(n) <= 1 && this.isHiddenDay(o) && (o = lt(o = this.skipHiddenDays(o, t))), d(), this.trimHiddenDays(a) || (e = this.skipHiddenDays(e, t), d()), a
}, e.prototype.buildRangeFromDayCount = function(e, t, n) {
var r, o = this.props,
i = o.dateEnv,
a = o.dateAlignment,
s = 0,
l = e;
a && (l = i.startOf(l, a)), l = lt(l), r = l = this.skipHiddenDays(l, t);
do {
r = tt(r, 1), this.isHiddenDay(r) || (s += 1)
} while (s < n);
return {
start: l,
end: r
}
}, e.prototype.buildCustomVisibleRange = function(e) {
var t = this.props,
n = t.visibleRangeInput,
r = "function" == typeof n ? n.call(t.calendarApi, t.dateEnv.toDate(e)) : n,
o = this.refineRange(r);
return !o || null != o.start && null != o.end ? o : null
}, e.prototype.buildRenderRange = function(e, t, n) {
return e
}, e.prototype.buildDateIncrement = function(e) {
var t, n = this.props.dateIncrement;
return n || ((t = this.props.dateAlignment) ? Nt(1, t) : e || Nt({
days: 1
}))
}, e.prototype.refineRange = function(e) {
if (e) {
var t = (n = e, r = this.props.dateEnv, o = null, i = null, n.start && (o = r.createMarker(n.start)), n.end && (i = r.createMarker(n.end)), o || i ? o && i && i < o ? null : {
start: o,
end: i
} : null);
return t && (t = Wn(t)), t
}
var n, r, o, i;
return null
}, e.prototype.initHiddenDays = function() {
var e, t = this.props.hiddenDays || [],
n = [],
r = 0;
for (!1 === this.props.weekends && t.push(0, 6), e = 0; e < 7; e += 1)(n[e] = -1 !== t.indexOf(e)) || (r += 1);
if (!r) throw new Error("invalid hiddenDays");
this.isHiddenDayHash = n
}, e.prototype.trimHiddenDays = function(e) {
var t = e.start,
n = e.end;
return t && (t = this.skipHiddenDays(t)), n && (n = this.skipHiddenDays(n, -1, !0)), null == t || null == n || t < n ? {
start: t,
end: n
} : null
}, e.prototype.isHiddenDay = function(e) {
return e instanceof Date && (e = e.getUTCDay()), this.isHiddenDayHash[e]
}, e.prototype.skipHiddenDays = function(e, t, n) {
for (void 0 === t && (t = 1), void 0 === n && (n = !1); this.isHiddenDayHash[(e.getUTCDay() + (n ? t : 0) + 7) % 7];) e = tt(e, t);
return e
}, e
}();
function si(e, t, n) {
var r = t ? t.activeRange : null;
return ci({}, function(e, t) {
var n = _r(t),
r = [].concat(e.eventSources || []),
o = [];
e.initialEvents && r.unshift(e.initialEvents);
e.events && r.unshift(e.events);
for (var i = 0, a = r; i < a.length; i++) {
var s = Rr(a[i], t, n);
s && o.push(s)
}
return o
}(e, n), r, n)
}
function li(e, t, n, o) {
var i, a, s = n ? n.activeRange : null;
switch (t.type) {
case "ADD_EVENT_SOURCES":
return ci(e, t.sources, s, o);
case "REMOVE_EVENT_SOURCE":
return i = e, a = t.sourceId, St(i, (function(e) {
return e.sourceId !== a
}));
case "PREV":
case "NEXT":
case "CHANGE_DATE":
case "CHANGE_VIEW_TYPE":
return n ? di(e, s, o) : e;
case "FETCH_EVENT_SOURCES":
return pi(e, t.sourceIds ? Dt(t.sourceIds) : hi(e, o), s, t.isRefetch || !1, o);
case "RECEIVE_EVENTS":
case "RECEIVE_EVENT_ERROR":
return function(e, t, n, o) {
var i, a = e[t];
if (a && n === a.latestFetchId) return r(r({}, e), ((i = {})[t] = r(r({}, a), {
isFetching: !1,
fetchRange: o
}), i));
return e
}(e, t.sourceId, t.fetchId, t.fetchRange);
case "REMOVE_ALL_EVENT_SOURCES":
return {};
default:
return e
}
}
function ui(e) {
for (var t in e)
if (e[t].isFetching) return !0;
return !1
}
function ci(e, t, n, o) {
for (var i = {}, a = 0, s = t; a < s.length; a++) {
var l = s[a];
i[l.sourceId] = l
}
return n && (i = di(i, n, o)), r(r({}, e), i)
}
function di(e, t, n) {
return pi(e, St(e, (function(e) {
return function(e, t, n) {
if (!vi(e, n)) return !e.latestFetchId;
return !n.options.lazyFetching || !e.fetchRange || e.isFetching || t.start < e.fetchRange.start || t.end > e.fetchRange.end
}(e, t, n)
})), t, !1, n)
}
function pi(e, t, n, r, o) {
var i = {};
for (var a in e) {
var s = e[a];
t[a] ? i[a] = fi(s, n, r, o) : i[a] = s
}
return i
}
function fi(e, t, n, o) {
var i = o.options,
a = o.calendarApi,
s = o.pluginHooks.eventSourceDefs[e.sourceDefId],
l = Le();
return s.fetch({
eventSource: e,
range: t,
isRefetch: n,
context: o
}, (function(n) {
var r = n.rawEvents;
i.eventSourceSuccess && (r = i.eventSourceSuccess.call(a, r, n.xhr) || r), e.success && (r = e.success.call(a, r, n.xhr) || r), o.dispatch({
type: "RECEIVE_EVENTS",
sourceId: e.sourceId,
fetchId: l,
fetchRange: t,
rawEvents: r
})
}), (function(n) {
console.warn(n.message, n), i.eventSourceFailure && i.eventSourceFailure.call(a, n), e.failure && e.failure(n), o.dispatch({
type: "RECEIVE_EVENT_ERROR",
sourceId: e.sourceId,
fetchId: l,
fetchRange: t,
error: n
})
})), r(r({}, e), {
isFetching: !0,
latestFetchId: l
})
}
function hi(e, t) {
return St(e, (function(e) {
return vi(e, t)
}))
}
function vi(e, t) {
return !t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange
}
function gi(e, t, n, r, o) {
switch (t.type) {
case "RECEIVE_EVENTS":
return function(e, t, n, r, o, i) {
if (t && n === t.latestFetchId) {
var a = En(function(e, t, n) {
var r = n.options.eventDataTransform,
o = t ? t.eventDataTransform : null;
o && (e = mi(e, o));
r && (e = mi(e, r));
return e
}(o, t, i), t, i);
return r && (a = xt(a, r, i)), Cn(yi(e, t.sourceId), a)
}
return e
}(e, n[t.sourceId], t.fetchId, t.fetchRange, t.rawEvents, o);
case "ADD_EVENTS":
return function(e, t, n, r) {
n && (t = xt(t, n, r));
return Cn(e, t)
}(e, t.eventStore, r ? r.activeRange : null, o);
case "RESET_EVENTS":
return t.eventStore;
case "MERGE_EVENTS":
return Cn(e, t.eventStore);
case "PREV":
case "NEXT":
case "CHANGE_DATE":
case "CHANGE_VIEW_TYPE":
return r ? xt(e, r.activeRange, o) : e;
case "REMOVE_EVENTS":
return function(e, t) {
var n = e.defs,
r = e.instances,
o = {},
i = {};
for (var a in n) t.defs[a] || (o[a] = n[a]);
for (var s in r) !t.instances[s] && o[r[s].defId] && (i[s] = r[s]);
return {
defs: o,
instances: i
}
}(e, t.eventStore);
case "REMOVE_EVENT_SOURCE":
return yi(e, t.sourceId);
case "REMOVE_ALL_EVENT_SOURCES":
return wn(e, (function(e) {
return !e.sourceId
}));
case "REMOVE_ALL_EVENTS":
return {
defs: {},
instances: {}
};
default:
return e
}
}
function mi(e, t) {
var n;
if (t) {
n = [];
for (var r = 0, o = e; r < o.length; r++) {
var i = o[r],
a = t(i);
a ? n.push(a) : null == a && n.push(i)
}
} else n = e;
return n
}
function yi(e, t) {
return wn(e, (function(e) {
return e.sourceId !== t
}))
}
function Ei(e, t) {
switch (t.type) {
case "UNSELECT_DATES":
return null;
case "SELECT_DATES":
return t.selection;
default:
return e
}
}
function Si(e, t) {
switch (t.type) {
case "UNSELECT_EVENT":
return "";
case "SELECT_EVENT":
return t.eventInstanceId;
default:
return e
}
}
function bi(e, t) {
var n;
switch (t.type) {
case "UNSET_EVENT_DRAG":
return null;
case "SET_EVENT_DRAG":
return {
affectedEvents: (n = t.state).affectedEvents,
mutatedEvents: n.mutatedEvents,
isEvent: n.isEvent
};
default:
return e
}
}
function Di(e, t) {
var n;
switch (t.type) {
case "UNSET_EVENT_RESIZE":
return null;
case "SET_EVENT_RESIZE":
return {
affectedEvents: (n = t.state).affectedEvents,
mutatedEvents: n.mutatedEvents,
isEvent: n.isEvent
};
default:
return e
}
}
function Ci(e, t, n, r, o) {
return {
header: e.headerToolbar ? wi(e.headerToolbar, e, t, n, r, o) : null,
footer: e.footerToolbar ? wi(e.footerToolbar, e, t, n, r, o) : null
}
}
function wi(e, t, n, r, o, i) {
var a = {},
s = [],
l = !1;
for (var u in e) {
var c = Ri(e[u], t, n, r, o, i);
a[u] = c.widgets, s.push.apply(s, c.viewsWithButtons), l = l || c.hasTitle
}
return {
sectionWidgets: a,
viewsWithButtons: s,
hasTitle: l
}
}
function Ri(e, t, n, r, o, i) {
var a = "rtl" === t.direction,
s = t.customButtons || {},
l = n.buttonText || {},
u = t.buttonText || {},
c = n.buttonHints || {},
d = t.buttonHints || {},
p = e ? e.split(" ") : [],
f = [],
h = !1;
return {
widgets: p.map((function(e) {
return e.split(",").map((function(e) {
if ("title" === e) return h = !0, {
buttonName: e
};
var n, p, v, g, m, y;
if (n = s[e]) v = function(e) {
n.click && n.click.call(e.target, e, e.target)
}, (g = r.getCustomButtonIconClass(n)) || (g = r.getIconClass(e, a)) || (m = n.text), y = n.hint || n.text;
else if (p = o[e]) {
f.push(e), v = function() {
i.changeView(e)
}, (m = p.buttonTextOverride) || (g = r.getIconClass(e, a)) || (m = p.buttonTextDefault);
var E = p.buttonTextOverride || p.buttonTextDefault;
y = Xe(p.buttonTitleOverride || p.buttonTitleDefault || t.viewHint, [E, e], E)
} else if (i[e])
if (v = function() {
i[e]()
}, (m = l[e]) || (g = r.getIconClass(e, a)) || (m = u[e]), "prevYear" === e || "nextYear" === e) {
var S = "prevYear" === e ? "prev" : "next";
y = Xe(c[S] || d[S], [u.year || "year", "year"], u[e])
} else y = function(t) {
return Xe(c[e] || d[e], [u[t] || t, t], u[e])
};
return {
buttonName: e,
buttonClick: v,
buttonIcon: g,
buttonText: m,
buttonHint: y
}
}))
})),
viewsWithButtons: f,
hasTitle: h
}
}
function _i(e, t, n, r, o) {
var i = null;
"GET" === (e = e.toUpperCase()) ? t = function(e, t) {
return e + (-1 === e.indexOf("?") ? "?" : "&") + Ti(t)
}(t, n): i = Ti(n);
var a = new XMLHttpRequest;
a.open(e, t, !0), "GET" !== e && a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), a.onload = function() {
if (a.status >= 200 && a.status < 400) {
var e = !1,
t = void 0;
try {
t = JSON.parse(a.responseText), e = !0
} catch (e) {}
e ? r(t, a) : o("Failure parsing JSON", a)
} else o("Request failed", a)
}, a.onerror = function() {
o("Request failed", a)
}, a.send(i)
}
function Ti(e) {
var t = [];
for (var n in e) t.push(encodeURIComponent(n) + "=" + encodeURIComponent(e[n]));
return t.join("&")
}
function ki(e, t) {
for (var n = Ct(t.getCurrentData().eventSources), r = [], o = 0, i = e; o < i.length; o++) {
for (var a = i[o], s = !1, l = 0; l < n.length; l += 1)
if (n[l]._raw === a) {
n.splice(l, 1), s = !0;
break
}
s || r.push(a)
}
for (var u = 0, c = n; u < c.length; u++) {
var d = c[u];
t.dispatch({
type: "REMOVE_EVENT_SOURCE",
sourceId: d.sourceId
})
}
for (var p = 0, f = r; p < f.length; p++) {
var h = f[p];
t.calendarApi.addEventSource(h)
}
}
var xi = [zo({
eventSourceDefs: [{
ignoreRange: !0,
parseMeta: function(e) {
return Array.isArray(e.events) ? e.events : null
},
fetch: function(e, t) {
t({
rawEvents: e.eventSource.meta
})
}
}]
}), zo({
eventSourceDefs: [{
parseMeta: function(e) {
return "function" == typeof e.events ? e.events : null
},
fetch: function(e, t, n) {
var r = e.context.dateEnv;
yo(e.eventSource.meta.bind(null, hr(e.range, r)), (function(e) {
t({
rawEvents: e
})
}), n)
}
}]
}), zo({
eventSourceRefiners: {
method: String,
extraParams: yn,
startParam: String,
endParam: String,
timeZoneParam: String
},
eventSourceDefs: [{
parseMeta: function(e) {
return !e.url || "json" !== e.format && e.format ? null : {
url: e.url,
format: "json",
method: (e.method || "GET").toUpperCase(),
extraParams: e.extraParams,
startParam: e.startParam,
endParam: e.endParam,
timeZoneParam: e.timeZoneParam
}
},
fetch: function(e, t, n) {
var o = e.eventSource.meta,
i = function(e, t, n) {
var o, i, a, s, l = n.dateEnv,
u = n.options,
c = {};
null == (o = e.startParam) && (o = u.startParam);
null == (i = e.endParam) && (i = u.endParam);
null == (a = e.timeZoneParam) && (a = u.timeZoneParam);
s = "function" == typeof e.extraParams ? e.extraParams() : e.extraParams || {};
r(c, s), c[o] = l.formatIso(t.start), c[i] = l.formatIso(t.end), "local" !== l.timeZone && (c[a] = l.timeZone);
return c
}(o, e.range, e.context);
_i(o.method, o.url, i, (function(e, n) {
t({
rawEvents: e,
xhr: n
})
}), (function(e, t) {
n({
message: e,
xhr: t
})
}))
}
}]
}), zo({
recurringTypes: [{
parse: function(e, t) {
if (e.daysOfWeek || e.startTime || e.endTime || e.startRecur || e.endRecur) {
var n = {
daysOfWeek: e.daysOfWeek || null,
startTime: e.startTime || null,
endTime: e.endTime || null,
startRecur: e.startRecur ? t.createMarker(e.startRecur) : null,
endRecur: e.endRecur ? t.createMarker(e.endRecur) : null
},
r = void 0;
return e.duration && (r = e.duration), !r && e.startTime && e.endTime && (o = e.endTime, i = e.startTime, r = {
years: o.years - i.years,
months: o.months - i.months,
days: o.days - i.days,
milliseconds: o.milliseconds - i.milliseconds
}), {
allDayGuess: Boolean(!e.startTime && !e.endTime),
duration: r,
typeData: n
}
}
var o, i;
return null
},
expand: function(e, t, n) {
var r = jn(t, {
start: e.startRecur,
end: e.endRecur
});
return r ? function(e, t, n, r) {
var o = e ? Dt(e) : null,
i = lt(n.start),
a = n.end,
s = [];
for (; i < a;) {
var l = void 0;
o && !o[i.getUTCDay()] || (l = t ? r.add(i, t) : i, s.push(l)), i = tt(i, 1)
}
return s
}(e.daysOfWeek, e.startTime, r, n) : []
}
}],
eventRefiners: {
daysOfWeek: yn,
startTime: Nt,
endTime: Nt,
duration: Nt,
startRecur: yn,
endRecur: yn
}
}), zo({
optionChangeHandlers: {
events: function(e, t) {
ki([e], t)
},
eventSources: ki
}
}), zo({
isLoadingFuncs: [function(e) {
return ui(e.eventSources)
}],
contentTypeHandlers: {
html: function() {
var e = null,
t = "";
return {
render: function(n, r) {
n === e && r === t || (n.innerHTML = r), e = n, t = r
},
destroy: function() {
e.innerHTML = "", e = null, t = ""
}
}
},
domNodes: function() {
var e = null,
t = [];
function n() {
t.forEach(Ee), t = [], e = null
}
return {
render: function(r, o) {
var i = Array.prototype.slice.call(o);
if (r !== e || !Gt(t, i)) {
for (var a = 0, s = i; a < s.length; a++) {
var l = s[a];
r.appendChild(l)
}
n()
}
e = r, t = i
},
destroy: n
}
}
},
propSetHandlers: {
dateProfile: function(e, t) {
t.emitter.trigger("datesSet", r(r({}, hr(e.activeRange, t.dateEnv)), {
view: t.viewApi
}))
},
eventStore: function(e, t) {
var n = t.emitter;
n.hasHandlers("eventsSet") && n.trigger("eventsSet", Ir(e, t))
}
}
})];
var Mi = function() {
function e(e) {
this.drainedOption = e, this.isRunning = !1, this.isDirty = !1, this.pauseDepths = {}, this.timeoutId = 0
}
return e.prototype.request = function(e) {
this.isDirty = !0, this.isPaused() || (this.clearTimeout(), null == e ? this.tryDrain() : this.timeoutId = setTimeout(this.tryDrain.bind(this), e))
}, e.prototype.pause = function(e) {
void 0 === e && (e = "");
var t = this.pauseDepths;
t[e] = (t[e] || 0) + 1, this.clearTimeout()
}, e.prototype.resume = function(e, t) {
void 0 === e && (e = "");
var n = this.pauseDepths;
if (e in n) {
if (t) delete n[e];
else n[e] -= 1, n[e] <= 0 && delete n[e];
this.tryDrain()
}
}, e.prototype.isPaused = function() {
return Object.keys(this.pauseDepths).length
}, e.prototype.tryDrain = function() {
if (!this.isRunning && !this.isPaused()) {
for (this.isRunning = !0; this.isDirty;) this.isDirty = !1, this.drained();
this.isRunning = !1
}
}, e.prototype.clear = function() {
this.clearTimeout(), this.isDirty = !1, this.pauseDepths = {}
}, e.prototype.clearTimeout = function() {
this.timeoutId && (clearTimeout(this.timeoutId), this.timeoutId = 0)
}, e.prototype.drained = function() {
this.drainedOption && this.drainedOption()
}, e
}(),
Ii = function() {
function e(e, t) {
this.runTaskOption = e, this.drainedOption = t, this.queue = [], this.delayedRunner = new Mi(this.drain.bind(this))
}
return e.prototype.request = function(e, t) {
this.queue.push(e), this.delayedRunner.request(t)
}, e.prototype.pause = function(e) {
this.delayedRunner.pause(e)
}, e.prototype.resume = function(e, t) {
this.delayedRunner.resume(e, t)
}, e.prototype.drain = function() {
for (var e = this.queue; e.length;) {
for (var t = [], n = void 0; n = e.shift();) this.runTask(n), t.push(n);
this.drained(t)
}
}, e.prototype.runTask = function(e) {
this.runTaskOption && this.runTaskOption(e)
}, e.prototype.drained = function(e) {
this.drainedOption && this.drainedOption(e)
}, e
}();
function Pi(e, t, n) {
var r;
return r = /^(year|month)$/.test(e.currentRangeUnit) ? e.currentRange : e.activeRange, n.formatRange(r.start, r.end, ln(t.titleFormat || function(e) {
var t = e.currentRangeUnit;
if ("year" === t) return {
year: "numeric"
};
if ("month" === t) return {
year: "numeric",
month: "long"
};
var n = st(e.currentRange.start, e.currentRange.end);
if (null !== n && n > 1) return {
year: "numeric",
month: "short",
day: "numeric"
};
return {
year: "numeric",
month: "long",
day: "numeric"
}
}(e)), {
isEndExclusive: e.isRangeAllDay,
defaultSeparator: t.titleRangeSeparator
})
}
var Ni = function() {
function e(e) {
var t = this;
this.computeOptionsData = qt(this._computeOptionsData), this.computeCurrentViewData = qt(this._computeCurrentViewData), this.organizeRawLocales = qt(Fr), this.buildLocale = qt(Br), this.buildPluginHooks = jo(), this.buildDateEnv = qt(Hi), this.buildTheme = qt(Oi), this.parseToolbars = qt(Ci), this.buildViewSpecs = qt(oi), this.buildDateProfileGenerator = Yt(Ai), this.buildViewApi = qt(Li), this.buildViewUiProps = Yt(Vi), this.buildEventUiBySource = qt(Ui, wt), this.buildEventUiBases = qt(Wi), this.parseContextBusinessHours = Yt(Bi), this.buildTitle = qt(Pi), this.emitter = new Eo, this.actionRunner = new Ii(this._handleAction.bind(this), this.updateData.bind(this)), this.currentCalendarOptionsInput = {}, this.currentCalendarOptionsRefined = {}, this.currentViewOptionsInput = {}, this.currentViewOptionsRefined = {}, this.currentCalendarOptionsRefiners = {}, this.getCurrentData = function() {
return t.data
}, this.dispatch = function(e) {
t.actionRunner.request(e)
}, this.props = e, this.actionRunner.pause();
var n = {},
o = this.computeOptionsData(e.optionOverrides, n, e.calendarApi),
i = o.calendarOptions.initialView || o.pluginHooks.initialView,
a = this.computeCurrentViewData(i, o, e.optionOverrides, n);
e.calendarApi.currentDataManager = this, this.emitter.setThisContext(e.calendarApi), this.emitter.setOptions(a.options);
var s, l, u, c = (s = o.calendarOptions, l = o.dateEnv, null != (u = s.initialDate) ? l.createMarker(u) : Tr(s.now, l)),
d = a.dateProfileGenerator.build(c);
Zn(d.activeRange, c) || (c = d.currentRange.start);
for (var p = {
dateEnv: o.dateEnv,
options: o.calendarOptions,
pluginHooks: o.pluginHooks,
calendarApi: e.calendarApi,
dispatch: this.dispatch,
emitter: this.emitter,
getCurrentData: this.getCurrentData
}, f = 0, h = o.pluginHooks.contextInit; f < h.length; f++) {
(0, h[f])(p)
}
for (var v = si(o.calendarOptions, d, p), g = {
dynamicOptionOverrides: n,
currentViewType: i,
currentDate: c,
dateProfile: d,
businessHours: this.parseContextBusinessHours(p),
eventSources: v,
eventUiBases: {},
eventStore: {
defs: {},
instances: {}
},
renderableEventStore: {
defs: {},
instances: {}
},
dateSelection: null,
eventSelection: "",
eventDrag: null,
eventResize: null,
selectionConfig: this.buildViewUiProps(p).selectionConfig
}, m = r(r({}, p), g), y = 0, E = o.pluginHooks.reducers; y < E.length; y++) {
var S = E[y];
r(g, S(null, null, m))
}
Fi(g, p) && this.emitter.trigger("loading", !0), this.state = g, this.updateData(), this.actionRunner.resume()
}
return e.prototype.resetOptions = function(e, t) {
var n = this.props;
n.optionOverrides = t ? r(r({}, n.optionOverrides), e) : e, this.actionRunner.request({
type: "NOTHING"
})
}, e.prototype._handleAction = function(e) {
var t = this,
n = t.props,
o = t.state,
i = t.emitter,
a = function(e, t) {
var n;
switch (t.type) {
case "SET_OPTION":
return r(r({}, e), ((n = {})[t.optionName] = t.rawOptionValue, n));
default:
return e
}
}(o.dynamicOptionOverrides, e),
s = this.computeOptionsData(n.optionOverrides, a, n.calendarApi),
l = function(e, t) {
switch (t.type) {
case "CHANGE_VIEW_TYPE":
e = t.viewType
}
return e
}(o.currentViewType, e),
u = this.computeCurrentViewData(l, s, n.optionOverrides, a);
n.calendarApi.currentDataManager = this, i.setThisContext(n.calendarApi), i.setOptions(u.options);
var c = {
dateEnv: s.dateEnv,
options: s.calendarOptions,
pluginHooks: s.pluginHooks,
calendarApi: n.calendarApi,
dispatch: this.dispatch,
emitter: i,
getCurrentData: this.getCurrentData
},
d = o.currentDate,
p = o.dateProfile;
this.data && this.data.dateProfileGenerator !== u.dateProfileGenerator && (p = u.dateProfileGenerator.build(d)), p = function(e, t, n, r) {
var o;
switch (t.type) {
case "CHANGE_VIEW_TYPE":
return r.build(t.dateMarker || n);
case "CHANGE_DATE":
return r.build(t.dateMarker);
case "PREV":
if ((o = r.buildPrev(e, n)).isValid) return o;
break;
case "NEXT":
if ((o = r.buildNext(e, n)).isValid) return o
}
return e
}(p, e, d = function(e, t) {
switch (t.type) {
case "CHANGE_DATE":
return t.dateMarker;
default:
return e
}
}(d, e), u.dateProfileGenerator), "PREV" !== e.type && "NEXT" !== e.type && Zn(p.currentRange, d) || (d = p.currentRange.start);
for (var f = li(o.eventSources, e, p, c), h = gi(o.eventStore, e, f, p, c), v = ui(f) && !u.options.progressiveEventRendering && o.renderableEventStore || h, g = this.buildViewUiProps(c), m = g.eventUiSingleBase, y = g.selectionConfig, E = this.buildEventUiBySource(f), S = {
dynamicOptionOverrides: a,
currentViewType: l,
currentDate: d,
dateProfile: p,
eventSources: f,
eventStore: h,
renderableEventStore: v,
selectionConfig: y,
eventUiBases: this.buildEventUiBases(v.defs, m, E),
businessHours: this.parseContextBusinessHours(c),
dateSelection: Ei(o.dateSelection, e),
eventSelection: Si(o.eventSelection, e),
eventDrag: bi(o.eventDrag, e),
eventResize: Di(o.eventResize, e)
}, b = r(r({}, c), S), D = 0, C = s.pluginHooks.reducers; D < C.length; D++) {
var w = C[D];
r(S, w(o, e, b))
}
var R = Fi(o, c),
_ = Fi(S, c);
!R && _ ? i.trigger("loading", !0) : R && !_ && i.trigger("loading", !1), this.state = S, n.onAction && n.onAction(e)
}, e.prototype.updateData = function() {
var e, t, n, o, i, a, s, l, u, c = this.props,
d = this.state,
p = this.data,
f = this.computeOptionsData(c.optionOverrides, d.dynamicOptionOverrides, c.calendarApi),
h = this.computeCurrentViewData(d.currentViewType, f, c.optionOverrides, d.dynamicOptionOverrides),
v = this.data = r(r(r({
viewTitle: this.buildTitle(d.dateProfile, h.options, f.dateEnv),
calendarApi: c.calendarApi,
dispatch: this.dispatch,
emitter: this.emitter,
getCurrentData: this.getCurrentData
}, f), h), d),
g = f.pluginHooks.optionChangeHandlers,
m = p && p.calendarOptions,
y = f.calendarOptions;
if (m && m !== y)
for (var E in m.timeZone !== y.timeZone && (d.eventSources = v.eventSources = (a = v.eventSources, s = d.dateProfile, l = v, u = s ? s.activeRange : null, pi(a, hi(a, l), u, !0, l)), d.eventStore = v.eventStore = (e = v.eventStore, t = p.dateEnv, n = v.dateEnv, o = e.defs, i = bt(e.instances, (function(e) {
var i = o[e.defId];
return i.allDay || i.recurringDef ? e : r(r({}, e), {
range: {
start: n.createMarker(t.toDate(e.range.start, e.forcedStartTzo)),
end: n.createMarker(t.toDate(e.range.end, e.forcedEndTzo))
},
forcedStartTzo: n.canComputeOffset ? null : e.forcedStartTzo,
forcedEndTzo: n.canComputeOffset ? null : e.forcedEndTzo
})
})), {
defs: o,
instances: i
})), g) m[E] !== y[E] && g[E](y[E], v);
c.onData && c.onData(v)
}, e.prototype._computeOptionsData = function(e, t, n) {
var r = this.processRawCalendarOptions(e, t),
o = r.refinedOptions,
i = r.pluginHooks,
a = r.localeDefaults,
s = r.availableLocaleData;
zi(r.extra);
var l = this.buildDateEnv(o.timeZone, o.locale, o.weekNumberCalculation, o.firstDay, o.weekText, i, s, o.defaultRangeSeparator),
u = this.buildViewSpecs(i.views, e, t, a),
c = this.buildTheme(o, i);
return {
calendarOptions: o,
pluginHooks: i,
dateEnv: l,
viewSpecs: u,
theme: c,
toolbarConfig: this.parseToolbars(o, e, c, u, n),
localeDefaults: a,
availableRawLocales: s.map
}
}, e.prototype.processRawCalendarOptions = function(e, t) {
var n = gn([cn, e, t]),
o = n.locales,
i = n.locale,
a = this.organizeRawLocales(o),
s = a.map,
l = this.buildLocale(i || a.defaultCode, s).options,
u = this.buildPluginHooks(e.plugins || [], xi),
c = this.currentCalendarOptionsRefiners = r(r(r(r(r({}, un), dn), pn), u.listenerRefiners), u.optionRefiners),
d = {},
p = gn([cn, l, e, t]),
f = {},
h = this.currentCalendarOptionsInput,
v = this.currentCalendarOptionsRefined,
g = !1;
for (var m in p) "plugins" !== m && (p[m] === h[m] || fn[m] && m in h && fn[m](h[m], p[m]) ? f[m] = v[m] : c[m] ? (f[m] = c[m](p[m]), g = !0) : d[m] = h[m]);
return g && (this.currentCalendarOptionsInput = p, this.currentCalendarOptionsRefined = f), {
rawOptions: this.currentCalendarOptionsInput,
refinedOptions: this.currentCalendarOptionsRefined,
pluginHooks: u,
availableLocaleData: a,
localeDefaults: l,
extra: d
}
}, e.prototype._computeCurrentViewData = function(e, t, n, r) {
var o = t.viewSpecs[e];
if (!o) throw new Error('viewType "' + e + "\" is not available. Please make sure you've loaded all neccessary plugins");
var i = this.processRawViewOptions(o, t.pluginHooks, t.localeDefaults, n, r),
a = i.refinedOptions;
return zi(i.extra), {
viewSpec: o,
options: a,
dateProfileGenerator: this.buildDateProfileGenerator({
dateProfileGeneratorClass: o.optionDefaults.dateProfileGeneratorClass,
duration: o.duration,
durationUnit: o.durationUnit,
usesMinMaxTime: o.optionDefaults.usesMinMaxTime,
dateEnv: t.dateEnv,
calendarApi: this.props.calendarApi,
slotMinTime: a.slotMinTime,
slotMaxTime: a.slotMaxTime,
showNonCurrentDates: a.showNonCurrentDates,
dayCount: a.dayCount,
dateAlignment: a.dateAlignment,
dateIncrement: a.dateIncrement,
hiddenDays: a.hiddenDays,
weekends: a.weekends,
nowInput: a.now,
validRangeInput: a.validRange,
visibleRangeInput: a.visibleRange,
monthMode: a.monthMode,
fixedWeekCount: a.fixedWeekCount
}),
viewApi: this.buildViewApi(e, this.getCurrentData, t.dateEnv)
}
}, e.prototype.processRawViewOptions = function(e, t, n, o, i) {
var a = gn([cn, e.optionDefaults, n, o, e.optionOverrides, i]),
s = r(r(r(r(r(r({}, un), dn), pn), vn), t.listenerRefiners), t.optionRefiners),
l = {},
u = this.currentViewOptionsInput,
c = this.currentViewOptionsRefined,
d = !1,
p = {};
for (var f in a) a[f] === u[f] ? l[f] = c[f] : (a[f] === this.currentCalendarOptionsInput[f] ? f in this.currentCalendarOptionsRefined && (l[f] = this.currentCalendarOptionsRefined[f]) : s[f] ? l[f] = s[f](a[f]) : p[f] = a[f], d = !0);
return d && (this.currentViewOptionsInput = a, this.currentViewOptionsRefined = l), {
rawOptions: this.currentViewOptionsInput,
refinedOptions: this.currentViewOptionsRefined,
extra: p
}
}, e
}();
function Hi(e, t, n, r, o, i, a, s) {
var l = Br(t || a.defaultCode, a.map);
return new Lr({
calendarSystem: "gregory",
timeZone: e,
namedTimeZoneImpl: i.namedTimeZonedImpl,
locale: l,
weekNumberCalculation: n,
firstDay: r,
weekText: o,
cmdFormatter: i.cmdFormatter,
defaultSeparator: s
})
}
function Oi(e, t) {
return new(t.themeClasses[e.themeSystem] || Go)(e)
}
function Ai(e) {
return new(e.dateProfileGeneratorClass || ai)(e)
}
function Li(e, t, n) {
return new Cr(e, t, n)
}
function Ui(e) {
return bt(e, (function(e) {
return e.ui
}))
}
function Wi(e, t, n) {
var r = {
"": t
};
for (var o in e) {
var i = e[o];
i.sourceId && n[i.sourceId] && (r[o] = n[i.sourceId])
}
return r
}
function Vi(e) {
var t = e.options;
return {
eventUiSingleBase: kn({
display: t.eventDisplay,
editable: t.editable,
startEditable: t.eventStartEditable,
durationEditable: t.eventDurationEditable,
constraint: t.eventConstraint,
overlap: "boolean" == typeof t.eventOverlap ? t.eventOverlap : void 0,
allow: t.eventAllow,
backgroundColor: t.eventBackgroundColor,
borderColor: t.eventBorderColor,
textColor: t.eventTextColor,
color: t.eventColor
}, e),
selectionConfig: kn({
constraint: t.selectConstraint,
overlap: "boolean" == typeof t.selectOverlap ? t.selectOverlap : void 0,
allow: t.selectAllow
}, e)
}
}
function Fi(e, t) {
for (var n = 0, r = t.pluginHooks.isLoadingFuncs; n < r.length; n++) {
if ((0, r[n])(e)) return !0
}
return !1
}
function Bi(e) {
return Yr(e.options.businessHours, e)
}
function zi(e, t) {
for (var n in e) console.warn("Unknown option '" + n + "'" + (t ? " for view '" + t + "'" : ""))
}
var ji = function(e) {
function t(t) {
var n = e.call(this, t) || this;
return n.handleData = function(e) {
n.dataManager ? n.setState(e) : n.state = e
}, n.dataManager = new Ni({
optionOverrides: t.optionOverrides,
calendarApi: t.calendarApi,
onData: n.handleData
}), n
}
return n(t, e), t.prototype.render = function() {
return this.props.children(this.state)
}, t.prototype.componentDidUpdate = function(e) {
var t = this.props.optionOverrides;
t !== e.optionOverrides && this.dataManager.resetOptions(t)
}, t
}(Ro);
var Gi = function(e) {
this.timeZoneName = e
},
qi = function() {
function e() {
this.strictOrder = !1, this.allowReslicing = !1, this.maxCoord = -1, this.maxStackCnt = -1, this.levelCoords = [], this.entriesByLevel = [], this.stackCnts = {}
}
return e.prototype.addSegs = function(e) {
for (var t = [], n = 0, r = e; n < r.length; n++) {
var o = r[n];
this.insertEntry(o, t)
}
return t
}, e.prototype.insertEntry = function(e, t) {
var n = this.findInsertion(e);
return this.isInsertionValid(n, e) ? (this.insertEntryAt(e, n), 1) : this.handleInvalidInsertion(n, e, t)
}, e.prototype.isInsertionValid = function(e, t) {
return (-1 === this.maxCoord || e.levelCoord + t.thickness <= this.maxCoord) && (-1 === this.maxStackCnt || e.stackCnt < this.maxStackCnt)
}, e.prototype.handleInvalidInsertion = function(e, t, n) {
return this.allowReslicing && e.touchingEntry ? this.splitEntry(t, e.touchingEntry, n) : (n.push(t), 0)
}, e.prototype.splitEntry = function(e, t, n) {
var r = 0,
i = [],
a = e.span,
s = t.span;
return a.start < s.start && (r += this.insertEntry({
index: e.index,
thickness: e.thickness,
span: {
start: a.start,
end: s.start
}
}, i)), a.end > s.end && (r += this.insertEntry({
index: e.index,
thickness: e.thickness,
span: {
start: s.end,
end: a.end
}
}, i)), r ? (n.push.apply(n, o([{
index: e.index,
thickness: e.thickness,
span: $i(s, a)
}], i)), r) : (n.push(e), 0)
}, e.prototype.insertEntryAt = function(e, t) {
var n = this.entriesByLevel,
r = this.levelCoords; - 1 === t.lateral ? (Ji(r, t.level, t.levelCoord), Ji(n, t.level, [e])) : Ji(n[t.level], t.lateral, e), this.stackCnts[Zi(e)] = t.stackCnt
}, e.prototype.findInsertion = function(e) {
for (var t = this, n = t.levelCoords, r = t.entriesByLevel, o = t.strictOrder, i = t.stackCnts, a = n.length, s = 0, l = -1, u = -1, c = null, d = 0, p = 0; p < a; p += 1) {
var f = n[p];
if (!o && f >= s + e.thickness) break;
for (var h = r[p], v = void 0, g = Qi(h, e.span.start, Yi), m = g[0] + g[1];
(v = h[m]) && v.span.start < e.span.end;) {
var y = f + v.thickness;
y > s && (s = y, c = v, l = p, u = m), y === s && (d = Math.max(d, i[Zi(v)] + 1)), m += 1
}
}
var E = 0;
if (c)
for (E = l + 1; E < a && n[E] < s;) E += 1;
var S = -1;
return E < a && n[E] === s && (S = Qi(r[E], e.span.end, Yi)[0]), {
touchingLevel: l,
touchingLateral: u,
touchingEntry: c,
stackCnt: d,
levelCoord: s,
level: E,
lateral: S
}
}, e.prototype.toRects = function() {
for (var e = this.entriesByLevel, t = this.levelCoords, n = e.length, o = [], i = 0; i < n; i += 1)
for (var a = e[i], s = t[i], l = 0, u = a; l < u.length; l++) {
var c = u[l];
o.push(r(r({}, c), {
levelCoord: s
}))
}
return o
}, e
}();
function Yi(e) {
return e.span.end
}
function Zi(e) {
return e.index + ":" + e.span.start
}
function Xi(e) {
for (var t = [], n = 0, r = e; n < r.length; n++) {
for (var o = r[n], i = [], a = {
span: o.span,
entries: [o]
}, s = 0, l = t; s < l.length; s++) {
var u = l[s];
$i(u.span, a.span) ? a = {
entries: u.entries.concat(a.entries),
span: Ki(u.span, a.span)
} : i.push(u)
}
i.push(a), t = i
}
return t
}
function Ki(e, t) {
return {
start: Math.min(e.start, t.start),
end: Math.max(e.end, t.end)
}
}
function $i(e, t) {
var n = Math.max(e.start, t.start),
r = Math.min(e.end, t.end);
return n < r ? {
start: n,
end: r
} : null
}
function Ji(e, t, n) {
e.splice(t, 0, n)
}
function Qi(e, t, n) {
var r = 0,
o = e.length;
if (!o || t < n(e[r])) return [0, 0];
if (t > n(e[o - 1])) return [o, 0];
for (; r < o;) {
var i = Math.floor(r + (o - r) / 2),
a = n(e[i]);
if (t < a) o = i;
else {
if (!(t > a)) return [i, 1];
r = i + 1
}
}
return [r, 0]
}
var ea = function() {
function e(e) {
this.component = e.component, this.isHitComboAllowed = e.isHitComboAllowed || null
}
return e.prototype.destroy = function() {}, e
}();
function ta(e, t) {
return {
component: e,
el: t.el,
useEventCenter: null == t.useEventCenter || t.useEventCenter,
isHitComboAllowed: t.isHitComboAllowed || null
}
}
function na(e) {
var t;
return (t = {})[e.component.uid] = e, t
}
var ra = {},
oa = function() {
function e(e, t) {
this.emitter = new Eo
}
return e.prototype.destroy = function() {}, e.prototype.setMirrorIsVisible = function(e) {}, e.prototype.setMirrorNeedsRevert = function(e) {}, e.prototype.setAutoScrollEnabled = function(e) {}, e
}(),
ia = {},
aa = {
startTime: Nt,
duration: Nt,
create: Boolean,
sourceId: String
};
function sa(e) {
var t = mn(e, aa),
n = t.refined,
r = t.extra;
return {
startTime: n.startTime || null,
duration: n.duration || null,
create: null == n.create || n.create,
sourceId: n.sourceId,
leftoverProps: r
}
}
var la = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props.widgetGroups.map((function(t) {
return e.renderWidgetGroup(t)
}));
return _o.apply(void 0, o(["div", {
className: "fc-toolbar-chunk"
}], t))
}, t.prototype.renderWidgetGroup = function(e) {
for (var t = this.props, n = this.context.theme, r = [], i = !0, a = 0, s = e; a < s.length; a++) {
var l = s[a],
u = l.buttonName,
c = l.buttonClick,
d = l.buttonText,
p = l.buttonIcon,
f = l.buttonHint;
if ("title" === u) i = !1, r.push(_o("h2", {
className: "fc-toolbar-title",
id: t.titleId
}, t.title));
else {
var h = u === t.activeButton,
v = !t.isTodayEnabled && "today" === u || !t.isPrevEnabled && "prev" === u || !t.isNextEnabled && "next" === u,
g = ["fc-" + u + "-button", n.getClass("button")];
h && g.push(n.getClass("buttonActive")), r.push(_o("button", {
type: "button",
title: "function" == typeof f ? f(t.navUnit) : f,
disabled: v,
"aria-pressed": h,
className: g.join(" "),
onClick: c
}, d || (p ? _o("span", {
className: p
}) : "")))
}
}
if (r.length > 1) {
var m = i && n.getClass("buttonGroup") || "";
return _o.apply(void 0, o(["div", {
className: m
}], r))
}
return r[0]
}, t
}(Uo),
ua = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e, t, n = this.props,
r = n.model,
o = n.extraClassName,
i = !1,
a = r.sectionWidgets,
s = a.center;
return a.left ? (i = !0, e = a.left) : e = a.start, a.right ? (i = !0, t = a.right) : t = a.end, _o("div", {
className: [o || "", "fc-toolbar", i ? "fc-toolbar-ltr" : ""].join(" ")
}, this.renderSection("start", e || []), this.renderSection("center", s || []), this.renderSection("end", t || []))
}, t.prototype.renderSection = function(e, t) {
var n = this.props;
return _o(la, {
key: e,
widgetGroups: t,
title: n.title,
navUnit: n.navUnit,
activeButton: n.activeButton,
isTodayEnabled: n.isTodayEnabled,
isPrevEnabled: n.isPrevEnabled,
isNextEnabled: n.isNextEnabled,
titleId: n.titleId
})
}, t
}(Uo),
ca = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.state = {
availableWidth: null
}, t.handleEl = function(e) {
t.el = e, Fo(t.props.elRef, e), t.updateAvailableWidth()
}, t.handleResize = function() {
t.updateAvailableWidth()
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.state,
n = e.aspectRatio,
r = ["fc-view-harness", n || e.liquid || e.height ? "fc-view-harness-active" : "fc-view-harness-passive"],
o = "",
i = "";
return n ? null !== t.availableWidth ? o = t.availableWidth / n : i = 1 / n * 100 + "%" : o = e.height || "", _o("div", {
"aria-labelledby": e.labeledById,
ref: this.handleEl,
className: r.join(" "),
style: {
height: o,
paddingBottom: i
}
}, e.children)
}, t.prototype.componentDidMount = function() {
this.context.addResizeHandler(this.handleResize)
}, t.prototype.componentWillUnmount = function() {
this.context.removeResizeHandler(this.handleResize)
}, t.prototype.updateAvailableWidth = function() {
this.el && this.props.aspectRatio && this.setState({
availableWidth: this.el.offsetWidth
})
}, t
}(Uo),
da = function(e) {
function t(t) {
var n = e.call(this, t) || this;
return n.handleSegClick = function(e, t) {
var r = n.component,
o = r.context,
i = Jn(t);
if (i && r.isValidSegDownEl(e.target)) {
var a = Se(e.target, ".fc-event-forced-url"),
s = a ? a.querySelector("a[href]").href : "";
o.emitter.trigger("eventClick", {
el: t,
event: new xr(r.context, i.eventRange.def, i.eventRange.instance),
jsEvent: e,
view: o.viewApi
}), s && !e.defaultPrevented && (window.location.href = s)
}
}, n.destroy = Ie(t.el, "click", ".fc-event", n.handleSegClick), n
}
return n(t, e), t
}(ea),
pa = function(e) {
function t(t) {
var n, r, o, i, a, s = e.call(this, t) || this;
return s.handleEventElRemove = function(e) {
e === s.currentSegEl && s.handleSegLeave(null, s.currentSegEl)
}, s.handleSegEnter = function(e, t) {
Jn(t) && (s.currentSegEl = t, s.triggerEvent("eventMouseEnter", e, t))
}, s.handleSegLeave = function(e, t) {
s.currentSegEl && (s.currentSegEl = null, s.triggerEvent("eventMouseLeave", e, t))
}, s.removeHoverListeners = (n = t.el, r = ".fc-event", o = s.handleSegEnter, i = s.handleSegLeave, Ie(n, "mouseover", r, (function(e, t) {
if (t !== a) {
a = t, o(e, t);
var n = function(e) {
a = null, i(e, t), t.removeEventListener("mouseleave", n)
};
t.addEventListener("mouseleave", n)
}
}))), s
}
return n(t, e), t.prototype.destroy = function() {
this.removeHoverListeners()
}, t.prototype.triggerEvent = function(e, t, n) {
var r = this.component,
o = r.context,
i = Jn(n);
t && !r.isValidSegDownEl(t.target) || o.emitter.trigger(e, {
el: n,
event: new xr(o, i.eventRange.def, i.eventRange.instance),
jsEvent: t,
view: o.viewApi
})
}, t
}(ea),
fa = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.buildViewContext = qt(Ao), t.buildViewPropTransformers = qt(va), t.buildToolbarProps = qt(ha), t.headerRef = ko(), t.footerRef = ko(), t.interactionsStore = {}, t.state = {
viewLabelId: xe()
}, t.registerInteractiveComponent = function(e, n) {
var r = ta(e, n),
o = [da, pa].concat(t.props.pluginHooks.componentInteractions).map((function(e) {
return new e(r)
}));
t.interactionsStore[e.uid] = o, ra[e.uid] = r
}, t.unregisterInteractiveComponent = function(e) {
for (var n = 0, r = t.interactionsStore[e.uid]; n < r.length; n++) {
r[n].destroy()
}
delete t.interactionsStore[e.uid], delete ra[e.uid]
}, t.resizeRunner = new Mi((function() {
t.props.emitter.trigger("_resize", !0), t.props.emitter.trigger("windowResize", {
view: t.props.viewApi
})
})), t.handleWindowResize = function(e) {
var n = t.props.options;
n.handleWindowResize && e.target === window && t.resizeRunner.request(n.windowResizeDelay)
}, t
}
return n(t, e), t.prototype.render = function() {
var e, t = this.props,
n = t.toolbarConfig,
o = t.options,
i = this.buildToolbarProps(t.viewSpec, t.dateProfile, t.dateProfileGenerator, t.currentDate, Tr(t.options.now, t.dateEnv), t.viewTitle),
a = !1,
s = "";
t.isHeightAuto || t.forPrint ? s = "" : null != o.height ? a = !0 : null != o.contentHeight ? s = o.contentHeight : e = Math.max(o.aspectRatio, .5);
var l = this.buildViewContext(t.viewSpec, t.viewApi, t.options, t.dateProfileGenerator, t.dateEnv, t.theme, t.pluginHooks, t.dispatch, t.getCurrentData, t.emitter, t.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent),
u = n.header && n.header.hasTitle ? this.state.viewLabelId : "";
return _o(Oo.Provider, {
value: l
}, n.header && _o(ua, r({
ref: this.headerRef,
extraClassName: "fc-header-toolbar",
model: n.header,
titleId: u
}, i)), _o(ca, {
liquid: a,
height: s,
aspectRatio: e,
labeledById: u
}, this.renderView(t), this.buildAppendContent()), n.footer && _o(ua, r({
ref: this.footerRef,
extraClassName: "fc-footer-toolbar",
model: n.footer,
titleId: ""
}, i)))
}, t.prototype.componentDidMount = function() {
var e = this.props;
this.calendarInteractions = e.pluginHooks.calendarInteractions.map((function(t) {
return new t(e)
})), window.addEventListener("resize", this.handleWindowResize);
var t = e.pluginHooks.propSetHandlers;
for (var n in t) t[n](e[n], e)
}, t.prototype.componentDidUpdate = function(e) {
var t = this.props,
n = t.pluginHooks.propSetHandlers;
for (var r in n) t[r] !== e[r] && n[r](t[r], t)
}, t.prototype.componentWillUnmount = function() {
window.removeEventListener("resize", this.handleWindowResize), this.resizeRunner.clear();
for (var e = 0, t = this.calendarInteractions; e < t.length; e++) {
t[e].destroy()
}
this.props.emitter.trigger("_unmount")
}, t.prototype.buildAppendContent = function() {
var e = this.props,
t = e.pluginHooks.viewContainerAppends.map((function(t) {
return t(e)
}));
return _o.apply(void 0, o([xo, {}], t))
}, t.prototype.renderView = function(e) {
for (var t = e.pluginHooks, n = e.viewSpec, o = {
dateProfile: e.dateProfile,
businessHours: e.businessHours,
eventStore: e.renderableEventStore,
eventUiBases: e.eventUiBases,
dateSelection: e.dateSelection,
eventSelection: e.eventSelection,
eventDrag: e.eventDrag,
eventResize: e.eventResize,
isHeightAuto: e.isHeightAuto,
forPrint: e.forPrint
}, i = 0, a = this.buildViewPropTransformers(t.viewPropsTransformers); i < a.length; i++) {
var s = a[i];
r(o, s.transform(o, e))
}
var l = n.component;
return _o(l, r({}, o))
}, t
}(Lo);
function ha(e, t, n, r, o, i) {
var a = n.build(o, void 0, !1),
s = n.buildPrev(t, r, !1),
l = n.buildNext(t, r, !1);
return {
title: i,
activeButton: e.type,
navUnit: e.singleUnit,
isTodayEnabled: a.isValid && !Zn(t.currentRange, o),
isPrevEnabled: s.isValid,
isNextEnabled: l.isValid
}
}
function va(e) {
return e.map((function(e) {
return new e
}))
}
var ga = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.state = {
forPrint: !1
}, t.handleBeforePrint = function() {
t.setState({
forPrint: !0
})
}, t.handleAfterPrint = function() {
t.setState({
forPrint: !1
})
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = e.options,
n = this.state.forPrint,
r = n || "auto" === t.height || "auto" === t.contentHeight,
o = r || null == t.height ? "" : t.height,
i = ["fc", n ? "fc-media-print" : "fc-media-screen", "fc-direction-" + t.direction, e.theme.getClass("root")];
return Qr() || i.push("fc-liquid-hack"), e.children(i, o, r, n)
}, t.prototype.componentDidMount = function() {
var e = this.props.emitter;
e.on("_beforeprint", this.handleBeforePrint), e.on("_afterprint", this.handleAfterPrint)
}, t.prototype.componentWillUnmount = function() {
var e = this.props.emitter;
e.off("_beforeprint", this.handleBeforePrint), e.off("_afterprint", this.handleAfterPrint)
}, t
}(Uo);
function ma(e, t) {
return ln(!e || t > 10 ? {
weekday: "short"
} : t > 1 ? {
weekday: "short",
month: "numeric",
day: "numeric",
omitCommas: !0
} : {
weekday: "long"
})
}
var ya = "fc-col-header-cell";
function Ea(e) {
return e.text
}
var Sa = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.context,
t = e.dateEnv,
n = e.options,
o = e.theme,
i = e.viewApi,
a = this.props,
s = a.date,
l = a.dateProfile,
u = ro(s, a.todayRange, null, l),
c = [ya].concat(oo(u, o)),
d = t.format(s, a.dayHeaderFormat),
p = !u.isDisabled && a.colCnt > 1 ? so(this.context, s) : {},
f = r(r(r({
date: t.toDate(s),
view: i
}, a.extraHookProps), {
text: d
}), u);
return _o(Yo, {
hookProps: f,
classNames: n.dayHeaderClassNames,
content: n.dayHeaderContent,
defaultContent: Ea,
didMount: n.dayHeaderDidMount,
willUnmount: n.dayHeaderWillUnmount
}, (function(e, t, n, o) {
return _o("th", r({
ref: e,
role: "columnheader",
className: c.concat(t).join(" "),
"data-date": u.isDisabled ? void 0 : Bt(s),
colSpan: a.colSpan
}, a.extraDataAttrs), _o("div", {
className: "fc-scrollgrid-sync-inner"
}, !u.isDisabled && _o("a", r({
ref: n,
className: ["fc-col-header-cell-cushion", a.isSticky ? "fc-sticky" : ""].join(" ")
}, p), o)))
}))
}, t
}(Uo),
ba = ln({
weekday: "long"
}),
Da = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = t.dateEnv,
o = t.theme,
i = t.viewApi,
a = t.options,
s = tt(new Date(2592e5), e.dow),
l = {
dow: e.dow,
isDisabled: !1,
isFuture: !1,
isPast: !1,
isToday: !1,
isOther: !1
},
u = [ya].concat(oo(l, o), e.extraClassNames || []),
c = n.format(s, e.dayHeaderFormat),
d = r(r(r(r({
date: s
}, l), {
view: i
}), e.extraHookProps), {
text: c
});
return _o(Yo, {
hookProps: d,
classNames: a.dayHeaderClassNames,
content: a.dayHeaderContent,
defaultContent: Ea,
didMount: a.dayHeaderDidMount,
willUnmount: a.dayHeaderWillUnmount
}, (function(t, o, i, a) {
return _o("th", r({
ref: t,
role: "columnheader",
className: u.concat(o).join(" "),
colSpan: e.colSpan
}, e.extraDataAttrs), _o("div", {
className: "fc-scrollgrid-sync-inner"
}, _o("a", {
"aria-label": n.format(s, ba),
className: ["fc-col-header-cell-cushion", e.isSticky ? "fc-sticky" : ""].join(" "),
ref: i
}, a)))
}))
}, t
}(Uo),
Ca = function(e) {
function t(t, n) {
var r = e.call(this, t, n) || this;
return r.initialNowDate = Tr(n.options.now, n.dateEnv), r.initialNowQueriedMs = (new Date).valueOf(), r.state = r.computeTiming().currentState, r
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.state;
return e.children(t.nowDate, t.todayRange)
}, t.prototype.componentDidMount = function() {
this.setTimeout()
}, t.prototype.componentDidUpdate = function(e) {
e.unit !== this.props.unit && (this.clearTimeout(), this.setTimeout())
}, t.prototype.componentWillUnmount = function() {
this.clearTimeout()
}, t.prototype.computeTiming = function() {
var e = this.props,
t = this.context,
n = nt(this.initialNowDate, (new Date).valueOf() - this.initialNowQueriedMs),
r = t.dateEnv.startOf(n, e.unit),
o = t.dateEnv.add(r, Nt(1, e.unit)),
i = o.valueOf() - n.valueOf();
return i = Math.min(864e5, i), {
currentState: {
nowDate: r,
todayRange: wa(r)
},
nextState: {
nowDate: o,
todayRange: wa(o)
},
waitMs: i
}
}, t.prototype.setTimeout = function() {
var e = this,
t = this.computeTiming(),
n = t.nextState,
r = t.waitMs;
this.timeoutId = setTimeout((function() {
e.setState(n, (function() {
e.setTimeout()
}))
}), r)
}, t.prototype.clearTimeout = function() {
this.timeoutId && clearTimeout(this.timeoutId)
}, t.contextType = Oo, t
}(Ro);
function wa(e) {
var t = lt(e);
return {
start: t,
end: tt(t, 1)
}
}
var Ra = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.createDayHeaderFormatter = qt(_a), t
}
return n(t, e), t.prototype.render = function() {
var e = this.context,
t = this.props,
n = t.dates,
r = t.dateProfile,
o = t.datesRepDistinctDays,
i = t.renderIntro,
a = this.createDayHeaderFormatter(e.options.dayHeaderFormat, o, n.length);
return _o(Ca, {
unit: "day"
}, (function(e, t) {
return _o("tr", {
role: "row"
}, i && i("day"), n.map((function(e) {
return o ? _o(Sa, {
key: e.toISOString(),
date: e,
dateProfile: r,
todayRange: t,
colCnt: n.length,
dayHeaderFormat: a
}) : _o(Da, {
key: e.getUTCDay(),
dow: e.getUTCDay(),
dayHeaderFormat: a
})
})))
}))
}, t
}(Uo);
function _a(e, t, n) {
return e || ma(t, n)
}
var Ta = function() {
function e(e, t) {
for (var n = e.start, r = e.end, o = [], i = [], a = -1; n < r;) t.isHiddenDay(n) ? o.push(a + .5) : (a += 1, o.push(a), i.push(n)), n = tt(n, 1);
this.dates = i, this.indices = o, this.cnt = i.length
}
return e.prototype.sliceRange = function(e) {
var t = this.getDateDayIndex(e.start),
n = this.getDateDayIndex(tt(e.end, -1)),
r = Math.max(0, t),
o = Math.min(this.cnt - 1, n);
return (r = Math.ceil(r)) <= (o = Math.floor(o)) ? {
firstIndex: r,
lastIndex: o,
isStart: t === r,
isEnd: n === o
} : null
}, e.prototype.getDateDayIndex = function(e) {
var t = this.indices,
n = Math.floor(ot(this.dates[0], e));
return n < 0 ? t[0] - 1 : n >= t.length ? t[t.length - 1] + 1 : t[n]
}, e
}(),
ka = function() {
function e(e, t) {
var n, r, o, i = e.dates;
if (t) {
for (r = i[0].getUTCDay(), n = 1; n < i.length && i[n].getUTCDay() !== r; n += 1);
o = Math.ceil(i.length / n)
} else o = 1, n = i.length;
this.rowCnt = o, this.colCnt = n, this.daySeries = e, this.cells = this.buildCells(), this.headerDates = this.buildHeaderDates()
}
return e.prototype.buildCells = function() {
for (var e = [], t = 0; t < this.rowCnt; t += 1) {
for (var n = [], r = 0; r < this.colCnt; r += 1) n.push(this.buildCell(t, r));
e.push(n)
}
return e
}, e.prototype.buildCell = function(e, t) {
var n = this.daySeries.dates[e * this.colCnt + t];
return {
key: n.toISOString(),
date: n
}
}, e.prototype.buildHeaderDates = function() {
for (var e = [], t = 0; t < this.colCnt; t += 1) e.push(this.cells[0][t].date);
return e
}, e.prototype.sliceRange = function(e) {
var t = this.colCnt,
n = this.daySeries.sliceRange(e),
r = [];
if (n)
for (var o = n.firstIndex, i = n.lastIndex, a = o; a <= i;) {
var s = Math.floor(a / t),
l = Math.min((s + 1) * t, i + 1);
r.push({
row: s,
firstCol: a % t,
lastCol: (l - 1) % t,
isStart: n.isStart && a === o,
isEnd: n.isEnd && l - 1 === i
}), a = l
}
return r
}, e
}(),
xa = function() {
function e() {
this.sliceBusinessHours = qt(this._sliceBusinessHours), this.sliceDateSelection = qt(this._sliceDateSpan), this.sliceEventStore = qt(this._sliceEventStore), this.sliceEventDrag = qt(this._sliceInteraction), this.sliceEventResize = qt(this._sliceInteraction), this.forceDayIfListItem = !1
}
return e.prototype.sliceProps = function(e, t, n, r) {
for (var i = [], a = 4; a < arguments.length; a++) i[a - 4] = arguments[a];
var s = e.eventUiBases,
l = this.sliceEventStore.apply(this, o([e.eventStore, s, t, n], i));
return {
dateSelectionSegs: this.sliceDateSelection.apply(this, o([e.dateSelection, s, r], i)),
businessHourSegs: this.sliceBusinessHours.apply(this, o([e.businessHours, t, n, r], i)),
fgEventSegs: l.fg,
bgEventSegs: l.bg,
eventDrag: this.sliceEventDrag.apply(this, o([e.eventDrag, s, t, n], i)),
eventResize: this.sliceEventResize.apply(this, o([e.eventResize, s, t, n], i)),
eventSelection: e.eventSelection
}
}, e.prototype.sliceNowDate = function(e, t) {
for (var n = [], r = 2; r < arguments.length; r++) n[r - 2] = arguments[r];
return this._sliceDateSpan.apply(this, o([{
range: {
start: e,
end: nt(e, 1)
},
allDay: !1
}, {}, t], n))
}, e.prototype._sliceBusinessHours = function(e, t, n, r) {
for (var i = [], a = 4; a < arguments.length; a++) i[a - 4] = arguments[a];
return e ? this._sliceEventStore.apply(this, o([xt(e, Ma(t, Boolean(n)), r), {}, t, n], i)).bg : []
}, e.prototype._sliceEventStore = function(e, t, n, r) {
for (var o = [], i = 4; i < arguments.length; i++) o[i - 4] = arguments[i];
if (e) {
var a = Xn(e, t, Ma(n, Boolean(r)), r);
return {
bg: this.sliceEventRanges(a.bg, o),
fg: this.sliceEventRanges(a.fg, o)
}
}
return {
bg: [],
fg: []
}
}, e.prototype._sliceInteraction = function(e, t, n, r) {
for (var o = [], i = 4; i < arguments.length; i++) o[i - 4] = arguments[i];
if (!e) return null;
var a = Xn(e.mutatedEvents, t, Ma(n, Boolean(r)), r);
return {
segs: this.sliceEventRanges(a.fg, o),
affectedInstances: e.affectedEvents.instances,
isEvent: e.isEvent
}
}, e.prototype._sliceDateSpan = function(e, t, n) {
for (var r = [], i = 3; i < arguments.length; i++) r[i - 3] = arguments[i];
if (!e) return [];
for (var a = gr(e, t, n), s = this.sliceRange.apply(this, o([e.range], r)), l = 0, u = s; l < u.length; l++) {
var c = u[l];
c.eventRange = a
}
return s
}, e.prototype.sliceEventRanges = function(e, t) {
for (var n = [], r = 0, o = e; r < o.length; r++) {
var i = o[r];
n.push.apply(n, this.sliceEventRange(i, t))
}
return n
}, e.prototype.sliceEventRange = function(e, t) {
var n = e.range;
this.forceDayIfListItem && "list-item" === e.ui.display && (n = {
start: n.start,
end: tt(n.start, 1)
});
for (var r = this.sliceRange.apply(this, o([n], t)), i = 0, a = r; i < a.length; i++) {
var s = a[i];
s.eventRange = e, s.isStart = e.isStart && s.isStart, s.isEnd = e.isEnd && s.isEnd
}
return r
}, e
}();
function Ma(e, t) {
var n = e.activeRange;
return t ? n : {
start: nt(n.start, e.slotMinTime.milliseconds),
end: nt(n.end, e.slotMaxTime.milliseconds - 864e5)
}
}
function Ia(e, t, n) {
var r = e.mutatedEvents.instances;
for (var o in r)
if (!Yn(t.validRange, r[o].range)) return !1;
return Na({
eventDrag: e
}, n)
}
function Pa(e, t, n) {
return !!Yn(t.validRange, e.range) && Na({
dateSelection: e
}, n)
}
function Na(e, t) {
var n = t.getCurrentData(),
o = r({
businessHours: n.businessHours,
dateSelection: "",
eventStore: n.eventStore,
eventUiBases: n.eventUiBases,
eventSelection: "",
eventDrag: null,
eventResize: null
}, e);
return (t.pluginHooks.isPropsValid || Ha)(o, t)
}
function Ha(e, t, n, o) {
return void 0 === n && (n = {}), !(e.eventDrag && ! function(e, t, n, o) {
var i = t.getCurrentData(),
a = e.eventDrag,
s = a.mutatedEvents,
l = s.defs,
u = s.instances,
c = Qn(l, a.isEvent ? e.eventUiBases : {
"": i.selectionConfig
});
o && (c = bt(c, o));
var d = (v = e.eventStore, g = a.affectedEvents.instances, {
defs: v.defs,
instances: St(v.instances, (function(e) {
return !g[e.instanceId]
}))
}),
p = d.defs,
f = d.instances,
h = Qn(p, e.eventUiBases);
var v, g;
for (var m in u) {
var y = u[m],
E = y.range,
S = c[y.defId],
b = l[y.defId];
if (!Oa(S.constraints, E, d, e.businessHours, t)) return !1;
var D = t.options.eventOverlap,
C = "function" == typeof D ? D : null;
for (var w in f) {
var R = f[w];
if (qn(E, R.range)) {
if (!1 === h[R.defId].overlap && a.isEvent) return !1;
if (!1 === S.overlap) return !1;
if (C && !C(new xr(t, p[R.defId], R), new xr(t, b, y))) return !1
}
}
for (var _ = i.eventStore, T = 0, k = S.allows; T < k.length; T++) {
var x = k[T],
M = r(r({}, n), {
range: y.range,
allDay: b.allDay
}),
I = _.defs[b.defId],
P = _.instances[m],
N = void 0;
if (N = I ? new xr(t, I, P) : new xr(t, b), !x(yr(M, t), N)) return !1
}
}
return !0
}(e, t, n, o)) && !(e.dateSelection && ! function(e, t, n, o) {
var i = e.eventStore,
a = i.defs,
s = i.instances,
l = e.dateSelection,
u = l.range,
c = t.getCurrentData().selectionConfig;
o && (c = o(c));
if (!Oa(c.constraints, u, i, e.businessHours, t)) return !1;
var d = t.options.selectOverlap,
p = "function" == typeof d ? d : null;
for (var f in s) {
var h = s[f];
if (qn(u, h.range)) {
if (!1 === c.overlap) return !1;
if (p && !p(new xr(t, a[h.defId], h), null)) return !1
}
}
for (var v = 0, g = c.allows; v < g.length; v++) {
if (!(0, g[v])(yr(r(r({}, n), l), t), null)) return !1
}
return !0
}(e, t, n, o))
}
function Oa(e, t, n, r, o) {
for (var i = 0, a = e; i < a.length; i++) {
if (!Ua(Aa(a[i], t, n, r, o), t)) return !1
}
return !0
}
function Aa(e, t, n, r, o) {
return "businessHours" === e ? La(xt(r, t, o)) : "string" == typeof e ? La(wn(n, (function(t) {
return t.groupId === e
}))) : "object" == typeof e && e ? La(xt(e, t, o)) : []
}
function La(e) {
var t = e.instances,
n = [];
for (var r in t) n.push(t[r].range);
return n
}
function Ua(e, t) {
for (var n = 0, r = e; n < r.length; n++) {
if (Yn(r[n], t)) return !0
}
return !1
}
var Wa = /^(visible|hidden)$/,
Va = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.handleEl = function(e) {
t.el = e, Fo(t.props.elRef, e)
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = e.liquid,
n = e.liquidIsAbsolute,
r = t && n,
o = ["fc-scroller"];
return t && (n ? o.push("fc-scroller-liquid-absolute") : o.push("fc-scroller-liquid")), _o("div", {
ref: this.handleEl,
className: o.join(" "),
style: {
overflowX: e.overflowX,
overflowY: e.overflowY,
left: r && -(e.overcomeLeft || 0) || "",
right: r && -(e.overcomeRight || 0) || "",
bottom: r && -(e.overcomeBottom || 0) || "",
marginLeft: !r && -(e.overcomeLeft || 0) || "",
marginRight: !r && -(e.overcomeRight || 0) || "",
marginBottom: !r && -(e.overcomeBottom || 0) || "",
maxHeight: e.maxHeight || ""
}
}, e.children)
}, t.prototype.needsXScrolling = function() {
if (Wa.test(this.props.overflowX)) return !1;
for (var e = this.el, t = this.el.getBoundingClientRect().width - this.getYScrollbarWidth(), n = e.children, r = 0; r < n.length; r += 1) {
if (n[r].getBoundingClientRect().width > t) return !0
}
return !1
}, t.prototype.needsYScrolling = function() {
if (Wa.test(this.props.overflowY)) return !1;
for (var e = this.el, t = this.el.getBoundingClientRect().height - this.getXScrollbarWidth(), n = e.children, r = 0; r < n.length; r += 1) {
if (n[r].getBoundingClientRect().height > t) return !0
}
return !1
}, t.prototype.getXScrollbarWidth = function() {
return Wa.test(this.props.overflowX) ? 0 : this.el.offsetHeight - this.el.clientHeight
}, t.prototype.getYScrollbarWidth = function() {
return Wa.test(this.props.overflowY) ? 0 : this.el.offsetWidth - this.el.clientWidth
}, t
}(Uo),
Fa = function() {
function e(e) {
var t = this;
this.masterCallback = e, this.currentMap = {}, this.depths = {}, this.callbackMap = {}, this.handleValue = function(e, n) {
var r = t,
o = r.depths,
i = r.currentMap,
a = !1,
s = !1;
null !== e ? (a = n in i, i[n] = e, o[n] = (o[n] || 0) + 1, s = !0) : (o[n] -= 1, o[n] || (delete i[n], delete t.callbackMap[n], a = !0)), t.masterCallback && (a && t.masterCallback(null, String(n)), s && t.masterCallback(e, String(n)))
}
}
return e.prototype.createRef = function(e) {
var t = this,
n = this.callbackMap[e];
return n || (n = this.callbackMap[e] = function(n) {
t.handleValue(n, String(e))
}), n
}, e.prototype.collect = function(e, t, n) {
return kt(this.currentMap, e, t, n)
}, e.prototype.getAll = function() {
return Ct(this.currentMap)
}, e
}();
function Ba(e) {
for (var t = 0, n = 0, r = De(e, ".fc-scrollgrid-shrink"); n < r.length; n++) {
var o = r[n];
t = Math.max(t, Je(o))
}
return Math.ceil(t)
}
function za(e, t) {
return e.liquid && t.liquid
}
function ja(e, t) {
return null != t.maxHeight || za(e, t)
}
function Ga(e, t, n, r) {
var o = n.expandRows;
return "function" == typeof t.content ? t.content(n) : _o("table", {
role: "presentation",
className: [t.tableClassName, e.syncRowHeights ? "fc-scrollgrid-sync-table" : ""].join(" "),
style: {
minWidth: n.tableMinWidth,
width: n.clientWidth,
height: o ? n.clientHeight : ""
}
}, n.tableColGroupNode, _o(r ? "thead" : "tbody", {
role: "presentation"
}, "function" == typeof t.rowContent ? t.rowContent(n) : t.rowContent))
}
function qa(e, t) {
return Gt(e, t, wt)
}
function Ya(e, t) {
for (var n = [], r = 0, i = e; r < i.length; r++)
for (var a = i[r], s = a.span || 1, l = 0; l < s; l += 1) n.push(_o("col", {
style: {
width: "shrink" === a.width ? Za(t) : a.width || "",
minWidth: a.minWidth || ""
}
}));
return _o.apply(void 0, o(["colgroup", {}], n))
}
function Za(e) {
return null == e ? 4 : e
}
function Xa(e) {
for (var t = 0, n = e; t < n.length; t++) {
if ("shrink" === n[t].width) return !0
}
return !1
}
function Ka(e, t) {
var n = ["fc-scrollgrid", t.theme.getClass("table")];
return e && n.push("fc-scrollgrid-liquid"), n
}
function $a(e, t) {
var n = ["fc-scrollgrid-section", "fc-scrollgrid-section-" + e.type, e.className];
return t && e.liquid && null == e.maxHeight && n.push("fc-scrollgrid-section-liquid"), e.isSticky && n.push("fc-scrollgrid-section-sticky"), n
}
function Ja(e) {
return _o("div", {
className: "fc-scrollgrid-sticky-shim",
style: {
width: e.clientWidth,
minWidth: e.tableMinWidth
}
})
}
function Qa(e) {
var t = e.stickyHeaderDates;
return null != t && "auto" !== t || (t = "auto" === e.height || "auto" === e.viewHeight), t
}
function es(e) {
var t = e.stickyFooterScrollbar;
return null != t && "auto" !== t || (t = "auto" === e.height || "auto" === e.viewHeight), t
}
var ts = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.processCols = qt((function(e) {
return e
}), qa), t.renderMicroColGroup = qt(Ya), t.scrollerRefs = new Fa, t.scrollerElRefs = new Fa(t._handleScrollerEl.bind(t)), t.state = {
shrinkWidth: null,
forceYScrollbars: !1,
scrollerClientWidths: {},
scrollerClientHeights: {}
}, t.handleSizing = function() {
t.setState(r({
shrinkWidth: t.computeShrinkWidth()
}, t.computeScrollerDims()))
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = e.props,
n = e.state,
r = e.context,
i = t.sections || [],
a = this.processCols(t.cols),
s = this.renderMicroColGroup(a, n.shrinkWidth),
l = Ka(t.liquid, r);
t.collapsibleWidth && l.push("fc-scrollgrid-collapsible");
for (var u, c = i.length, d = 0, p = [], f = [], h = []; d < c && "header" === (u = i[d]).type;) p.push(this.renderSection(u, s, !0)), d += 1;
for (; d < c && "body" === (u = i[d]).type;) f.push(this.renderSection(u, s, !1)), d += 1;
for (; d < c && "footer" === (u = i[d]).type;) h.push(this.renderSection(u, s, !0)), d += 1;
var v = !Qr(),
g = {
role: "rowgroup"
};
return _o("table", {
role: "grid",
className: l.join(" "),
style: {
height: t.height
}
}, Boolean(!v && p.length) && _o.apply(void 0, o(["thead", g], p)), Boolean(!v && f.length) && _o.apply(void 0, o(["tbody", g], f)), Boolean(!v && h.length) && _o.apply(void 0, o(["tfoot", g], h)), v && _o.apply(void 0, o(o(o(["tbody", g], p), f), h)))
}, t.prototype.renderSection = function(e, t, n) {
return "outerContent" in e ? _o(xo, {
key: e.key
}, e.outerContent) : _o("tr", {
key: e.key,
role: "presentation",
className: $a(e, this.props.liquid).join(" ")
}, this.renderChunkTd(e, t, e.chunk, n))
}, t.prototype.renderChunkTd = function(e, t, n, r) {
if ("outerContent" in n) return n.outerContent;
var o = this.props,
i = this.state,
a = i.forceYScrollbars,
s = i.scrollerClientWidths,
l = i.scrollerClientHeights,
u = ja(o, e),
c = za(o, e),
d = o.liquid ? a ? "scroll" : u ? "auto" : "hidden" : "visible",
p = e.key,
f = Ga(e, n, {
tableColGroupNode: t,
tableMinWidth: "",
clientWidth: o.collapsibleWidth || void 0 === s[p] ? null : s[p],
clientHeight: void 0 !== l[p] ? l[p] : null,
expandRows: e.expandRows,
syncRowHeights: !1,
rowSyncHeights: [],
reportRowHeightChange: function() {}
}, r);
return _o(r ? "th" : "td", {
ref: n.elRef,
role: "presentation"
}, _o("div", {
className: "fc-scroller-harness" + (c ? " fc-scroller-harness-liquid" : "")
}, _o(Va, {
ref: this.scrollerRefs.createRef(p),
elRef: this.scrollerElRefs.createRef(p),
overflowY: d,
overflowX: o.liquid ? "hidden" : "visible",
maxHeight: e.maxHeight,
liquid: c,
liquidIsAbsolute: !0
}, f)))
}, t.prototype._handleScrollerEl = function(e, t) {
var n = function(e, t) {
for (var n = 0, r = e; n < r.length; n++) {
var o = r[n];
if (o.key === t) return o
}
return null
}(this.props.sections, t);
n && Fo(n.chunk.scrollerElRef, e)
}, t.prototype.componentDidMount = function() {
this.handleSizing(), this.context.addResizeHandler(this.handleSizing)
}, t.prototype.componentDidUpdate = function() {
this.handleSizing()
}, t.prototype.componentWillUnmount = function() {
this.context.removeResizeHandler(this.handleSizing)
}, t.prototype.computeShrinkWidth = function() {
return Xa(this.props.cols) ? Ba(this.scrollerElRefs.getAll()) : 0
}, t.prototype.computeScrollerDims = function() {
var e = po(),
t = this.scrollerRefs,
n = this.scrollerElRefs,
r = !1,
o = {},
i = {};
for (var a in t.currentMap) {
var s = t.currentMap[a];
if (s && s.needsYScrolling()) {
r = !0;
break
}
}
for (var l = 0, u = this.props.sections; l < u.length; l++) {
a = u[l].key;
var c = n.currentMap[a];
if (c) {
var d = c.parentNode;
o[a] = Math.floor(d.getBoundingClientRect().width - (r ? e.y : 0)), i[a] = Math.floor(d.getBoundingClientRect().height)
}
}
return {
forceYScrollbars: r,
scrollerClientWidths: o,
scrollerClientHeights: i
}
}, t
}(Uo);
ts.addStateEquality({
scrollerClientWidths: wt,
scrollerClientHeights: wt
});
var ns = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.elRef = ko(), t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = t.options,
r = e.seg,
o = r.eventRange,
i = o.ui,
a = {
event: new xr(t, o.def, o.instance),
view: t.viewApi,
timeText: e.timeText,
textColor: i.textColor,
backgroundColor: i.backgroundColor,
borderColor: i.borderColor,
isDraggable: !e.disableDragging && rr(r, t),
isStartResizable: !e.disableResizing && or(r, t),
isEndResizable: !e.disableResizing && ir(r),
isMirror: Boolean(e.isDragging || e.isResizing || e.isDateSelecting),
isStart: Boolean(r.isStart),
isEnd: Boolean(r.isEnd),
isPast: Boolean(e.isPast),
isFuture: Boolean(e.isFuture),
isToday: Boolean(e.isToday),
isSelected: Boolean(e.isSelected),
isDragging: Boolean(e.isDragging),
isResizing: Boolean(e.isResizing)
},
s = lr(a).concat(i.classNames);
return _o(Yo, {
hookProps: a,
classNames: n.eventClassNames,
content: n.eventContent,
defaultContent: e.defaultContent,
didMount: n.eventDidMount,
willUnmount: n.eventWillUnmount,
elRef: this.elRef
}, (function(t, n, r, o) {
return e.children(t, s.concat(n), r, o, a)
}))
}, t.prototype.componentDidMount = function() {
$n(this.elRef.current, this.props.seg)
}, t.prototype.componentDidUpdate = function(e) {
var t = this.props.seg;
t !== e.seg && $n(this.elRef.current, t)
}, t
}(Uo),
rs = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = e.seg,
o = t.options.eventTimeFormat || e.defaultTimeFormat,
i = ar(n, o, t, e.defaultDisplayEventTime, e.defaultDisplayEventEnd);
return _o(ns, {
seg: n,
timeText: i,
disableDragging: e.disableDragging,
disableResizing: e.disableResizing,
defaultContent: e.defaultContent || os,
isDragging: e.isDragging,
isResizing: e.isResizing,
isDateSelecting: e.isDateSelecting,
isSelected: e.isSelected,
isPast: e.isPast,
isFuture: e.isFuture,
isToday: e.isToday
}, (function(o, i, a, s, l) {
return _o("a", r({
className: e.extraClassNames.concat(i).join(" "),
style: {
borderColor: l.borderColor,
backgroundColor: l.backgroundColor
},
ref: o
}, cr(n, t)), _o("div", {
className: "fc-event-main",
ref: a,
style: {
color: l.textColor
}
}, s), l.isStartResizable && _o("div", {
className: "fc-event-resizer fc-event-resizer-start"
}), l.isEndResizable && _o("div", {
className: "fc-event-resizer fc-event-resizer-end"
}))
}))
}, t
}(Uo);
function os(e) {
return _o("div", {
className: "fc-event-main-frame"
}, e.timeText && _o("div", {
className: "fc-event-time"
}, e.timeText), _o("div", {
className: "fc-event-title-container"
}, _o("div", {
className: "fc-event-title fc-sticky"
}, e.event.title || _o(xo, null, " "))))
}
var is = function(e) {
return _o(Oo.Consumer, null, (function(t) {
var n = t.options,
r = {
isAxis: e.isAxis,
date: t.dateEnv.toDate(e.date),
view: t.viewApi
};
return _o(Yo, {
hookProps: r,
classNames: n.nowIndicatorClassNames,
content: n.nowIndicatorContent,
didMount: n.nowIndicatorDidMount,
willUnmount: n.nowIndicatorWillUnmount
}, e.children)
}))
},
as = ln({
day: "numeric"
}),
ss = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = t.options,
r = ls({
date: e.date,
dateProfile: e.dateProfile,
todayRange: e.todayRange,
showDayNumber: e.showDayNumber,
extraProps: e.extraHookProps,
viewApi: t.viewApi,
dateEnv: t.dateEnv
});
return _o(Xo, {
hookProps: r,
content: n.dayCellContent,
defaultContent: e.defaultContent
}, e.children)
}, t
}(Uo);
function ls(e) {
var t = e.date,
n = e.dateEnv,
o = ro(t, e.todayRange, null, e.dateProfile);
return r(r(r({
date: n.toDate(t),
view: e.viewApi
}, o), {
dayNumberText: e.showDayNumber ? n.format(t, as) : ""
}), e.extraProps)
}
var us = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.refineHookProps = Yt(ls), t.normalizeClassNames = Jo(), t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = t.options,
r = this.refineHookProps({
date: e.date,
dateProfile: e.dateProfile,
todayRange: e.todayRange,
showDayNumber: e.showDayNumber,
extraProps: e.extraHookProps,
viewApi: t.viewApi,
dateEnv: t.dateEnv
}),
o = oo(r, t.theme).concat(r.isDisabled ? [] : this.normalizeClassNames(n.dayCellClassNames, r)),
i = r.isDisabled ? {} : {
"data-date": Bt(e.date)
};
return _o($o, {
hookProps: r,
didMount: n.dayCellDidMount,
willUnmount: n.dayCellWillUnmount,
elRef: e.elRef
}, (function(t) {
return e.children(t, o, i, r.isDisabled)
}))
}, t
}(Uo);
function cs(e) {
return _o("div", {
className: "fc-" + e
})
}
var ds = function(e) {
return _o(ns, {
defaultContent: ps,
seg: e.seg,
timeText: "",
disableDragging: !0,
disableResizing: !0,
isDragging: !1,
isResizing: !1,
isDateSelecting: !1,
isSelected: !1,
isPast: e.isPast,
isFuture: e.isFuture,
isToday: e.isToday
}, (function(e, t, n, r, o) {
return _o("div", {
ref: e,
className: ["fc-bg-event"].concat(t).join(" "),
style: {
backgroundColor: o.backgroundColor
}
}, r)
}))
};
function ps(e) {
return e.event.title && _o("div", {
className: "fc-event-title"
}, e.event.title)
}
var fs = function(e) {
return _o(Oo.Consumer, null, (function(t) {
var n = t.dateEnv,
r = t.options,
o = e.date,
i = r.weekNumberFormat || e.defaultFormat,
a = n.computeWeekNumber(o),
s = n.format(o, i);
return _o(Yo, {
hookProps: {
num: a,
text: s,
date: o
},
classNames: r.weekNumberClassNames,
content: r.weekNumberContent,
defaultContent: hs,
didMount: r.weekNumberDidMount,
willUnmount: r.weekNumberWillUnmount
}, e.children)
}))
};
function hs(e) {
return e.text
}
var vs = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.state = {
titleId: xe()
}, t.handleRootEl = function(e) {
t.rootEl = e, t.props.elRef && Fo(t.props.elRef, e)
}, t.handleDocumentMouseDown = function(e) {
var n = _e(e);
t.rootEl.contains(n) || t.handleCloseClick()
}, t.handleDocumentKeyDown = function(e) {
"Escape" === e.key && t.handleCloseClick()
}, t.handleCloseClick = function() {
var e = t.props.onClose;
e && e()
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this.context,
t = e.theme,
n = e.options,
o = this.props,
i = this.state,
a = ["fc-popover", t.getClass("popover")].concat(o.extraClassNames || []);
return Io(_o("div", r({
id: o.id,
className: a.join(" "),
"aria-labelledby": i.titleId
}, o.extraAttrs, {
ref: this.handleRootEl
}), _o("div", {
className: "fc-popover-header " + t.getClass("popoverHeader")
}, _o("span", {
className: "fc-popover-title",
id: i.titleId
}, o.title), _o("span", {
className: "fc-popover-close " + t.getIconClass("close"),
title: n.closeHint,
onClick: this.handleCloseClick
})), _o("div", {
className: "fc-popover-body " + t.getClass("popoverContent")
}, o.children)), o.parentEl)
}, t.prototype.componentDidMount = function() {
document.addEventListener("mousedown", this.handleDocumentMouseDown), document.addEventListener("keydown", this.handleDocumentKeyDown), this.updateSize()
}, t.prototype.componentWillUnmount = function() {
document.removeEventListener("mousedown", this.handleDocumentMouseDown), document.removeEventListener("keydown", this.handleDocumentKeyDown)
}, t.prototype.updateSize = function() {
var e = this.context.isRtl,
t = this.props,
n = t.alignmentEl,
r = t.alignGridTop,
o = this.rootEl,
i = function(e) {
for (var t = mo(e), n = e.getBoundingClientRect(), r = 0, o = t; r < o.length; r++) {
var i = Xr(n, o[r].getBoundingClientRect());
if (!i) return null;
n = i
}
return n
}(n);
if (i) {
var a = o.getBoundingClientRect(),
s = r ? Se(n, ".fc-scrollgrid").getBoundingClientRect().top : i.top,
l = e ? i.right - a.width : i.left;
s = Math.max(s, 10), l = Math.min(l, document.documentElement.clientWidth - 10 - a.width), l = Math.max(l, 10);
var u = o.offsetParent.getBoundingClientRect();
we(o, {
top: s - u.top,
left: l - u.left
})
}
}, t
}(Uo),
gs = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.handleRootEl = function(e) {
t.rootEl = e, e ? t.context.registerInteractiveComponent(t, {
el: e,
useEventCenter: !1
}) : t.context.unregisterInteractiveComponent(t)
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this.context,
t = e.options,
n = e.dateEnv,
r = this.props,
o = r.startDate,
i = r.todayRange,
a = r.dateProfile,
s = n.format(o, t.dayPopoverFormat);
return _o(us, {
date: o,
dateProfile: a,
todayRange: i,
elRef: this.handleRootEl
}, (function(e, t, n) {
return _o(vs, {
elRef: e,
id: r.id,
title: s,
extraClassNames: ["fc-more-popover"].concat(t),
extraAttrs: n,
parentEl: r.parentEl,
alignmentEl: r.alignmentEl,
alignGridTop: r.alignGridTop,
onClose: r.onClose
}, _o(ss, {
date: o,
dateProfile: a,
todayRange: i
}, (function(e, t) {
return t && _o("div", {
className: "fc-more-popover-misc",
ref: e
}, t)
})), r.children)
}))
}, t.prototype.queryHit = function(e, t, n, o) {
var i = this.rootEl,
a = this.props;
return e >= 0 && e < n && t >= 0 && t < o ? {
dateProfile: a.dateProfile,
dateSpan: r({
allDay: !0,
range: {
start: a.startDate,
end: a.endDate
}
}, a.extraDateSpan),
dayEl: i,
rect: {
left: 0,
top: 0,
right: n,
bottom: o
},
layer: 1
} : null
}, t
}(Bo),
ms = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.linkElRef = ko(), t.state = {
isPopoverOpen: !1,
popoverId: xe()
}, t.handleClick = function(e) {
var n = t,
r = n.props,
o = n.context,
i = o.options.moreLinkClick,
a = Es(r).start;
function s(e) {
var t = e.eventRange,
n = t.def,
r = t.instance,
i = t.range;
return {
event: new xr(o, n, r),
start: o.dateEnv.toDate(i.start),
end: o.dateEnv.toDate(i.end),
isStart: e.isStart,
isEnd: e.isEnd
}
}
"function" == typeof i && (i = i({
date: a,
allDay: Boolean(r.allDayDate),
allSegs: r.allSegs.map(s),
hiddenSegs: r.hiddenSegs.map(s),
jsEvent: e,
view: o.viewApi
})), i && "popover" !== i ? "string" == typeof i && o.calendarApi.zoomTo(a, i) : t.setState({
isPopoverOpen: !0
})
}, t.handlePopoverClose = function() {
t.setState({
isPopoverOpen: !1
})
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props,
n = this.state;
return _o(Oo.Consumer, null, (function(r) {
var o = r.viewApi,
i = r.options,
a = r.calendarApi,
s = i.moreLinkText,
l = t.moreCnt,
u = Es(t),
c = "function" == typeof s ? s.call(a, l) : "+" + l + " " + s,
d = Xe(i.moreLinkHint, [l], c),
p = {
num: l,
shortText: "+" + l,
text: c,
view: o
};
return _o(xo, null, Boolean(t.moreCnt) && _o(Yo, {
elRef: e.linkElRef,
hookProps: p,
classNames: i.moreLinkClassNames,
content: i.moreLinkContent,
defaultContent: t.defaultContent || ys,
didMount: i.moreLinkDidMount,
willUnmount: i.moreLinkWillUnmount
}, (function(r, o, i, a) {
return t.children(r, ["fc-more-link"].concat(o), i, a, e.handleClick, d, n.isPopoverOpen, n.isPopoverOpen ? n.popoverId : "")
})), n.isPopoverOpen && _o(gs, {
id: n.popoverId,
startDate: u.start,
endDate: u.end,
dateProfile: t.dateProfile,
todayRange: t.todayRange,
extraDateSpan: t.extraDateSpan,
parentEl: e.parentEl,
alignmentEl: t.alignmentElRef.current,
alignGridTop: t.alignGridTop,
onClose: e.handlePopoverClose
}, t.popoverContent()))
}))
}, t.prototype.componentDidMount = function() {
this.updateParentEl()
}, t.prototype.componentDidUpdate = function() {
this.updateParentEl()
}, t.prototype.updateParentEl = function() {
this.linkElRef.current && (this.parentEl = Se(this.linkElRef.current, ".fc-view-harness"))
}, t
}(Uo);
function ys(e) {
return e.text
}
function Es(e) {
if (e.allDayDate) return {
start: e.allDayDate,
end: tt(e.allDayDate, 1)
};
var t, n = e.hiddenSegs;
return {
start: Ss(n),
end: (t = n, t.reduce(Ds).eventRange.range.end)
}
}
function Ss(e) {
return e.reduce(bs).eventRange.range.start
}
function bs(e, t) {
return e.eventRange.range.start < t.eventRange.range.start ? e : t
}
function Ds(e, t) {
return e.eventRange.range.end > t.eventRange.range.end ? e : t
}
var Cs = function(e) {
function t(t, n) {
void 0 === n && (n = {});
var o = e.call(this) || this;
return o.isRendering = !1, o.isRendered = !1, o.currentClassNames = [], o.customContentRenderId = 0, o.handleAction = function(e) {
switch (e.type) {
case "SET_EVENT_DRAG":
case "SET_EVENT_RESIZE":
o.renderRunner.tryDrain()
}
}, o.handleData = function(e) {
o.currentData = e, o.renderRunner.request(e.calendarOptions.rerenderDelay)
}, o.handleRenderRequest = function() {
if (o.isRendering) {
o.isRendered = !0;
var e = o.currentData;
To(_o(ga, {
options: e.calendarOptions,
theme: e.theme,
emitter: e.emitter
}, (function(t, n, i, a) {
return o.setClassNames(t), o.setHeight(n), _o(Zo.Provider, {
value: o.customContentRenderId
}, _o(fa, r({
isHeightAuto: i,
forPrint: a
}, e)))
})), o.el)
} else o.isRendered && (o.isRendered = !1, No(o.el), o.setClassNames([]), o.setHeight(""));
Po()
}, o.el = t, o.renderRunner = new Mi(o.handleRenderRequest), new Ni({
optionOverrides: n,
calendarApi: o,
onAction: o.handleAction,
onData: o.handleData
}), o
}
return n(t, e), Object.defineProperty(t.prototype, "view", {
get: function() {
return this.currentData.viewApi
},
enumerable: !1,
configurable: !0
}), t.prototype.render = function() {
var e = this.isRendering;
e ? this.customContentRenderId += 1 : this.isRendering = !0, this.renderRunner.request(), e && this.updateSize()
}, t.prototype.destroy = function() {
this.isRendering && (this.isRendering = !1, this.renderRunner.request())
}, t.prototype.updateSize = function() {
e.prototype.updateSize.call(this), Po()
}, t.prototype.batchRendering = function(e) {
this.renderRunner.pause("batchRendering"), e(), this.renderRunner.resume("batchRendering")
}, t.prototype.pauseRendering = function() {
this.renderRunner.pause("pauseRendering")
}, t.prototype.resumeRendering = function() {
this.renderRunner.resume("pauseRendering", !0)
}, t.prototype.resetOptions = function(e, t) {
this.currentDataManager.resetOptions(e, t)
}, t.prototype.setClassNames = function(e) {
if (!Gt(e, this.currentClassNames)) {
for (var t = this.el.classList, n = 0, r = this.currentClassNames; n < r.length; n++) {
var o = r[n];
t.remove(o)
}
for (var i = 0, a = e; i < a.length; i++) {
o = a[i];
t.add(o)
}
this.currentClassNames = e
}
}, t.prototype.setHeight = function(e) {
Re(this.el, "height", e)
}, t
}(kr);
ia.touchMouseIgnoreWait = 500;
var ws = 0,
Rs = 0,
_s = !1,
Ts = function() {
function e(e) {
var t = this;
this.subjectEl = null, this.selector = "", this.handleSelector = "", this.shouldIgnoreMove = !1, this.shouldWatchScroll = !0, this.isDragging = !1, this.isTouchDragging = !1, this.wasTouchScroll = !1, this.handleMouseDown = function(e) {
if (!t.shouldIgnoreMouse() && function(e) {
return 0 === e.button && !e.ctrlKey
}(e) && t.tryStart(e)) {
var n = t.createEventFromMouse(e, !0);
t.emitter.trigger("pointerdown", n), t.initScrollWatch(n), t.shouldIgnoreMove || document.addEventListener("mousemove", t.handleMouseMove), document.addEventListener("mouseup", t.handleMouseUp)
}
}, this.handleMouseMove = function(e) {
var n = t.createEventFromMouse(e);
t.recordCoords(n), t.emitter.trigger("pointermove", n)
}, this.handleMouseUp = function(e) {
document.removeEventListener("mousemove", t.handleMouseMove), document.removeEventListener("mouseup", t.handleMouseUp), t.emitter.trigger("pointerup", t.createEventFromMouse(e)), t.cleanup()
}, this.handleTouchStart = function(e) {
if (t.tryStart(e)) {
t.isTouchDragging = !0;
var n = t.createEventFromTouch(e, !0);
t.emitter.trigger("pointerdown", n), t.initScrollWatch(n);
var r = e.target;
t.shouldIgnoreMove || r.addEventListener("touchmove", t.handleTouchMove), r.addEventListener("touchend", t.handleTouchEnd), r.addEventListener("touchcancel", t.handleTouchEnd), window.addEventListener("scroll", t.handleTouchScroll, !0)
}
}, this.handleTouchMove = function(e) {
var n = t.createEventFromTouch(e);
t.recordCoords(n), t.emitter.trigger("pointermove", n)
}, this.handleTouchEnd = function(e) {
if (t.isDragging) {
var n = e.target;
n.removeEventListener("touchmove", t.handleTouchMove), n.removeEventListener("touchend", t.handleTouchEnd), n.removeEventListener("touchcancel", t.handleTouchEnd), window.removeEventListener("scroll", t.handleTouchScroll, !0), t.emitter.trigger("pointerup", t.createEventFromTouch(e)), t.cleanup(), t.isTouchDragging = !1, ws += 1, setTimeout((function() {
ws -= 1
}), ia.touchMouseIgnoreWait)
}
}, this.handleTouchScroll = function() {
t.wasTouchScroll = !0
}, this.handleScroll = function(e) {
if (!t.shouldIgnoreMove) {
var n = window.pageXOffset - t.prevScrollX + t.prevPageX,
r = window.pageYOffset - t.prevScrollY + t.prevPageY;
t.emitter.trigger("pointermove", {
origEvent: e,
isTouch: t.isTouchDragging,
subjectEl: t.subjectEl,
pageX: n,
pageY: r,
deltaX: n - t.origPageX,
deltaY: r - t.origPageY
})
}
}, this.containerEl = e, this.emitter = new Eo, e.addEventListener("mousedown", this.handleMouseDown), e.addEventListener("touchstart", this.handleTouchStart, {
passive: !0
}), 1 === (Rs += 1) && window.addEventListener("touchmove", ks, {
passive: !1
})
}
return e.prototype.destroy = function() {
this.containerEl.removeEventListener("mousedown", this.handleMouseDown), this.containerEl.removeEventListener("touchstart", this.handleTouchStart, {
passive: !0
}), (Rs -= 1) || window.removeEventListener("touchmove", ks, {
passive: !1
})
}, e.prototype.tryStart = function(e) {
var t = this.querySubjectEl(e),
n = e.target;
return !(!t || this.handleSelector && !Se(n, this.handleSelector)) && (this.subjectEl = t, this.isDragging = !0, this.wasTouchScroll = !1, !0)
}, e.prototype.cleanup = function() {
_s = !1, this.isDragging = !1, this.subjectEl = null, this.destroyScrollWatch()
}, e.prototype.querySubjectEl = function(e) {
return this.selector ? Se(e.target, this.selector) : this.containerEl
}, e.prototype.shouldIgnoreMouse = function() {
return ws || this.isTouchDragging
}, e.prototype.cancelTouchScroll = function() {
this.isDragging && (_s = !0)
}, e.prototype.initScrollWatch = function(e) {
this.shouldWatchScroll && (this.recordCoords(e), window.addEventListener("scroll", this.handleScroll, !0))
}, e.prototype.recordCoords = function(e) {
this.shouldWatchScroll && (this.prevPageX = e.pageX, this.prevPageY = e.pageY, this.prevScrollX = window.pageXOffset, this.prevScrollY = window.pageYOffset)
}, e.prototype.destroyScrollWatch = function() {
this.shouldWatchScroll && window.removeEventListener("scroll", this.handleScroll, !0)
}, e.prototype.createEventFromMouse = function(e, t) {
var n = 0,
r = 0;
return t ? (this.origPageX = e.pageX, this.origPageY = e.pageY) : (n = e.pageX - this.origPageX, r = e.pageY - this.origPageY), {
origEvent: e,
isTouch: !1,
subjectEl: this.subjectEl,
pageX: e.pageX,
pageY: e.pageY,
deltaX: n,
deltaY: r
}
}, e.prototype.createEventFromTouch = function(e, t) {
var n, r, o = e.touches,
i = 0,
a = 0;
return o && o.length ? (n = o[0].pageX, r = o[0].pageY) : (n = e.pageX, r = e.pageY), t ? (this.origPageX = n, this.origPageY = r) : (i = n - this.origPageX, a = r - this.origPageY), {
origEvent: e,
isTouch: !0,
subjectEl: this.subjectEl,
pageX: n,
pageY: r,
deltaX: i,
deltaY: a
}
}, e
}();
function ks(e) {
_s && e.preventDefault()
}
var xs = function() {
function e() {
this.isVisible = !1, this.sourceEl = null, this.mirrorEl = null, this.sourceElRect = null, this.parentNode = document.body, this.zIndex = 9999, this.revertDuration = 0
}
return e.prototype.start = function(e, t, n) {
this.sourceEl = e, this.sourceElRect = this.sourceEl.getBoundingClientRect(), this.origScreenX = t - window.pageXOffset, this.origScreenY = n - window.pageYOffset, this.deltaX = 0, this.deltaY = 0, this.updateElPosition()
}, e.prototype.handleMove = function(e, t) {
this.deltaX = e - window.pageXOffset - this.origScreenX, this.deltaY = t - window.pageYOffset - this.origScreenY, this.updateElPosition()
}, e.prototype.setIsVisible = function(e) {
e ? this.isVisible || (this.mirrorEl && (this.mirrorEl.style.display = ""), this.isVisible = e, this.updateElPosition()) : this.isVisible && (this.mirrorEl && (this.mirrorEl.style.display = "none"), this.isVisible = e)
}, e.prototype.stop = function(e, t) {
var n = this,
r = function() {
n.cleanup(), t()
};
e && this.mirrorEl && this.isVisible && this.revertDuration && (this.deltaX || this.deltaY) ? this.doRevertAnimation(r, this.revertDuration) : setTimeout(r, 0)
}, e.prototype.doRevertAnimation = function(e, t) {
var n = this.mirrorEl,
r = this.sourceEl.getBoundingClientRect();
n.style.transition = "top " + t + "ms,left " + t + "ms", we(n, {
left: r.left,
top: r.top
}), Ne(n, (function() {
n.style.transition = "", e()
}))
}, e.prototype.cleanup = function() {
this.mirrorEl && (Ee(this.mirrorEl), this.mirrorEl = null), this.sourceEl = null
}, e.prototype.updateElPosition = function() {
this.sourceEl && this.isVisible && we(this.getMirrorEl(), {
left: this.sourceElRect.left + this.deltaX,
top: this.sourceElRect.top + this.deltaY
})
}, e.prototype.getMirrorEl = function() {
var e = this.sourceElRect,
t = this.mirrorEl;
return t || ((t = this.mirrorEl = this.sourceEl.cloneNode(!0)).classList.add("fc-unselectable"), t.classList.add("fc-event-dragging"), we(t, {
position: "fixed",
zIndex: this.zIndex,
visibility: "",
boxSizing: "border-box",
width: e.right - e.left,
height: e.bottom - e.top,
right: "auto",
bottom: "auto",
margin: 0
}), this.parentNode.appendChild(t)), t
}, e
}(),
Ms = function(e) {
function t(t, n) {
var r = e.call(this) || this;
return r.handleScroll = function() {
r.scrollTop = r.scrollController.getScrollTop(), r.scrollLeft = r.scrollController.getScrollLeft(), r.handleScrollChange()
}, r.scrollController = t, r.doesListening = n, r.scrollTop = r.origScrollTop = t.getScrollTop(), r.scrollLeft = r.origScrollLeft = t.getScrollLeft(), r.scrollWidth = t.getScrollWidth(), r.scrollHeight = t.getScrollHeight(), r.clientWidth = t.getClientWidth(), r.clientHeight = t.getClientHeight(), r.clientRect = r.computeClientRect(), r.doesListening && r.getEventTarget().addEventListener("scroll", r.handleScroll), r
}
return n(t, e), t.prototype.destroy = function() {
this.doesListening && this.getEventTarget().removeEventListener("scroll", this.handleScroll)
}, t.prototype.getScrollTop = function() {
return this.scrollTop
}, t.prototype.getScrollLeft = function() {
return this.scrollLeft
}, t.prototype.setScrollTop = function(e) {
this.scrollController.setScrollTop(e), this.doesListening || (this.scrollTop = Math.max(Math.min(e, this.getMaxScrollTop()), 0), this.handleScrollChange())
}, t.prototype.setScrollLeft = function(e) {
this.scrollController.setScrollLeft(e), this.doesListening || (this.scrollLeft = Math.max(Math.min(e, this.getMaxScrollLeft()), 0), this.handleScrollChange())
}, t.prototype.getClientWidth = function() {
return this.clientWidth
}, t.prototype.getClientHeight = function() {
return this.clientHeight
}, t.prototype.getScrollWidth = function() {
return this.scrollWidth
}, t.prototype.getScrollHeight = function() {
return this.scrollHeight
}, t.prototype.handleScrollChange = function() {}, t
}(bo),
Is = function(e) {
function t(t, n) {
return e.call(this, new Do(t), n) || this
}
return n(t, e), t.prototype.getEventTarget = function() {
return this.scrollController.el
}, t.prototype.computeClientRect = function() {
return vo(this.scrollController.el)
}, t
}(Ms),
Ps = function(e) {
function t(t) {
return e.call(this, new Co, t) || this
}
return n(t, e), t.prototype.getEventTarget = function() {
return window
}, t.prototype.computeClientRect = function() {
return {
left: this.scrollLeft,
right: this.scrollLeft + this.clientWidth,
top: this.scrollTop,
bottom: this.scrollTop + this.clientHeight
}
}, t.prototype.handleScrollChange = function() {
this.clientRect = this.computeClientRect()
}, t
}(Ms),
Ns = "function" == typeof performance ? performance.now : Date.now,
Hs = function() {
function e() {
var e = this;
this.isEnabled = !0, this.scrollQuery = [window, ".fc-scroller"], this.edgeThreshold = 50, this.maxVelocity = 300, this.pointerScreenX = null, this.pointerScreenY = null, this.isAnimating = !1, this.scrollCaches = null, this.everMovedUp = !1, this.everMovedDown = !1, this.everMovedLeft = !1, this.everMovedRight = !1, this.animate = function() {
if (e.isAnimating) {
var t = e.computeBestEdge(e.pointerScreenX + window.pageXOffset, e.pointerScreenY + window.pageYOffset);
if (t) {
var n = Ns();
e.handleSide(t, (n - e.msSinceRequest) / 1e3), e.requestAnimation(n)
} else e.isAnimating = !1
}
}
}
return e.prototype.start = function(e, t, n) {
this.isEnabled && (this.scrollCaches = this.buildCaches(n), this.pointerScreenX = null, this.pointerScreenY = null, this.everMovedUp = !1, this.everMovedDown = !1, this.everMovedLeft = !1, this.everMovedRight = !1, this.handleMove(e, t))
}, e.prototype.handleMove = function(e, t) {
if (this.isEnabled) {
var n = e - window.pageXOffset,
r = t - window.pageYOffset,
o = null === this.pointerScreenY ? 0 : r - this.pointerScreenY,
i = null === this.pointerScreenX ? 0 : n - this.pointerScreenX;
o < 0 ? this.everMovedUp = !0 : o > 0 && (this.everMovedDown = !0), i < 0 ? this.everMovedLeft = !0 : i > 0 && (this.everMovedRight = !0), this.pointerScreenX = n, this.pointerScreenY = r, this.isAnimating || (this.isAnimating = !0, this.requestAnimation(Ns()))
}
}, e.prototype.stop = function() {
if (this.isEnabled) {
this.isAnimating = !1;
for (var e = 0, t = this.scrollCaches; e < t.length; e++) {
t[e].destroy()
}
this.scrollCaches = null
}
}, e.prototype.requestAnimation = function(e) {
this.msSinceRequest = e, requestAnimationFrame(this.animate)
}, e.prototype.handleSide = function(e, t) {
var n = e.scrollCache,
r = this.edgeThreshold,
o = r - e.distance,
i = o * o / (r * r) * this.maxVelocity * t,
a = 1;
switch (e.name) {
case "left":
a = -1;
case "right":
n.setScrollLeft(n.getScrollLeft() + i * a);
break;
case "top":
a = -1;
case "bottom":
n.setScrollTop(n.getScrollTop() + i * a)
}
}, e.prototype.computeBestEdge = function(e, t) {
for (var n = this.edgeThreshold, r = null, o = 0, i = this.scrollCaches; o < i.length; o++) {
var a = i[o],
s = a.clientRect,
l = e - s.left,
u = s.right - e,
c = t - s.top,
d = s.bottom - t;
l >= 0 && u >= 0 && c >= 0 && d >= 0 && (c <= n && this.everMovedUp && a.canScrollUp() && (!r || r.distance > c) && (r = {
scrollCache: a,
name: "top",
distance: c
}), d <= n && this.everMovedDown && a.canScrollDown() && (!r || r.distance > d) && (r = {
scrollCache: a,
name: "bottom",
distance: d
}), l <= n && this.everMovedLeft && a.canScrollLeft() && (!r || r.distance > l) && (r = {
scrollCache: a,
name: "left",
distance: l
}), u <= n && this.everMovedRight && a.canScrollRight() && (!r || r.distance > u) && (r = {
scrollCache: a,
name: "right",
distance: u
}))
}
return r
}, e.prototype.buildCaches = function(e) {
return this.queryScrollEls(e).map((function(e) {
return e === window ? new Ps(!1) : new Is(e, !1)
}))
}, e.prototype.queryScrollEls = function(e) {
for (var t = [], n = 0, r = this.scrollQuery; n < r.length; n++) {
var o = r[n];
"object" == typeof o ? t.push(o) : t.push.apply(t, Array.prototype.slice.call(Te(e).querySelectorAll(o)))
}
return t
}, e
}(),
Os = function(e) {
function t(t, n) {
var r = e.call(this, t) || this;
r.containerEl = t, r.delay = null, r.minDistance = 0, r.touchScrollAllowed = !0, r.mirrorNeedsRevert = !1, r.isInteracting = !1, r.isDragging = !1, r.isDelayEnded = !1, r.isDistanceSurpassed = !1, r.delayTimeoutId = null, r.onPointerDown = function(e) {
r.isDragging || (r.isInteracting = !0, r.isDelayEnded = !1, r.isDistanceSurpassed = !1, Ve(document.body), Be(document.body), e.isTouch || e.origEvent.preventDefault(), r.emitter.trigger("pointerdown", e), r.isInteracting && !r.pointer.shouldIgnoreMove && (r.mirror.setIsVisible(!1), r.mirror.start(e.subjectEl, e.pageX, e.pageY), r.startDelay(e), r.minDistance || r.handleDistanceSurpassed(e)))
}, r.onPointerMove = function(e) {
if (r.isInteracting) {
if (r.emitter.trigger("pointermove", e), !r.isDistanceSurpassed) {
var t = r.minDistance,
n = e.deltaX,
o = e.deltaY;
n * n + o * o >= t * t && r.handleDistanceSurpassed(e)
}
r.isDragging && ("scroll" !== e.origEvent.type && (r.mirror.handleMove(e.pageX, e.pageY), r.autoScroller.handleMove(e.pageX, e.pageY)), r.emitter.trigger("dragmove", e))
}
}, r.onPointerUp = function(e) {
r.isInteracting && (r.isInteracting = !1, Fe(document.body), ze(document.body), r.emitter.trigger("pointerup", e), r.isDragging && (r.autoScroller.stop(), r.tryStopDrag(e)), r.delayTimeoutId && (clearTimeout(r.delayTimeoutId), r.delayTimeoutId = null))
};
var o = r.pointer = new Ts(t);
return o.emitter.on("pointerdown", r.onPointerDown), o.emitter.on("pointermove", r.onPointerMove), o.emitter.on("pointerup", r.onPointerUp), n && (o.selector = n), r.mirror = new xs, r.autoScroller = new Hs, r
}
return n(t, e), t.prototype.destroy = function() {
this.pointer.destroy(), this.onPointerUp({})
}, t.prototype.startDelay = function(e) {
var t = this;
"number" == typeof this.delay ? this.delayTimeoutId = setTimeout((function() {
t.delayTimeoutId = null, t.handleDelayEnd(e)
}), this.delay) : this.handleDelayEnd(e)
}, t.prototype.handleDelayEnd = function(e) {
this.isDelayEnded = !0, this.tryStartDrag(e)
}, t.prototype.handleDistanceSurpassed = function(e) {
this.isDistanceSurpassed = !0, this.tryStartDrag(e)
}, t.prototype.tryStartDrag = function(e) {
this.isDelayEnded && this.isDistanceSurpassed && (this.pointer.wasTouchScroll && !this.touchScrollAllowed || (this.isDragging = !0, this.mirrorNeedsRevert = !1, this.autoScroller.start(e.pageX, e.pageY, this.containerEl), this.emitter.trigger("dragstart", e), !1 === this.touchScrollAllowed && this.pointer.cancelTouchScroll()))
}, t.prototype.tryStopDrag = function(e) {
this.mirror.stop(this.mirrorNeedsRevert, this.stopDrag.bind(this, e))
}, t.prototype.stopDrag = function(e) {
this.isDragging = !1, this.emitter.trigger("dragend", e)
}, t.prototype.setIgnoreMove = function(e) {
this.pointer.shouldIgnoreMove = e
}, t.prototype.setMirrorIsVisible = function(e) {
this.mirror.setIsVisible(e)
}, t.prototype.setMirrorNeedsRevert = function(e) {
this.mirrorNeedsRevert = e
}, t.prototype.setAutoScrollEnabled = function(e) {
this.autoScroller.isEnabled = e
}, t
}(oa),
As = function() {
function e(e) {
this.origRect = go(e), this.scrollCaches = mo(e).map((function(e) {
return new Is(e, !0)
}))
}
return e.prototype.destroy = function() {
for (var e = 0, t = this.scrollCaches; e < t.length; e++) {
t[e].destroy()
}
}, e.prototype.computeLeft = function() {
for (var e = this.origRect.left, t = 0, n = this.scrollCaches; t < n.length; t++) {
var r = n[t];
e += r.origScrollLeft - r.getScrollLeft()
}
return e
}, e.prototype.computeTop = function() {
for (var e = this.origRect.top, t = 0, n = this.scrollCaches; t < n.length; t++) {
var r = n[t];
e += r.origScrollTop - r.getScrollTop()
}
return e
}, e.prototype.isWithinClipping = function(e, t) {
for (var n, r, o = {
left: e,
top: t
}, i = 0, a = this.scrollCaches; i < a.length; i++) {
var s = a[i];
if (n = s.getEventTarget(), r = void 0, "HTML" !== (r = n.tagName) && "BODY" !== r && !Zr(o, s.clientRect)) return !1
}
return !0
}, e
}();
var Ls = function() {
function e(e, t) {
var n = this;
this.useSubjectCenter = !1, this.requireInitial = !0, this.initialHit = null, this.movingHit = null, this.finalHit = null, this.handlePointerDown = function(e) {
var t = n.dragging;
n.initialHit = null, n.movingHit = null, n.finalHit = null, n.prepareHits(), n.processFirstCoord(e), n.initialHit || !n.requireInitial ? (t.setIgnoreMove(!1), n.emitter.trigger("pointerdown", e)) : t.setIgnoreMove(!0)
}, this.handleDragStart = function(e) {
n.emitter.trigger("dragstart", e), n.handleMove(e, !0)
}, this.handleDragMove = function(e) {
n.emitter.trigger("dragmove", e), n.handleMove(e)
}, this.handlePointerUp = function(e) {
n.releaseHits(), n.emitter.trigger("pointerup", e)
}, this.handleDragEnd = function(e) {
n.movingHit && n.emitter.trigger("hitupdate", null, !0, e), n.finalHit = n.movingHit, n.movingHit = null, n.emitter.trigger("dragend", e)
}, this.droppableStore = t, e.emitter.on("pointerdown", this.handlePointerDown), e.emitter.on("dragstart", this.handleDragStart), e.emitter.on("dragmove", this.handleDragMove), e.emitter.on("pointerup", this.handlePointerUp), e.emitter.on("dragend", this.handleDragEnd), this.dragging = e, this.emitter = new Eo
}
return e.prototype.processFirstCoord = function(e) {
var t, n = {
left: e.pageX,
top: e.pageY
},
r = n,
o = e.subjectEl;
o instanceof HTMLElement && (r = Kr(r, t = go(o)));
var i = this.initialHit = this.queryHitForOffset(r.left, r.top);
if (i) {
if (this.useSubjectCenter && t) {
var a = Xr(t, i.rect);
a && (r = $r(a))
}
this.coordAdjust = Jr(r, n)
} else this.coordAdjust = {
left: 0,
top: 0
}
}, e.prototype.handleMove = function(e, t) {
var n = this.queryHitForOffset(e.pageX + this.coordAdjust.left, e.pageY + this.coordAdjust.top);
!t && Us(this.movingHit, n) || (this.movingHit = n, this.emitter.trigger("hitupdate", n, !1, e))
}, e.prototype.prepareHits = function() {
this.offsetTrackers = bt(this.droppableStore, (function(e) {
return e.component.prepareHits(), new As(e.el)
}))
}, e.prototype.releaseHits = function() {
var e = this.offsetTrackers;
for (var t in e) e[t].destroy();
this.offsetTrackers = {}
}, e.prototype.queryHitForOffset = function(e, t) {
var n = this.droppableStore,
r = this.offsetTrackers,
o = null;
for (var i in n) {
var a = n[i].component,
s = r[i];
if (s && s.isWithinClipping(e, t)) {
var l = s.computeLeft(),
u = s.computeTop(),
c = e - l,
d = t - u,
p = s.origRect,
f = p.right - p.left,
h = p.bottom - p.top;
if (c >= 0 && c < f && d >= 0 && d < h) {
var v = a.queryHit(c, d, f, h);
v && Yn(v.dateProfile.activeRange, v.dateSpan.range) && (!o || v.layer > o.layer) && (v.componentId = i, v.context = a.context, v.rect.left += l, v.rect.right += l, v.rect.top += u, v.rect.bottom += u, o = v)
}
}
}
return o
}, e
}();
function Us(e, t) {
return !e && !t || Boolean(e) === Boolean(t) && fr(e.dateSpan, t.dateSpan)
}
function Ws(e, t) {
for (var n, o, i = {}, a = 0, s = t.pluginHooks.datePointTransforms; a < s.length; a++) {
var l = s[a];
r(i, l(e, t))
}
return r(i, (n = e, {
date: (o = t.dateEnv).toDate(n.range.start),
dateStr: o.formatIso(n.range.start, {
omitTime: n.allDay
}),
allDay: n.allDay
})), i
}
var Vs = function(e) {
function t(t) {
var n = e.call(this, t) || this;
n.handlePointerDown = function(e) {
var t = n.dragging,
r = e.origEvent.target;
t.setIgnoreMove(!n.component.isValidDateDownEl(r))
}, n.handleDragEnd = function(e) {
var t = n.component;
if (!n.dragging.pointer.wasTouchScroll) {
var o = n.hitDragging,
i = o.initialHit,
a = o.finalHit;
if (i && a && Us(i, a)) {
var s = t.context,
l = r(r({}, Ws(i.dateSpan, s)), {
dayEl: i.dayEl,
jsEvent: e.origEvent,
view: s.viewApi || s.calendarApi.view
});
s.emitter.trigger("dateClick", l)
}
}
}, n.dragging = new Os(t.el), n.dragging.autoScroller.isEnabled = !1;
var o = n.hitDragging = new Ls(n.dragging, na(t));
return o.emitter.on("pointerdown", n.handlePointerDown), o.emitter.on("dragend", n.handleDragEnd), n
}
return n(t, e), t.prototype.destroy = function() {
this.dragging.destroy()
}, t
}(ea),
Fs = function(e) {
function t(t) {
var n = e.call(this, t) || this;
n.dragSelection = null, n.handlePointerDown = function(e) {
var t = n,
r = t.component,
o = t.dragging,
i = r.context.options.selectable && r.isValidDateDownEl(e.origEvent.target);
o.setIgnoreMove(!i), o.delay = e.isTouch ? function(e) {
var t = e.context.options,
n = t.selectLongPressDelay;
null == n && (n = t.longPressDelay);
return n
}(r) : null
}, n.handleDragStart = function(e) {
n.component.context.calendarApi.unselect(e)
}, n.handleHitUpdate = function(e, t) {
var o = n.component.context,
i = null,
a = !1;
if (e) {
var s = n.hitDragging.initialHit;
e.componentId === s.componentId && n.isHitComboAllowed && !n.isHitComboAllowed(s, e) || (i = function(e, t, n) {
var o = e.dateSpan,
i = t.dateSpan,
a = [o.range.start, o.range.end, i.range.start, i.range.end];
a.sort(Ke);
for (var s = {}, l = 0, u = n; l < u.length; l++) {
var c = (0, u[l])(e, t);
if (!1 === c) return null;
c && r(s, c)
}
return s.range = {
start: a[0],
end: a[3]
}, s.allDay = o.allDay, s
}(s, e, o.pluginHooks.dateSelectionTransformers)), i && Pa(i, e.dateProfile, o) || (a = !0, i = null)
}
i ? o.dispatch({
type: "SELECT_DATES",
selection: i
}) : t || o.dispatch({
type: "UNSELECT_DATES"
}), a ? Ue() : We(), t || (n.dragSelection = i)
}, n.handlePointerUp = function(e) {
n.dragSelection && (mr(n.dragSelection, e, n.component.context), n.dragSelection = null)
};
var o = t.component.context.options,
i = n.dragging = new Os(t.el);
i.touchScrollAllowed = !1, i.minDistance = o.selectMinDistance || 0, i.autoScroller.isEnabled = o.dragScroll;
var a = n.hitDragging = new Ls(n.dragging, na(t));
return a.emitter.on("pointerdown", n.handlePointerDown), a.emitter.on("dragstart", n.handleDragStart), a.emitter.on("hitupdate", n.handleHitUpdate), a.emitter.on("pointerup", n.handlePointerUp), n
}
return n(t, e), t.prototype.destroy = function() {
this.dragging.destroy()
}, t
}(ea);
var Bs = function(e) {
function t(n) {
var o = e.call(this, n) || this;
o.subjectEl = null, o.subjectSeg = null, o.isDragging = !1, o.eventRange = null, o.relevantEvents = null, o.receivingContext = null, o.validMutation = null, o.mutatedRelevantEvents = null, o.handlePointerDown = function(e) {
var t = e.origEvent.target,
n = o,
r = n.component,
i = n.dragging,
a = i.mirror,
s = r.context.options,
l = r.context;
o.subjectEl = e.subjectEl;
var u = o.subjectSeg = Jn(e.subjectEl),
c = (o.eventRange = u.eventRange).instance.instanceId;
o.relevantEvents = bn(l.getCurrentData().eventStore, c), i.minDistance = e.isTouch ? 0 : s.eventDragMinDistance, i.delay = e.isTouch && c !== r.props.eventSelection ? function(e) {
var t = e.context.options,
n = t.eventLongPressDelay;
null == n && (n = t.longPressDelay);
return n
}(r) : null, s.fixedMirrorParent ? a.parentNode = s.fixedMirrorParent : a.parentNode = Se(t, ".fc"), a.revertDuration = s.dragRevertDuration;
var d = r.isValidSegDownEl(t) && !Se(t, ".fc-event-resizer");
i.setIgnoreMove(!d), o.isDragging = d && e.subjectEl.classList.contains("fc-event-draggable")
}, o.handleDragStart = function(e) {
var t = o.component.context,
n = o.eventRange,
r = n.instance.instanceId;
e.isTouch ? r !== o.component.props.eventSelection && t.dispatch({
type: "SELECT_EVENT",
eventInstanceId: r
}) : t.dispatch({
type: "UNSELECT_EVENT"
}), o.isDragging && (t.calendarApi.unselect(e), t.emitter.trigger("eventDragStart", {
el: o.subjectEl,
event: new xr(t, n.def, n.instance),
jsEvent: e.origEvent,
view: t.viewApi
}))
}, o.handleHitUpdate = function(e, t) {
if (o.isDragging) {
var n = o.relevantEvents,
r = o.hitDragging.initialHit,
i = o.component.context,
a = null,
s = null,
l = null,
u = !1,
c = {
affectedEvents: n,
mutatedEvents: {
defs: {},
instances: {}
},
isEvent: !0
};
if (e) {
var d = (a = e.context).options;
i === a || d.editable && d.droppable ? (s = function(e, t, n) {
var r = e.dateSpan,
o = t.dateSpan,
i = r.range.start,
a = o.range.start,
s = {};
r.allDay !== o.allDay && (s.allDay = o.allDay, s.hasEnd = t.context.options.allDayMaintainDuration, o.allDay && (i = lt(i)));
var l = Fn(i, a, e.context.dateEnv, e.componentId === t.componentId ? e.largeUnit : null);
l.milliseconds && (s.allDay = !1);
for (var u = {
datesDelta: l,
standardProps: s
}, c = 0, d = n; c < d.length; c++) {
(0, d[c])(u, e, t)
}
return u
}(r, e, a.getCurrentData().pluginHooks.eventDragMutationMassagers)) && (l = Sr(n, a.getCurrentData().eventUiBases, s, a), c.mutatedEvents = l, Ia(c, e.dateProfile, a) || (u = !0, s = null, l = null, c.mutatedEvents = {
defs: {},
instances: {}
})) : a = null
}
o.displayDrag(a, c), u ? Ue() : We(), t || (i === a && Us(r, e) && (s = null), o.dragging.setMirrorNeedsRevert(!s), o.dragging.setMirrorIsVisible(!e || !Te(o.subjectEl).querySelector(".fc-event-mirror")), o.receivingContext = a, o.validMutation = s, o.mutatedRelevantEvents = l)
}
}, o.handlePointerUp = function() {
o.isDragging || o.cleanup()
}, o.handleDragEnd = function(e) {
if (o.isDragging) {
var t = o.component.context,
n = t.viewApi,
i = o,
a = i.receivingContext,
s = i.validMutation,
l = o.eventRange.def,
u = o.eventRange.instance,
c = new xr(t, l, u),
d = o.relevantEvents,
p = o.mutatedRelevantEvents,
f = o.hitDragging.finalHit;
if (o.clearDrag(), t.emitter.trigger("eventDragStop", {
el: o.subjectEl,
event: c,
jsEvent: e.origEvent,
view: n
}), s) {
if (a === t) {
var h = new xr(t, p.defs[l.defId], u ? p.instances[u.instanceId] : null);
t.dispatch({
type: "MERGE_EVENTS",
eventStore: p
});
for (var v = {
oldEvent: c,
event: h,
relatedEvents: Ir(p, t, u),
revert: function() {
t.dispatch({
type: "MERGE_EVENTS",
eventStore: d
})
}
}, g = {}, m = 0, y = t.getCurrentData().pluginHooks.eventDropTransformers; m < y.length; m++) {
var E = y[m];
r(g, E(s, t))
}
t.emitter.trigger("eventDrop", r(r(r({}, v), g), {
el: e.subjectEl,
delta: s.datesDelta,
jsEvent: e.origEvent,
view: n
})), t.emitter.trigger("eventChange", v)
} else if (a) {
var S = {
event: c,
relatedEvents: Ir(d, t, u),
revert: function() {
t.dispatch({
type: "MERGE_EVENTS",
eventStore: d
})
}
};
t.emitter.trigger("eventLeave", r(r({}, S), {
draggedEl: e.subjectEl,
view: n
})), t.dispatch({
type: "REMOVE_EVENTS",
eventStore: d
}), t.emitter.trigger("eventRemove", S);
var b = p.defs[l.defId],
D = p.instances[u.instanceId],
C = new xr(a, b, D);
a.dispatch({
type: "MERGE_EVENTS",
eventStore: p
});
var w = {
event: C,
relatedEvents: Ir(p, a, D),
revert: function() {
a.dispatch({
type: "REMOVE_EVENTS",
eventStore: p
})
}
};
a.emitter.trigger("eventAdd", w), e.isTouch && a.dispatch({
type: "SELECT_EVENT",
eventInstanceId: u.instanceId
}), a.emitter.trigger("drop", r(r({}, Ws(f.dateSpan, a)), {
draggedEl: e.subjectEl,
jsEvent: e.origEvent,
view: f.context.viewApi
})), a.emitter.trigger("eventReceive", r(r({}, w), {
draggedEl: e.subjectEl,
view: f.context.viewApi
}))
}
} else t.emitter.trigger("_noEventDrop")
}
o.cleanup()
};
var i = o.component.context.options,
a = o.dragging = new Os(n.el);
a.pointer.selector = t.SELECTOR, a.touchScrollAllowed = !1, a.autoScroller.isEnabled = i.dragScroll;
var s = o.hitDragging = new Ls(o.dragging, ra);
return s.useSubjectCenter = n.useEventCenter, s.emitter.on("pointerdown", o.handlePointerDown), s.emitter.on("dragstart", o.handleDragStart), s.emitter.on("hitupdate", o.handleHitUpdate), s.emitter.on("pointerup", o.handlePointerUp), s.emitter.on("dragend", o.handleDragEnd), o
}
return n(t, e), t.prototype.destroy = function() {
this.dragging.destroy()
}, t.prototype.displayDrag = function(e, t) {
var n = this.component.context,
r = this.receivingContext;
r && r !== e && (r === n ? r.dispatch({
type: "SET_EVENT_DRAG",
state: {
affectedEvents: t.affectedEvents,
mutatedEvents: {
defs: {},
instances: {}
},
isEvent: !0
}
}) : r.dispatch({
type: "UNSET_EVENT_DRAG"
})), e && e.dispatch({
type: "SET_EVENT_DRAG",
state: t
})
}, t.prototype.clearDrag = function() {
var e = this.component.context,
t = this.receivingContext;
t && t.dispatch({
type: "UNSET_EVENT_DRAG"
}), e !== t && e.dispatch({
type: "UNSET_EVENT_DRAG"
})
}, t.prototype.cleanup = function() {
this.subjectSeg = null, this.isDragging = !1, this.eventRange = null, this.relevantEvents = null, this.receivingContext = null, this.validMutation = null, this.mutatedRelevantEvents = null
}, t.SELECTOR = ".fc-event-draggable, .fc-event-resizable", t
}(ea);
var zs = function(e) {
function t(t) {
var n = e.call(this, t) || this;
n.draggingSegEl = null, n.draggingSeg = null, n.eventRange = null, n.relevantEvents = null, n.validMutation = null, n.mutatedRelevantEvents = null, n.handlePointerDown = function(e) {
var t = n.component,
r = Jn(n.querySegEl(e)),
o = n.eventRange = r.eventRange;
n.dragging.minDistance = t.context.options.eventDragMinDistance, n.dragging.setIgnoreMove(!n.component.isValidSegDownEl(e.origEvent.target) || e.isTouch && n.component.props.eventSelection !== o.instance.instanceId)
}, n.handleDragStart = function(e) {
var t = n.component.context,
r = n.eventRange;
n.relevantEvents = bn(t.getCurrentData().eventStore, n.eventRange.instance.instanceId);
var o = n.querySegEl(e);
n.draggingSegEl = o, n.draggingSeg = Jn(o), t.calendarApi.unselect(), t.emitter.trigger("eventResizeStart", {
el: o,
event: new xr(t, r.def, r.instance),
jsEvent: e.origEvent,
view: t.viewApi
})
}, n.handleHitUpdate = function(e, t, r) {
var o = n.component.context,
i = n.relevantEvents,
a = n.hitDragging.initialHit,
s = n.eventRange.instance,
l = null,
u = null,
c = !1,
d = {
affectedEvents: i,
mutatedEvents: {
defs: {},
instances: {}
},
isEvent: !0
};
e && (e.componentId === a.componentId && n.isHitComboAllowed && !n.isHitComboAllowed(a, e) || (l = function(e, t, n, r) {
var o = e.context.dateEnv,
i = e.dateSpan.range.start,
a = t.dateSpan.range.start,
s = Fn(i, a, o, e.largeUnit);
if (n) {
if (o.add(r.start, s) < r.end) return {
startDelta: s
}
} else if (o.add(r.end, s) > r.start) return {
endDelta: s
};
return null
}(a, e, r.subjectEl.classList.contains("fc-event-resizer-start"), s.range)));
l && (u = Sr(i, o.getCurrentData().eventUiBases, l, o), d.mutatedEvents = u, Ia(d, e.dateProfile, o) || (c = !0, l = null, u = null, d.mutatedEvents = null)), u ? o.dispatch({
type: "SET_EVENT_RESIZE",
state: d
}) : o.dispatch({
type: "UNSET_EVENT_RESIZE"
}), c ? Ue() : We(), t || (l && Us(a, e) && (l = null), n.validMutation = l, n.mutatedRelevantEvents = u)
}, n.handleDragEnd = function(e) {
var t = n.component.context,
o = n.eventRange.def,
i = n.eventRange.instance,
a = new xr(t, o, i),
s = n.relevantEvents,
l = n.mutatedRelevantEvents;
if (t.emitter.trigger("eventResizeStop", {
el: n.draggingSegEl,
event: a,
jsEvent: e.origEvent,
view: t.viewApi
}), n.validMutation) {
var u = new xr(t, l.defs[o.defId], i ? l.instances[i.instanceId] : null);
t.dispatch({
type: "MERGE_EVENTS",
eventStore: l
});
var c = {
oldEvent: a,
event: u,
relatedEvents: Ir(l, t, i),
revert: function() {
t.dispatch({
type: "MERGE_EVENTS",
eventStore: s
})
}
};
t.emitter.trigger("eventResize", r(r({}, c), {
el: n.draggingSegEl,
startDelta: n.validMutation.startDelta || Nt(0),
endDelta: n.validMutation.endDelta || Nt(0),
jsEvent: e.origEvent,
view: t.viewApi
})), t.emitter.trigger("eventChange", c)
} else t.emitter.trigger("_noEventResize");
n.draggingSeg = null, n.relevantEvents = null, n.validMutation = null
};
var o = t.component,
i = n.dragging = new Os(t.el);
i.pointer.selector = ".fc-event-resizer", i.touchScrollAllowed = !1, i.autoScroller.isEnabled = o.context.options.dragScroll;
var a = n.hitDragging = new Ls(n.dragging, na(t));
return a.emitter.on("pointerdown", n.handlePointerDown), a.emitter.on("dragstart", n.handleDragStart), a.emitter.on("hitupdate", n.handleHitUpdate), a.emitter.on("dragend", n.handleDragEnd), n
}
return n(t, e), t.prototype.destroy = function() {
this.dragging.destroy()
}, t.prototype.querySegEl = function(e) {
return Se(e.subjectEl, ".fc-event")
}, t
}(ea);
var js = function() {
function e(e) {
var t = this;
this.context = e, this.isRecentPointerDateSelect = !1, this.matchesCancel = !1, this.matchesEvent = !1, this.onSelect = function(e) {
e.jsEvent && (t.isRecentPointerDateSelect = !0)
}, this.onDocumentPointerDown = function(e) {
var n = t.context.options.unselectCancel,
r = _e(e.origEvent);
t.matchesCancel = !!Se(r, n), t.matchesEvent = !!Se(r, Bs.SELECTOR)
}, this.onDocumentPointerUp = function(e) {
var n = t.context,
r = t.documentPointer,
o = n.getCurrentData();
if (!r.wasTouchScroll) {
if (o.dateSelection && !t.isRecentPointerDateSelect) {
var i = n.options.unselectAuto;
!i || i && t.matchesCancel || n.calendarApi.unselect(e)
}
o.eventSelection && !t.matchesEvent && n.dispatch({
type: "UNSELECT_EVENT"
})
}
t.isRecentPointerDateSelect = !1
};
var n = this.documentPointer = new Ts(document);
n.shouldIgnoreMove = !0, n.shouldWatchScroll = !1, n.emitter.on("pointerdown", this.onDocumentPointerDown), n.emitter.on("pointerup", this.onDocumentPointerUp), e.emitter.on("select", this.onSelect)
}
return e.prototype.destroy = function() {
this.context.emitter.off("select", this.onSelect), this.documentPointer.destroy()
}, e
}(),
Gs = {
fixedMirrorParent: yn
},
qs = {
dateClick: yn,
eventDragStart: yn,
eventDragStop: yn,
eventDrop: yn,
eventResizeStart: yn,
eventResizeStop: yn,
eventResize: yn,
drop: yn,
eventReceive: yn,
eventLeave: yn
},
Ys = function() {
function e(e, t) {
var n = this;
this.receivingContext = null, this.droppableEvent = null, this.suppliedDragMeta = null, this.dragMeta = null, this.handleDragStart = function(e) {
n.dragMeta = n.buildDragMeta(e.subjectEl)
}, this.handleHitUpdate = function(e, t, o) {
var i = n.hitDragging.dragging,
a = null,
s = null,
l = !1,
u = {
affectedEvents: {
defs: {},
instances: {}
},
mutatedEvents: {
defs: {},
instances: {}
},
isEvent: n.dragMeta.create
};
e && (a = e.context, n.canDropElOnCalendar(o.subjectEl, a) && (s = function(e, t, n) {
for (var o = r({}, t.leftoverProps), i = 0, a = n.pluginHooks.externalDefTransforms; i < a.length; i++) {
var s = a[i];
r(o, s(e, t))
}
var l = On(o, n),
u = l.refined,
c = l.extra,
d = Ln(u, c, t.sourceId, e.allDay, n.options.forceEventDuration || Boolean(t.duration), n),
p = e.range.start;
e.allDay && t.startTime && (p = n.dateEnv.add(p, t.startTime));
var f = t.duration ? n.dateEnv.add(p, t.duration) : Er(e.allDay, p, n),
h = mt(d.defId, {
start: p,
end: f
});
return {
def: d,
instance: h
}
}(e.dateSpan, n.dragMeta, a), u.mutatedEvents = Sn(s), (l = !Ia(u, e.dateProfile, a)) && (u.mutatedEvents = {
defs: {},
instances: {}
}, s = null))), n.displayDrag(a, u), i.setMirrorIsVisible(t || !s || !document.querySelector(".fc-event-mirror")), l ? Ue() : We(), t || (i.setMirrorNeedsRevert(!s), n.receivingContext = a, n.droppableEvent = s)
}, this.handleDragEnd = function(e) {
var t = n,
o = t.receivingContext,
i = t.droppableEvent;
if (n.clearDrag(), o && i) {
var a = n.hitDragging.finalHit,
s = a.context.viewApi,
l = n.dragMeta;
if (o.emitter.trigger("drop", r(r({}, Ws(a.dateSpan, o)), {
draggedEl: e.subjectEl,
jsEvent: e.origEvent,
view: s
})), l.create) {
var u = Sn(i);
o.dispatch({
type: "MERGE_EVENTS",
eventStore: u
}), e.isTouch && o.dispatch({
type: "SELECT_EVENT",
eventInstanceId: i.instance.instanceId
}), o.emitter.trigger("eventReceive", {
event: new xr(o, i.def, i.instance),
relatedEvents: [],
revert: function() {
o.dispatch({
type: "REMOVE_EVENTS",
eventStore: u
})
},
draggedEl: e.subjectEl,
view: s
})
}
}
n.receivingContext = null, n.droppableEvent = null
};
var o = this.hitDragging = new Ls(e, ra);
o.requireInitial = !1, o.emitter.on("dragstart", this.handleDragStart), o.emitter.on("hitupdate", this.handleHitUpdate), o.emitter.on("dragend", this.handleDragEnd), this.suppliedDragMeta = t
}
return e.prototype.buildDragMeta = function(e) {
return "object" == typeof this.suppliedDragMeta ? sa(this.suppliedDragMeta) : "function" == typeof this.suppliedDragMeta ? sa(this.suppliedDragMeta(e)) : sa((t = function(e, t) {
var n = ia.dataAttrPrefix,
r = (n ? n + "-" : "") + t;
return e.getAttribute("data-" + r) || ""
}(e, "event")) ? JSON.parse(t) : {
create: !1
});
var t
}, e.prototype.displayDrag = function(e, t) {
var n = this.receivingContext;
n && n !== e && n.dispatch({
type: "UNSET_EVENT_DRAG"
}), e && e.dispatch({
type: "SET_EVENT_DRAG",
state: t
})
}, e.prototype.clearDrag = function() {
this.receivingContext && this.receivingContext.dispatch({
type: "UNSET_EVENT_DRAG"
})
}, e.prototype.canDropElOnCalendar = function(e, t) {
var n = t.options.dropAccept;
return "function" == typeof n ? n.call(t.calendarApi, e) : "string" != typeof n || !n || Boolean(be(e, n))
}, e
}();
ia.dataAttrPrefix = "";
var Zs = function() {
function e(e, t) {
var n = this;
void 0 === t && (t = {}), this.handlePointerDown = function(e) {
var t = n.dragging,
r = n.settings,
o = r.minDistance,
i = r.longPressDelay;
t.minDistance = null != o ? o : e.isTouch ? 0 : cn.eventDragMinDistance, t.delay = e.isTouch ? null != i ? i : cn.longPressDelay : 0
}, this.handleDragStart = function(e) {
e.isTouch && n.dragging.delay && e.subjectEl.classList.contains("fc-event") && n.dragging.mirror.getMirrorEl().classList.add("fc-event-selected")
}, this.settings = t;
var r = this.dragging = new Os(e);
r.touchScrollAllowed = !1, null != t.itemSelector && (r.pointer.selector = t.itemSelector), null != t.appendTo && (r.mirror.parentNode = t.appendTo), r.emitter.on("pointerdown", this.handlePointerDown), r.emitter.on("dragstart", this.handleDragStart), new Ys(r, t.eventData)
}
return e.prototype.destroy = function() {
this.dragging.destroy()
}, e
}(),
Xs = function(e) {
function t(t) {
var n = e.call(this, t) || this;
n.shouldIgnoreMove = !1, n.mirrorSelector = "", n.currentMirrorEl = null, n.handlePointerDown = function(e) {
n.emitter.trigger("pointerdown", e), n.shouldIgnoreMove || n.emitter.trigger("dragstart", e)
}, n.handlePointerMove = function(e) {
n.shouldIgnoreMove || n.emitter.trigger("dragmove", e)
}, n.handlePointerUp = function(e) {
n.emitter.trigger("pointerup", e), n.shouldIgnoreMove || n.emitter.trigger("dragend", e)
};
var r = n.pointer = new Ts(t);
return r.emitter.on("pointerdown", n.handlePointerDown), r.emitter.on("pointermove", n.handlePointerMove), r.emitter.on("pointerup", n.handlePointerUp), n
}
return n(t, e), t.prototype.destroy = function() {
this.pointer.destroy()
}, t.prototype.setIgnoreMove = function(e) {
this.shouldIgnoreMove = e
}, t.prototype.setMirrorIsVisible = function(e) {
if (e) this.currentMirrorEl && (this.currentMirrorEl.style.visibility = "", this.currentMirrorEl = null);
else {
var t = this.mirrorSelector ? document.querySelector(this.mirrorSelector) : null;
t && (this.currentMirrorEl = t, t.style.visibility = "hidden")
}
}, t
}(oa),
Ks = function() {
function e(e, t) {
var n = document;
e === document || e instanceof Element ? (n = e, t = t || {}) : t = e || {};
var r = this.dragging = new Xs(n);
"string" == typeof t.itemSelector ? r.pointer.selector = t.itemSelector : n === document && (r.pointer.selector = "[data-event]"), "string" == typeof t.mirrorSelector && (r.mirrorSelector = t.mirrorSelector), new Ys(r, t.eventData)
}
return e.prototype.destroy = function() {
this.dragging.destroy()
}, e
}(),
$s = zo({
componentInteractions: [Vs, Fs, Bs, zs],
calendarInteractions: [js],
elementDraggingImpl: Os,
optionRefiners: Gs,
listenerRefiners: qs
}),
Js = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.headerElRef = ko(), t
}
return n(t, e), t.prototype.renderSimpleLayout = function(e, t) {
var n = this.props,
r = this.context,
o = [],
i = Qa(r.options);
return e && o.push({
type: "header",
key: "header",
isSticky: i,
chunk: {
elRef: this.headerElRef,
tableClassName: "fc-col-header",
rowContent: e
}
}), o.push({
type: "body",
key: "body",
liquid: !0,
chunk: {
content: t
}
}), _o(ti, {
viewSpec: r.viewSpec
}, (function(e, t) {
return _o("div", {
ref: e,
className: ["fc-daygrid"].concat(t).join(" ")
}, _o(ts, {
liquid: !n.isHeightAuto && !n.forPrint,
collapsibleWidth: n.forPrint,
cols: [],
sections: o
}))
}))
}, t.prototype.renderHScrollLayout = function(e, t, n, r) {
var o = this.context.pluginHooks.scrollGridImpl;
if (!o) throw new Error("No ScrollGrid implementation");
var i = this.props,
a = this.context,
s = !i.forPrint && Qa(a.options),
l = !i.forPrint && es(a.options),
u = [];
return e && u.push({
type: "header",
key: "header",
isSticky: s,
chunks: [{
key: "main",
elRef: this.headerElRef,
tableClassName: "fc-col-header",
rowContent: e
}]
}), u.push({
type: "body",
key: "body",
liquid: !0,
chunks: [{
key: "main",
content: t
}]
}), l && u.push({
type: "footer",
key: "footer",
isSticky: !0,
chunks: [{
key: "main",
content: Ja
}]
}), _o(ti, {
viewSpec: a.viewSpec
}, (function(e, t) {
return _o("div", {
ref: e,
className: ["fc-daygrid"].concat(t).join(" ")
}, _o(o, {
liquid: !i.isHeightAuto && !i.forPrint,
collapsibleWidth: i.forPrint,
colGroups: [{
cols: [{
span: n,
minWidth: r
}]
}],
sections: u
}))
}))
}, t
}(Bo);
function Qs(e, t) {
for (var n = [], r = 0; r < t; r += 1) n[r] = [];
for (var o = 0, i = e; o < i.length; o++) {
var a = i[o];
n[a.row].push(a)
}
return n
}
function el(e, t) {
for (var n = [], r = 0; r < t; r += 1) n[r] = [];
for (var o = 0, i = e; o < i.length; o++) {
var a = i[o];
n[a.firstCol].push(a)
}
return n
}
function tl(e, t) {
var n = [];
if (e) {
for (a = 0; a < t; a += 1) n[a] = {
affectedInstances: e.affectedInstances,
isEvent: e.isEvent,
segs: []
};
for (var r = 0, o = e.segs; r < o.length; r++) {
var i = o[r];
n[i.row].segs.push(i)
}
} else
for (var a = 0; a < t; a += 1) n[a] = null;
return n
}
var nl = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = so(this.context, e.date);
return _o(ss, {
date: e.date,
dateProfile: e.dateProfile,
todayRange: e.todayRange,
showDayNumber: e.showDayNumber,
extraHookProps: e.extraHookProps,
defaultContent: rl
}, (function(n, o) {
return (o || e.forceDayTop) && _o("div", {
className: "fc-daygrid-day-top",
ref: n
}, _o("a", r({
id: e.dayNumberId,
className: "fc-daygrid-day-number"
}, t), o || _o(xo, null, " ")))
}))
}, t
}(Uo);
function rl(e) {
return e.dayNumberText
}
var ol = ln({
hour: "numeric",
minute: "2-digit",
omitZeroMinute: !0,
meridiem: "narrow"
});
function il(e) {
var t = e.eventRange.ui.display;
return "list-item" === t || "auto" === t && !e.eventRange.def.allDay && e.firstCol === e.lastCol && e.isStart && e.isEnd
}
var al = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props;
return _o(rs, r({}, e, {
extraClassNames: ["fc-daygrid-event", "fc-daygrid-block-event", "fc-h-event"],
defaultTimeFormat: ol,
defaultDisplayEventEnd: e.defaultDisplayEventEnd,
disableResizing: !e.seg.eventRange.def.allDay
}))
}, t
}(Uo),
sl = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = t.options.eventTimeFormat || ol,
o = ar(e.seg, n, t, !0, e.defaultDisplayEventEnd);
return _o(ns, {
seg: e.seg,
timeText: o,
defaultContent: ll,
isDragging: e.isDragging,
isResizing: !1,
isDateSelecting: !1,
isSelected: e.isSelected,
isPast: e.isPast,
isFuture: e.isFuture,
isToday: e.isToday
}, (function(n, o, i, a) {
return _o("a", r({
className: ["fc-daygrid-event", "fc-daygrid-dot-event"].concat(o).join(" "),
ref: n
}, cr(e.seg, t)), a)
}))
}, t
}(Uo);
function ll(e) {
return _o(xo, null, _o("div", {
className: "fc-daygrid-event-dot",
style: {
borderColor: e.borderColor || e.backgroundColor
}
}), e.timeText && _o("div", {
className: "fc-event-time"
}, e.timeText), _o("div", {
className: "fc-event-title"
}, e.event.title || _o(xo, null, " ")))
}
var ul = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.compileSegs = qt(cl), t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.compileSegs(e.singlePlacements),
n = t.allSegs,
o = t.invisibleSegs;
return _o(ms, {
dateProfile: e.dateProfile,
todayRange: e.todayRange,
allDayDate: e.allDayDate,
moreCnt: e.moreCnt,
allSegs: n,
hiddenSegs: o,
alignmentElRef: e.alignmentElRef,
alignGridTop: e.alignGridTop,
extraDateSpan: e.extraDateSpan,
popoverContent: function() {
var t = (e.eventDrag ? e.eventDrag.affectedInstances : null) || (e.eventResize ? e.eventResize.affectedInstances : null) || {};
return _o(xo, null, n.map((function(n) {
var o = n.eventRange.instance.instanceId;
return _o("div", {
className: "fc-daygrid-event-harness",
key: o,
style: {
visibility: t[o] ? "hidden" : ""
}
}, il(n) ? _o(sl, r({
seg: n,
isDragging: !1,
isSelected: o === e.eventSelection,
defaultDisplayEventEnd: !1
}, sr(n, e.todayRange))) : _o(al, r({
seg: n,
isDragging: !1,
isResizing: !1,
isDateSelecting: !1,
isSelected: o === e.eventSelection,
defaultDisplayEventEnd: !1
}, sr(n, e.todayRange))))
})))
}
}, (function(e, t, n, o, i, a, s, l) {
return _o("a", r({
ref: e,
className: ["fc-daygrid-more-link"].concat(t).join(" "),
title: a,
"aria-expanded": s,
"aria-controls": l
}, He(i)), o)
}))
}, t
}(Uo);
function cl(e) {
for (var t = [], n = [], r = 0, o = e; r < o.length; r++) {
var i = o[r];
t.push(i.seg), i.isVisible || n.push(i.seg)
}
return {
allSegs: t,
invisibleSegs: n
}
}
var dl = ln({
week: "narrow"
}),
pl = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.rootElRef = ko(), t.state = {
dayNumberId: xe()
}, t.handleRootEl = function(e) {
Fo(t.rootElRef, e), Fo(t.props.elRef, e)
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = e.context,
n = e.props,
o = e.state,
i = e.rootElRef,
a = n.date,
s = n.dateProfile,
l = so(t, a, "week");
return _o(us, {
date: a,
dateProfile: s,
todayRange: n.todayRange,
showDayNumber: n.showDayNumber,
extraHookProps: n.extraHookProps,
elRef: this.handleRootEl
}, (function(e, t, u, c) {
return _o("td", r({
ref: e,
role: "gridcell",
className: ["fc-daygrid-day"].concat(t, n.extraClassNames || []).join(" ")
}, u, n.extraDataAttrs, n.showDayNumber ? {
"aria-labelledby": o.dayNumberId
} : {}), _o("div", {
className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner",
ref: n.innerElRef
}, n.showWeekNumber && _o(fs, {
date: a,
defaultFormat: dl
}, (function(e, t, n, o) {
return _o("a", r({
ref: e,
className: ["fc-daygrid-week-number"].concat(t).join(" ")
}, l), o)
})), !c && _o(nl, {
date: a,
dateProfile: s,
showDayNumber: n.showDayNumber,
dayNumberId: o.dayNumberId,
forceDayTop: n.forceDayTop,
todayRange: n.todayRange,
extraHookProps: n.extraHookProps
}), _o("div", {
className: "fc-daygrid-day-events",
ref: n.fgContentElRef
}, n.fgContent, _o("div", {
className: "fc-daygrid-day-bottom",
style: {
marginTop: n.moreMarginTop
}
}, _o(ul, {
allDayDate: a,
singlePlacements: n.singlePlacements,
moreCnt: n.moreCnt,
alignmentElRef: i,
alignGridTop: !n.showDayNumber,
extraDateSpan: n.extraDateSpan,
dateProfile: n.dateProfile,
eventSelection: n.eventSelection,
eventDrag: n.eventDrag,
eventResize: n.eventResize,
todayRange: n.todayRange
}))), _o("div", {
className: "fc-daygrid-day-bg"
}, n.bgContent)))
}))
}, t
}(Bo);
function fl(e, t, n, r, o, i, a) {
var s = new vl;
s.allowReslicing = !0, s.strictOrder = r, !0 === t || !0 === n ? (s.maxCoord = i, s.hiddenConsumes = !0) : "number" == typeof t ? s.maxStackCnt = t : "number" == typeof n && (s.maxStackCnt = n, s.hiddenConsumes = !0);
for (var l = [], u = [], c = 0; c < e.length; c += 1) {
var d = o[(R = e[c]).eventRange.instance.instanceId];
null != d ? l.push({
index: c,
thickness: d,
span: {
start: R.firstCol,
end: R.lastCol + 1
}
}) : u.push(R)
}
for (var p = s.addSegs(l), f = function(e, t, n) {
for (var r = function(e, t) {
for (var n = [], r = 0; r < t; r += 1) n.push([]);
for (var o = 0, i = e; o < i.length; o++) {
var a = i[o];
for (r = a.span.start; r < a.span.end; r += 1) n[r].push(a)
}
return n
}(e, n.length), o = [], i = [], a = [], s = 0; s < n.length; s += 1) {
for (var l = r[s], u = [], c = 0, d = 0, p = 0, f = l; p < f.length; p++) {
var h = t[(y = f[p]).index];
u.push({
seg: hl(h, s, s + 1, n),
isVisible: !0,
isAbsolute: !1,
absoluteTop: y.levelCoord,
marginTop: y.levelCoord - c
}), c = y.levelCoord + y.thickness
}
var v = [];
c = 0, d = 0;
for (var g = 0, m = l; g < m.length; g++) {
h = t[(y = m[g]).index];
var y, E = y.span.end - y.span.start > 1,
S = y.span.start === s;
d += y.levelCoord - c, c = y.levelCoord + y.thickness, E ? (d += y.thickness, S && v.push({
seg: hl(h, y.span.start, y.span.end, n),
isVisible: !0,
isAbsolute: !0,
absoluteTop: y.levelCoord,
marginTop: 0
})) : S && (v.push({
seg: hl(h, y.span.start, y.span.end, n),
isVisible: !0,
isAbsolute: !1,
absoluteTop: y.levelCoord,
marginTop: d
}), d = 0)
}
o.push(u), i.push(v), a.push(d)
}
return {
singleColPlacements: o,
multiColPlacements: i,
leftoverMargins: a
}
}(s.toRects(), e, a), h = f.singleColPlacements, v = f.multiColPlacements, g = f.leftoverMargins, m = [], y = [], E = 0, S = u; E < S.length; E++) {
v[(R = S[E]).firstCol].push({
seg: R,
isVisible: !1,
isAbsolute: !0,
absoluteTop: 0,
marginTop: 0
});
for (var b = R.firstCol; b <= R.lastCol; b += 1) h[b].push({
seg: hl(R, b, b + 1, a),
isVisible: !1,
isAbsolute: !1,
absoluteTop: 0,
marginTop: 0
})
}
for (b = 0; b < a.length; b += 1) m.push(0);
for (var D = 0, C = p; D < C.length; D++) {
var w = C[D],
R = e[w.index],
_ = w.span;
v[_.start].push({
seg: hl(R, _.start, _.end, a),
isVisible: !1,
isAbsolute: !0,
absoluteTop: 0,
marginTop: 0
});
for (b = _.start; b < _.end; b += 1) m[b] += 1, h[b].push({
seg: hl(R, b, b + 1, a),
isVisible: !1,
isAbsolute: !1,
absoluteTop: 0,
marginTop: 0
})
}
for (b = 0; b < a.length; b += 1) y.push(g[b]);
return {
singleColPlacements: h,
multiColPlacements: v,
moreCnts: m,
moreMarginTops: y
}
}
function hl(e, t, n, o) {
if (e.firstCol === t && e.lastCol === n - 1) return e;
var i = e.eventRange,
a = i.range,
s = jn(a, {
start: o[t].date,
end: tt(o[n - 1].date, 1)
});
return r(r({}, e), {
firstCol: t,
lastCol: n - 1,
eventRange: {
def: i.def,
ui: r(r({}, i.ui), {
durationEditable: !1
}),
instance: i.instance,
range: s
},
isStart: e.isStart && s.start.valueOf() === a.start.valueOf(),
isEnd: e.isEnd && s.end.valueOf() === a.end.valueOf()
})
}
var vl = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.hiddenConsumes = !1, t.forceHidden = {}, t
}
return n(t, e), t.prototype.addSegs = function(t) {
for (var n = this, r = e.prototype.addSegs.call(this, t), o = this.entriesByLevel, i = function(e) {
return !n.forceHidden[Zi(e)]
}, a = 0; a < o.length; a += 1) o[a] = o[a].filter(i);
return r
}, t.prototype.handleInvalidInsertion = function(t, n, o) {
var i = this.entriesByLevel,
a = this.forceHidden,
s = t.touchingEntry,
l = t.touchingLevel,
u = t.touchingLateral;
if (this.hiddenConsumes && s) {
var c = Zi(s);
if (!a[c])
if (this.allowReslicing) {
var d = r(r({}, s), {
span: $i(s.span, n.span)
});
a[Zi(d)] = !0, i[l][u] = d, this.splitEntry(s, n, o)
} else a[c] = !0, o.push(s)
}
return e.prototype.handleInvalidInsertion.call(this, t, n, o)
}, t
}(qi),
gl = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.cellElRefs = new Fa, t.frameElRefs = new Fa, t.fgElRefs = new Fa, t.segHarnessRefs = new Fa, t.rootElRef = ko(), t.state = {
framePositions: null,
maxContentHeight: null,
eventInstanceHeights: {}
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this,
n = t.props,
r = t.state,
o = t.context.options,
i = n.cells.length,
a = el(n.businessHourSegs, i),
s = el(n.bgEventSegs, i),
l = el(this.getHighlightSegs(), i),
u = el(this.getMirrorSegs(), i),
c = fl(tr(n.fgEventSegs, o.eventOrder), n.dayMaxEvents, n.dayMaxEventRows, o.eventOrderStrict, r.eventInstanceHeights, r.maxContentHeight, n.cells),
d = c.singleColPlacements,
p = c.multiColPlacements,
f = c.moreCnts,
h = c.moreMarginTops,
v = n.eventDrag && n.eventDrag.affectedInstances || n.eventResize && n.eventResize.affectedInstances || {};
return _o("tr", {
ref: this.rootElRef,
role: "row"
}, n.renderIntro && n.renderIntro(), n.cells.map((function(t, r) {
var o = e.renderFgSegs(r, n.forPrint ? d[r] : p[r], n.todayRange, v),
i = e.renderFgSegs(r, function(e, t) {
if (!e.length) return [];
var n = function(e) {
for (var t = {}, n = 0, r = e; n < r.length; n++)
for (var o = 0, i = r[n]; o < i.length; o++) {
var a = i[o];
t[a.seg.eventRange.instance.instanceId] = a.absoluteTop
}
return t
}(t);
return e.map((function(e) {
return {
seg: e,
isVisible: !0,
isAbsolute: !0,
absoluteTop: n[e.eventRange.instance.instanceId],
marginTop: 0
}
}))
}(u[r], p), n.todayRange, {}, Boolean(n.eventDrag), Boolean(n.eventResize), !1);
return _o(pl, {
key: t.key,
elRef: e.cellElRefs.createRef(t.key),
innerElRef: e.frameElRefs.createRef(t.key),
dateProfile: n.dateProfile,
date: t.date,
showDayNumber: n.showDayNumbers,
showWeekNumber: n.showWeekNumbers && 0 === r,
forceDayTop: n.showWeekNumbers,
todayRange: n.todayRange,
eventSelection: n.eventSelection,
eventDrag: n.eventDrag,
eventResize: n.eventResize,
extraHookProps: t.extraHookProps,
extraDataAttrs: t.extraDataAttrs,
extraClassNames: t.extraClassNames,
extraDateSpan: t.extraDateSpan,
moreCnt: f[r],
moreMarginTop: h[r],
singlePlacements: d[r],
fgContentElRef: e.fgElRefs.createRef(t.key),
fgContent: _o(xo, null, _o(xo, null, o), _o(xo, null, i)),
bgContent: _o(xo, null, e.renderFillSegs(l[r], "highlight"), e.renderFillSegs(a[r], "non-business"), e.renderFillSegs(s[r], "bg-event"))
})
})))
}, t.prototype.componentDidMount = function() {
this.updateSizing(!0)
}, t.prototype.componentDidUpdate = function(e, t) {
var n = this.props;
this.updateSizing(!wt(e, n))
}, t.prototype.getHighlightSegs = function() {
var e = this.props;
return e.eventDrag && e.eventDrag.segs.length ? e.eventDrag.segs : e.eventResize && e.eventResize.segs.length ? e.eventResize.segs : e.dateSelectionSegs
}, t.prototype.getMirrorSegs = function() {
var e = this.props;
return e.eventResize && e.eventResize.segs.length ? e.eventResize.segs : []
}, t.prototype.renderFgSegs = function(e, t, n, o, i, a, s) {
var l = this.context,
u = this.props.eventSelection,
c = this.state.framePositions,
d = 1 === this.props.cells.length,
p = i || a || s,
f = [];
if (c)
for (var h = 0, v = t; h < v.length; h++) {
var g = v[h],
m = g.seg,
y = m.eventRange.instance.instanceId,
E = y + ":" + e,
S = g.isVisible && !o[y],
b = g.isAbsolute,
D = "",
C = "";
b && (l.isRtl ? (C = 0, D = c.lefts[m.lastCol] - c.lefts[m.firstCol]) : (D = 0, C = c.rights[m.firstCol] - c.rights[m.lastCol])), f.push(_o("div", {
className: "fc-daygrid-event-harness" + (b ? " fc-daygrid-event-harness-abs" : ""),
key: E,
ref: p ? null : this.segHarnessRefs.createRef(E),
style: {
visibility: S ? "" : "hidden",
marginTop: b ? "" : g.marginTop,
top: b ? g.absoluteTop : "",
left: D,
right: C
}
}, il(m) ? _o(sl, r({
seg: m,
isDragging: i,
isSelected: y === u,
defaultDisplayEventEnd: d
}, sr(m, n))) : _o(al, r({
seg: m,
isDragging: i,
isResizing: a,
isDateSelecting: s,
isSelected: y === u,
defaultDisplayEventEnd: d
}, sr(m, n)))))
}
return f
}, t.prototype.renderFillSegs = function(e, t) {
var n = this.context.isRtl,
i = this.props.todayRange,
a = this.state.framePositions,
s = [];
if (a)
for (var l = 0, u = e; l < u.length; l++) {
var c = u[l],
d = n ? {
right: 0,
left: a.lefts[c.lastCol] - a.lefts[c.firstCol]
} : {
left: 0,
right: a.rights[c.firstCol] - a.rights[c.lastCol]
};
s.push(_o("div", {
key: ur(c.eventRange),
className: "fc-daygrid-bg-harness",
style: d
}, "bg-event" === t ? _o(ds, r({
seg: c
}, sr(c, i))) : cs(t)))
}
return _o.apply(void 0, o([xo, {}], s))
}, t.prototype.updateSizing = function(e) {
var t = this.props,
n = this.frameElRefs;
if (!t.forPrint && null !== t.clientWidth) {
if (e) {
var o = t.cells.map((function(e) {
return n.currentMap[e.key]
}));
if (o.length) {
var i = this.rootElRef.current;
this.setState({
framePositions: new So(i, o, !0, !1)
})
}
}
var a = this.state.eventInstanceHeights,
s = this.queryEventInstanceHeights(),
l = !0 === t.dayMaxEvents || !0 === t.dayMaxEventRows;
this.setState({
eventInstanceHeights: r(r({}, a), s),
maxContentHeight: l ? this.computeMaxContentHeight() : null
})
}
}, t.prototype.queryEventInstanceHeights = function() {
var e = this.segHarnessRefs.currentMap,
t = {};
for (var n in e) {
var r = Math.round(e[n].getBoundingClientRect().height),
o = n.split(":")[0];
t[o] = Math.max(t[o] || 0, r)
}
return t
}, t.prototype.computeMaxContentHeight = function() {
var e = this.props.cells[0].key,
t = this.cellElRefs.currentMap[e],
n = this.fgElRefs.currentMap[e];
return t.getBoundingClientRect().bottom - n.getBoundingClientRect().top
}, t.prototype.getCellEls = function() {
var e = this.cellElRefs.currentMap;
return this.props.cells.map((function(t) {
return e[t.key]
}))
}, t
}(Bo);
gl.addStateEquality({
eventInstanceHeights: wt
});
var ml = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.splitBusinessHourSegs = qt(Qs), t.splitBgEventSegs = qt(Qs), t.splitFgEventSegs = qt(Qs), t.splitDateSelectionSegs = qt(Qs), t.splitEventDrag = qt(tl), t.splitEventResize = qt(tl), t.rowRefs = new Fa, t.handleRootEl = function(e) {
t.rootEl = e, e ? t.context.registerInteractiveComponent(t, {
el: e,
isHitComboAllowed: t.props.isHitComboAllowed
}) : t.context.unregisterInteractiveComponent(t)
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props,
n = t.dateProfile,
r = t.dayMaxEventRows,
o = t.dayMaxEvents,
i = t.expandRows,
a = t.cells.length,
s = this.splitBusinessHourSegs(t.businessHourSegs, a),
l = this.splitBgEventSegs(t.bgEventSegs, a),
u = this.splitFgEventSegs(t.fgEventSegs, a),
c = this.splitDateSelectionSegs(t.dateSelectionSegs, a),
d = this.splitEventDrag(t.eventDrag, a),
p = this.splitEventResize(t.eventResize, a),
f = !0 === o || !0 === r;
return f && !i && (f = !1, r = null, o = null), _o("div", {
className: ["fc-daygrid-body", f ? "fc-daygrid-body-balanced" : "fc-daygrid-body-unbalanced", i ? "" : "fc-daygrid-body-natural"].join(" "),
ref: this.handleRootEl,
style: {
width: t.clientWidth,
minWidth: t.tableMinWidth
}
}, _o(Ca, {
unit: "day"
}, (function(f, h) {
return _o(xo, null, _o("table", {
role: "presentation",
className: "fc-scrollgrid-sync-table",
style: {
width: t.clientWidth,
minWidth: t.tableMinWidth,
height: i ? t.clientHeight : ""
}
}, t.colGroupNode, _o("tbody", {
role: "presentation"
}, t.cells.map((function(i, f) {
return _o(gl, {
ref: e.rowRefs.createRef(f),
key: i.length ? i[0].date.toISOString() : f,
showDayNumbers: a > 1,
showWeekNumbers: t.showWeekNumbers,
todayRange: h,
dateProfile: n,
cells: i,
renderIntro: t.renderRowIntro,
businessHourSegs: s[f],
eventSelection: t.eventSelection,
bgEventSegs: l[f].filter(yl),
fgEventSegs: u[f],
dateSelectionSegs: c[f],
eventDrag: d[f],
eventResize: p[f],
dayMaxEvents: o,
dayMaxEventRows: r,
clientWidth: t.clientWidth,
clientHeight: t.clientHeight,
forPrint: t.forPrint
})
})))))
})))
}, t.prototype.prepareHits = function() {
this.rowPositions = new So(this.rootEl, this.rowRefs.collect().map((function(e) {
return e.getCellEls()[0]
})), !1, !0), this.colPositions = new So(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), !0, !1)
}, t.prototype.queryHit = function(e, t) {
var n = this.colPositions,
o = this.rowPositions,
i = n.leftToIndex(e),
a = o.topToIndex(t);
if (null != a && null != i) {
var s = this.props.cells[a][i];
return {
dateProfile: this.props.dateProfile,
dateSpan: r({
range: this.getCellRange(a, i),
allDay: !0
}, s.extraDateSpan),
dayEl: this.getCellEl(a, i),
rect: {
left: n.lefts[i],
right: n.rights[i],
top: o.tops[a],
bottom: o.bottoms[a]
},
layer: 0
}
}
return null
}, t.prototype.getCellEl = function(e, t) {
return this.rowRefs.currentMap[e].getCellEls()[t]
}, t.prototype.getCellRange = function(e, t) {
var n = this.props.cells[e][t].date;
return {
start: n,
end: tt(n, 1)
}
}, t
}(Bo);
function yl(e) {
return e.eventRange.def.allDay
}
var El = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.forceDayIfListItem = !0, t
}
return n(t, e), t.prototype.sliceRange = function(e, t) {
return t.sliceRange(e)
}, t
}(xa),
Sl = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.slicer = new El, t.tableRef = ko(), t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context;
return _o(ml, r({
ref: this.tableRef
}, this.slicer.sliceProps(e, e.dateProfile, e.nextDayThreshold, t, e.dayTableModel), {
dateProfile: e.dateProfile,
cells: e.dayTableModel.cells,
colGroupNode: e.colGroupNode,
tableMinWidth: e.tableMinWidth,
renderRowIntro: e.renderRowIntro,
dayMaxEvents: e.dayMaxEvents,
dayMaxEventRows: e.dayMaxEventRows,
showWeekNumbers: e.showWeekNumbers,
expandRows: e.expandRows,
headerAlignElRef: e.headerAlignElRef,
clientWidth: e.clientWidth,
clientHeight: e.clientHeight,
forPrint: e.forPrint
}))
}, t
}(Bo),
bl = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.buildDayTableModel = qt(Dl), t.headerRef = ko(), t.tableRef = ko(), t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.context,
n = t.options,
r = t.dateProfileGenerator,
o = this.props,
i = this.buildDayTableModel(o.dateProfile, r),
a = n.dayHeaders && _o(Ra, {
ref: this.headerRef,
dateProfile: o.dateProfile,
dates: i.headerDates,
datesRepDistinctDays: 1 === i.rowCnt
}),
s = function(t) {
return _o(Sl, {
ref: e.tableRef,
dateProfile: o.dateProfile,
dayTableModel: i,
businessHours: o.businessHours,
dateSelection: o.dateSelection,
eventStore: o.eventStore,
eventUiBases: o.eventUiBases,
eventSelection: o.eventSelection,
eventDrag: o.eventDrag,
eventResize: o.eventResize,
nextDayThreshold: n.nextDayThreshold,
colGroupNode: t.tableColGroupNode,
tableMinWidth: t.tableMinWidth,
dayMaxEvents: n.dayMaxEvents,
dayMaxEventRows: n.dayMaxEventRows,
showWeekNumbers: n.weekNumbers,
expandRows: !o.isHeightAuto,
headerAlignElRef: e.headerElRef,
clientWidth: t.clientWidth,
clientHeight: t.clientHeight,
forPrint: o.forPrint
})
};
return n.dayMinWidth ? this.renderHScrollLayout(a, s, i.colCnt, n.dayMinWidth) : this.renderSimpleLayout(a, s)
}, t
}(Js);
function Dl(e, t) {
var n = new Ta(e.renderRange, t);
return new ka(n, /year|month|week/.test(e.currentRangeUnit))
}
var Cl = zo({
initialView: "dayGridMonth",
views: {
dayGrid: {
component: bl,
dateProfileGeneratorClass: function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.buildRenderRange = function(t, n, r) {
var o, i = this.props.dateEnv,
a = e.prototype.buildRenderRange.call(this, t, n, r),
s = a.start,
l = a.end;
(/^(year|month)$/.test(n) && (s = i.startOfWeek(s), (o = i.startOfWeek(l)).valueOf() !== l.valueOf() && (l = et(o, 1))), this.props.monthMode && this.props.fixedWeekCount) && (l = et(l, 6 - Math.ceil(rt(s, l))));
return {
start: s,
end: l
}
}, t
}(ai)
},
dayGridDay: {
type: "dayGrid",
duration: {
days: 1
}
},
dayGridWeek: {
type: "dayGrid",
duration: {
weeks: 1
}
},
dayGridMonth: {
type: "dayGrid",
duration: {
months: 1
},
monthMode: !0,
fixedWeekCount: !0
}
}
}),
wl = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.getKeyInfo = function() {
return {
allDay: {},
timed: {}
}
}, t.prototype.getKeysForDateSpan = function(e) {
return e.allDay ? ["allDay"] : ["timed"]
}, t.prototype.getKeysForEventDef = function(e) {
return e.allDay ? Kn(e) ? ["timed", "allDay"] : ["allDay"] : ["timed"]
}, t
}(to),
Rl = ln({
hour: "numeric",
minute: "2-digit",
omitZeroMinute: !0,
meridiem: "short"
});
function _l(e) {
var t = ["fc-timegrid-slot", "fc-timegrid-slot-label", e.isLabeled ? "fc-scrollgrid-shrink" : "fc-timegrid-slot-minor"];
return _o(Oo.Consumer, null, (function(n) {
if (!e.isLabeled) return _o("td", {
className: t.join(" "),
"data-time": e.isoTimeStr
});
var r = n.dateEnv,
o = n.options,
i = n.viewApi,
a = null == o.slotLabelFormat ? Rl : Array.isArray(o.slotLabelFormat) ? ln(o.slotLabelFormat[0]) : ln(o.slotLabelFormat),
s = {
level: 0,
time: e.time,
date: r.toDate(e.date),
view: i,
text: r.format(e.date, a)
};
return _o(Yo, {
hookProps: s,
classNames: o.slotLabelClassNames,
content: o.slotLabelContent,
defaultContent: Tl,
didMount: o.slotLabelDidMount,
willUnmount: o.slotLabelWillUnmount
}, (function(n, r, o, i) {
return _o("td", {
ref: n,
className: t.concat(r).join(" "),
"data-time": e.isoTimeStr
}, _o("div", {
className: "fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame"
}, _o("div", {
className: "fc-timegrid-slot-label-cushion fc-scrollgrid-shrink-cushion",
ref: o
}, i)))
}))
}))
}
function Tl(e) {
return e.text
}
var kl = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
return this.props.slatMetas.map((function(e) {
return _o("tr", {
key: e.key
}, _o(_l, r({}, e)))
}))
}, t
}(Uo),
xl = ln({
week: "short"
}),
Ml = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.allDaySplitter = new wl, t.headerElRef = ko(), t.rootElRef = ko(), t.scrollerElRef = ko(), t.state = {
slatCoords: null
}, t.handleScrollTopRequest = function(e) {
var n = t.scrollerElRef.current;
n && (n.scrollTop = e)
}, t.renderHeadAxis = function(e, n) {
void 0 === n && (n = "");
var o = t.context.options,
i = t.props.dateProfile.renderRange,
a = 1 === ot(i.start, i.end) ? so(t.context, i.start, "week") : {};
return o.weekNumbers && "day" === e ? _o(fs, {
date: i.start,
defaultFormat: xl
}, (function(e, t, o, i) {
return _o("th", {
ref: e,
"aria-hidden": !0,
className: ["fc-timegrid-axis", "fc-scrollgrid-shrink"].concat(t).join(" ")
}, _o("div", {
className: "fc-timegrid-axis-frame fc-scrollgrid-shrink-frame fc-timegrid-axis-frame-liquid",
style: {
height: n
}
}, _o("a", r({
ref: o,
className: "fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner"
}, a), i)))
})) : _o("th", {
"aria-hidden": !0,
className: "fc-timegrid-axis"
}, _o("div", {
className: "fc-timegrid-axis-frame",
style: {
height: n
}
}))
}, t.renderTableRowAxis = function(e) {
var n = t.context,
r = n.options,
o = n.viewApi,
i = {
text: r.allDayText,
view: o
};
return _o(Yo, {
hookProps: i,
classNames: r.allDayClassNames,
content: r.allDayContent,
defaultContent: Il,
didMount: r.allDayDidMount,
willUnmount: r.allDayWillUnmount
}, (function(t, n, r, o) {
return _o("td", {
ref: t,
"aria-hidden": !0,
className: ["fc-timegrid-axis", "fc-scrollgrid-shrink"].concat(n).join(" ")
}, _o("div", {
className: "fc-timegrid-axis-frame fc-scrollgrid-shrink-frame" + (null == e ? " fc-timegrid-axis-frame-liquid" : ""),
style: {
height: e
}
}, _o("span", {
className: "fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner",
ref: r
}, o)))
}))
}, t.handleSlatCoords = function(e) {
t.setState({
slatCoords: e
})
}, t
}
return n(t, e), t.prototype.renderSimpleLayout = function(e, t, n) {
var r = this.context,
o = this.props,
i = [],
a = Qa(r.options);
return e && i.push({
type: "header",
key: "header",
isSticky: a,
chunk: {
elRef: this.headerElRef,
tableClassName: "fc-col-header",
rowContent: e
}
}), t && (i.push({
type: "body",
key: "all-day",
chunk: {
content: t
}
}), i.push({
type: "body",
key: "all-day-divider",
outerContent: _o("tr", {
role: "presentation",
className: "fc-scrollgrid-section"
}, _o("td", {
className: "fc-timegrid-divider " + r.theme.getClass("tableCellShaded")
}))
})), i.push({
type: "body",
key: "body",
liquid: !0,
expandRows: Boolean(r.options.expandRows),
chunk: {
scrollerElRef: this.scrollerElRef,
content: n
}
}), _o(ti, {
viewSpec: r.viewSpec,
elRef: this.rootElRef
}, (function(e, t) {
return _o("div", {
className: ["fc-timegrid"].concat(t).join(" "),
ref: e
}, _o(ts, {
liquid: !o.isHeightAuto && !o.forPrint,
collapsibleWidth: o.forPrint,
cols: [{
width: "shrink"
}],
sections: i
}))
}))
}, t.prototype.renderHScrollLayout = function(e, t, n, r, o, i, a) {
var s = this,
l = this.context.pluginHooks.scrollGridImpl;
if (!l) throw new Error("No ScrollGrid implementation");
var u = this.context,
c = this.props,
d = !c.forPrint && Qa(u.options),
p = !c.forPrint && es(u.options),
f = [];
e && f.push({
type: "header",
key: "header",
isSticky: d,
syncRowHeights: !0,
chunks: [{
key: "axis",
rowContent: function(e) {
return _o("tr", {
role: "presentation"
}, s.renderHeadAxis("day", e.rowSyncHeights[0]))
}
}, {
key: "cols",
elRef: this.headerElRef,
tableClassName: "fc-col-header",
rowContent: e
}]
}), t && (f.push({
type: "body",
key: "all-day",
syncRowHeights: !0,
chunks: [{
key: "axis",
rowContent: function(e) {
return _o("tr", {
role: "presentation"
}, s.renderTableRowAxis(e.rowSyncHeights[0]))
}
}, {
key: "cols",
content: t
}]
}), f.push({
key: "all-day-divider",
type: "body",
outerContent: _o("tr", {
role: "presentation",
className: "fc-scrollgrid-section"
}, _o("td", {
colSpan: 2,
className: "fc-timegrid-divider " + u.theme.getClass("tableCellShaded")
}))
}));
var h = u.options.nowIndicator;
return f.push({
type: "body",
key: "body",
liquid: !0,
expandRows: Boolean(u.options.expandRows),
chunks: [{
key: "axis",
content: function(e) {
return _o("div", {
className: "fc-timegrid-axis-chunk"
}, _o("table", {
"aria-hidden": !0,
style: {
height: e.expandRows ? e.clientHeight : ""
}
}, e.tableColGroupNode, _o("tbody", null, _o(kl, {
slatMetas: i
}))), _o("div", {
className: "fc-timegrid-now-indicator-container"
}, _o(Ca, {
unit: h ? "minute" : "day"
}, (function(e) {
var t = h && a && a.safeComputeTop(e);
return "number" == typeof t ? _o(is, {
isAxis: !0,
date: e
}, (function(e, n, r, o) {
return _o("div", {
ref: e,
className: ["fc-timegrid-now-indicator-arrow"].concat(n).join(" "),
style: {
top: t
}
}, o)
})) : null
}))))
}
}, {
key: "cols",
scrollerElRef: this.scrollerElRef,
content: n
}]
}), p && f.push({
key: "footer",
type: "footer",
isSticky: !0,
chunks: [{
key: "axis",
content: Ja
}, {
key: "cols",
content: Ja
}]
}), _o(ti, {
viewSpec: u.viewSpec,
elRef: this.rootElRef
}, (function(e, t) {
return _o("div", {
className: ["fc-timegrid"].concat(t).join(" "),
ref: e
}, _o(l, {
liquid: !c.isHeightAuto && !c.forPrint,
collapsibleWidth: !1,
colGroups: [{
width: "shrink",
cols: [{
width: "shrink"
}]
}, {
cols: [{
span: r,
minWidth: o
}]
}],
sections: f
}))
}))
}, t.prototype.getAllDayMaxEventProps = function() {
var e = this.context.options,
t = e.dayMaxEvents,
n = e.dayMaxEventRows;
return !0 !== t && !0 !== n || (t = void 0, n = 5), {
dayMaxEvents: t,
dayMaxEventRows: n
}
}, t
}(Bo);
function Il(e) {
return e.text
}
var Pl = function() {
function e(e, t, n) {
this.positions = e, this.dateProfile = t, this.slotDuration = n
}
return e.prototype.safeComputeTop = function(e) {
var t = this.dateProfile;
if (Zn(t.currentRange, e)) {
var n = lt(e),
r = e.valueOf() - n.valueOf();
if (r >= Ut(t.slotMinTime) && r < Ut(t.slotMaxTime)) return this.computeTimeTop(Nt(r))
}
return null
}, e.prototype.computeDateTop = function(e, t) {
return t || (t = lt(e)), this.computeTimeTop(Nt(e.valueOf() - t.valueOf()))
}, e.prototype.computeTimeTop = function(e) {
var t, n, r = this.positions,
o = this.dateProfile,
i = r.els.length,
a = (e.milliseconds - Ut(o.slotMinTime)) / Ut(this.slotDuration);
return a = Math.max(0, a), a = Math.min(i, a), t = Math.floor(a), n = a - (t = Math.min(t, i - 1)), r.tops[t] + r.getHeight(t) * n
}, e
}(),
Nl = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = t.options,
o = e.slatElRefs;
return _o("tbody", null, e.slatMetas.map((function(i, a) {
var s = {
time: i.time,
date: t.dateEnv.toDate(i.date),
view: t.viewApi
},
l = ["fc-timegrid-slot", "fc-timegrid-slot-lane", i.isLabeled ? "" : "fc-timegrid-slot-minor"];
return _o("tr", {
key: i.key,
ref: o.createRef(i.key)
}, e.axis && _o(_l, r({}, i)), _o(Yo, {
hookProps: s,
classNames: n.slotLaneClassNames,
content: n.slotLaneContent,
didMount: n.slotLaneDidMount,
willUnmount: n.slotLaneWillUnmount
}, (function(e, t, n, r) {
return _o("td", {
ref: e,
className: l.concat(t).join(" "),
"data-time": i.isoTimeStr
}, r)
})))
})))
}, t
}(Uo),
Hl = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.rootElRef = ko(), t.slatElRefs = new Fa, t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context;
return _o("div", {
ref: this.rootElRef,
className: "fc-timegrid-slots"
}, _o("table", {
"aria-hidden": !0,
className: t.theme.getClass("table"),
style: {
minWidth: e.tableMinWidth,
width: e.clientWidth,
height: e.minHeight
}
}, e.tableColGroupNode, _o(Nl, {
slatElRefs: this.slatElRefs,
axis: e.axis,
slatMetas: e.slatMetas
})))
}, t.prototype.componentDidMount = function() {
this.updateSizing()
}, t.prototype.componentDidUpdate = function() {
this.updateSizing()
}, t.prototype.componentWillUnmount = function() {
this.props.onCoords && this.props.onCoords(null)
}, t.prototype.updateSizing = function() {
var e, t = this.context,
n = this.props;
n.onCoords && null !== n.clientWidth && (this.rootElRef.current.offsetHeight && n.onCoords(new Pl(new So(this.rootElRef.current, (e = this.slatElRefs.currentMap, n.slatMetas.map((function(t) {
return e[t.key]
}))), !1, !0), this.props.dateProfile, t.options.slotDuration)))
}, t
}(Uo);
function Ol(e, t) {
var n, r = [];
for (n = 0; n < t; n += 1) r.push([]);
if (e)
for (n = 0; n < e.length; n += 1) r[e[n].col].push(e[n]);
return r
}
function Al(e, t) {
var n = [];
if (e) {
for (a = 0; a < t; a += 1) n[a] = {
affectedInstances: e.affectedInstances,
isEvent: e.isEvent,
segs: []
};
for (var r = 0, o = e.segs; r < o.length; r++) {
var i = o[r];
n[i.col].segs.push(i)
}
} else
for (var a = 0; a < t; a += 1) n[a] = null;
return n
}
var Ll = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.rootElRef = ko(), t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props;
return _o(ms, {
allDayDate: null,
moreCnt: t.hiddenSegs.length,
allSegs: t.hiddenSegs,
hiddenSegs: t.hiddenSegs,
alignmentElRef: this.rootElRef,
defaultContent: Ul,
extraDateSpan: t.extraDateSpan,
dateProfile: t.dateProfile,
todayRange: t.todayRange,
popoverContent: function() {
return Xl(t.hiddenSegs, t)
}
}, (function(n, r, o, i, a, s, l, u) {
return _o("a", {
ref: function(t) {
Fo(n, t), Fo(e.rootElRef, t)
},
className: ["fc-timegrid-more-link"].concat(r).join(" "),
style: {
top: t.top,
bottom: t.bottom
},
onClick: a,
title: s,
"aria-expanded": l,
"aria-controls": u
}, _o("div", {
ref: o,
className: "fc-timegrid-more-link-inner fc-sticky"
}, i))
}))
}, t
}(Uo);
function Ul(e) {
return e.shortText
}
function Wl(e, t, n) {
var o = new qi;
null != t && (o.strictOrder = t), null != n && (o.maxStackCnt = n);
var i, a, s, l = Xi(o.addSegs(e)),
u = function(e) {
var t = e.entriesByLevel,
n = zl((function(e, t) {
return e + ":" + t
}), (function(o, i) {
var a = Vl(function(e, t, n) {
for (var r = e.levelCoords, o = e.entriesByLevel, i = o[t][n], a = r[t] + i.thickness, s = r.length, l = t; l < s && r[l] < a; l += 1);
for (; l < s; l += 1) {
for (var u = o[l], c = void 0, d = Qi(u, i.span.start, Yi), p = d[0] + d[1], f = p;
(c = u[f]) && c.span.start < i.span.end;) f += 1;
if (p < f) return {
level: l,
lateralStart: p,
lateralEnd: f
}
}
return null
}(e, o, i), n),
s = t[o][i];
return [r(r({}, s), {
nextLevelNodes: a[0]
}), s.thickness + a[1]]
}));
return Vl(t.length ? {
level: 0,
lateralStart: 0,
lateralEnd: t[0].length
} : null, n)[0]
}(o);
return i = u, a = 1, s = zl((function(e, t, n) {
return Zi(e)
}), (function(e, t, n) {
var o, i = e.nextLevelNodes,
l = e.thickness,
u = l + n,
c = l / u,
d = [];
if (i.length)
for (var p = 0, f = i; p < f.length; p++) {
var h = f[p];
if (void 0 === o) o = (v = s(h, t, u))[0], d.push(v[1]);
else {
var v = s(h, o, 0);
d.push(v[1])
}
} else o = a;
var g = (o - t) * c;
return [o - g, r(r({}, e), {
thickness: g,
nextLevelNodes: d
})]
})), {
segRects: function(e) {
var t = [],
n = zl((function(e, t, n) {
return Zi(e)
}), (function(e, n, i) {
var a = r(r({}, e), {
levelCoord: n,
stackDepth: i,
stackForward: 0
});
return t.push(a), a.stackForward = o(e.nextLevelNodes, n + e.thickness, i + 1) + 1
}));
function o(e, t, r) {
for (var o = 0, i = 0, a = e; i < a.length; i++) {
var s = a[i];
o = Math.max(n(s, t, r), o)
}
return o
}
return o(e, 0, 0), t
}(u = i.map((function(e) {
return s(e, 0, 0)[1]
}))),
hiddenGroups: l
}
}
function Vl(e, t) {
if (!e) return [
[], 0
];
for (var n = e.level, r = e.lateralStart, o = e.lateralEnd, i = r, a = []; i < o;) a.push(t(n, i)), i += 1;
return a.sort(Fl), [a.map(Bl), a[0][1]]
}
function Fl(e, t) {
return t[1] - e[1]
}
function Bl(e) {
return e[0]
}
function zl(e, t) {
var n = {};
return function() {
for (var r = [], o = 0; o < arguments.length; o++) r[o] = arguments[o];
var i = e.apply(void 0, r);
return i in n ? n[i] : n[i] = t.apply(void 0, r)
}
}
function jl(e, t, n, r) {
void 0 === n && (n = null), void 0 === r && (r = 0);
var o = [];
if (n)
for (var i = 0; i < e.length; i += 1) {
var a = e[i],
s = n.computeDateTop(a.start, t),
l = Math.max(s + (r || 0), n.computeDateTop(a.end, t));
o.push({
start: Math.round(s),
end: Math.round(l)
})
}
return o
}
var Gl = ln({
hour: "numeric",
minute: "2-digit",
meridiem: !1
}),
ql = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = ["fc-timegrid-event", "fc-v-event"];
return this.props.isShort && e.push("fc-timegrid-event-short"), _o(rs, r({}, this.props, {
defaultTimeFormat: Gl,
extraClassNames: e
}))
}, t
}(Uo),
Yl = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props;
return _o(ss, {
date: e.date,
dateProfile: e.dateProfile,
todayRange: e.todayRange,
extraHookProps: e.extraHookProps
}, (function(e, t) {
return t && _o("div", {
className: "fc-timegrid-col-misc",
ref: e
}, t)
}))
}, t
}(Uo),
Zl = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.sortEventSegs = qt(tr), t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props,
n = this.context,
o = n.options.selectMirror,
i = t.eventDrag && t.eventDrag.segs || t.eventResize && t.eventResize.segs || o && t.dateSelectionSegs || [],
a = t.eventDrag && t.eventDrag.affectedInstances || t.eventResize && t.eventResize.affectedInstances || {},
s = this.sortEventSegs(t.fgEventSegs, n.options.eventOrder);
return _o(us, {
elRef: t.elRef,
date: t.date,
dateProfile: t.dateProfile,
todayRange: t.todayRange,
extraHookProps: t.extraHookProps
}, (function(n, l, u) {
return _o("td", r({
ref: n,
role: "gridcell",
className: ["fc-timegrid-col"].concat(l, t.extraClassNames || []).join(" ")
}, u, t.extraDataAttrs), _o("div", {
className: "fc-timegrid-col-frame"
}, _o("div", {
className: "fc-timegrid-col-bg"
}, e.renderFillSegs(t.businessHourSegs, "non-business"), e.renderFillSegs(t.bgEventSegs, "bg-event"), e.renderFillSegs(t.dateSelectionSegs, "highlight")), _o("div", {
className: "fc-timegrid-col-events"
}, e.renderFgSegs(s, a, !1, !1, !1)), _o("div", {
className: "fc-timegrid-col-events"
}, e.renderFgSegs(i, {}, Boolean(t.eventDrag), Boolean(t.eventResize), Boolean(o))), _o("div", {
className: "fc-timegrid-now-indicator-container"
}, e.renderNowIndicator(t.nowIndicatorSegs)), _o(Yl, {
date: t.date,
dateProfile: t.dateProfile,
todayRange: t.todayRange,
extraHookProps: t.extraHookProps
})))
}))
}, t.prototype.renderFgSegs = function(e, t, n, r, o) {
var i = this.props;
return i.forPrint ? Xl(e, i) : this.renderPositionedFgSegs(e, t, n, r, o)
}, t.prototype.renderPositionedFgSegs = function(e, t, n, o, i) {
var a = this,
s = this.context.options,
l = s.eventMaxStack,
u = s.eventShortHeight,
c = s.eventOrderStrict,
d = s.eventMinHeight,
p = this.props,
f = p.date,
h = p.slatCoords,
v = p.eventSelection,
g = p.todayRange,
m = p.nowDate,
y = n || o || i,
E = function(e, t, n, r) {
for (var o = [], i = [], a = 0; a < e.length; a += 1) {
var s = t[a];
s ? o.push({
index: a,
thickness: 1,
span: s
}) : i.push(e[a])
}
for (var l = Wl(o, n, r), u = l.segRects, c = l.hiddenGroups, d = [], p = 0, f = u; p < f.length; p++) {
var h = f[p];
d.push({
seg: e[h.index],
rect: h
})
}
for (var v = 0, g = i; v < g.length; v++) {
var m = g[v];
d.push({
seg: m,
rect: null
})
}
return {
segPlacements: d,
hiddenGroups: c
}
}(e, jl(e, f, h, d), c, l),
S = E.segPlacements,
b = E.hiddenGroups;
return _o(xo, null, this.renderHiddenGroups(b, e), S.map((function(e) {
var s = e.seg,
l = e.rect,
c = s.eventRange.instance.instanceId,
d = y || Boolean(!t[c] && l),
p = Kl(l && l.span),
f = !y && l ? a.computeSegHStyle(l) : {
left: 0,
right: 0
},
h = Boolean(l) && l.stackForward > 0,
E = Boolean(l) && l.span.end - l.span.start < u;
return _o("div", {
className: "fc-timegrid-event-harness" + (h ? " fc-timegrid-event-harness-inset" : ""),
key: c,
style: r(r({
visibility: d ? "" : "hidden"
}, p), f)
}, _o(ql, r({
seg: s,
isDragging: n,
isResizing: o,
isDateSelecting: i,
isSelected: c === v,
isShort: E
}, sr(s, g, m))))
})))
}, t.prototype.renderHiddenGroups = function(e, t) {
var n = this.props,
r = n.extraDateSpan,
o = n.dateProfile,
i = n.todayRange,
a = n.nowDate,
s = n.eventSelection,
l = n.eventDrag,
u = n.eventResize;
return _o(xo, null, e.map((function(e) {
var n, c, d = Kl(e.span),
p = (n = e.entries, c = t, n.map((function(e) {
return c[e.index]
})));
return _o(Ll, {
key: Ft(Ss(p)),
hiddenSegs: p,
top: d.top,
bottom: d.bottom,
extraDateSpan: r,
dateProfile: o,
todayRange: i,
nowDate: a,
eventSelection: s,
eventDrag: l,
eventResize: u
})
})))
}, t.prototype.renderFillSegs = function(e, t) {
var n = this.props,
o = this.context,
i = jl(e, n.date, n.slatCoords, o.options.eventMinHeight).map((function(o, i) {
var a = e[i];
return _o("div", {
key: ur(a.eventRange),
className: "fc-timegrid-bg-harness",
style: Kl(o)
}, "bg-event" === t ? _o(ds, r({
seg: a
}, sr(a, n.todayRange, n.nowDate))) : cs(t))
}));
return _o(xo, null, i)
}, t.prototype.renderNowIndicator = function(e) {
var t = this.props,
n = t.slatCoords,
r = t.date;
return n ? e.map((function(e, t) {
return _o(is, {
isAxis: !1,
date: r,
key: t
}, (function(t, o, i, a) {
return _o("div", {
ref: t,
className: ["fc-timegrid-now-indicator-line"].concat(o).join(" "),
style: {
top: n.computeDateTop(e.start, r)
}
}, a)
}))
})) : null
}, t.prototype.computeSegHStyle = function(e) {
var t, n, r = this.context,
o = r.isRtl,
i = r.options.slotEventOverlap,
a = e.levelCoord,
s = e.levelCoord + e.thickness;
i && (s = Math.min(1, a + 2 * (s - a))), o ? (t = 1 - s, n = a) : (t = a, n = 1 - s);
var l = {
zIndex: e.stackDepth + 1,
left: 100 * t + "%",
right: 100 * n + "%"
};
return i && !e.stackForward && (l[o ? "marginLeft" : "marginRight"] = 20), l
}, t
}(Uo);
function Xl(e, t) {
var n = t.todayRange,
o = t.nowDate,
i = t.eventSelection,
a = t.eventDrag,
s = t.eventResize,
l = (a ? a.affectedInstances : null) || (s ? s.affectedInstances : null) || {};
return _o(xo, null, e.map((function(e) {
var t = e.eventRange.instance.instanceId;
return _o("div", {
key: t,
style: {
visibility: l[t] ? "hidden" : ""
}
}, _o(ql, r({
seg: e,
isDragging: !1,
isResizing: !1,
isDateSelecting: !1,
isSelected: t === i,
isShort: !1
}, sr(e, n, o))))
})))
}
function Kl(e) {
return e ? {
top: e.start,
bottom: -e.end
} : {
top: "",
bottom: ""
}
}
var $l = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.splitFgEventSegs = qt(Ol), t.splitBgEventSegs = qt(Ol), t.splitBusinessHourSegs = qt(Ol), t.splitNowIndicatorSegs = qt(Ol), t.splitDateSelectionSegs = qt(Ol), t.splitEventDrag = qt(Al), t.splitEventResize = qt(Al), t.rootElRef = ko(), t.cellElRefs = new Fa, t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props,
n = this.context.options.nowIndicator && t.slatCoords && t.slatCoords.safeComputeTop(t.nowDate),
r = t.cells.length,
o = this.splitFgEventSegs(t.fgEventSegs, r),
i = this.splitBgEventSegs(t.bgEventSegs, r),
a = this.splitBusinessHourSegs(t.businessHourSegs, r),
s = this.splitNowIndicatorSegs(t.nowIndicatorSegs, r),
l = this.splitDateSelectionSegs(t.dateSelectionSegs, r),
u = this.splitEventDrag(t.eventDrag, r),
c = this.splitEventResize(t.eventResize, r);
return _o("div", {
className: "fc-timegrid-cols",
ref: this.rootElRef
}, _o("table", {
role: "presentation",
style: {
minWidth: t.tableMinWidth,
width: t.clientWidth
}
}, t.tableColGroupNode, _o("tbody", {
role: "presentation"
}, _o("tr", {
role: "row"
}, t.axis && _o("td", {
"aria-hidden": !0,
className: "fc-timegrid-col fc-timegrid-axis"
}, _o("div", {
className: "fc-timegrid-col-frame"
}, _o("div", {
className: "fc-timegrid-now-indicator-container"
}, "number" == typeof n && _o(is, {
isAxis: !0,
date: t.nowDate
}, (function(e, t, r, o) {
return _o("div", {
ref: e,
className: ["fc-timegrid-now-indicator-arrow"].concat(t).join(" "),
style: {
top: n
}
}, o)
}))))), t.cells.map((function(n, r) {
return _o(Zl, {
key: n.key,
elRef: e.cellElRefs.createRef(n.key),
dateProfile: t.dateProfile,
date: n.date,
nowDate: t.nowDate,
todayRange: t.todayRange,
extraHookProps: n.extraHookProps,
extraDataAttrs: n.extraDataAttrs,
extraClassNames: n.extraClassNames,
extraDateSpan: n.extraDateSpan,
fgEventSegs: o[r],
bgEventSegs: i[r],
businessHourSegs: a[r],
nowIndicatorSegs: s[r],
dateSelectionSegs: l[r],
eventDrag: u[r],
eventResize: c[r],
slatCoords: t.slatCoords,
eventSelection: t.eventSelection,
forPrint: t.forPrint
})
}))))))
}, t.prototype.componentDidMount = function() {
this.updateCoords()
}, t.prototype.componentDidUpdate = function() {
this.updateCoords()
}, t.prototype.updateCoords = function() {
var e, t = this.props;
t.onColCoords && null !== t.clientWidth && t.onColCoords(new So(this.rootElRef.current, (e = this.cellElRefs.currentMap, t.cells.map((function(t) {
return e[t.key]
}))), !0, !1))
}, t
}(Uo);
var Jl = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.processSlotOptions = qt(Ql), t.state = {
slatCoords: null
}, t.handleRootEl = function(e) {
e ? t.context.registerInteractiveComponent(t, {
el: e,
isHitComboAllowed: t.props.isHitComboAllowed
}) : t.context.unregisterInteractiveComponent(t)
}, t.handleScrollRequest = function(e) {
var n = t.props.onScrollTopRequest,
r = t.state.slatCoords;
if (n && r) {
if (e.time) {
var o = r.computeTimeTop(e.time);
(o = Math.ceil(o)) && (o += 1), n(o)
}
return !0
}
return !1
}, t.handleColCoords = function(e) {
t.colCoords = e
}, t.handleSlatCoords = function(e) {
t.setState({
slatCoords: e
}), t.props.onSlatCoords && t.props.onSlatCoords(e)
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.state;
return _o("div", {
className: "fc-timegrid-body",
ref: this.handleRootEl,
style: {
width: e.clientWidth,
minWidth: e.tableMinWidth
}
}, _o(Hl, {
axis: e.axis,
dateProfile: e.dateProfile,
slatMetas: e.slatMetas,
clientWidth: e.clientWidth,
minHeight: e.expandRows ? e.clientHeight : "",
tableMinWidth: e.tableMinWidth,
tableColGroupNode: e.axis ? e.tableColGroupNode : null,
onCoords: this.handleSlatCoords
}), _o($l, {
cells: e.cells,
axis: e.axis,
dateProfile: e.dateProfile,
businessHourSegs: e.businessHourSegs,
bgEventSegs: e.bgEventSegs,
fgEventSegs: e.fgEventSegs,
dateSelectionSegs: e.dateSelectionSegs,
eventSelection: e.eventSelection,
eventDrag: e.eventDrag,
eventResize: e.eventResize,
todayRange: e.todayRange,
nowDate: e.nowDate,
nowIndicatorSegs: e.nowIndicatorSegs,
clientWidth: e.clientWidth,
tableMinWidth: e.tableMinWidth,
tableColGroupNode: e.tableColGroupNode,
slatCoords: t.slatCoords,
onColCoords: this.handleColCoords,
forPrint: e.forPrint
}))
}, t.prototype.componentDidMount = function() {
this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest)
}, t.prototype.componentDidUpdate = function(e) {
this.scrollResponder.update(e.dateProfile !== this.props.dateProfile)
}, t.prototype.componentWillUnmount = function() {
this.scrollResponder.detach()
}, t.prototype.queryHit = function(e, t) {
var n = this.context,
o = n.dateEnv,
i = n.options,
a = this.colCoords,
s = this.props.dateProfile,
l = this.state.slatCoords,
u = this.processSlotOptions(this.props.slotDuration, i.snapDuration),
c = u.snapDuration,
d = u.snapsPerSlot,
p = a.leftToIndex(e),
f = l.positions.topToIndex(t);
if (null != p && null != f) {
var h = this.props.cells[p],
v = l.positions.tops[f],
g = l.positions.getHeight(f),
m = (t - v) / g,
y = f * d + Math.floor(m * d),
E = this.props.cells[p].date,
S = Ot(s.slotMinTime, At(c, y)),
b = o.add(E, S),
D = o.add(b, c);
return {
dateProfile: s,
dateSpan: r({
range: {
start: b,
end: D
},
allDay: !1
}, h.extraDateSpan),
dayEl: a.els[p],
rect: {
left: a.lefts[p],
right: a.rights[p],
top: v,
bottom: v + g
},
layer: 0
}
}
return null
}, t
}(Bo);
function Ql(e, t) {
var n = t || e,
r = Wt(e, n);
return null === r && (n = e, r = 1), {
snapDuration: n,
snapsPerSlot: r
}
}
var eu = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.sliceRange = function(e, t) {
for (var n = [], r = 0; r < t.length; r += 1) {
var o = jn(e, t[r]);
o && n.push({
start: o.start,
end: o.end,
isStart: o.start.valueOf() === e.start.valueOf(),
isEnd: o.end.valueOf() === e.end.valueOf(),
col: r
})
}
return n
}, t
}(xa),
tu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.buildDayRanges = qt(nu), t.slicer = new eu, t.timeColsRef = ko(), t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props,
n = this.context,
o = t.dateProfile,
i = t.dayTableModel,
a = n.options.nowIndicator,
s = this.buildDayRanges(i, o, n.dateEnv);
return _o(Ca, {
unit: a ? "minute" : "day"
}, (function(l, u) {
return _o(Jl, r({
ref: e.timeColsRef
}, e.slicer.sliceProps(t, o, null, n, s), {
forPrint: t.forPrint,
axis: t.axis,
dateProfile: o,
slatMetas: t.slatMetas,
slotDuration: t.slotDuration,
cells: i.cells[0],
tableColGroupNode: t.tableColGroupNode,
tableMinWidth: t.tableMinWidth,
clientWidth: t.clientWidth,
clientHeight: t.clientHeight,
expandRows: t.expandRows,
nowDate: l,
nowIndicatorSegs: a && e.slicer.sliceNowDate(l, n, s),
todayRange: u,
onScrollTopRequest: t.onScrollTopRequest,
onSlatCoords: t.onSlatCoords
}))
}))
}, t
}(Bo);
function nu(e, t, n) {
for (var r = [], o = 0, i = e.headerDates; o < i.length; o++) {
var a = i[o];
r.push({
start: n.add(a, t.slotMinTime),
end: n.add(a, t.slotMaxTime)
})
}
return r
}
var ru = [{
hours: 1
}, {
minutes: 30
}, {
minutes: 15
}, {
seconds: 30
}, {
seconds: 15
}];
function ou(e, t, n, r, o) {
for (var i = new Date(0), a = e, s = Nt(0), l = n || function(e) {
var t, n, r;
for (t = ru.length - 1; t >= 0; t -= 1)
if (null !== (r = Wt(n = Nt(ru[t]), e)) && r > 1) return n;
return e
}(r), u = []; Ut(a) < Ut(t);) {
var c = o.add(i, a),
d = null !== Wt(s, l);
u.push({
date: c,
time: a,
key: c.toISOString(),
isoTimeStr: zt(c),
isLabeled: d
}), a = Ot(a, r), s = Ot(s, r)
}
return u
}
var iu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.buildTimeColsModel = qt(au), t.buildSlatMetas = qt(ou), t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.context,
n = t.options,
o = t.dateEnv,
i = t.dateProfileGenerator,
a = this.props,
s = a.dateProfile,
l = this.buildTimeColsModel(s, i),
u = this.allDaySplitter.splitProps(a),
c = this.buildSlatMetas(s.slotMinTime, s.slotMaxTime, n.slotLabelInterval, n.slotDuration, o),
d = n.dayMinWidth,
p = !d,
f = d,
h = n.dayHeaders && _o(Ra, {
dates: l.headerDates,
dateProfile: s,
datesRepDistinctDays: !0,
renderIntro: p ? this.renderHeadAxis : null
}),
v = !1 !== n.allDaySlot && function(t) {
return _o(Sl, r({}, u.allDay, {
dateProfile: s,
dayTableModel: l,
nextDayThreshold: n.nextDayThreshold,
tableMinWidth: t.tableMinWidth,
colGroupNode: t.tableColGroupNode,
renderRowIntro: p ? e.renderTableRowAxis : null,
showWeekNumbers: !1,
expandRows: !1,
headerAlignElRef: e.headerElRef,
clientWidth: t.clientWidth,
clientHeight: t.clientHeight,
forPrint: a.forPrint
}, e.getAllDayMaxEventProps()))
},
g = function(t) {
return _o(tu, r({}, u.timed, {
dayTableModel: l,
dateProfile: s,
axis: p,
slotDuration: n.slotDuration,
slatMetas: c,
forPrint: a.forPrint,
tableColGroupNode: t.tableColGroupNode,
tableMinWidth: t.tableMinWidth,
clientWidth: t.clientWidth,
clientHeight: t.clientHeight,
onSlatCoords: e.handleSlatCoords,
expandRows: t.expandRows,
onScrollTopRequest: e.handleScrollTopRequest
}))
};
return f ? this.renderHScrollLayout(h, v, g, l.colCnt, d, c, this.state.slatCoords) : this.renderSimpleLayout(h, v, g)
}, t
}(Ml);
function au(e, t) {
var n = new Ta(e.renderRange, t);
return new ka(n, !1)
}
var su = zo({
initialView: "timeGridWeek",
optionRefiners: {
allDaySlot: Boolean
},
views: {
timeGrid: {
component: iu,
usesMinMaxTime: !0,
allDaySlot: !0,
slotDuration: "00:30:00",
slotEventOverlap: !0
},
timeGridDay: {
type: "timeGrid",
duration: {
days: 1
}
},
timeGridWeek: {
type: "timeGrid",
duration: {
weeks: 1
}
}
}
}),
lu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.state = {
textId: xe()
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this.context,
t = e.theme,
n = e.dateEnv,
o = e.options,
i = e.viewApi,
a = this.props,
s = a.cellId,
l = a.dayDate,
u = a.todayRange,
c = this.state.textId,
d = ro(l, u),
p = o.listDayFormat ? n.format(l, o.listDayFormat) : "",
f = o.listDaySideFormat ? n.format(l, o.listDaySideFormat) : "",
h = r({
date: n.toDate(l),
view: i,
textId: c,
text: p,
sideText: f,
navLinkAttrs: so(this.context, l),
sideNavLinkAttrs: so(this.context, l, "day", !1)
}, d),
v = ["fc-list-day"].concat(oo(d, t));
return _o(Yo, {
hookProps: h,
classNames: o.dayHeaderClassNames,
content: o.dayHeaderContent,
defaultContent: uu,
didMount: o.dayHeaderDidMount,
willUnmount: o.dayHeaderWillUnmount
}, (function(e, n, r, o) {
return _o("tr", {
ref: e,
className: v.concat(n).join(" "),
"data-date": Bt(l)
}, _o("th", {
scope: "colgroup",
colSpan: 3,
id: s,
"aria-labelledby": c
}, _o("div", {
className: "fc-list-day-cushion " + t.getClass("tableCellShaded"),
ref: r
}, o)))
}))
}, t
}(Uo);
function uu(e) {
return _o(xo, null, e.text && _o("a", r({
id: e.textId,
className: "fc-list-day-text"
}, e.navLinkAttrs), e.text), e.sideText && _o("a", r({
"aria-hidden": !0,
className: "fc-list-day-side-text"
}, e.sideNavLinkAttrs), e.sideText))
}
var cu = ln({
hour: "numeric",
minute: "2-digit",
meridiem: "short"
}),
du = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t.prototype.render = function() {
var e = this.props,
t = this.context,
n = e.seg,
o = e.timeHeaderId,
i = e.eventHeaderId,
a = e.dateHeaderId,
s = t.options.eventTimeFormat || cu;
return _o(ns, {
seg: n,
timeText: "",
disableDragging: !0,
disableResizing: !0,
defaultContent: function() {
return function(e, t) {
var n = cr(e, t);
return _o("a", r({}, n), e.eventRange.def.title)
}(n, t)
},
isPast: e.isPast,
isFuture: e.isFuture,
isToday: e.isToday,
isSelected: e.isSelected,
isDragging: e.isDragging,
isResizing: e.isResizing,
isDateSelecting: e.isDateSelecting
}, (function(e, r, l, u, c) {
return _o("tr", {
className: ["fc-list-event", c.event.url ? "fc-event-forced-url" : ""].concat(r).join(" "),
ref: e
}, function(e, t, n, r, o) {
var i = n.options;
if (!1 !== i.displayEventTime) {
var a = e.eventRange.def,
s = e.eventRange.instance,
l = !1,
u = void 0;
if (a.allDay ? l = !0 : Vn(e.eventRange.range) ? e.isStart ? u = ar(e, t, n, null, null, s.range.start, e.end) : e.isEnd ? u = ar(e, t, n, null, null, e.start, s.range.end) : l = !0 : u = ar(e, t, n), l) {
var c = {
text: n.options.allDayText,
view: n.viewApi
};
return _o(Yo, {
hookProps: c,
classNames: i.allDayClassNames,
content: i.allDayContent,
defaultContent: pu,
didMount: i.allDayDidMount,
willUnmount: i.allDayWillUnmount
}, (function(e, t, n, i) {
return _o("td", {
ref: e,
headers: r + " " + o,
className: ["fc-list-event-time"].concat(t).join(" ")
}, i)
}))
}
return _o("td", {
className: "fc-list-event-time"
}, u)
}
return null
}(n, s, t, o, a), _o("td", {
"aria-hidden": !0,
className: "fc-list-event-graphic"
}, _o("span", {
className: "fc-list-event-dot",
style: {
borderColor: c.borderColor || c.backgroundColor
}
})), _o("td", {
ref: l,
headers: i + " " + a,
className: "fc-list-event-title"
}, u))
}))
}, t
}(Uo);
function pu(e) {
return e.text
}
var fu = function(e) {
function t() {
var t = null !== e && e.apply(this, arguments) || this;
return t.computeDateVars = qt(vu), t.eventStoreToSegs = qt(t._eventStoreToSegs), t.state = {
timeHeaderId: xe(),
eventHeaderId: xe(),
dateHeaderIdRoot: xe()
}, t.setRootEl = function(e) {
e ? t.context.registerInteractiveComponent(t, {
el: e
}) : t.context.unregisterInteractiveComponent(t)
}, t
}
return n(t, e), t.prototype.render = function() {
var e = this,
t = this.props,
n = this.context,
r = ["fc-list", n.theme.getClass("table"), !1 !== n.options.stickyHeaderDates ? "fc-list-sticky" : ""],
o = this.computeDateVars(t.dateProfile),
i = o.dayDates,
a = o.dayRanges,
s = this.eventStoreToSegs(t.eventStore, t.eventUiBases, a);
return _o(ti, {
viewSpec: n.viewSpec,
elRef: this.setRootEl
}, (function(n, o) {
return _o("div", {
ref: n,
className: r.concat(o).join(" ")
}, _o(Va, {
liquid: !t.isHeightAuto,
overflowX: t.isHeightAuto ? "visible" : "hidden",
overflowY: t.isHeightAuto ? "visible" : "auto"
}, s.length > 0 ? e.renderSegList(s, i) : e.renderEmptyMessage()))
}))
}, t.prototype.renderEmptyMessage = function() {
var e = this.context,
t = e.options,
n = e.viewApi,
r = {
text: t.noEventsText,
view: n
};
return _o(Yo, {
hookProps: r,
classNames: t.noEventsClassNames,
content: t.noEventsContent,
defaultContent: hu,
didMount: t.noEventsDidMount,
willUnmount: t.noEventsWillUnmount
}, (function(e, t, n, r) {
return _o("div", {
className: ["fc-list-empty"].concat(t).join(" "),
ref: e
}, _o("div", {
className: "fc-list-empty-cushion",
ref: n
}, r))
}))
}, t.prototype.renderSegList = function(e, t) {
var n = this.context,
o = n.theme,
i = n.options,
a = this.state,
s = a.timeHeaderId,
l = a.eventHeaderId,
u = a.dateHeaderIdRoot,
c = function(e) {
var t, n, r = [];
for (t = 0; t < e.length; t += 1)(r[(n = e[t]).dayIndex] || (r[n.dayIndex] = [])).push(n);
return r
}(e);
return _o(Ca, {
unit: "day"
}, (function(e, n) {
for (var a = [], d = 0; d < c.length; d += 1) {
var p = c[d];
if (p) {
var f = Bt(t[d]),
h = u + "-" + f;
a.push(_o(lu, {
key: f,
cellId: h,
dayDate: t[d],
todayRange: n
}));
for (var v = 0, g = p = tr(p, i.eventOrder); v < g.length; v++) {
var m = g[v];
a.push(_o(du, r({
key: f + ":" + m.eventRange.instance.instanceId,
seg: m,
isDragging: !1,
isResizing: !1,
isDateSelecting: !1,
isSelected: !1,
timeHeaderId: s,
eventHeaderId: l,
dateHeaderId: h
}, sr(m, n, e))))
}
}
}
return _o("table", {
className: "fc-list-table " + o.getClass("table")
}, _o("thead", null, _o("tr", null, _o("th", {
scope: "col",
id: s
}, i.timeHint), _o("th", {
scope: "col",
"aria-hidden": !0
}), _o("th", {
scope: "col",
id: l
}, i.eventHint))), _o("tbody", null, a))
}))
}, t.prototype._eventStoreToSegs = function(e, t, n) {
return this.eventRangesToSegs(Xn(e, t, this.props.dateProfile.activeRange, this.context.options.nextDayThreshold).fg, n)
}, t.prototype.eventRangesToSegs = function(e, t) {
for (var n = [], r = 0, o = e; r < o.length; r++) {
var i = o[r];
n.push.apply(n, this.eventRangeToSegs(i, t))
}
return n
}, t.prototype.eventRangeToSegs = function(e, t) {
var n, r, o, i = this.context.dateEnv,
a = this.context.options.nextDayThreshold,
s = e.range,
l = e.def.allDay,
u = [];
for (n = 0; n < t.length; n += 1)
if ((r = jn(s, t[n])) && (o = {
component: this,
eventRange: e,
start: r.start,
end: r.end,
isStart: e.isStart && r.start.valueOf() === s.start.valueOf(),
isEnd: e.isEnd && r.end.valueOf() === s.end.valueOf(),
dayIndex: n
}, u.push(o), !o.isEnd && !l && n + 1 < t.length && s.end < i.add(t[n + 1].start, a))) {
o.end = s.end, o.isEnd = !0;
break
}
return u
}, t
}(Bo);
function hu(e) {
return e.text
}
function vu(e) {
for (var t = lt(e.renderRange.start), n = e.renderRange.end, r = [], o = []; t < n;) r.push(t), o.push({
start: t,
end: tt(t, 1)
}), t = tt(t, 1);
return {
dayDates: r,
dayRanges: o
}
}
function gu(e) {
return !1 === e ? null : ln(e)
}
var mu = zo({
optionRefiners: {
listDayFormat: gu,
listDaySideFormat: gu,
noEventsClassNames: yn,
noEventsContent: yn,
noEventsDidMount: yn,
noEventsWillUnmount: yn
},
views: {
list: {
component: fu,
buttonTextKey: "list",
listDayFormat: {
month: "long",
day: "numeric",
year: "numeric"
}
},
listDay: {
type: "list",
duration: {
days: 1
},
listDayFormat: {
weekday: "long"
}
},
listWeek: {
type: "list",
duration: {
weeks: 1
},
listDayFormat: {
weekday: "long"
},
listDaySideFormat: {
month: "long",
day: "numeric",
year: "numeric"
}
},
listMonth: {
type: "list",
duration: {
month: 1
},
listDaySideFormat: {
weekday: "long"
}
},
listYear: {
type: "list",
duration: {
year: 1
},
listDaySideFormat: {
weekday: "long"
}
}
}
}),
yu = function(e) {
function t() {
return null !== e && e.apply(this, arguments) || this
}
return n(t, e), t
}(wo);
yu.prototype.classes = {
root: "fc-theme-bootstrap",
table: "table-bordered",
tableCellShaded: "table-active",
buttonGroup: "btn-group",
button: "btn btn-primary",
buttonActive: "active",
popover: "popover",
popoverHeader: "popover-header",
popoverContent: "popover-body"
}, yu.prototype.baseIconClass = "fa", yu.prototype.iconClasses = {
close: "fa-times",
prev: "fa-chevron-left",
next: "fa-chevron-right",
prevYear: "fa-angle-double-left",
nextYear: "fa-angle-double-right"
}, yu.prototype.rtlIconClasses = {
prev: "fa-chevron-right",
next: "fa-chevron-left",
prevYear: "fa-angle-double-right",
nextYear: "fa-angle-double-left"
}, yu.prototype.iconOverrideOption = "bootstrapFontAwesome", yu.prototype.iconOverrideCustomButtonOption = "bootstrapFontAwesome", yu.prototype.iconOverridePrefix = "fa-";
var Eu = zo({
themeClasses: {
bootstrap: yu
}
}),
Su = "https://www.googleapis.com/calendar/v3/calendars";
var bu = zo({
eventSourceDefs: [{
parseMeta: function(e) {
var t = e.googleCalendarId;
return !t && e.url && (t = function(e) {
var t;
if (/^[^/]+@([^/.]+\.)*(google|googlemail|gmail)\.com$/.test(e)) return e;
if ((t = /^https:\/\/www.googleapis.com\/calendar\/v3\/calendars\/([^/]*)/.exec(e)) || (t = /^https?:\/\/www.google.com\/calendar\/feeds\/([^/]*)/.exec(e))) return decodeURIComponent(t[1]);
return null
}(e.url)), t ? {
googleCalendarId: t,
googleCalendarApiKey: e.googleCalendarApiKey,
googleCalendarApiBase: e.googleCalendarApiBase,
extraParams: e.extraParams
} : null
},
fetch: function(e, t, n) {
var o = e.context,
i = o.dateEnv,
a = o.options,
s = e.eventSource.meta,
l = s.googleCalendarApiKey || a.googleCalendarApiKey;
if (l) {
var u = function(e) {
var t = e.googleCalendarApiBase;
t || (t = Su);
return t + "/" + encodeURIComponent(e.googleCalendarId) + "/events"
}(s),
c = s.extraParams,
d = "function" == typeof c ? c() : c,
p = function(e, t, n, o) {
var i, a, s;
o.canComputeOffset ? (a = o.formatIso(e.start), s = o.formatIso(e.end)) : (a = tt(e.start, -1).toISOString(), s = tt(e.end, 1).toISOString());
i = r(r({}, n || {}), {
key: t,
timeMin: a,
timeMax: s,
singleEvents: !0,
maxResults: 9999
}), "local" !== o.timeZone && (i.timeZone = o.timeZone);
return i
}(e.range, l, d, i);
_i("GET", u, p, (function(e, r) {
var o, i;
e.error ? n({
message: "Google Calendar API: " + e.error.message,
errors: e.error.errors,
xhr: r
}) : t({
rawEvents: (o = e.items, i = p.timeZone, o.map((function(e) {
return function(e, t) {
var n = e.htmlLink || null;
n && t && (n = function(e, t) {
return e.replace(/(\?.*?)?(#|$)/, (function(e, n, r) {
return (n ? n + "&" : "?") + t + r
}))
}(n, "ctz=" + t));
return {
id: e.id,
title: e.summary,
start: e.start.dateTime || e.start.date,
end: e.end.dateTime || e.end.date,
url: n,
location: e.location,
description: e.description,
attachments: e.attachments || [],
extendedProps: (e.extendedProperties || {}).shared || {}
}
}(e, i)
}))),
xhr: r
})
}), (function(e, t) {
n({
message: e,
xhr: t
})
}))
} else n({
message: "Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/"
})
}
}],
optionRefiners: {
googleCalendarApiKey: String
},
eventSourceRefiners: {
googleCalendarApiKey: String,
googleCalendarId: String,
googleCalendarApiBase: String,
extraParams: yn
}
});
return xi.push($s, Cl, su, mu, Eu, bu), e.BASE_OPTION_DEFAULTS = cn, e.BASE_OPTION_REFINERS = un, e.BaseComponent = Uo, e.BgEvent = ds, e.BootstrapTheme = yu, e.Calendar = Cs, e.CalendarApi = kr, e.CalendarContent = fa, e.CalendarDataManager = Ni, e.CalendarDataProvider = ji, e.CalendarRoot = ga, e.Component = Ro, e.ContentHook = Xo, e.CustomContentRenderContext = Zo, e.DateComponent = Bo, e.DateEnv = Lr, e.DateProfileGenerator = ai, e.DayCellContent = ss, e.DayCellRoot = us, e.DayGridView = bl, e.DayHeader = Ra, e.DaySeriesModel = Ta, e.DayTable = Sl, e.DayTableModel = ka, e.DayTableSlicer = El, e.DayTimeCols = tu, e.DayTimeColsSlicer = eu, e.DayTimeColsView = iu, e.DelayedRunner = Mi, e.Draggable = Zs, e.ElementDragging = oa, e.ElementScrollController = Do, e.Emitter = Eo, e.EventApi = xr, e.EventRoot = ns, e.EventSourceApi = ye, e.FeaturefulElementDragging = Os, e.Fragment = xo, e.Interaction = ea, e.ListView = fu, e.MoreLinkRoot = ms, e.MountHook = $o, e.NamedTimeZoneImpl = Gi, e.NowIndicatorRoot = is, e.NowTimer = Ca, e.PointerDragging = Ts, e.PositionCache = So, e.RefMap = Fa, e.RenderHook = Yo, e.ScrollController = bo, e.ScrollResponder = Ho, e.Scroller = Va, e.SegHierarchy = qi, e.SimpleScrollGrid = ts, e.Slicer = xa, e.Splitter = to, e.StandardEvent = rs, e.Table = ml, e.TableDateCell = Sa, e.TableDowCell = Da, e.TableView = Js, e.Theme = wo, e.ThirdPartyDraggable = Ks, e.TimeCols = Jl, e.TimeColsSlatsCoords = Pl, e.TimeColsView = Ml, e.ViewApi = Cr, e.ViewContextType = Oo, e.ViewRoot = ti, e.WeekNumberRoot = fs, e.WindowScrollController = Co, e.addDays = tt, e.addDurations = Ot, e.addMs = nt, e.addWeeks = et, e.allowContextMenu = ze, e.allowSelection = Fe, e.applyMutationToEventStore = Sr, e.applyStyle = we, e.applyStyleProp = Re, e.asCleanDays = function(e) {
return e.years || e.months || e.milliseconds ? 0 : e.days
}, e.asRoughMinutes = function(e) {
return Ut(e) / 6e4
}, e.asRoughMs = Ut, e.asRoughSeconds = function(e) {
return Ut(e) / 1e3
}, e.binarySearch = Qi, e.buildClassNameNormalizer = Jo, e.buildDayRanges = nu, e.buildDayTableModel = Dl, e.buildEntryKey = Zi, e.buildEventApis = Ir, e.buildEventRangeKey = ur, e.buildHashFromArray = function(e, t) {
for (var n = {}, r = 0; r < e.length; r += 1) {
var o = t(e[r], r);
n[o[0]] = o[1]
}
return n
}, e.buildIsoString = Ft, e.buildNavLinkAttrs = so, e.buildSegCompareObj = nr, e.buildSegTimeText = ar, e.buildSlatMetas = ou, e.buildTimeColsModel = au, e.collectFromHash = kt, e.combineEventUis = xn, e.compareByFieldSpec = qe, e.compareByFieldSpecs = Ge, e.compareNumbers = Ke, e.compareObjs = _t, e.computeEarliestSegStart = Ss, e.computeEdges = ho, e.computeFallbackHeaderFormat = ma, e.computeHeightAndMargins = function(e) {
return e.getBoundingClientRect().height + function(e) {
var t = window.getComputedStyle(e);
return parseInt(t.marginTop, 10) + parseInt(t.marginBottom, 10)
}(e)
}, e.computeInnerRect = vo, e.computeRect = go, e.computeSegDraggable = rr, e.computeSegEndResizable = ir, e.computeSegStartResizable = or, e.computeShrinkWidth = Ba, e.computeSmallestCellWidth = Je, e.computeVisibleDayRange = Wn, e.config = ia, e.constrainPoint = Kr, e.createAriaClickAttrs = He, e.createContext = Mo, e.createDuration = Nt, e.createElement = _o, e.createEmptyEventStore = Dn, e.createEventInstance = mt, e.createEventUi = kn, e.createFormatter = ln, e.createPlugin = zo, e.createPortal = Io, e.createRef = ko, e.diffDates = Fn, e.diffDayAndTime = it, e.diffDays = ot, e.diffPoints = Jr, e.diffWeeks = rt, e.diffWholeDays = st, e.diffWholeWeeks = at, e.disableCursor = Ue, e.elementClosest = Se, e.elementMatches = be, e.enableCursor = We, e.eventTupleToStore = Sn, e.filterEventStoreDefs = wn, e.filterHash = St, e.findDirectChildren = function(e, t) {
for (var n = e instanceof HTMLElement ? [e] : e, r = [], o = 0; o < n.length; o += 1)
for (var i = n[o].children, a = 0; a < i.length; a += 1) {
var s = i[a];
t && !be(s, t) || r.push(s)
}
return r
}, e.findElements = De, e.flexibleCompare = Ye, e.flushToDom = Po, e.formatDate = function(e, t) {
void 0 === t && (t = {});
var n = jr(t),
r = ln(t),
o = n.createMarkerMeta(e);
return o ? n.format(o.marker, r, {
forcedTzo: o.forcedTzo
}) : ""
}, e.formatDayString = Bt, e.formatIsoTimeString = zt, e.formatRange = function(e, t, n) {
var r = jr("object" == typeof n && n ? n : {}),
o = ln(n),
i = r.createMarkerMeta(e),
a = r.createMarkerMeta(t);
return i && a ? r.formatRange(i.marker, a.marker, o, {
forcedStartTzo: i.forcedTzo,
forcedEndTzo: a.forcedTzo,
isEndExclusive: n.isEndExclusive,
defaultSeparator: cn.defaultRangeSeparator
}) : ""
}, e.getAllowYScrolling = ja, e.getCanVGrowWithinCell = Qr, e.getClippingParents = mo, e.getDateMeta = ro, e.getDayClassNames = oo, e.getDefaultEventEnd = Er, e.getElRoot = Te, e.getElSeg = Jn, e.getEntrySpanEnd = Yi, e.getEventClassNames = lr, e.getEventTargetViaRoot = _e, e.getIsRtlScrollbarOnLeft = co, e.getRectCenter = $r, e.getRelevantEvents = bn, e.getScrollGridClassNames = Ka, e.getScrollbarWidths = po, e.getSectionClassNames = $a, e.getSectionHasLiquidHeight = za, e.getSegAnchorAttrs = cr, e.getSegMeta = sr, e.getSlotClassNames = function(e, t) {
var n = ["fc-slot", "fc-slot-" + Qe[e.dow]];
return e.isDisabled ? n.push("fc-slot-disabled") : (e.isToday && (n.push("fc-slot-today"), n.push(t.getClass("today"))), e.isPast && n.push("fc-slot-past"), e.isFuture && n.push("fc-slot-future")), n
}, e.getStickyFooterScrollbar = es, e.getStickyHeaderDates = Qa, e.getUnequalProps = Rt, e.getUniqueDomId = xe, e.globalLocales = Ur, e.globalPlugins = xi, e.greatestDurationDenominator = Vt, e.groupIntersectingEntries = Xi, e.guid = Le, e.hasBgRendering = Kn, e.hasShrinkWidth = Xa, e.identity = yn, e.interactionSettingsStore = ra, e.interactionSettingsToStore = na, e.intersectRanges = jn, e.intersectRects = Xr, e.intersectSpans = $i, e.isArraysEqual = Gt, e.isColPropsEqual = qa, e.isDateSelectionValid = Pa, e.isDateSpansEqual = fr, e.isInt = $e, e.isInteractionValid = Ia, e.isMultiDayRange = Vn, e.isPropsEqual = wt, e.isPropsValid = Ha, e.isValidDate = vt, e.joinSpans = Ki, e.listenBySelector = Ie, e.mapHash = bt, e.memoize = qt, e.memoizeArraylike = function(e, t, n) {
var r = this,
o = [],
i = [];
return function(a) {
for (var s = o.length, l = a.length, u = 0; u < s; u += 1)
if (a[u]) {
if (!Gt(o[u], a[u])) {
n && n(i[u]);
var c = e.apply(r, a[u]);
t && t(c, i[u]) || (i[u] = c)
}
} else n && n(i[u]);
for (; u < l; u += 1) i[u] = e.apply(r, a[u]);
return o = a, i.splice(l), i
}
}, e.memoizeHashlike = function(e, t, n) {
var r = this,
o = {},
i = {};
return function(a) {
var s = {};
for (var l in a)
if (i[l])
if (Gt(o[l], a[l])) s[l] = i[l];
else {
n && n(i[l]);
var u = e.apply(r, a[l]);
s[l] = t && t(u, i[l]) ? i[l] : u
}
else s[l] = e.apply(r, a[l]);
return o = a, i = s, s
}
}, e.memoizeObjArg = Yt, e.mergeEventStores = Cn, e.multiplyDuration = At, e.padStart = Ze, e.parseBusinessHours = Yr, e.parseClassNames = Rn, e.parseDragMeta = sa, e.parseEventDef = Ln, e.parseFieldSpecs = je, e.parseMarker = Ar, e.pointInsideRect = Zr, e.preventContextMenu = Be, e.preventDefault = Me, e.preventSelection = Ve, e.rangeContainsMarker = Zn, e.rangeContainsRange = Yn, e.rangesEqual = Gn, e.rangesIntersect = qn, e.refineEventDef = On, e.refineProps = mn, e.removeElement = Ee, e.removeExact = function(e, t) {
for (var n = 0, r = 0; r < e.length;) e[r] === t ? (e.splice(r, 1), n += 1) : r += 1;
return n
}, e.render = To, e.renderChunkContent = Ga, e.renderFill = cs, e.renderMicroColGroup = Ya, e.renderScrollShim = Ja, e.requestJson = _i, e.sanitizeShrinkWidth = Za, e.setElSeg = $n, e.setRef = Fo, e.sliceEventStore = Xn, e.sliceEvents = function(e, t) {
return Xn(e.eventStore, e.eventUiBases, e.dateProfile.activeRange, t ? e.nextDayThreshold : null).fg
}, e.sortEventSegs = tr, e.startOfDay = lt, e.translateRect = function(e, t, n) {
return {
left: e.left + t,
right: e.right + t,
top: e.top + n,
bottom: e.bottom + n
}
}, e.triggerDateSelect = mr, e.unmountComponentAtNode = No, e.unpromisify = yo, e.version = "5.10.0", e.whenTransitionDone = Ne, e.wholeDivideDurations = Wt, Object.defineProperty(e, "__esModule", {
value: !0
}), e
}({});