PageSourceSearch

https://www.fch.org.bb/cdn/assets/js/calander.js

js fch.org.bb collected 2026-10-02 13:22:30 UTC 529,527 bytes, 6,971 lines download raw bytes

vendor: 9,080 bytes, lines 1-154
1/*!
2FullCalendar Scheduler v5.11.3
3Docs & License: https://fullcalendar.io/scheduler
4(c) 2022 Adam Shaw
5*/
6var FullCalendar = function(e) {
7    "use strict";
8    var t = function(e, n) {
9        return (t = Object.setPrototypeOf || { __proto__: [] }
10            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)
11    };
12
13    function n(e, n) {
14        if ("function" != typeof n && null !== n) throw new TypeError("Class extends value " + String(n) + " is not a constructor or null");
15
16        function r() { this.constructor = e }
17        t(e, n), e.prototype = null === n ? Object.create(n) : (r.prototype = n.prototype, new r)
18    }
19    var r = function() {
20        return (r = Object.assign || function(e) {
21            for (var t, n = 1, r = arguments.length; n < r; n++)
22                for (var o in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, o) && (e[o] = t[o]);
23            return e
24        }).apply(this, arguments)
25    };
26
27    function o(e, t, n) {
28        if (n || 2 === arguments.length)
29            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]);
30        return e.concat(r || t)
31    }
32    var i, a, s, l, u, c = {},
33        d = [],
34        p = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;
35
36    function f(e, t) { for (var n in t) e[n] = t[n]; return e }
37
38    function h(e) {
39        var t = e.parentNode;
40        t && t.removeChild(e)
41    }
42
43    function v(e, t, n) {
44        var r, o, i, a = arguments,
45            s = {};
46        for (i in t) "key" == i ? r = t[i] : "ref" == i ? o = t[i] : s[i] = t[i];
47        if (arguments.length > 3)
48            for (n = [n], i = 3; i < arguments.length; i++) n.push(a[i]);
49        if (null != n && (s.children = n), "function" == typeof e && null != e.defaultProps)
50            for (i in e.defaultProps) void 0 === s[i] && (s[i] = e.defaultProps[i]);
51        return g(e, s, r, o, null)
52    }
53
54    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 }
55
56    function m(e) { return e.children }
57
58    function y(e, t) { this.props = e, this.context = t }
59
60    function S(e, t) {
61        if (null == t) return e.__ ? S(e.__, e.__.__k.indexOf(e) + 1) : null;
62        for (var n; t < e.__k.length; t++)
63            if (null != (n = e.__k[t]) && null != n.__e) return n.__e;
64        return "function" == typeof e.type ? S(e) : null
65    }
66
67    function E(e) {
68        var t, n;
69        if (null != (e = e.__) && null != e.__c) {
70            for (e.__e = e.__c.base = null, t = 0; t < e.__k.length; t++)
71                if (null != (n = e.__k[t]) && null != n.__e) { e.__e = e.__c.base = n.__e; break }
72            return E(e)
73        }
74    }
75
76    function b(e) {
77        (!e.__d && (e.__d = !0) && a.push(e) && !C.__r++ || l !== i.debounceRendering) && ((l = i.debounceRendering) || s)(C)
78    }
79
80    function C() {
81        for (var e; C.__r = a.length;) e = a.sort((function(e, t) { return e.__v.__b - t.__v.__b })), a = [], e.some((function(e) {
82            var t, n, r, o, i, a;
83            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 ? S(o) : i, o.__h), P(n, o), o.__e != i && E(o)))
84        }))
85    }
86
87    function D(e, t, n, r, o, i, a, s, l, u) {
88        var p, f, h, v, y, E, b, C = r && r.__k || d,
89            D = C.length;
90        for (n.__k = [], p = 0; p < t.length; p++)
91            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)) {
92                if (v.__ = n, v.__b = n.__b + 1, null === (h = C[p]) || h && v.key == h.key && v.type === h.type) C[p] = void 0;
93                else
94                    for (f = 0; f < D; f++) {
95                        if ((h = C[f]) && v.key == h.key && v.type === h.type) { C[f] = void 0; break }
96                        h = null
97                    }
98                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 == E && (E = y), "function" == typeof v.type && null != v.__k && v.__k === h.__k ? v.__d = l = R(v, l, e) : l = T(e, v, h, C, y, l), u || "option" !== n.type ? "function" == typeof n.type && (n.__d = l) : e.value = "") : l && h.__e == l && l.parentNode != e && (l = S(h))
99            }
100        for (n.__e = E, p = D; p--;) null != C[p] && ("function" == typeof n.type && null != C[p].__e && C[p].__e == n.__d && (n.__d = S(r, p + 1)), O(C[p], C[p]));
101        if (b)
102            for (p = 0; p < b.length; p++) H(b[p], b[++p], b[++p])
103    }
104
105    function R(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 ? R(o, t, n) : T(n, o, o, e.__k, o.__e, t)); return t }
106
107    function w(e, t) { return t = t || [], null == e || "boolean" == typeof e || (Array.isArray(e) ? e.some((function(e) { w(e, t) })) : t.push(e)), t }
108
109    function T(e, t, n, r, o, i) {
110        var a, s, l;
111        if (void 0 !== t.__d) a = t.__d, t.__d = void 0;
112        else if (null == n || o != i || null == o.parentNode) e: if (null == i || i.parentNode !== e) e.appendChild(o), a = null;
113            else {
114                for (s = i, l = 0;
115                    (s = s.nextSibling) && l < r.length; l += 2)
116                    if (s == o) break e;
117                e.insertBefore(o, i), a = i
118            }
119        return void 0 !== a ? a : o.nextSibling
120    }
121
122    function x(e, t, n) { "-" === t[0] ? e.setProperty(t, n) : e[t] = null == n ? "" : "number" != typeof n || p.test(t) ? n : n + "px" }
123
124    function _(e, t, n, r, o) {
125        var i;
126        e: if ("style" === t)
127            if ("string" == typeof n) e.style.cssText = n;
128            else {
129                if ("string" == typeof r && (e.style.cssText = r = ""), r)
130                    for (t in r) n && t in n || x(e.style, t, "");
131                if (n)
132                    for (t in n) r && n[t] === r[t] || x(e.style, t, n[t])
133            }
134        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 : k, i) : e.removeEventListener(t, i ? M : k, i);
135        else if ("dangerouslySetInnerHTML" !== t) {
136            if (o) t = t.replace(/xlink[H:h]/, "h").replace(/sName$/, "s");
137            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) {}
138            "function" == typeof n || (null != n && (!1 !== n || "a" === t[0] && "r" === t[1]) ? e.setAttribute(t, n) : e.removeAttribute(t))
139        }
140    }
141
142    function k(e) { this.l[e.type + !1](i.event ? i.event(e) : e) }
143
144    function M(e) { this.l[e.type + !0](i.event ? i.event(e) : e) }
145
146    function I(e, t, n, r, o, a, s, l, u) {
147        var c, d, p, h, v, g, S, E, b, C, R, w = t.type;
148        if (void 0 !== t.constructor) return null;
149        null != n.__h && (u = n.__h, l = t.__e = n.__e, t.__h = null, a = [l]), (c = i.__b) && c(t);
150        try {
151            e: if ("function" == typeof w) {
152                    if (E = t.props, b = (c = w.contextType) && r[c.__c], C = c ? b ? b.props.value : c.__ : r, n.__c ? S = (d = t.__c = n.__c).__ = d.__E : ("prototype" in w && w.prototype.render ? t.__c = d = new w(E, C) : (t.__c = d = new y(E, C), d.constructor = w, d.render = A), b && b.sub(d), d.props = E, d.state || (d.state = {}), d.context = C, d.__n = r, p = d.__d = !0, d.__h = []), null == d.__s && (d.__s = d.state), null != w.getDerivedStateFromProps && (d.__s == d.state && (d.__s = f({}, d.__s)), f(d.__s, w.getDerivedStateFromProps(E, d.__s))), h = d.props, v = d.state, p) null == w.getDerivedStateFromProps && null != d.componentWillMount && d.componentWillMount(), null != d.componentDidMount && d.__h.push(d.componentDidMount);
153                    else {
154                        if (null == w.getDerivedStateFromProps && E !== h && null != d.componentWillReceiveProps && d.componentWillReceiveProps(E, C), !d.__e && null != d.shouldComponentUpdate && !1 === d.shouldComponentUpdate(E, d.__s, C) || t.__v === n.__v) { d.props = E, d.state = d.__s, t.__v !== n.__v && (d.__d = !1), d.__v = t, t.__e = n.__e, t.__k = n.__k, t.__k.forEac
vendor: 4,909 bytes, lines 154-221
154h((function(e) { e && (e.__ = t) })), d.__h.length && s.push(d); break e }
155                        null != d.componentWillUpdate && d.componentWillUpdate(E, d.__s, C), null != d.componentDidUpdate && d.__h.push((function() { d.componentDidUpdate(h, v, g) }))
156                    }
157                    d.context = C, d.props = E, 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)), R = null != c && c.type === m && null == c.key ? c.props.children : c, D(e, Array.isArray(R) ? R : [R], t, n, r, o, a, s, l, u), d.base = t.__e, t.__h = null, d.__h.length && s.push(d), S && (d.__E = d.__ = null), d.__e = !1
158                } 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);
159                (c = i.diffed) && c(t)
160        }
161        catch (e) { t.__v = null, (u || null != a) && (t.__e = l, t.__h = !!u, a[a.indexOf(l)] = null), i.__e(e, t, n) }
162    }
163
164    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) } })) }
165
166    function N(e, t, n, r, o, i, a, s) {
167        var l, u, p, f, v = n.props,
168            g = t.props,
169            m = t.type,
170            y = 0;
171        if ("svg" === m && (o = !0), null != i)
172            for (; y < i.length; y++)
173                if ((l = i[y]) && (l === e || (m ? l.localName == m : 3 == l.nodeType))) { e = l, i[y] = null; break }
174        if (null == e) {
175            if (null === m) return document.createTextNode(g);
176            e = o ? document.createElementNS("http://www.w3.org/2000/svg", m) : document.createElement(m, g.is && g), i = null, s = !1
177        }
178        if (null === m) v === g || s && e.data === g || (e.data = g);
179        else {
180            if (i = i && d.slice.call(e.childNodes), u = (v = n.props || c).dangerouslySetInnerHTML, p = g.dangerouslySetInnerHTML, !s) {
181                if (null != i)
182                    for (v = {}, f = 0; f < e.attributes.length; f++) v[e.attributes[f].name] = e.attributes[f].value;
183                (p || u) && (p && (u && p.__html == u.__html || p.__html === e.innerHTML) || (e.innerHTML = p && p.__html || ""))
184            }
185            if (function(e, t, n, r, o) { var i; for (i in n) "children" === i || "key" === i || i in t || _(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] || _(e, i, t[i], n[i], r) }(e, g, v, o, s), p) t.__k = [];
186            else if (y = t.props.children, D(e, Array.isArray(y) ? y : [y], t, n, r, o && "foreignObject" !== m, i, a, e.firstChild, s), null != i)
187                for (y = i.length; y--;) null != i[y] && h(i[y]);
188            s || ("value" in g && void 0 !== (y = g.value) && (y !== e.value || "progress" === m && !y) && _(e, "value", y, v.value, !1), "checked" in g && void 0 !== (y = g.checked) && y !== e.checked && _(e, "checked", y, v.checked, !1))
189        }
190        return e
191    }
192
193    function H(e, t, n) { try { "function" == typeof e ? e(t) : e.current = t } catch (e) { i.__e(e, n) } }
194
195    function O(e, t, n) {
196        var r, o, a;
197        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)) {
198            if (r.componentWillUnmount) try { r.componentWillUnmount() } catch (e) { i.__e(e, t) }
199            r.base = r.__P = null
200        }
201        if (r = e.__k)
202            for (a = 0; a < r.length; a++) r[a] && O(r[a], t, n);
203        null != o && h(o)
204    }
205
206    function A(e, t, n) { return this.constructor(e, n) }
207
208    function W(e, t, n) {
209        var r, o, a;
210        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)
211    }
212    i = {
213        __e: function(e, t) {
214            for (var n, r, o; t = t.__;)
215                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 }
216            throw e
217        },
218        __v: 0
219    }, y.prototype.setState = function(e, t) {
220        var n;
221        n = null != this.__s && this.__s !== this.state ? this.__s : this.__s = f({}
vendor: 4,470 bytes, lines 221-303
221, 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))
222    }, 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, C.__r = 0, u = 0;
223    var L, U = [],
224        B = i.__b,
225        z = i.__r,
226        V = i.diffed,
227        F = i.__c,
228        G = i.unmount;
229
230    function j() { U.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) } })), U = [] }
231    i.__b = function(e) { B && B(e) }, i.__r = function(e) {
232        z && z(e);
233        var t = e.__c.__H;
234        t && (t.__h.forEach(Y), t.__h.forEach(Z), t.__h = [])
235    }, i.diffed = function(e) {
236        V && V(e);
237        var t = e.__c;
238        t && t.__H && t.__H.__h.length && (1 !== U.push(t) && L === i.requestAnimationFrame || ((L = i.requestAnimationFrame) || function(e) {
239            var t, n = function() { clearTimeout(r), q && cancelAnimationFrame(t), setTimeout(e) },
240                r = setTimeout(n, 100);
241            q && (t = requestAnimationFrame(n))
242        })(j))
243    }, 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) } })), F && F(e, t) }, i.unmount = function(e) { G && G(e); var t = e.__c; if (t && t.__H) try { t.__H.__.forEach(Y) } catch (e) { i.__e(e, t.__v) } };
244    var q = "function" == typeof requestAnimationFrame;
245
246    function Y(e) { "function" == typeof e.__c && e.__c() }
247
248    function Z(e) { e.__c = e.__() }
249
250    function X(e, t) {
251        for (var n in e)
252            if ("__source" !== n && !(n in t)) return !0;
253        for (var r in t)
254            if ("__source" !== r && e[r] !== t[r]) return !0;
255        return !1
256    }
257
258    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) };
259    var $ = i.__b;
260    i.__b = function(e) { e.type && e.type.__f && e.ref && (e.props.ref = e.ref, e.ref = null), $ && $(e) };
261    var J = i.__e;
262    i.__e = function(e, t, n) {
263        if (e.then)
264            for (var r, o = t; o = o.__;)
265                if ((r = o.__c) && r.__c) return null == t.__e && (t.__e = n.__e, t.__k = n.__k), r.__c(e, t);
266        J(e, t, n)
267    };
268    var Q = i.unmount;
269
270    function ee() { this.__u = 0, this.t = null, this.__b = null }
271
272    function te(e) { var t = e.__.__c; return t && t.__e && t.__e(e) }
273
274    function ne() { this.u = null, this.o = null }
275    i.unmount = function(e) {
276        var t = e.__c;
277        t && t.__R && t.__R(), t && !0 === e.__h && (e.type = null), Q && Q(e)
278    }, (ee.prototype = new y).__c = function(e, t) {
279        var n = t.__c,
280            r = this;
281        null == r.t && (r.t = []), r.t.push(n);
282        var o = te(r.__v),
283            i = !1,
284            a = function() { i || (i = !0, n.__R = null, o ? o(s) : s()) };
285        n.__R = a;
286        var s = function() {
287                if (!--r.__u) {
288                    if (r.state.__e) {
289                        var e = r.state.__e;
290                        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)
291                    }
292                    var t;
293                    for (r.setState({ __e: r.__b = null }); t = r.t.pop();) t.forceUpdate()
294                }
295            },
296            l = !0 === t.__h;
297        r.__u++ || l || r.setState({ __e: r.__b = r.__v.__k[0] }), e.then(a, a)
298    }, ee.prototype.componentWillUnmount = function() { this.t = [] }, ee.prototype.render = function(e, t) {
299        if (this.__b) {
300            if (this.__v.__k) {
301                var n = document.createElement("div"),
302                    r = this.__v.__k[0].__c;
303                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() }
vendor: 4,241 bytes, lines 303-362
303)), 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)
304            }
305            this.__b = null
306        }
307        var o = t.__e && v(m, null, e.fallback);
308        return o && (o.__h = null), [v(m, null, t.__e ? null : e.children), o]
309    };
310    var re = function(e, t, n) {
311        if (++n[1] === n[0] && e.o.delete(t), e.props.revealOrder && ("t" !== e.props.revealOrder[0] || !e.o.size))
312            for (n = e.u; n;) {
313                for (; n.length > 3;) n.pop()();
314                if (n[1] < n[0]) break;
315                e.u = n = n[2]
316            }
317    };
318
319    function oe(e) { return this.getChildContext = function() { return e.context }, e.children }
320
321    function ie(e) {
322        var t = this,
323            n = e.i;
324        t.componentWillUnmount = function() { W(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) } }), W(v(oe, { context: t.context }, e.__v), t.l)) : t.l && t.componentWillUnmount()
325    }(ne.prototype = new y).__e = function(e) {
326        var t = this,
327            n = te(t.__v),
328            r = t.o.get(e);
329        return r[0]++,
330            function(o) {
331                var i = function() { t.props.revealOrder ? (r.push(o), re(t, e, r)) : o() };
332                n ? n(i) : i()
333            }
334    }, ne.prototype.render = function(e) {
335        this.u = null, this.o = new Map;
336        var t = w(e.children);
337        e.revealOrder && "b" === e.revealOrder[0] && t.reverse();
338        for (var n = t.length; n--;) this.o.set(t[n], this.u = [1, 0, this.u]);
339        return e.children
340    }, ne.prototype.componentDidUpdate = ne.prototype.componentDidMount = function() {
341        var e = this;
342        this.o.forEach((function(t, n) { re(e, n, t) }))
343    };
344    var ae = "undefined" != typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103,
345        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]/,
346        le = function(e) { return ("undefined" != typeof Symbol && "symbol" == typeof Symbol() ? /fil|che|rad/i : /fil|che|ra/i).test(e) };
347    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 }) } }) }));
348    var ue = i.event;
349
350    function ce() {}
351
352    function de() { return this.cancelBubble }
353
354    function pe() { return this.defaultPrevented }
355    i.event = function(e) { return ue && (e = ue(e)), e.persist = ce, e.isPropagationStopped = de, e.isDefaultPrevented = pe, e.nativeEvent = e };
356    var fe = { configurable: !0, get: function() { return this.class } },
357        he = i.vnode;
358    i.vnode = function(e) {
359        var t = e.type,
360            n = e.props,
361            r = n;
362        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 = w(n.children).forEac
362h((function(e) { e.props.selected = -1 != r.value.indexOf(e.props.value) }))), "select" == t && null != r.defaultValue && (r.value = w(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 }
363        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)
364    };
365    var ve = i.__r;
366    i.__r = function(e) { ve && ve(e) }, "object" == typeof performance && "function" == typeof performance.now && performance.now.bind(performance);
367    var ge = "undefined" != typeof globalThis ? globalThis : window;
368    ge.FullCalendarVDom ? console.warn("FullCalendar VDOM already loaded") : ge.FullCalendarVDom = {
369        Component: y,
370        createElement: v,
371        render: W,
372        createRef: function() { return { current: null } },
373        Fragment: m,
374        createContext: function(e) {
375            var t = function(e, t) {
376                    var n = {
377                        __c: t = "__cC" + u++,
378                        __: e,
379                        Consumer: function(e, t) { return e.children(t) },
380                        Provider: function(e) {
381                            var n, r;
382                            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) {
383                                n.push(e);
384                                var t = e.componentWillUnmount;
385                                e.componentWillUnmount = function() { n.splice(n.indexOf(e), 1), t && t.call(e) }
386                            }), e.children
387                        }
388                    };
389                    return n.Provider.__ = n.Consumer.contextType = n
390                }(e),
391                n = t.Provider;
392            return t.Provider = function() {
393                var e = this,
394                    t = !this.getChildContext,
395                    r = n.apply(this, arguments);
396                if (t) {
397                    var o = [];
398                    this.shouldComponentUpdate = function(t) { e.props.value !== t.value && o.forEach((function(e) { e.context = t.value, e.forceUpdate() })) }, this.sub = function(e) {
399                        o.push(e);
400                        var t = e.componentWillUnmount;
401                        e.componentWillUnmount = function() { o.splice(o.indexOf(e), 1), t && t.call(e) }
402                    }
403                }
404                return r
405            }, t
406        },
407        createPortal: function(e, t) { return v(ie, { __v: e, i: t }) },
408        flushSync: function(e) {
409            e();
410            var t = i.debounceRendering,
411                n = [];
412
413            function r(e) { n.push(e) }
414            i.debounceRendering = r, W(v(me, {}), document.createElement("div"));
415            for (; n.length;) n.shift()();
416            i.debounceRendering = t
417        },
418        unmountComponentAtNode: function(e) { W(null, e) }
419    };
420    var me = function(e) {
421        function t() { return null !== e && e.apply(this, arguments) || this }
422        return n(t, e), t.prototype.render = function() { return v("div", {}) }, t.prototype.componentDidMount = function() { this.setState({}) }, t
423    }(y);
424    var ye = function() {
425        function e(e, t) { this.context = e, this.internalEventSource = t }
426        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
427    }();
428
429    function Se(e) { e.parentNode && e.parentNode.removeChild(e) }
430
431    function Ee(e, t) {
432        if (e.closest) return e.closest(t);
433        if (!document.documentElement.contains(e)) return null;
434        do {
435            if (be(e, t)) return e;
436            e = e.parentElement || e.parentNode
437        } while (null !== e && 1 === e.nodeType);
438        return null
439    }
440
441    function be(e, t) { return (e.matches || e.matchesSelector || e.msMatchesSelector).call(e, t) }
442
443    function Ce(e, t) {
444        for (var n = e instanceof HTMLElement ? [e] : e, r = [], o = 0; o < n.length; o += 1)
445            for (var i = n[o].querySelectorAll(t), a = 0; a < i.length; a += 1) r.push(i[a]);
446        return r
447    }
448
449    function De(e, t) {
450        for (var n = e instanceof HTMLElement ? [e] : e, r = [], o = 0; o < n.length; o += 1)
451            for (var i = n[o].children, a = 0; a < i.length; a += 1) {
452                var s = i[a];
453                t && !be(s, t) || r.push(s)
454            }
455        return r
456    }
457    var Re = /(top|left|right|bottom|width|height)$/i;
458
459    function we(e, t) { for (var n in t) Te(e, n, t[n]) }
460
461    function Te(e, t, n) { null == n ? e.style[t] = "" : "number" == typeof n && Re.test(t) ? e.style[t] = n + "px" : e.style[t] = n }
462
463    function xe(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 }
464
465    function _e(e) { return e.getRootNode ? e.getRootNode() : document }
466    var ke = 0;
467
468    function Me() { return "fc-dom-" + (ke += 1) }
469
470    function Ie(e) { e.preventDefault() }
471
472    function Pe(e, t, n, r) {
473        var o = function(e, t) {
474            return function(n) {
475                var r = Ee(n.target, e);
476                r && t.call(r, n, r)
477            }
478        }(n, r);
479        return e.addEventListener(t, o),
480            function() { e.removeEventListener(t, o) }
481    }
482    var Ne = ["webkitTransitionEnd", "otransitionend", "oTransitionEnd", "msTransitionEnd", "transitionend"];
483
484    function He(e, t) {
485        var n = function(r) { t(r), Ne.forEach((function(t) { e.removeEventListener(t, n) })) };
486        Ne.forEach((function(t) { e.addEventListener(t, n) }))
487    }
488
489    function Oe(e) { return r({ onClick: e }, Ae(e)) }
490
491    function Ae(e) { return { tabIndex: 0, onKeyDown: function(t) { "Enter" !== t.key && " " !== t.key || (e(t), t.preventDefault()) } } }
492    var We = 0;
493
494    function Le() { return String(We += 1) }
495
496    function Ue() { document.body.classList.add("fc-not-allowed") }
497
498    function Be() { document.body.classList.remove("fc-not-allowed") }
499
500    function ze(e) { e.classList.add("fc-unselectable"), e.addEventListener("selectstart", Ie) }
501
502    function Ve(e) { e.classList.remove("fc-unselectable"), e.removeEventListener("selectstart", Ie) }
503
504    function Fe(e) { e.addEventListener("contextmenu", Ie) }
505
506    function Ge(e) { e.removeEventListener("contextmenu", Ie) }
507
508    function je(e) {
509        var t, n, r = [],
510            o = [];
511        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 });
512        return r
513    }
514
515    function qe(e, t, n) {
516        var r, o;
517        for (r = 0; r < n.length; r += 1)
518            if (o = Ye(e, t, n[r])) return o;
519        return 0
520    }
521
522    function Ye(e, t, n) { return n.func ? n.func(e, t) : Ze(e[n.field], t[n.field]) * (n.order || 1) }
523
524    function Ze(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 }
525
526    function Xe(e, t) { var n = String(e); return "000".substr(0, t - n.length) + n }
527
528    function Ke(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 }
529
530    function $e(e, t) { return e - t }
531
532    function Je(e) { return e % 1 == 0 }
533
534    function Qe(e) {
535        var t = e.querySelector(".fc-scrollgrid-shrink-frame"),
536            n = e.querySelector(".fc-scrollgrid-shrink-cushion");
537        if (!t) throw new Error("needs fc-scrollgrid-shrink-frame className");
538        if (!n) throw new Error("needs fc-scrollgrid-shrink-cushion className");
539        return e.getBoundingClientRect().width - t.getBoundingClientRect().width + n.getBoundingClientRect().width
540    }
541    var et = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"];
542
543    function tt(e, t) { var n = ht(e); return n[2] += 7 * t, vt(n) }
544
545    function nt(e, t) { var n = ht(e); return n[2] += t, vt(n) }
546
547    function rt(e, t) { var n = ht(e); return n[6] += t, vt(n) }
548
549    function ot(e, t) { return it(e, t) / 7 }
550
551    function it(e, t) { return (t.valueOf() - e.valueOf()) / 864e5 }
552
553    function at(e, t) {
554        var n = ut(e),
555            r = ut(t);
556        return { years: 0, months: 0, days: Math.round(it(n, r)), milliseconds: t.valueOf() - r.valueOf() - (e.valueOf() - n.valueOf()) }
557    }
558
559    function st(e, t) { var n = lt(e, t); return null !== n && n % 7 == 0 ? n / 7 : null }
560
561    function lt(e, t) { return mt(e) === mt(t) ? Math.round(it(e, t)) : null }
562
563    function ut(e) { return vt([e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate()]) }
564
565    function ct(e, t, n, r) {
566        var o = vt([t, 0, 1 + dt(t, n, r)]),
567            i = ut(e),
568            a = Math.round(it(o, i));
569        return Math.floor(a / 7) + 1
570    }
571
572    function dt(e, t, n) { var r = 7 + t - n; return -((7 + vt([e, 0, r]).getUTCDay() - t) % 7) + r - 1 }
573
574    function pt(e) { return [e.getFullYear(), e.getMonth(), e.getDate(), e.getHours(), e.getMinutes(), e.getSeconds(), e.getMilliseconds()] }
575
576    function ft(e) { return new Date(e[0], e[1] || 0, null == e[2] ? 1 : e[2], e[3] || 0, e[4] || 0, e[5] || 0) }
577
578    function ht(e) { return [e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate(), e.getUTCHours(), e.getUTCMinutes(), e.getUTCSeconds(), e.getUTCMilliseconds()] }
579
580    function vt(e) { return 1 === e.length && (e = e.concat([0])), new Date(Date.UTC.apply(Date, e)) }
581
582    function gt(e) { return !isNaN(e.valueOf()) }
583
584    function mt(e) { return 1e3 * e.getUTCHours() * 60 * 60 + 1e3 * e.getUTCMinutes() * 60 + 1e3 * e.getUTCSeconds() + e.getUTCMilliseconds() }
585
586    function yt(e, t, n, r) { return { instanceId: Le(), defId: e, range: t, forcedStartTzo: null == n ? null : n, forcedEndTzo: null == r ? null : r } }
587    var St = Object.prototype.hasOwnProperty;
588
589    function Et(e, t) {
590        var n = {};
591        if (t)
592            for (var r in t) {
593                for (var o = [], i = e.length - 1; i >= 0; i -= 1) {
594                    var a = e[i][r];
595                    if ("object" == typeof a && a) o.unshift(a);
596                    else if (void 0 !== a) { n[r] = a; break }
597                }
598                o.length && (n[r] = Et(o))
599            }
600        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]) }
601        return n
602    }
603
604    function bt(e, t) { var n = {}; for (var r in e) t(e[r], r) && (n[r] = e[r]); return n }
605
606    function Ct(e, t) { var n = {}; for (var r in e) n[r] = t(e[r], r); return n }
607
608    function Dt(e) { for (var t = {}, n = 0, r = e; n < r.length; n++) { t[r[n]] = !0 } return t }
609
610    function Rt(e) { var t = []; for (var n in e) t.push(e[n]); return t }
611
612    function wt(e, t) {
613        if (e === t) return !0;
614        for (var n in e)
615            if (St.call(e, n) && !(n in t)) return !1;
616        for (var n in t)
617            if (St.call(t, n) && e[n] !== t[n]) return !1;
618        return !0
619    }
620
621    function Tt(e, t) { var n = []; for (var r in e) St.call(e, r) && (r in t || n.push(r)); for (var r in t) St.call(t, r) && e[r] !== t[r] && n.push(r); return n }
622
623    function xt(e, t, n) {
624        if (void 0 === n && (n = {}), e === t) return !0;
625        for (var r in t)
626            if (!(r in e) || !_t(e[r], t[r], n[r])) return !1;
627        for (var r in e)
628            if (!(r in t)) return !1;
629        return !0
630    }
631
632    function _t(e, t, n) { return e === t || !0 === n || !!n && n(e, t) }
633
634    function kt(e, t, n, r) {
635        void 0 === t && (t = 0), void 0 === r && (r = 1);
636        var o = [];
637        null == n && (n = Object.keys(e).length);
638        for (var i = t; i < n; i += r) {
639            var a = e[i];
640            void 0 !== a && o.push(a)
641        }
642        return o
643    }
644
645    function Mt(e, t, n) {
646        var r = n.dateEnv,
647            o = n.pluginHooks,
648            i = n.options,
649            a = e.defs,
650            s = e.instances;
651        for (var l in s = bt(s, (function(e) { return !a[e.defId].recurringDef })), a) {
652            var u = a[l];
653            if (u.recurringDef) {
654                var c = u.recurringDef.duration;
655                c || (c = u.allDay ? i.defaultAllDayEventDuration : i.defaultTimedEventDuration);
656                for (var d = 0, p = It(u, c, t, r, o.recurringTypes); d < p.length; d++) {
657                    var f = p[d],
658                        h = yt(l, { start: f, end: r.add(f, c) });
659                    s[h.instanceId] = h
660                }
661            }
662        }
663        return { defs: a, instances: s }
664    }
665
666    function It(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(ut)), i }
667    var Pt = ["years", "months", "days", "milliseconds"],
668        Nt = /^(-?)(?:(\d+)\.)?(\d+):(\d\d)(?::(\d\d)(?:\.(\d\d\d))?)?/;
669
670    function Ht(e, t) { var n; return "string" == typeof e ? function(e) { var t = Nt.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 ? Ot(e) : "number" == typeof e ? Ot(((n = {})[t || "milliseconds"] = e, n)) : null }
671
672    function Ot(e) {
673        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) },
674            n = e.weeks || e.week;
675        return n && (t.days += 7 * n, t.specifiedWeeks = !0), t
676    }
677
678    function At(e) { return e.years || e.months || e.milliseconds ? 0 : e.days }
679
680    function Wt(e, t) { return { years: e.years + t.years, months: e.months + t.months, days: e.days + t.days, milliseconds: e.milliseconds + t.milliseconds } }
681
682    function Lt(e, t) { return { years: e.years * t, months: e.months * t, days: e.days * t, milliseconds: e.milliseconds * t } }
683
684    function Ut(e) { return Vt(e) / 864e5 }
685
686    function Bt(e) { return Vt(e) / 6e4 }
687
688    function zt(e) { return Vt(e) / 1e3 }
689
690    function Vt(e) { return 31536e6 * e.years + 2592e6 * e.months + 864e5 * e.days + e.milliseconds }
691
692    function Ft(e, t) {
693        for (var n = null, r = 0; r < Pt.length; r += 1) {
694            var o = Pt[r];
695            if (t[o]) {
696                var i = e[o] / t[o];
697                if (!Je(i) || null !== n && n !== i) return null;
698                n = i
699            } else if (e[o]) return null
700        }
701        return n
702    }
703
704    function Gt(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 } }
705
706    function jt(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", Zt(t, !0)))), r }
707
708    function qt(e) { return e.toISOString().replace(/T.*$/, "") }
709
710    function Yt(e) { return Xe(e.getUTCHours(), 2) + ":" + Xe(e.getUTCMinutes(), 2) + ":" + Xe(e.getUTCSeconds(), 2) }
711
712    function Zt(e, t) {
713        void 0 === t && (t = !1);
714        var n = e < 0 ? "-" : "+",
715            r = Math.abs(e),
716            o = Math.floor(r / 60),
717            i = Math.round(r % 60);
718        return t ? n + Xe(o, 2) + ":" + Xe(i, 2) : "GMT" + n + o + (i ? ":" + Xe(i, 2) : "")
719    }
720
721    function Xt(e, t) { for (var n = 0, r = 0; r < e.length;) e[r] === t ? (e.splice(r, 1), n += 1) : r += 1; return n }
722
723    function Kt(e, t, n) {
724        if (e === t) return !0;
725        var r, o = e.length;
726        if (o !== t.length) return !1;
727        for (r = 0; r < o; r += 1)
728            if (!(n ? n(e[r], t[r]) : e[r] === t[r])) return !1;
729        return !0
730    }
731
732    function $t(e, t, n) {
733        var r, o;
734        return function() {
735            for (var i = [], a = 0; a < arguments.length; a++) i[a] = arguments[a];
736            if (r) {
737                if (!Kt(r, i)) {
738                    n && n(o);
739                    var s = e.apply(this, i);
740                    t && t(s, o) || (o = s)
741                }
742            } else o = e.apply(this, i);
743            return r = i, o
744        }
745    }
746
747    function Jt(e, t, n) {
748        var r, o, i = this;
749        return function(a) {
750            if (r) {
751                if (!wt(r, a)) {
752                    n && n(o);
753                    var s = e.call(i, a);
754                    t && t(s, o) || (o = s)
755                }
756            } else o = e.call(i, a);
757            return r = a, o
758        }
759    }
760
761    function Qt(e, t, n) {
762        var r = this,
763            o = [],
764            i = [];
765        return function(a) {
766            for (var s = o.length, l = a.length, u = 0; u < s; u += 1)
767                if (a[u]) {
768                    if (!Kt(o[u], a[u])) {
769                        n && n(i[u]);
770                        var c = e.apply(r, a[u]);
771                        t && t(c, i[u]) || (i[u] = c)
772                    }
773                } else n && n(i[u]);
774            for (; u < l; u += 1) i[u] = e.apply(r, a[u]);
775            return o = a, i.splice(l), i
776        }
777    }
778
779    function en(e, t, n) {
780        var r = this,
781            o = {},
782            i = {};
783        return function(a) {
784            var s = {};
785            for (var l in a)
786                if (i[l])
787                    if (Kt(o[l], a[l])) s[l] = i[l];
788                    else {
789                        n && n(i[l]);
790                        var u = e.apply(r, a[l]);
791                        s[l] = t && t(u, i[l]) ? i[l] : u
792                    }
793            else s[l] = e.apply(r, a[l]);
794            return o = a, i = s, s
795        }
796    }
797    var tn = { week: 3, separator: 0, omitZeroMinute: 0, meridiem: 0, omitCommas: 0 },
798        nn = { timeZoneName: 7, era: 6, year: 5, month: 4, day: 2, weekday: 2, hour: 1, minute: 1, second: 1 },
799        rn = /\s*([ap])\.?m\.?/i,
800        on = /,/g,
801        an = /\s+/g,
802        sn = /\u200e/g,
803        ln = /UTC|GMT/,
804        un = function() {
805            function e(e) {
806                var t = {},
807                    n = {},
808                    r = 0;
809                for (var o in e) o in tn ? (n[o] = e[o], r = Math.max(tn[o], r)) : (t[o] = e[o], o in nn && (r = Math.max(nn[o], r)));
810                this.standardDateProps = t, this.extendedSettings = n, this.severity = r, this.buildFormattingFunc = $t(cn)
811            }
812            return e.prototype.format = function(e, t) { return this.buildFormattingFunc(this.standardDateProps, this.extendedSettings, t)(e) }, e.prototype.formatRange = function(e, t, n, r) {
813                var o = this.standardDateProps,
814                    i = this.extendedSettings,
815                    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 (mt(e) !== mt(t)) return 1; return 0 }(e.marker, t.marker, n.calendarSystem);
816                if (!a) return this.format(e, n);
817                var s = a;
818                !(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);
819                var l = this.format(e, n),
820                    u = this.format(t, n);
821                if (l === u) return l;
822                var c = cn(function(e, t) { var n = {}; for (var r in e)(!(r in nn) || nn[r] <= t) && (n[r] = e[r]); return n }(o, s), i, n),
823                    d = c(e),
824                    p = c(t),
825                    f = function(e, t, n, r) {
826                        var o = 0;
827                        for (; o < e.length;) {
828                            var i = e.indexOf(t, o);
829                            if (-1 === i) break;
830                            var a = e.substr(0, i);
831                            o = i + t.length;
832                            for (var s = e.substr(o), l = 0; l < n.length;) {
833                                var u = n.indexOf(r, l);
834                                if (-1 === u) break;
835                                var c = n.substr(0, u);
836                                l = u + r.length;
837                                var d = n.substr(l);
838                                if (a === c && s === d) return { before: a, after: s }
839                            }
840                        }
841                        return null
842                    }(l, d, u, p),
843                    h = i.separator || r || n.defaultSeparator || "";
844                return f ? f.before + d + h + p + f.after : l + h + u
845            }, e.prototype.getLargestUnit = function() {
846                switch (this.severity) {
847                    case 7:
848                    case 6:
849                    case 5:
850                        return "year";
851                    case 4:
852                        return "month";
853                    case 3:
854                        return "week";
855                    case 2:
856                        return "day";
857                    default:
858                        return "time"
859                }
860            }, e
861        }();
862
863    function cn(e, t, n) {
864        var o = Object.keys(e).length;
865        return 1 === o && "short" === e.timeZoneName ? function(e) { return Zt(e.timeZoneOffset) } : 0 === o && t.week ? function(e) {
866            return function(e, t, n, r, o) {
867                var i = [];
868                "long" === o ? i.push(n) : "short" !== o && "narrow" !== o || i.push(t);
869                "long" !== o && "short" !== o || i.push(" ");
870                i.push(r.simpleNumberFormat.format(e)), "rtl" === r.options.direction && i.reverse();
871                return i.join("")
872            }(n.computeWeekNumber(e.marker), n.weekText, n.weekTextLong, n.locale, t.week)
873        } : function(e, t, n) {
874            e = r({}, e), t = r({}, t),
875                function(e, t) {
876                    e.timeZoneName && (e.hour || (e.hour = "2-digit"), e.minute || (e.minute = "2-digit"));
877                    "long" === e.timeZoneName && (e.timeZoneName = "short");
878                    t.omitZeroMinute && (e.second || e.millisecond) && delete t.omitZeroMinute
879                }(e, t), e.timeZone = "UTC";
880            var o, i = new Intl.DateTimeFormat(n.locale.codes, e);
881            if (t.omitZeroMinute) {
882                var a = r({}, e);
883                delete a.minute, o = new Intl.DateTimeFormat(n.locale.codes, a)
884            }
885            return function(r) {
886                var a = r.marker;
887                return function(e, t, n, r, o) {
888                    e = e.replace(sn, ""), "short" === n.timeZoneName && (e = function(e, t) {
889                        var n = !1;
890                        e = e.replace(ln, (function() { return n = !0, t })), n || (e += " " + t);
891                        return e
892                    }(e, "UTC" === o.timeZone || null == t.timeZoneOffset ? "UTC" : Zt(t.timeZoneOffset)));
893                    r.omitCommas && (e = e.replace(on, "").trim());
894                    r.omitZeroMinute && (e = e.replace(":00", ""));
895                    !1 === r.meridiem ? e = e.replace(rn, "").trim() : "narrow" === r.meridiem ? e = e.replace(rn, (function(e, t) { return t.toLocaleLowerCase() })) : "short" === r.meridiem ? e = e.replace(rn, (function(e, t) { return t.toLocaleLowerCase() + "m" })) : "lowercase" === r.meridiem && (e = e.replace(rn, (function(e) { return e.toLocaleLowerCase() })));
896                    return e = (e = e.replace(an, " ")).trim()
897                }((o && !a.getUTCMinutes() ? o : i).format(a), r, e, t, n)
898            }
899        }(e, t, n)
900    }
901
902    function dn(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] } }
903
904    function pn(e, t, n, r) { var o = dn(e, n.calendarSystem); return { date: o, start: o, end: t ? dn(t, n.calendarSystem) : null, timeZone: n.timeZone, localeCodes: n.locale.codes, defaultSeparator: r || n.defaultSeparator } }
905    var fn = function() {
906            function e(e) { this.cmdStr = e }
907            return e.prototype.format = function(e, t, n) { return t.cmdFormatter(this.cmdStr, pn(e, null, t, n)) }, e.prototype.formatRange = function(e, t, n, r) { return n.cmdFormatter(this.cmdStr, pn(e, t, n, r)) }, e
908        }(),
909        hn = function() {
910            function e(e) { this.func = e }
911            return e.prototype.format = function(e, t, n) { return this.func(pn(e, null, t, n)) }, e.prototype.formatRange = function(e, t, n, r) { return this.func(pn(e, t, n, r)) }, e
912        }();
913
914    function vn(e) { return "object" == typeof e && e ? new un(e) : "string" == typeof e ? new fn(e) : "function" == typeof e ? new hn(e) : null }
915    var gn = { navLinkDayClick: wn, navLinkWeekClick: wn, duration: Ht, bootstrapFontAwesome: wn, buttonIcons: wn, customButtons: wn, defaultAllDayEventDuration: Ht, defaultTimedEventDuration: Ht, nextDayThreshold: Ht, scrollTime: Ht, scrollTimeReset: Boolean, slotMinTime: Ht, slotMaxTime: Ht, dayPopoverFormat: vn, slotDuration: Ht, snapDuration: Ht, headerToolbar: wn, footerToolbar: wn, defaultRangeSeparator: String, titleRangeSeparator: String, forceEventDuration: Boolean, dayHeaders: Boolean, dayHeaderFormat: vn, dayHeaderClassNames: wn, dayHeaderContent: wn, dayHeaderDidMount: wn, dayHeaderWillUnmount: wn, dayCellClassNames: wn, dayCellContent: wn, dayCellDidMount: wn, dayCellWillUnmount: wn, initialView: String, aspectRatio: Number, weekends: Boolean, weekNumberCalculation: wn, weekNumbers: Boolean, weekNumberClassNames: wn, weekNumberContent: wn, weekNumberDidMount: wn, weekNumberWillUnmount: wn, editable: Boolean, viewClassNames: wn, viewDidMount: wn, viewWillUnmount: wn, nowIndicator: Boolean, nowIndicatorClassNames: wn, nowIndicatorContent: wn, nowIndicatorDidMount: wn, nowIndicatorWillUnmount: wn, showNonCurrentDates: Boolean, lazyFetching: Boolean, startParam: String, endParam: String, timeZoneParam: String, timeZone: String, locales: wn, locale: wn, themeSystem: String, dragRevertDuration: Number, dragScroll: Boolean, allDayMaintainDuration: Boolean, unselectAuto: Boolean, dropAccept: wn, eventOrder: je, eventOrderStrict: Boolean, handleWindowResize: Boolean, windowResizeDelay: Number, longPressDelay: Number, eventDragMinDistance: Number, expandRows: Boolean, height: wn, contentHeight: wn, direction: String, weekNumberFormat: vn, eventResizableFromStart: Boolean, displayEventTime: Boolean, displayEventEnd: Boolean, weekText: String, weekTextLong: String, progressiveEventRendering: Boolean, businessHours: wn, initialDate: wn, now: wn, eventDataTransform: wn, stickyHeaderDates: wn, stickyFooterScrollbar: wn, viewHeight: wn, defaultAllDay: Boolean, eventSourceFailure: wn, eventSourceSuccess: wn, eventDisplay: String, eventStartEditable: Boolean, eventDurationEditable: Boolean, eventOverlap: wn, eventConstraint: wn, eventAllow: wn, eventBackgroun
915dColor: String, eventBorderColor: String, eventTextColor: String, eventColor: String, eventClassNames: wn, eventContent: wn, eventDidMount: wn, eventWillUnmount: wn, selectConstraint: wn, selectOverlap: wn, selectAllow: wn, droppable: Boolean, unselectCancel: String, slotLabelFormat: wn, slotLaneClassNames: wn, slotLaneContent: wn, slotLaneDidMount: wn, slotLaneWillUnmount: wn, slotLabelClassNames: wn, slotLabelContent: wn, slotLabelDidMount: wn, slotLabelWillUnmount: wn, dayMaxEvents: wn, dayMaxEventRows: wn, dayMinWidth: Number, slotLabelInterval: Ht, allDayText: String, allDayClassNames: wn, allDayContent: wn, allDayDidMount: wn, allDayWillUnmount: wn, slotMinWidth: Number, navLinks: Boolean, eventTimeFormat: vn, rerenderDelay: Number, moreLinkText: wn, moreLinkHint: wn, selectMinDistance: Number, selectable: Boolean, selectLongPressDelay: Number, eventLongPressDelay: Number, selectMirror: Boolean, eventMaxStack: Number, eventMinHeight: Number, eventMinWidth: Number, eventShortHeight: Number, slotEventOverlap: Boolean, plugins: wn, firstDay: Number, dayCount: Number, dateAlignment: String, dateIncrement: Ht, hiddenDays: wn, monthMode: Boolean, fixedWeekCount: Boolean, validRange: wn, visibleRange: wn, titleFormat: wn, eventInteractive: Boolean, noEventsText: String, viewHint: wn, navLinkHint: wn, closeHint: String, timeHint: String, eventHint: String, moreLinkClick: wn, moreLinkClassNames: wn, moreLinkContent: wn, moreLinkDidMount: wn, moreLinkWillUnmount: wn },
916        mn = { 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 },
917        yn = { datesSet: wn, eventsSet: wn, eventAdd: wn, eventChange: wn, eventRemove: wn, windowResize: wn, eventClick: wn, eventMouseEnter: wn, eventMouseLeave: wn, select: wn, unselect: wn, loading: wn, _unmount: wn, _beforeprint: wn, _afterprint: wn, _noEventDrop: wn, _noEventResize: wn, _resize: wn, _scrollRequest: wn },
918        Sn = { buttonText: wn, buttonHints: wn, views: wn, plugins: wn, initialEvents: wn, events: wn, eventSources: wn },
919        En = { headerToolbar: bn, footerToolbar: bn, buttonText: bn, buttonHints: bn, buttonIcons: bn, dateIncrement: bn };
920
921    function bn(e, t) { return "object" == typeof e && "object" == typeof t && e && t ? wt(e, t) : e === t }
922    var Cn = { type: String, component: wn, buttonText: String, buttonTextKey: String, dateProfileGeneratorClass: wn, usesMinMaxTime: Boolean, classNames: wn, content: wn, didMount: wn, willUnmount: wn };
923
924    function Dn(e) { return Et(e, En) }
925
926    function Rn(e, t) {
927        var n = {},
928            r = {};
929        for (var o in t) o in e && (n[o] = t[o](e[o]));
930        for (var o in e) o in t || (r[o] = e[o]);
931        return { refined: n, extra: r }
932    }
933
934    function wn(e) { return e }
935
936    function Tn(e, t, n, r) {
937        for (var o = { defs: {}, instances: {} }, i = Fn(n), a = 0, s = e; a < s.length; a++) {
938            var l = zn(s[a], t, n, r, i);
939            l && xn(l, o)
940        }
941        return o
942    }
943
944    function xn(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 }
945
946    function _n(e, t) {
947        var n = e.instances[t];
948        if (n) {
949            var r = e.defs[n.defId],
950                o = In(e, (function(e) { return t = r, n = e, Boolean(t.groupId && t.groupId === n.groupId); var t, n }));
951            return o.defs[r.defId] = r, o.instances[n.instanceId] = n, o
952        }
953        return { defs: {}, instances: {} }
954    }
955
956    function kn() { return { defs: {}, instances: {} } }
957
958    function Mn(e, t) { return { defs: r(r({}, e.defs), t.defs), instances: r(r({}, e.instances), t.instances) } }
959
960    function In(e, t) {
961        var n = bt(e.defs, t),
962            r = bt(e.instances, (function(e) { return n[e.defId] }));
963        return { defs: n, instances: r }
964    }
965
966    function Pn(e) { return Array.isArray(e) ? e : "string" == typeof e ? e.split(/\s+/) : [] }
967    var Nn = { display: String, editable: Boolean, startEditable: Boolean, durationEditable: Boolean, constraint: wn, overlap: wn, allow: wn, className: Pn, classNames: Pn, color: String, backgroundColor: String, borderColor: String, textColor: String },
968        Hn = { display: null, startEditable: null, durationEditable: null, constraints: [], overlap: null, allows: [], backgroundColor: "", borderColor: "", textColor: "", classNames: [] };
969
970    function On(e, t) { var n = function(e, t) { return Array.isArray(e) ? Tn(e, null, t, !0) : "object" == typeof e && e ? Tn([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 || []) } }
971
972    function An(e) { return e.reduce(Wn, Hn) }
973
974    function Wn(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) } }
975    var Ln = { id: String, groupId: String, title: String, url: String, interactive: Boolean },
976        Un = { start: wn, end: wn, date: wn, allDay: Boolean },
977        Bn = r(r(r({}, Ln), Un), { extendedProps: wn });
978
979    function zn(e, t, n, r, o) {
980        void 0 === o && (o = Fn(n));
981        var i = Vn(e, n, o),
982            a = i.refined,
983            s = i.extra,
984            l = function(e, t) {
985                var n = null;
986                e && (n = e.defaultAllDay);
987                null == n && (n = t.options.defaultAllDay);
988                return n
989            }(t, n),
990            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);
991        if (u) return (c = Gn(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 };
992        var c, d = function(e, t, n, r) {
993            var o, i, a = e.allDay,
994                s = null,
995                l = !1,
996                u = null,
997                c = null != e.start ? e.start : e.date;
998            if (o = n.dateEnv.createMarkerMeta(c)) s = o.marker;
999            else if (!r) return null;
1000            null != e.end && (i = n.dateEnv.createMarkerMeta(e.end));
1001            null == a && (a = null != t ? t : (!o || o.isTimeUnspecified) && (!i || i.isTimeUnspecified));
1002            a && s && (s = ut(s));
1003            i && (u = i.marker, a && (u = ut(u)), s && u <= s && (u = null));
1004            u ? l = !0 : r || (l = n.options.forceEventDuration || !1, u = n.dateEnv.add(s, a ? n.options.defaultAllDayEventDuration : n.options.defaultTimedEventDuration));
1005            return { allDay: a, hasEnd: l, range: { start: s, end: u }, forcedStartTzo: o ? o.forcedTzo : null, forcedEndTzo: i ? i.forcedTzo : null }
1006        }(a, l, n, r);
1007        return d ? { def: c = Gn(a, s, t ? t.sourceId : "", d.allDay, d.hasEnd, n), instance: yt(c.defId, d.range, d.forcedStartTzo, d.forcedEndTzo) } : null
1008    }
1009
1010    function Vn(e, t, n) { return void 0 === n && (n = Fn(t)), Rn(e, n) }
1011
1012    function Fn(e) { return r(r(r({}, Nn), Bn), e.pluginHooks.eventRefiners) }
1013
1014    function Gn(e, t, n, o, i, a) {
1015        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: On(e, a), extendedProps: r(r({}, e.extendedProps || {}), t) }, l = 0, u = a.pluginHooks.eventDefMemberAdders; l < u.length; l++) {
1016            var c = u[l];
1017            r(s, c(e))
1018        }
1019        return Object.freeze(s.ui.classNames), Object.freeze(s.extendedProps), s
1020    }
1021
1022    function jn(e) {
1023        var t = Math.floor(it(e.start, e.end)) || 1,
1024            n = ut(e.start);
1025        return { start: n, end: nt(n, t) }
1026    }
1027
1028    function qn(e, t) {
1029        void 0 === t && (t = Ht(0));
1030        var n = null,
1031            r = null;
1032        if (e.end) {
1033            r = ut(e.end);
1034            var o = e.end.valueOf() - r.valueOf();
1035            o && o >
1035= Vt(t) && (r = nt(r, 1))
1036        }
1037        return e.start && (n = ut(e.start), r && r <= n && (r = nt(n, 1))), { start: n, end: r }
1038    }
1039
1040    function Yn(e) { var t = qn(e); return it(t.start, t.end) > 1 }
1041
1042    function Zn(e, t, n, r) { return "year" === r ? Ht(n.diffWholeYears(e, t), "year") : "month" === r ? Ht(n.diffWholeMonths(e, t), "month") : at(e, t) }
1043
1044    function Xn(e, t) {
1045        var n, r, o = [],
1046            i = t.start;
1047        for (e.sort(Kn), 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);
1048        return i < t.end && o.push({ start: i, end: t.end }), o
1049    }
1050
1051    function Kn(e, t) { return e.start.valueOf() - t.start.valueOf() }
1052
1053    function $n(e, t) {
1054        var n = e.start,
1055            r = e.end,
1056            o = null;
1057        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
1058    }
1059
1060    function Jn(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()) }
1061
1062    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) }
1063
1064    function er(e, t) { return (null === e.start || null !== t.start && t.start >= e.start) && (null === e.end || null !== t.end && t.end <= e.end) }
1065
1066    function tr(e, t) { return (null === e.start || t >= e.start) && (null === e.end || t < e.end) }
1067
1068    function nr(e, t, n, r) {
1069        var o = {},
1070            i = {},
1071            a = {},
1072            s = [],
1073            l = [],
1074            u = ar(e.defs, t);
1075        for (var c in e.defs) { "inverse-background" === (f = u[(E = e.defs[c]).defId]).display && (E.groupId ? (o[E.groupId] = [], a[E.groupId] || (a[E.groupId] = E)) : i[c] = []) }
1076        for (var d in e.instances) {
1077            var p = e.instances[d],
1078                f = u[(E = e.defs[p.defId]).defId],
1079                h = p.range,
1080                v = !E.allDay && r ? qn(h, r) : h,
1081                g = $n(v, n);
1082            g && ("inverse-background" === f.display ? E.groupId ? o[E.groupId].push(g) : i[p.defId].push(g) : "none" !== f.display && ("background" === f.display ? s : l).push({ def: E, ui: f, instance: p, range: g, isStart: v.start && v.start.valueOf() === g.start.valueOf(), isEnd: v.end && v.end.valueOf() === g.end.valueOf() }))
1083        }
1084        for (var m in o)
1085            for (var y = 0, S = Xn(o[m], n); y < S.length; y++) {
1086                var E, b = S[y];
1087                f = u[(E = a[m]).defId];
1088                s.push({ def: E, ui: f, instance: null, range: b, isStart: !1, isEnd: !1 })
1089            }
1090        for (var c in i)
1091            for (var C = 0, D = Xn(i[c], n); C < D.length; C++) {
1092                b = D[C];
1093                s.push({ def: e.defs[c], ui: u[c], instance: null, range: b, isStart: !1, isEnd: !1 })
1094            }
1095        return { bg: s, fg: l }
1096    }
1097
1098    function rr(e) { return "background" === e.ui.display || "inverse-background" === e.ui.display }
1099
1100    function or(e, t) { e.fcSeg = t }
1101
1102    function ir(e) { return e.fcSeg || e.parentNode.fcSeg || null }
1103
1104    function ar(e, t) { return Ct(e, (function(e) { return sr(e, t) })) }
1105
1106    function sr(e, t) { var n = []; return t[""] && n.push(t[""]), t[e.defId] && n.push(t[e.defId]), n.push(e.ui), An(n) }
1107
1108    function lr(e, t) { var n = e.map(ur); return n.sort((function(e, n) { return qe(e, n, t) })), n.map((function(e) { return e._seg })) }
1109
1110    function ur(e) {
1111        var t = e.eventRange,
1112            n = t.def,
1113            o = t.instance ? t.instance.range : t.range,
1114            i = o.start ? o.start.valueOf() : 0,
1115            a = o.end ? o.end.valueOf() : 0;
1116        return r(r(r({}, n.extendedProps), n), { id: n.publicId, start: i, end: a, duration: a - i, allDay: Number(n.allDay), _seg: e })
1117    }
1118
1119    function cr(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 }
1120
1121    function dr(e, t) { return e.isStart && e.eventRange.ui.durationEditable && t.options.eventResizableFromStart }
1122
1123    function pr(e, t) { return e.isEnd && e.eventRange.ui.durationEditable }
1124
1125    function fr(e, t, n, r, o, i, a) {
1126        var s = n.dateEnv,
1127            l = n.options,
1128            u = l.displayEventTime,
1129            c = l.displayEventEnd,
1130            d = e.eventRange.def,
1131            p = e.eventRange.instance;
1132        null == u && (u = !1 !== r), null == c && (c = !1 !== o);
1133        var f = p.range.start,
1134            h = p.range.end,
1135            v = i || e.start || e.eventRange.range.start,
1136            g = a || e.end || e.eventRange.range.end,
1137            m = ut(f).valueOf() === ut(v).valueOf(),
1138            y = ut(rt(h, -1)).valueOf() === ut(rt(g, -1)).valueOf();
1139        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 })) : ""
1140    }
1141
1142    function hr(e, t, n) { var r = e.eventRange.range; return { isPast: r.end < (n || t.start), isFuture: r.start >= (n || t.end), isToday: t && tr(t, r.start) } }
1143
1144    function vr(e) { var t = ["fc-event d-none"];
1144 return e.isMirror && t.push("fc-event-mirror d-none"), e.isDraggable && t.push("fc-event-draggable"), (e.isStartResizable || e.isEndResizable) && t.push("fc-event-resizable"), e.isDragging && t.push("fc-event-dragging d-none"), 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 d-none"), e.isPast && t.push("fc-event-past d-none"), e.isToday && t.push("fc-event-today"), e.isFuture && t.push("fc-event-future"), t }
1145
1146    function gr(e) { return e.instance ? e.instance.instanceId : e.def.defId + ":" + e.range.start.toISOString() }
1147
1148    function mr(e, t) {
1149        var n = e.eventRange,
1150            r = n.def,
1151            o = n.instance,
1152            i = r.url;
1153        if (i) return { href: i };
1154        var a = t.emitter,
1155            s = t.options.eventInteractive;
1156        return null == s && null == (s = r.interactive) && (s = Boolean(a.hasHandlers("eventClick"))), s ? Ae((function(e) { a.trigger("eventClick", { el: e.target, event: new Ar(t, r, o), jsEvent: e, view: t.viewApi }) })) : {}
1157    }
1158    var yr = { start: wn, end: wn, allDay: Boolean };
1159
1160    function Sr(e, t, n) {
1161        var o = function(e, t) {
1162                var n = Rn(e, yr),
1163                    o = n.refined,
1164                    i = n.extra,
1165                    a = o.start ? t.createMarkerMeta(o.start) : null,
1166                    s = o.end ? t.createMarkerMeta(o.end) : null,
1167                    l = o.allDay;
1168                null == l && (l = a && a.isTimeUnspecified && (!s || s.isTimeUnspecified));
1169                return r({ range: { start: a ? a.marker : null, end: s ? s.marker : null }, allDay: l }, i)
1170            }(e, t),
1171            i = o.range;
1172        if (!i.start) return null;
1173        if (!i.end) {
1174            if (null == n) return null;
1175            i.end = t.add(i.start, n)
1176        }
1177        return o
1178    }
1179
1180    function Er(e, t) {
1181        return Jn(e.range, t.range) && e.allDay === t.allDay && function(e, t) {
1182            for (var n in t)
1183                if ("range" !== n && "allDay" !== n && e[n] !== t[n]) return !1;
1184            for (var n in e)
1185                if (!(n in t)) return !1;
1186            return !0
1187        }(e, t)
1188    }
1189
1190    function br(e, t, n) { return r(r({}, Cr(e, t, n)), { timeZone: t.timeZone }) }
1191
1192    function Cr(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 }) } }
1193
1194    function Dr(e, t, n) {
1195        var r = Vn({ editable: !1 }, n),
1196            o = Gn(r.refined, r.extra, "", e.allDay, !0, n);
1197        return { def: o, ui: sr(o, t), instance: yt(o.defId, e.range), range: e.range, isStart: !0, isEnd: !0 }
1198    }
1199
1200    function Rr(e, t, n) { n.emitter.trigger("select", r(r({}, wr(e, n)), { jsEvent: t ? t.origEvent : null, view: n.viewApi || n.calendarApi.view })) }
1201
1202    function wr(e, t) {
1203        for (var n, o, i = {}, a = 0, s = t.pluginHooks.dateSpanTransforms; a < s.length; a++) {
1204            var l = s[a];
1205            r(i, l(e, t))
1206        }
1207        return r(i, (n = e, o = t.dateEnv, r(r({}, Cr(n.range, o, n.allDay)), { allDay: n.allDay }))), i
1208    }
1209
1210    function Tr(e, t, n) {
1211        var r = n.dateEnv,
1212            o = n.options,
1213            i = t;
1214        return e ? (i = ut(i), i = r.add(i, o.defaultAllDayEventDuration)) : i = r.add(i, o.defaultTimedEventDuration), i
1215    }
1216
1217    function xr(e, t, n, r) {
1218        var o = ar(e.defs, t),
1219            i = { defs: {}, instances: {} };
1220        for (var a in e.defs) {
1221            var s = e.defs[a];
1222            i.defs[a] = _r(s, o[a], n, r)
1223        }
1224        for (var l in e.instances) {
1225            var u = e.instances[l];
1226            s = i.defs[u.defId];
1227            i.instances[l] = kr(u, s, o[u.defId], n, r)
1228        }
1229        return i
1230    }
1231
1232    function _r(e, t, n, o) {
1233        var i = n.standardProps || {};
1234        null == i.hasEnd && t.durationEditable && (n.startDelta || n.endDelta) && (i.hasEnd = !0);
1235        var a = r(r(r({}, e), i), { ui: r(r({}, e.ui), i.ui) });
1236        n.extendedProps && (a.extendedProps = r(r({}, a.extendedProps), n.extendedProps));
1237        for (var s = 0, l = o.pluginHooks.eventDefMutationAppliers; s < l.length; s++) {
1238            (0, l[s])(a, n, o)
1239        }
1240        return !a.hasEnd && o.options.forceEventDuration && (a.hasEnd = !0), a
1241    }
1242
1243    function kr(e, t, n, o, i) {
1244        var a = i.dateEnv,
1245            s = o.standardProps && !0 === o.standardProps.allDay,
1246            l = o.standardProps && !1 === o.standardProps.hasEnd,
1247            u = r({}, e);
1248        return s && (u.range = jn(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: Tr(t.allDay, u.range.start, i) }), t.allDay && (u.range = { start: ut(u.range.start), end: ut(u.range.end) }), u.range.end < u.range.start && (u.range.end = Tr(t.allDay, u.range.start, i)), u
1249    }
1250    var Mr = function() {
1251            function e(e, t, n) { this.type = e, this.getCurrentData = t, this.dateEnv = n }
1252            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
1253        }(),
1254        Ir = { id: String, defaultAllDay: Boolean, url: String, format: String, events: wn, eventDataTransform: wn, success: wn, failure: wn };
1255
1256    function Pr(e, t, n) {
1257        var r;
1258        if (void 0 === n && (n = Nr(t)), "string" == typeof e ? r = { url: e } : "function" == typeof e || Array.isArray(e) ? r = { events: e } : "object" == typeof e && e && (r = e), r) {
1259            var o = Rn(r, n),
1260                i = o.refined,
1261                a = o.extra,
1262                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);
1263            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: On(i, t), extendedProps: a }
1264        }
1265        return null
1266    }
1267
1268    function Nr(e) { return r(r(r({}, Nn), Ir), e.pluginHooks.eventSourceRefiners) }
1269
1270    function Hr(e, t) { return "function" == typeof e && (e = e()), null == e ? t.createNowMarker() : t.createMarker(e) }
1271    var Or = function() {
1272            function e() {}
1273            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) {
1274                var n = this.currentDataManager;
1275                n.currentCalendarOptionsRefiners[e] ? n.emitter.on(e, t) : console.warn("Unknown listener name '" + e + "'")
1276            }, e.prototype.off = function(e, t) { this.currentDataManager.emitter.off(e, t) }, e.prototype.trigger = function(e) {
1277                for (var t, n = [], r = 1; r < arguments.length; r++) n[r - 1] = arguments[r];
1278                (t = this.currentDataManager.emitter).trigger.apply(t, o([e], n))
1279            }, e.prototype.changeView = function(e, t) {
1280                var n = this;
1281                this.batchRendering((function() {
1282                    if (n.unselect(), t)
1283                        if (t.start && t.end) n.dispatch({ type: "CHANGE_VIEW_TYPE", viewType: e }), n.dispatch({ type: "SET_OPTION", optionName: "visibleRange", rawOptionValue: t });
1284                        else {
1285                            var r = n.getCurrentData().dateEnv;
1286                            n.dispatch({ type: "CHANGE_VIEW_TYPE", viewType: e, dateMarker: r.createMarker(t) })
1287                        }
1288                    else n.dispatch({ type: "CHANGE_VIEW_TYPE", viewType: e })
1289                }))
1290            }, e.prototype.zoomTo = function(e, t) {
1291                var n;
1292                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 })
1293            }, e.prototype.getUnitViewSpec = function(e) {
1294                var t, n, r = this.getCurrentData(),
1295                    o = r.viewSpecs,
1296                    i = r.toolbarConfig,
1297                    a = [].concat(i.header ? i.header.viewsWithButtons : [], i.footer ? i.footer.viewsWithButtons : []);
1298                for (var s in o) a.push(s);
1299                for (t = 0; t < a.length; t += 1)
1300                    if ((n = o[a[t]]) && n.singleUnit === e) return n;
1301                return null
1302            }, e.prototype.prev = function() { this.unselect(), this.dispatch({ type: "PREV" }) }, e.prototype.next = function() { this.unselect(), this.dispatch({ type: "NEXT" }) }, e.prototype.prevYear = function() {
1303                var e = this.getCurrentData();
1304                this.unselect(), this.dispatch({ type: "CHANGE_DATE", dateMarker: e.dateEnv.addYears(e.currentDate, -1) })
1305            }, e.prototype.nextYear = function() {
1306                var e = this.getCurrentData();
1307                this.unselect(), this.dispatch({ type: "CHANGE_DATE", dateMarker: e.dateEnv.addYears(e.currentDate, 1) })
1308            }, e.prototype.today = function() {
1309                var e = this.getCurrentData();
1310                this.unselect(), this.dispatch({ type: "CHANGE_DATE", dateMarker: Hr(e.calendarOptions.now, e.dateEnv) })
1311            }, e.prototype.gotoDate = function(e) {
1312                var t = this.getCurrentData();
1313                this.unselect(), this.dispatch({ type: "CHANGE_DATE", dateMarker: t.dateEnv.createMarker(e) })
1314            }, e.prototype.incrementDate = function(e) {
1315                var t = this.getCurrentData(),
1316                    n = Ht(e);
1317                n && (this.unselect(), this.dispatch({ type: "CHANGE_DATE", dateMarker: t.dateEnv.add(t.currentDate, n) }))
1318            }, 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), vn(t)) }, e.prototype.formatRange = function(e, t, n) { var r = this.getCurrentData().dateEnv; return r.formatRange(r.createMarker(e), r.createMarker(t), vn(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) {
1319                var n;
1320                n = null == t ? null != e.start ? e : { start: e, end: null } : { start: e, end: t };
1321                var r = this.getCurrentData(),
1322                    o = Sr(n, r.dateEnv, Ht({ days: 1 }));
1323                o && (this.dispatch({ type: "SELECT_DATES", selection: o }), Rr(o, null, r))
1324            }, e.prototype.unselect = function(e) {
1325                var t = this.getCurrentData();
1326                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))
1327            }, e.prototype.addEvent = function(e, t) {
1328                if (e instanceof Ar) {
1329                    var n = e._def,
1330                        r = e._instance;
1331                    return this.getCurrentData().eventStore.defs[n.defId] || (this.dispatch({ type: "ADD_EVENTS", eventStore: xn({ def: n, instance: r }) }), this.triggerEventAdd(e)), e
1332                }
1333                var o, i = this.getCurrentData();
1334                if (t instanceof ye) o = t.internalEventSource;
1335                else if ("boolean" == typeof t) t && (o = Rt(i.eventSources)[0]);
1336                else if (null != t) {
1337                    var a = this.getEventSourceById(t);
1338                    if (!a) return console.warn('Could not find an event source with ID "' + t + '"'), null;
1339                    o = a.internalEventSource
1340                }
1341                var s = zn(e, o, i, !1);
1342                if (s) { var l = new Ar(i, s.def, s.def.recurringDef ? null : s.instance); return this.dispatch({ type: "ADD_EVENTS", eventStore: xn(s) }), this.triggerEventAdd(l), l }
1343                return null
1344            }, e.prototype.triggerEventAdd = function(e) {
1345                var t = this;
1346                this.getCurrentData().emitter.trigger("eventAdd", { event: e, relatedEvents: [], revert: function() { t.dispatch({ type: "REMOVE_
1346EVENTS", eventStore: Wr(e) }) } })
1347            }, e.prototype.getEventById = function(e) {
1348                var t = this.getCurrentData(),
1349                    n = t.eventStore,
1350                    r = n.defs,
1351                    o = n.instances;
1352                for (var i in e = String(e), r) { var a = r[i]; if (a.publicId === e) { if (a.recurringDef) return new Ar(t, a, null); for (var s in o) { var l = o[s]; if (l.defId === a.defId) return new Ar(t, a, l) } } }
1353                return null
1354            }, e.prototype.getEvents = function() { var e = this.getCurrentData(); return Lr(e.eventStore, e) }, e.prototype.removeAllEvents = function() { this.dispatch({ type: "REMOVE_ALL_EVENTS" }) }, e.prototype.getEventSources = function() {
1355                var e = this.getCurrentData(),
1356                    t = e.eventSources,
1357                    n = [];
1358                for (var r in t) n.push(new ye(e, t[r]));
1359                return n
1360            }, e.prototype.getEventSourceById = function(e) {
1361                var t = this.getCurrentData(),
1362                    n = t.eventSources;
1363                for (var r in e = String(e), n)
1364                    if (n[r].publicId === e) return new ye(t, n[r]);
1365                return null
1366            }, 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 = Pr(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) {
1367                var t = Ht(e);
1368                t && this.trigger("_scrollRequest", { time: t })
1369            }, e
1370        }(),
1371        Ar = function() {
1372            function e(e, t, n) { this._context = e, this._def = t, this._instance = n || null }
1373            return e.prototype.setProp = function(e, t) {
1374                var n, r;
1375                if (e in Un) console.warn("Could not set date-related prop 'name'. Use one of the date-related methods instead.");
1376                else if ("id" === e) t = Ln[e](t), this.mutate({ standardProps: { publicId: t } });
1377                else if (e in Ln) t = Ln[e](t), this.mutate({ standardProps: (n = {}, n[e] = t, n) });
1378                else if (e in Nn) { var o = Nn[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.")
1379            }, e.prototype.setExtendedProp = function(e, t) {
1380                var n;
1381                this.mutate({ extendedProps: (n = {}, n[e] = t, n) })
1382            }, e.prototype.setStart = function(e, t) {
1383                void 0 === t && (t = {});
1384                var n = this._context.dateEnv,
1385                    r = n.createMarker(e);
1386                if (r && this._instance) {
1387                    var o = Zn(this._instance.range.start, r, n, t.granularity);
1388                    t.maintainDuration ? this.mutate({ datesDelta: o }) : this.mutate({ startDelta: o })
1389                }
1390            }, e.prototype.setEnd = function(e, t) {
1391                void 0 === t && (t = {});
1392                var n, r = this._context.dateEnv;
1393                if ((null == e || (n = r.createMarker(e))) && this._instance)
1394                    if (n) {
1395                        var o = Zn(this._instance.range.end, n, r, t.granularity);
1396                        this.mutate({ endDelta: o })
1397                    } else this.mutate({ standardProps: { hasEnd: !1 } })
1398            }, e.prototype.setDates = function(e, t, n) {
1399                void 0 === n && (n = {});
1400                var r, o, i, a = this._context.dateEnv,
1401                    s = { allDay: n.allDay },
1402                    l = a.createMarker(e);
1403                if (l && ((null == t || (r = a.createMarker(t))) && this._instance)) {
1404                    var u = this._instance.range;
1405                    !0 === n.allDay && (u = jn(u));
1406                    var c = Zn(u.start, l, a, n.granularity);
1407                    if (r) {
1408                        var d = Zn(u.end, r, a, n.granularity);
1409                        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 })
1410                    } else s.hasEnd = !1, this.mutate({ datesDelta: c, standardProps: s })
1411                }
1412            }, e.prototype.moveStart = function(e) {
1413                var t = Ht(e);
1414                t && this.mutate({ startDelta: t })
1415            }, e.prototype.moveEnd = function(e) {
1416                var t = Ht(e);
1417                t && this.mutate({ endDelta: t })
1418            }, e.prototype.moveDates = function(e) {
1419                var t = Ht(e);
1420                t && this.mutate({ datesDelta: t })
1421            }, e.prototype.setAllDay = function(e, t) {
1422                void 0 === t && (t = {});
1423                var n = { allDay: e },
1424                    r = t.maintainDuration;
1425                null == r && (r = this._context.options.allDayMaintainDuration), this._def.allDay !== e && (n.hasEnd = r), this.mutate({ standardProps: n })
1426            }, e.prototype.formatRange = function(e) {
1427                var t = this._context.dateEnv,
1428                    n = this._instance,
1429                    r = vn(e);
1430                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 })
1431            }, e.prototype.mutate = function(t) {
1432                var n = this._instance;
1433                if (n) {
1434                    var r = this._def,
1435                        o = this._context,
1436                        i = o.getCurrentData().eventStore,
1437                        a = _n(i, n.instanceId);
1438                    a = xr(a, { "": { display: "", startEditable: !0, durationEditable: !0, constraints: [], overlap: null, allows: [], backgroundColor: "", borderColor: "", textColor: "", classNames: [] } }, t, o);
1439                    var s = new e(o, r, n);
1440                    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: Lr(a, o, n), revert: function() { o.dispatch({ type: "RESET_EVENTS", eventStore: i }) } })
1441                }
1442            }, e.prototype.remove = function() {
1443                var e = this._context,
1444                    t = Wr(this);
1445                e.dispatch({ type: "REMOVE_EVENTS", eventStore: t }), e.emitter.trigger("eventRemove", { event: this, relatedEvents: [], revert: function() { e.dispatch({ type: "MERGE_EVENTS", eventStore: t }) } })
1446            }, 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) {
1447                void 0 === e && (e = {});
1448                var t = this._def,
1449                    n = t.ui,
1450                    o = this.startStr,
1451                    i = this.endStr,
1452                    a = {};
1453                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
1454            }, e.prototype.toJSON = function() { return this.toPlainObject() }, e
1455        }();
1456
1457    function Wr(e) {
1458        var t, n, r = e._def,
1459            o = e._instance;
1460        return { defs: (t = {}, t[r.defId] = r, t), instances: o ? (n = {}, n[o.instanceId] = o, n) : {} }
1461    }
1462
1463    function Lr(e, t, n) {
1464        var r = e.defs,
1465            o = e.instances,
1466            i = [],
1467            a = n ? n.instanceId : "";
1468        for (var s in o) {
1469            var l = o[s],
1470                u = r[l.defId];
1471            l.instanceId !== a && i.push(new Ar(t, u, l))
1472        }
1473        return i
1474    }
1475    var Ur = {};
1476    var Br, zr = function() {
1477        function e() {}
1478        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 vt(e) }, e.prototype.markerToArray = function(e) { return ht(e) }, e
1479    }();
1480    Br = zr, Ur["gregory"] = Br;
1481    var Vr = /^\s*(\d{4})(-?(\d{2})(-?(\d{2})([T ](\d{2}):?(\d{2})(:?(\d{2})(\.(\d+))?)?(Z|(([-+])(\d{2})(:?(\d{2}))?))?)?)?)?$/;
1482
1483    function Fr(e) { var t = Vr.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 (gt(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 }
1484    var Gr = function() {
1485            function e(e) {
1486                var t = this.timeZone = e.timeZone,
1487                    n = "local" !== t && "UTC" !== t;
1488                e.namedTimeZoneImpl && n && (this.namedTimeZoneImpl = new e.namedTimeZoneImpl(t)), this.canComputeOffset = Boolean(!n || this.namedTimeZoneImpl), this.calendarSystem = function(e) { return new Ur[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 
1488= 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
1489            }
1490            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()) : vt(pt(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 = vt(e)), null !== t && gt(t) ? { marker: t, isTimeUnspecified: !1, forcedTzo: null } : null }, e.prototype.parse = function(e) {
1491                var t = Fr(e);
1492                if (null === t) return null;
1493                var n = t.marker,
1494                    r = null;
1495                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 }
1496            }, 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 mt(e) === mt(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 mt(e) === mt(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 = st(e, t)) ? { unit: "week", value: n } : null !== (n = lt(e, t)) ? { unit: "day", value: n } : Je(n = function(e, t) { return (t.valueOf() - e.valueOf()) / 36e5 }(e, t)) ? { unit: "hour", value: n } : Je(n = function(e, t) { return (t.valueOf() - e.valueOf()) / 6e4 }(e, t)) ? { unit: "minute", value: n } : Je(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 / (Ut(n) / 365) : n.months && null !== (r = this.diffWholeMonths(e, t)) ? r / function(e) { return Ut(e) / 30 }(n) : n.days && null !== (r = lt(e, t)) ? r / Ut(n) : (t.valueOf() - e.valueOf()) / Vt(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 ? ut(e) : "hour" === t ? function(e) { return vt([e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate(), e.getUTCHours()]) }(e) : "minute" === t ? function(e) { return vt([e.getUTCFullYear(), e.getUTCMonth(), e.getUTCDate(), e.getUTCHours(), e.getUTCMinutes()]) }(e) : "second" === t ? function(e) { return vt([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) {
1497                return this.weekNumberFunc ? this.weekNumberFunc(this.toDate(e)) : function(e, t, n) {
1498                    var r = e.getUTCFullYear(),
1499                        o = ct(e, r, t, n);
1500                    if (o < 1) return ct(e, r - 1, t, n);
1501                    var i = ct(e, r + 1, t, n);
1502                    return i >= 1 ? Math.min(o, i) : o
1503                }(e, this.weekDow, this.weekDoy)
1504            }, 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 = rt(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)), jt(e, n, t.omitTime) }, e.prototype.timestampToMarker = function(e) { return "local" === this.timeZone ? vt(pt(new Date(e))) : "UTC" !== this.timeZone && this.namedTimeZoneImpl ? vt(this.namedTimeZoneImpl.timestampToArray(e)) : new Date(e) }, e.prototype.offsetForMarker = function(e) { return "local" === this.timeZone ? -ft(ht(e)).getTimezoneOffset() : "UTC" === this.timeZone ? 0 : this.namedTimeZoneImpl ? this.namedTimeZoneImpl.offsetForArray(ht(e)) : null }, e.prototype.toDate = function(e, t) { return "local" === this.timeZone ? ft(ht(e)) : "UTC" === this.timeZone ? new Date(e.valueOf()) : this.namedTimeZoneImpl ? new Date(e.valueOf() - 1e3 * this.namedTimeZoneImpl.offsetForArray(ht(e)) * 60) : new Date(e.valueOf() - (t || 0)) }, e
1505        }(),
1506        jr = [],
1507        qr = { 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" },
1508        Yr = r(r({}, qr), { 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") } });
1509
1510    function Zr(e) {
1511        for (var t = e.length > 0 ? e[0].code : "en", n = jr.concat(e), r = { en: Yr }, o = 0, i = n; o < i.length; o++) {
1512            var a = i[o];
1513            r[a.code] = a
1514        }
1515        return { map: r, defaultCode: t }
1516    }
1517
1518    function Xr(e, t) {
1519        return "object" != typeof e || Array.isArray(e) ? function(e, t) {
1520            var n = [].concat(e || []),
1521                r = function(e, t) {
1522                    for (var n = 0; n < e.length; n += 1)
1523                        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] }
1524                    return null
1525                }(n, t) || Yr;
1526            return Kr(e, n, r)
1527        }(e, t) : Kr(e.code, [e.code], e)
1528    }
1529
1530    function Kr(e, t, n) {
1531        var r = Et([qr, n], ["buttonText"]);
1532        delete r.code;
1533        var o = r.week;
1534        return delete r.week, { codeArg: e, codes: t, week: o, simpleNumberFormat: new Intl.NumberFormat(e), options: r }
1535    }
1536
1537    function $r(e) { var t = Xr(e.locale || "en", Zr([]).map); return new Gr(r(r({ timeZone: mn.timeZone, calendarSystem: "gregory" }, e), { locale: t })) }
1538    var Jr, Qr = { startTime: "09:00", endTime: "17:00", daysOfWeek: [1, 2, 3, 4, 5], display: "inverse-background", classNames: "fc-non-business", groupId: "_businessHours" };
1539
1540    function eo(e, t) {
1541        return Tn(function(e) {
1542            var t;
1543            t = !0 === e ? [{}] : Array.isArray(e) ? e.filter((function(e) { return e.daysOfWeek })) : "object" == typeof e && e ? [e] : [];
1544            return t = t.map((function(e) { return r(r({}, Qr), e) }))
1545        }(e), null, t)
1546    }
1547
1548    function to(e, t) { return e.left >= t.left && e.left < t.right && e.top >= t.top && e.top < t.bottom }
1549
1550    function no(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 }
1551
1552    function ro(e, t, n) { return { left: e.left + t, right: e.right + t, top: e.top + n, bottom: e.bottom + n } }
1553
1554    function oo(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) } }
1555
1556    function io(e) { return { left: (e.left + e.right) / 2, top: (e.top + e.bottom) / 2 } }
1557
1558    function ao(e, t) { return { left: e.left - t.left, top: e.top - t.top } }
1559
1560    function so() {
1561        return null == Jr && (Jr = function() {
1562            if ("undefined" == typeof document) return !0;
1563            var e = document.createElement("div");
1564            e.style.position = "absolute", e.style.top = "0px", e.style.left = "0px", e.innerHTML = "<table><tr><td><div></div></td></tr></table>", e.querySelector("table").style.height = "100px", e.querySelector("div").style.height = "100%", document.body.appendChild(e);
1565            var t = e.querySelector("div").offsetHeight > 0;
1566            return document.body.removeChild(e), t
1567        }()), Jr
1568    }
1569    var lo = { defs: {}, instances: {} },
1570        uo = function() {
1571            function e() { this.getKeysForEventDefs = $t(this._getKeysForEventDefs), this.splitDateSelection = $t(this._splitDateSpan), this.splitEventStore = $t(this._splitEventStore), this.splitIndividualUi = $t(this._splitIndividualUi), this.splitEventDrag = $t(this._splitInteraction), this.splitEventResize = $t(this._splitInteraction), this.eventUiBuilders = {} }
1572            return e.prototype.splitProps = function(e) {
1573                var t = this,
1574                    n = this.getKeyInfo(e),
1575                    r = this.getKeysForEventDefs(e.eventStore),
1576                    o = this.splitDateSelection(e.dateSelection),
1577                    i = this.splitIndividualUi(e.eventUiBases, r),
1578                    a = this.splitEventStore(e.eventStore, r),
1579                    s = this.splitEventDrag(e.eventDrag),
1580                    l = this.splitEventResize(e.eventResize),
1581                    u = {};
1582                for (var c in this.eventUiBuilders = Ct(n, (function(e, n) { return t.eventUiBuilders[n] || $t(co) })), n) {
1583                    var d = n[c],
1584                        p = a[c] || lo,
1585                        f = this.eventUiBuilders[c];
1586                    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[
1586c] || null, eventResize: l[c] || null }
1587                }
1588                return u
1589            }, e.prototype._splitDateSpan = function(e) {
1590                var t = {};
1591                if (e)
1592                    for (var n = 0, r = this.getKeysForDateSpan(e); n < r.length; n++) { t[r[n]] = e }
1593                return t
1594            }, e.prototype._getKeysForEventDefs = function(e) { var t = this; return Ct(e.defs, (function(e) { return t.getKeysForEventDef(e) })) }, e.prototype._splitEventStore = function(e, t) {
1595                var n = e.defs,
1596                    r = e.instances,
1597                    o = {};
1598                for (var i in n)
1599                    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] }
1600                for (var l in r)
1601                    for (var u = r[l], c = 0, d = t[u.defId]; c < d.length; c++) {
1602                        var p;
1603                        o[p = d[c]] && (o[p].instances[l] = u)
1604                    }
1605                return o
1606            }, e.prototype._splitIndividualUi = function(e, t) {
1607                var n = {};
1608                for (var r in e)
1609                    if (r)
1610                        for (var o = 0, i = t[r]; o < i.length; o++) {
1611                            var a = i[o];
1612                            n[a] || (n[a] = {}), n[a][r] = e[r]
1613                        }
1614                return n
1615            }, e.prototype._splitInteraction = function(e) {
1616                var t = {};
1617                if (e) {
1618                    var n = this._splitEventStore(e.affectedEvents, this._getKeysForEventDefs(e.affectedEvents)),
1619                        r = this._getKeysForEventDefs(e.mutatedEvents),
1620                        o = this._splitEventStore(e.mutatedEvents, r),
1621                        i = function(r) { t[r] || (t[r] = { affectedEvents: n[r] || lo, mutatedEvents: o[r] || lo, isEvent: e.isEvent }) };
1622                    for (var a in n) i(a);
1623                    for (var a in o) i(a)
1624                }
1625                return t
1626            }, e
1627        }();
1628
1629    function co(e, t, n) {
1630        var o = [];
1631        e && o.push(e), t && o.push(t);
1632        var i = { "": An(o) };
1633        return n && r(i, n), i
1634    }
1635
1636    function po(e, t, n, r) { return { dow: e.getUTCDay(), isDisabled: Boolean(r && !tr(r.activeRange, e)), isOther: Boolean(r && !tr(r.currentRange, e)), isToday: Boolean(t && tr(t, e)), isPast: Boolean(n ? e < n : !!t && e < t.start), isFuture: Boolean(n ? e > n : !!t && e >= t.end) } }
1637
1638    function fo(e, t) { var n = ["fc-day", "fc-day-" + et[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 }
1639
1640    function ho(e, t) { var n = ["fc-slot", "fc-slot-" + et[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 }
1641    var vo = vn({ year: "numeric", month: "long", day: "numeric" }),
1642        go = vn({ week: "long" });
1643
1644    function mo(e, t, n, o) {
1645        void 0 === n && (n = "day"), void 0 === o && (o = !0);
1646        var i = e.dateEnv,
1647            a = e.options,
1648            s = e.calendarApi,
1649            l = i.format(t, "week" === n ? go : vo);
1650        if (a.navLinks) {
1651            var u = i.toDate(t),
1652                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)) };
1653            return r({ title: Ke(a.navLinkHint, [l, u], l), "data-navlink": "" }, o ? Oe(c) : { onClick: c })
1654        }
1655        return { "aria-label": l }
1656    }
1657    var yo, So = null;
1658
1659    function Eo() {
1660        return null === So && (So = function() {
1661            var e = document.createElement("div");
1662            we(e, { position: "absolute", top: -1e3, left: 0, border: 0, padding: 0, overflow: "scroll", direction: "rtl" }), e.innerHTML = "<div></div>", document.body.appendChild(e);
1663            var t = e.firstChild.getBoundingClientRect().left > e.getBoundingClientRect().left;
1664            return Se(e), t
1665        }()), So
1666    }
1667
1668    function bo() {
1669        return yo || (yo = function() {
1670            var e = document.createElement("div");
1671            e.style.overflow = "scroll", e.style.position = "absolute", e.style.top = "-9999px", e.style.left = "-9999px", document.body.appendChild(e);
1672            var t = Co(e);
1673            return document.body.removeChild(e), t
1674        }()), yo
1675    }
1676
1677    function Co(e) { return { x: e.offsetHeight - e.clientHeight, y: e.offsetWidth - e.clientWidth } }
1678
1679    function Do(e, t) {
1680        void 0 === t && (t = !1);
1681        var n = window.getComputedStyle(e),
1682            r = parseInt(n.borderLeftWidth, 10) || 0,
1683            o = parseInt(n.borderRightWidth, 10) || 0,
1684            i = parseInt(n.borderTopWidth, 10) || 0,
1685            a = parseInt(n.borderBottomWidth, 10) || 0,
1686            s = Co(e),
1687            l = s.y - r - o,
1688            u = { borderLeft: r, borderRight: o, borderTop: i, borderBottom: a, scrollbarBottom: s.x - i - a, scrollbarLeft: 0, scrollbarRight: 0 };
1689        return Eo() && "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
1690    }
1691
1692    function Ro(e, t, n) {
1693        void 0 === t && (t = !1);
1694        var r = n ? e.getBoundingClientRect() : wo(e),
1695            o = Do(e, t),
1696            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 };
1697        return t && (i.left += o.paddingLeft, i.right -= o.paddingRight, i.top += o.paddingTop, i.bottom -= o.paddingBottom), i
1698    }
1699
1700    function wo(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 } }
1701
1702    function To(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 }
1703
1704    function xo(e, t, n) {
1705        var r = !1,
1706            o = function() { r || (r = !0, t.apply(this, arguments)) },
1707            i = function() { r || (r = !0, n && n.apply(this, arguments)) },
1708            a = e(o, i);
1709        a && "function" == typeof a.then && a.then(o, i)
1710    }
1711    var _o = function() {
1712        function e() { this.handlers = {}, this.thisContext = null }
1713        return e.prototype.setThisContext = function(e) { this.thisContext = e }, e.prototype.setOptions = function(e) { this.options = e }, e.prototype.on = function(e, t) {
1714            ! function(e, t, n) {
1715                (e[t] || (e[t] = [])).push(n)
1716            }(this.handlers, e, t)
1717        }, 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) {
1718            for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
1719            for (var r = this.handlers[e] || [], o = this.options && this.options[e], i = [].concat(o || [], r), a = 0, s = i; a < s.length; a++) {
1720                var l = s[a];
1721                l.apply(this.thisContext, t)
1722            }
1723        }, e.prototype.hasHandlers = function(e) { return Boolean(this.handlers[e] && this.handlers[e].length || this.options && this.options[e]) }, e
1724    }();
1725    var ko = function() {
1726            function e(e, t, n, r) {
1727                this.els = t;
1728                var o = this.originClientRect = e.getBoundingClientRect();
1729                n && this.buildElHorizontals(o.left), r && this.buildElVerticals(o.top)
1730            }
1731            return e.prototype.buildElHorizontals = function(e) {
1732                for (var t = [], n = [], r = 0, o = this.els; r < o.length; r++) {
1733                    var i = o[r].getBoundingClientRect();
1734                    t.push(i.left - e), n.push(i.right - e)
1735                }
1736                this.lefts = t, this.rights = n
1737            }, e.prototype.buildElVerticals = function(e) {
1738                for (var t = [], n = [], r = 0, o = this.els; r < o.length; r++) {
1739                    var i = o[r].getBoundingClientRect();
1740                    t.push(i.top - e), n.push(i.bottom - e)
1741                }
1742                this.tops = t, this.bottoms = n
1743            }, e.prototype.leftToIndex = function(e) {
1744                var t, n = this.lefts,
1745                    r = this.rights,
1746                    o = n.length;
1747                for (t = 0; t < o; t += 1)
1748                    if (e >= n[t] && e < r[t]) return t
1749            }, e.prototype.topToIndex = function(e) {
1750                var t, n = this.tops,
1751                    r = this.bottoms,
1752                    o = n.length;
1753                for (t = 0; t < o; t += 1)
1754                    if (e >= n[t] && e < r[t]) return t
1755            }, 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
1756        }(),
1757        Mo = function() {
1758            function e() {}
1759            return e.prototype.getMaxScrollTop = function() { return this.get
1759ScrollHeight() - 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
1760        }(),
1761        Io = function(e) {
1762            function t(t) { var n = e.call(this) || this; return n.el = t, n }
1763            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
1764        }(Mo),
1765        Po = function(e) {
1766            function t() { return null !== e && e.apply(this, arguments) || this }
1767            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
1768        }(Mo),
1769        No = function() {
1770            function e(e) { this.iconOverrideOption && this.setIconOverride(e[this.iconOverrideOption]) }
1771            return e.prototype.setIconOverride = function(e) {
1772                var t, n;
1773                if ("object" == typeof e && e) {
1774                    for (n in t = r({}, this.iconClasses), e) t[n] = this.applyIconOverridePrefix(e[n]);
1775                    this.iconClasses = t
1776                } else !1 === e && (this.iconClasses = {})
1777            }, 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
1778        }();
1779    if (No.prototype.classes = {}, No.prototype.iconClasses = {}, No.prototype.baseIconClass = "", No.prototype.iconOverridePrefix = "", "undefined" == typeof FullCalendarVDom) throw new Error("Please import the top-level fullcalendar lib before attempting to import a plugin.");
1780    var Ho = FullCalendarVDom.Component,
1781        Oo = FullCalendarVDom.createElement,
1782        Ao = FullCalendarVDom.render,
1783        Wo = FullCalendarVDom.createRef,
1784        Lo = FullCalendarVDom.Fragment,
1785        Uo = FullCalendarVDom.createContext,
1786        Bo = FullCalendarVDom.createPortal,
1787        zo = FullCalendarVDom.flushSync,
1788        Vo = FullCalendarVDom.unmountComponentAtNode,
1789        Fo = function() {
1790            function e(e, t, n, o) {
1791                var i = this;
1792                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()
1793            }
1794            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 }) }
1794, e.prototype.drain = function() { this.queuedRequest && this.execFunc(this.queuedRequest) && (this.queuedRequest = null) }, e
1795        }(),
1796        Go = Uo({});
1797
1798    function jo(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 Fo(e, u, Ht(n.scrollTime), n.scrollTimeReset) }, registerInteractiveComponent: d, unregisterInteractiveComponent: p } }
1799    var qo = function(e) {
1800        function t() { return null !== e && e.apply(this, arguments) || this }
1801        return n(t, e), t.prototype.shouldComponentUpdate = function(e, t) { return this.debug && console.log(Tt(e, this.props), Tt(t, this.state)), !xt(this.props, e, this.propEquality) || !xt(this.state, t, this.stateEquality) }, t.prototype.safeSetState = function(e) { xt(this.state, r(r({}, this.state), e), this.stateEquality) || this.setState(e) }, t.addPropsEquality = Zo, t.addStateEquality = Xo, t.contextType = Go, t
1802    }(Ho);
1803    qo.prototype.propEquality = {}, qo.prototype.stateEquality = {};
1804    var Yo = function(e) {
1805        function t() { return null !== e && e.apply(this, arguments) || this }
1806        return n(t, e), t.contextType = Go, t
1807    }(qo);
1808
1809    function Zo(e) {
1810        var t = Object.create(this.prototype.propEquality);
1811        r(t, e), this.prototype.propEquality = t
1812    }
1813
1814    function Xo(e) {
1815        var t = Object.create(this.prototype.stateEquality);
1816        r(t, e), this.prototype.stateEquality = t
1817    }
1818
1819    function Ko(e, t) { "function" == typeof e ? e(t) : e && (e.current = t) }
1820    var $o = function(e) {
1821        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.uid = Le(), t }
1822        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 && !Ee(e, ".fc-event-mirror") }, t.prototype.isValidDateDownEl = function(e) { return !(Ee(e, ".fc-event:not(.fc-bg-event)") || Ee(e, ".fc-more-link") || Ee(e, "a[data-navlink]") || Ee(e, ".fc-popover")) }, t
1823    }(Yo);
1824
1825    function Jo(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 || {} } }
1826
1827    function Qo() {
1828        var e, t = [],
1829            n = [];
1830        return function(o, i) {
1831            return e && Kt(o, t) && Kt(i, n) || (e = function(e, t) {
1832                var n = {},
1833                    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: {} };
1834
1835                function i(e) {
1836                    for (var t = 0, a = e; t < a.length; t++) {
1837                        var s = a[t];
1838                        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), theme
1838Classes: 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) })
1839                    }
1840                    var l, u
1841                }
1842                return e && i(e), i(t), o
1843            }(o, i)), t = o, n = i, e
1844        }
1845    }
1846    var ei = function(e) {
1847        function t() { return null !== e && e.apply(this, arguments) || this }
1848        return n(t, e), t
1849    }(No);
1850
1851    function ti(e, t, n, o) {
1852        if (t[e]) return t[e];
1853        var i = function(e, t, n, o) {
1854            var i = n[e],
1855                a = o[e],
1856                s = function(e) { return i && null !== i[e] ? i[e] : a && null !== a[e] ? a[e] : null },
1857                l = s("component"),
1858                u = s("superType"),
1859                c = null;
1860            if (u) {
1861                if (u === e) throw new Error("Can't have a custom view type that references itself");
1862                c = ti(u, t, n, o)
1863            }!l && c && (l = c.component);
1864            if (!l) return null;
1865            return { type: e, component: l, defaults: r(r({}, c ? c.defaults : {}), i ? i.rawOptions : {}), overrides: r(r({}, c ? c.overrides : {}), a ? a.rawOptions : {}) }
1866        }(e, t, n, o);
1867        return i && (t[e] = i), i
1868    }
1869    ei.prototype.classes = { root: "fc-theme-standard", tableCellShaded: "fc-cell-shaded", buttonGroup: "fc-button-group", button: "fc-button fc-button-primary", buttonActive: "fc-button-active" }, ei.prototype.baseIconClass = "fc-icon", ei.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" }, ei.prototype.rtlIconClasses = { prev: "fc-icon-chevron-right", next: "fc-icon-chevron-left", prevYear: "fc-icon-chevrons-right", nextYear: "fc-icon-chevrons-left" }, ei.prototype.iconOverrideOption = "buttonIcons", ei.prototype.iconOverrideCustomButtonOption = "icon", ei.prototype.iconOverridePrefix = "fc-icon-";
1870    var ni = function(e) {
1871            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.rootElRef = Wo(), t.handleRootEl = function(e) { Ko(t.rootElRef, e), t.props.elRef && Ko(t.props.elRef, e) }, t }
1872            return n(t, e), t.prototype.render = function() {
1873                var e = this,
1874                    t = this.props,
1875                    n = t.hookProps;
1876                return Oo(ai, { hookProps: n, didMount: t.didMount, willUnmount: t.willUnmount, elRef: this.handleRootEl }, (function(r) { return Oo(oi, { hookProps: n, content: t.content, defaultContent: t.defaultContent, backupElRef: e.rootElRef }, (function(e, o) { return t.children(r, li(t.classNames, n), e, o) })) }))
1877            }, t
1878        }(Yo),
1879        ri = Uo(0);
1880
1881    function oi(e) { return Oo(ri.Consumer, null, (function(t) { return Oo(ii, r({ renderId: t }, e)) })) }
1882    var ii = function(e) {
1883            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.innerElRef = Wo(), t }
1884            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() {
1885                var e = this.customContentInfo,
1886                    t = this.getInnerContent(),
1887                    n = this.getContentMeta(t);
1888                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
1889            }, t.prototype.getInnerContent = function() {
1890                var e = this.props,
1891                    t = ui(e.content, e.hookProps);
1892                return void 0 === t && (t = ui(e.defaultContent, e.hookProps)), null == t ? null : t
1893            }, t.prototype.getContentMeta = function(e) {
1894                var t = this.context.pluginHooks.contentTypeHandlers,
1895                    n = "",
1896                    r = null;
1897                if (e)
1898                    for (var o in t)
1899                        if (void 0 !== e[o]) { n = o, r = t[o]; break }
1900                return { contentKey: n, buildLifecycleFuncs: r }
1901            }, t.prototype.updateCustomContent = function() { this.customContentInfo && this.customContentInfo.render(this.innerElRef.current || this.props.backupElRef.current, this.customContentInfo.contentVal) }, t
1902        }(Yo),
1903        ai = function(e) {
1904            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.handleRootEl = function(e) { t.rootEl = e, t.props.elRef && Ko(t.props.elRef, e) }, t }
1905            return n(t, e), t.prototype.render = function() { return this.props.children(this.handleRootEl) }, t.prototype.componentDidMount = function() {
1906                var e = this.props.didMount;
1907                e && e(r(r({}, this.props.hookProps), { el: this.rootEl }))
1908            }, t.prototype.componentWillUnmount = function() {
1909                var e = this.props.willUnmount;
1910                e && e(r(r({}, this.props.hookProps), { el: this.rootEl }))
1911            }, t
1912        }(Yo);
1913
1914    function si() { var e, t, n = []; return function(r, o) { return t && wt(t, o) && r === e || (e = r, t = o, n = li(r, o)), n } }
1915
1916    function li(e, t) { return "function" == typeof e && (e = e(t)), Pn(e) }
1917
1918    function ui(e, t) { return "function" == typeof e ? e(t, Oo) : e }
1919    var ci = function(e) {
1920        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.normalizeClassNames = si(), t }
1921        return n(t, e), t.prototype.render = function() {
1922            var e = this.props,
1923                t = this.context,
1924                n = t.options,
1925                r = { view: t.viewApi },
1926                o = this.normalizeClassNames(n.viewClassNames, r);
1927            return Oo(ai, { 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)) }))
1928        }, t
1929    }(Yo);
1930
1931    function di(e) { return Ct(e, pi) }
1932
1933    function pi(e) {
1934        var t, n = "function" == typeof e ? { component: e } : e,
1935            o = n.component;
1936        return n.content && (t = n, o = function(e) { return Oo(Go.C
1936onsumer, null, (function(n) { return Oo(ci, { viewSpec: n.viewSpec }, (function(o, i) { var a = r(r({}, e), { nextDayThreshold: n.options.nextDayThreshold }); return Oo(ni, { hookProps: a, classNames: t.classNames, content: t.content, didMount: t.didMount, willUnmount: t.willUnmount, elRef: o }, (function(e, t, n, r) { return Oo("div", { className: i.concat(t).join(" "), ref: e }, r) })) })) })) }), { superType: n.type, component: o, rawOptions: n }
1937    }
1938
1939    function fi(e, t, n, o) {
1940        var i = di(e),
1941            a = di(t.views);
1942        return Ct(function(e, t) { var n, r = {}; for (n in e) ti(n, r, e, t); for (n in t) ti(n, r, e, t); return r }(i, a), (function(e) {
1943            return function(e, t, n, o, i) {
1944                var a = e.overrides.duration || e.defaults.duration || o.duration || n.duration,
1945                    s = null,
1946                    l = "",
1947                    u = "",
1948                    c = {};
1949                if (a && (s = function(e) {
1950                        var t = JSON.stringify(e),
1951                            n = hi[t];
1952                        void 0 === n && (n = Ht(e), hi[t] = n);
1953                        return n
1954                    }(a))) {
1955                    var d = Gt(s);
1956                    l = d.unit, 1 === d.value && (u = l, c = t[l] ? t[l].rawOptions : {})
1957                }
1958                var p = function(t) {
1959                        var n = t.buttonText || {},
1960                            r = e.defaults.buttonTextKey;
1961                        return null != r && null != n[r] ? n[r] : null != n[e.type] ? n[e.type] : null != n[u] ? n[u] : null
1962                    },
1963                    f = function(t) {
1964                        var n = t.buttonHints || {},
1965                            r = e.defaults.buttonTextKey;
1966                        return null != r && null != n[r] ? n[r] : null != n[e.type] ? n[e.type] : null != n[u] ? n[u] : null
1967                    };
1968                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(mn) || e.type, buttonTitleOverride: f(o) || f(n) || e.overrides.buttonHint, buttonTitleDefault: f(i) || e.defaults.buttonHint || f(mn) }
1969            }(e, a, t, n, o)
1970        }))
1971    }
1972    var hi = {};
1973    var vi = function() {
1974        function e(e) { this.props = e, this.nowDate = Hr(e.nowInput, e.dateEnv), this.initHiddenDays() }
1975        return e.prototype.buildPrev = function(e, t, n) {
1976            var r = this.props.dateEnv,
1977                o = r.subtract(r.startOf(t, e.currentRangeUnit), e.dateIncrement);
1978            return this.build(o, -1, n)
1979        }, e.prototype.buildNext = function(e, t, n) {
1980            var r = this.props.dateEnv,
1981                o = r.add(r.startOf(t, e.currentRangeUnit), e.dateIncrement);
1982            return this.build(o, 1, n)
1983        }, 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 = $n(s, o.range)), s = $n(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() {
1984            var e = this.props.validRangeInput,
1985                t = "function" == typeof e ? e.call(this.props.calendarApi, this.nowDate) : e;
1986            return this.refineRange(t) || { start: null, end: null }
1987        }, e.prototype.buildCurrentRangeInfo = function(e, t) {
1988            var n, r = this.props,
1989                o = null,
1990                i = null,
1991                a = null;
1992            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 = Gt(o = this.getFallbackDuration()).unit, a = this.buildRangeFromDuration(e, t, o, i)), { duration: o, unit: i, range: a }
1993        }, e.prototype.getFallbackDuration = function() { return Ht({ day: 1 }) }, e.prototype.adjustActiveRange = function(e) {
1994            var t = this.props,
1995                n = t.dateEnv,
1996                r = t.usesMinMaxTime,
1997                o = t.slotMinTime,
1998                i = t.slotMaxTime,
1999                a = e.start,
2000                s = e.end;
2001            return r && (Ut(o) < 0 && (a = ut(a), a = n.add(a, o)), Ut(i) > 1 && (s = nt(s = ut(s), -1), s = n.add(s, i))), { start: a, end: s }
2002        }, e.prototype.buildRangeFromDuration = function(e, t, n, r) {
2003            var o, i, a, s = this.props,
2004                l = s.dateEnv,
2005                u = s.dateAlignment;
2006            if (!u) {
2007                var c = this.props.dateIncrement;
2008                u = c && Vt(c) < Vt(n) ? Gt(c).unit : r
2009            }
2010
2011            function d() { o = l.startOf(e, u), i = l.add(o, n), a = { start: o, end: i } }
2012            return Ut(n) <= 1 && this.isHiddenDay(o) && (o = ut(o = this.skipHiddenDays(o, t))), d(), this.trimHiddenDays(a) || (e = this.skipHiddenDays(e, t), d()), a
2013        }, e.prototype.buildRangeFromDayCount = function(e, t, n) {
2014            var r, o = this.props,
2015                i = o.dateEnv,
2016                a = o.dateAlignment,
2017                s = 0,
2018                l = e;
2019            a && (l = i.startOf(l, a)), l = ut(l), r = l = this.skipHiddenDays(l, t);
2020            do { r = nt(r, 1), this.isHiddenDay(r) || (s += 1) } while (s < n);
2021            return { start: l, end: r }
2022        }, e.prototype.buildCustomVisibleRange = function(e) {
2023            var t = this.props,
2024                n = t.visibleRangeInput,
2025                r = "function" == typeof n ? n.call(t.calendarApi, t.dateEnv.toDate(e)) : n,
2026                o = this.refineRange(r);
2027            return !o || null != o.start && null != o.end ? o : null
2028        }, 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) ? Ht(1, t) : e || Ht({ 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 = qn(t)), t } var n, r, o, i; return null }, e.prototype.initHiddenDays = function() {
2029            var e, t = this.props.hiddenDays || [],
2030                n = [],
2031                r = 0;
2032            for (!1 === this.props.weekends && t.push(0, 6), e = 0; e < 7; e += 1)(n[e] = -1 !== t.indexOf(e)) || (r += 1);
2033            if (!r) throw new Error("invalid hiddenDays");
2034            this.isHiddenDayHash = n
2035        }, e.prototype.trimHiddenDays = function(e) {
2036            var t = e.start,
2037                n = e.end;
2038            return t && (t = this.skipHiddenDays(t)), n && (n = this.skipHiddenDays(n, -1, !0)), null == t || null == n || t < n ? { start: t, end: n } : null
2039        }, 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 = nt(e, t); return e }, e
2040    }();
2041
2042    function gi(e, t, n) {
2043        var r = t ? t.activeRange : null;
2044        return Si({}, function(e, t) {
2045            var n = Nr(t),
2046                r = [].concat(e.eventSources || []),
2047                o = [];
2048            e.initialEvents && r.unshift(e.initialEvents);
2049            e.events && r.unshift(e.events);
2050            for (var i = 0, a = r; i < a.length; i++) {
2051                var s = Pr(a[i], t, n);
2052                s && o.push(s)
2053            }
2054            return o
2055        }(e, n), r, n)
2056    }
2057
2058    function mi(e, t, n, o) {
2059        var i, a, s = n ? n.activeRange : null;
2060        switch (t.type) {
2061            case "ADD_EVENT_SOURCES":
2062                return Si(e, t.sources, s, o);
2063            case "REMOVE_EVENT_SOURCE":
2064                return i = e, a = t.sourceId, bt(i, (function(e) { return e.sourceId !== a }));
2065            case "PREV":
2066            case "NEXT":
2067            case "CHANGE_DATE":
2068            case "CHANGE_VIEW_TYPE":
2069                return n ? Ei(e, s, o) : e;
2070            case "FETCH_EVENT_SOURCES":
2071                return bi(e, t.sourceIds ? Dt(t.sourceIds) : Di(e, o), s, t.isRefetch || !1, o);
2072            case "RECEIVE_EVENTS":
2073            case "RECEIVE_EVENT_ERROR":
2074                return function(e, t, n, o) { var i, a = e[t]; if (a && n === a.latestFetchId) return r(r({}
2074, e), ((i = {})[t] = r(r({}, a), { isFetching: !1, fetchRange: o }), i)); return e }(e, t.sourceId, t.fetchId, t.fetchRange);
2075            case "REMOVE_ALL_EVENT_SOURCES":
2076                return {};
2077            default:
2078                return e
2079        }
2080    }
2081
2082    function yi(e) {
2083        for (var t in e)
2084            if (e[t].isFetching) return !0;
2085        return !1
2086    }
2087
2088    function Si(e, t, n, o) {
2089        for (var i = {}, a = 0, s = t; a < s.length; a++) {
2090            var l = s[a];
2091            i[l.sourceId] = l
2092        }
2093        return n && (i = Ei(i, n, o)), r(r({}, e), i)
2094    }
2095
2096    function Ei(e, t, n) { return bi(e, bt(e, (function(e) { return function(e, t, n) { if (!Ri(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) }
2097
2098    function bi(e, t, n, r, o) {
2099        var i = {};
2100        for (var a in e) {
2101            var s = e[a];
2102            t[a] ? i[a] = Ci(s, n, r, o) : i[a] = s
2103        }
2104        return i
2105    }
2106
2107    function Ci(e, t, n, o) {
2108        var i = o.options,
2109            a = o.calendarApi,
2110            s = o.pluginHooks.eventSourceDefs[e.sourceDefId],
2111            l = Le();
2112        return s.fetch({ eventSource: e, range: t, isRefetch: n, context: o }, (function(n) {
2113            var r = n.rawEvents;
2114            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 })
2115        }), (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 })
2116    }
2117
2118    function Di(e, t) { return bt(e, (function(e) { return Ri(e, t) })) }
2119
2120    function Ri(e, t) { return !t.pluginHooks.eventSourceDefs[e.sourceDefId].ignoreRange }
2121
2122    function wi(e, t, n, r, o) {
2123        switch (t.type) {
2124            case "RECEIVE_EVENTS":
2125                return function(e, t, n, r, o, i) {
2126                    if (t && n === t.latestFetchId) {
2127                        var a = Tn(function(e, t, n) {
2128                            var r = n.options.eventDataTransform,
2129                                o = t ? t.eventDataTransform : null;
2130                            o && (e = Ti(e, o));
2131                            r && (e = Ti(e, r));
2132                            return e
2133                        }(o, t, i), t, i);
2134                        return r && (a = Mt(a, r, i)), Mn(xi(e, t.sourceId), a)
2135                    }
2136                    return e
2137                }(e, n[t.sourceId], t.fetchId, t.fetchRange, t.rawEvents, o);
2138            case "ADD_EVENTS":
2139                return function(e, t, n, r) { n && (t = Mt(t, n, r)); return Mn(e, t) }(e, t.eventStore, r ? r.activeRange : null, o);
2140            case "RESET_EVENTS":
2141                return t.eventStore;
2142            case "MERGE_EVENTS":
2143                return Mn(e, t.eventStore);
2144            case "PREV":
2145            case "NEXT":
2146            case "CHANGE_DATE":
2147            case "CHANGE_VIEW_TYPE":
2148                return r ? Mt(e, r.activeRange, o) : e;
2149            case "REMOVE_EVENTS":
2150                return function(e, t) {
2151                    var n = e.defs,
2152                        r = e.instances,
2153                        o = {},
2154                        i = {};
2155                    for (var a in n) t.defs[a] || (o[a] = n[a]);
2156                    for (var s in r) !t.instances[s] && o[r[s].defId] && (i[s] = r[s]);
2157                    return { defs: o, instances: i }
2158                }(e, t.eventStore);
2159            case "REMOVE_EVENT_SOURCE":
2160                return xi(e, t.sourceId);
2161            case "REMOVE_ALL_EVENT_SOURCES":
2162                return In(e, (function(e) { return !e.sourceId }));
2163            case "REMOVE_ALL_EVENTS":
2164                return { defs: {}, instances: {} };
2165            default:
2166                return e
2167        }
2168    }
2169
2170    function Ti(e, t) {
2171        var n;
2172        if (t) {
2173            n = [];
2174            for (var r = 0, o = e; r < o.length; r++) {
2175                var i = o[r],
2176                    a = t(i);
2177                a ? n.push(a) : null == a && n.push(i)
2178            }
2179        } else n = e;
2180        return n
2181    }
2182
2183    function xi(e, t) { return In(e, (function(e) { return e.sourceId !== t })) }
2184
2185    function _i(e, t) {
2186        switch (t.type) {
2187            case "UNSELECT_DATES":
2188                return null;
2189            case "SELECT_DATES":
2190                return t.selection;
2191            default:
2192                return e
2193        }
2194    }
2195
2196    function ki(e, t) {
2197        switch (t.type) {
2198            case "UNSELECT_EVENT":
2199                return "";
2200            case "SELECT_EVENT":
2201                return t.eventInstanceId;
2202            default:
2203                return e
2204        }
2205    }
2206
2207    function Mi(e, t) {
2208        var n;
2209        switch (t.type) {
2210            case "UNSET_EVENT_DRAG":
2211                return null;
2212            case "SET_EVENT_DRAG":
2213                return { affectedEvents: (n = t.state).affectedEvents, mutatedEvents: n.mutatedEvents, isEvent: n.isEvent };
2214            default:
2215                return e
2216        }
2217    }
2218
2219    function Ii(e, t) {
2220        var n;
2221        switch (t.type) {
2222            case "UNSET_EVENT_RESIZE":
2223                return null;
2224            case "SET_EVENT_RESIZE":
2225                return { affectedEvents: (n = t.state).affectedEvents, mutatedEvents: n.mutatedEvents, isEvent: n.isEvent };
2226            default:
2227                return e
2228        }
2229    }
2230
2231    function Pi(e, t, n, r, o) { return { header: e.headerToolbar ? Ni(e.headerToolbar, e, t, n, r, o) : null, footer: e.footerToolbar ? Ni(e.footerToolbar, e, t, n, r, o) : null } }
2232
2233    function Ni(e, t, n, r, o, i) {
2234        var a = {},
2235            s = [],
2236            l = !1;
2237        for (var u in e) {
2238            var c = Hi(e[u], t, n, r, o, i);
2239            a[u] = c.widgets, s.push.apply(s, c.viewsWithButtons), l = l || c.hasTitle
2240        }
2241        return { sectionWidgets: a, viewsWithButtons: s, hasTitle: l }
2242    }
2243
2244    function Hi(e, t, n, r, o, i) {
2245        var a = "rtl" === t.direction,
2246            s = t.customButtons || {},
2247            l = n.buttonText || {},
2248            u = t.buttonText || {},
2249            c = n.buttonHints || {},
2250            d = t.buttonHints || {},
2251            p = e ? e.split(" ") : [],
2252            f = [],
2253            h = !1;
2254        return {
2255            widgets: p.map((function(e) {
2256                return e.split(",").map((function(e) {
2257                    if ("title" === e) return h = !0, { buttonName: e };
2258                    var n, p, v, g, m, y;
2259                    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;
2260                    else if (p = o[e]) {
2261                        f.push(e), v = function() { i.changeView(e) }, (m = p.buttonTextOverride) || (g = r.getIconClass(e, a)) || (m = p.buttonTextDefault);
2262                        var S = p.buttonTextOverride || p.buttonTextDefault;
2263                        y = Ke(p.buttonTitleOverride || p.buttonTitleDefault || t.viewHint, [S, e], S)
2264                    } else if (i[e])
2265                        if (v = function() { i[e]() }, (m = l[e]) || (g = r.getIconClass(e, a)) || (m = u[e]), "prevYear" === e || "nextYear" === e) {
2266                            var E = "prevYear" === e ? "prev" : "next";
2267                            y = Ke(c[E] || d[E], [u.year || "year", "year"], u[e])
2268                        } else y = function(t) { return Ke(c[e] || d[e], [u[t] || t, t], u[e]) };
2269                    return { buttonName: e, buttonClick: v, buttonIcon: g, buttonText: m, buttonHint: y }
2270                }))
2271            })),
2272            viewsWithButtons: f,
2273            hasTitle: h
2274        }
2275    }
2276
2277    function Oi(e, t, n, r, o) {
2278        var i = null;
2279        "GET" === (e = e.toUpperCase()) ? t = function(e, t) { return e + (-1 === e.indexOf("?") ? "?" : "&") + Ai(t) }(t, n): i = Ai(n);
2280        var a = new XMLHttpRequest;
2281        a.open(e, t, !0), "GET" !== e && a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"), a.onload = function() {
2282            if (a.status >= 200 && a.status < 400) {
2283                var e = !1,
2284                    t = void 0;
2285                try { t = JSON.parse(a.responseText), e = !0 } catch (e) {}
2286                e ? r(t, a) : o("Failure parsing JSON", a)
2287            } else o("Request failed", a)
2288        }, a.onerror = function() { o("Request failed", a) }, a.send(i)
2289    }
2290
2291    function Ai(e) { var t = []; for (var n in e) t.push(encodeURIComponent(n) + "=" + encodeURIComponent(e[n])); return t.join("&") }
2292
2293    function Wi(e, t) {
2294        for (var n = Rt(t.getCurrentData().eventSources), r = [], o = 0, i = e; o < i.length; o++) {
2295            for (var a = i[o], s = !1, l = 0; l < n.length; l += 1)
2296                if (n[l]._raw === a) { n.splice(l, 1), s = !0; break }
2297            s || r.push(a)
2298        }
2299        for (var u = 0, c = n; u < c.length; u++) {
2300            var d = c[u];
2301            t.dispatch({ type: "REMOVE_EVENT_SOURCE", sourceId: d.sourceId })
2302        }
2303        for (var p = 0, f = r; p < f.length; p++) {
2304            var h = f[p];
2305            t.calendarApi.addEventSource(h)
2306        }
2307    }
2308    var Li = [Jo({ eventSourceDefs: [{ ignoreRange: !0, parseMeta: function(e) { return Array.isArray(e.events) ? e.events : null }, fetch: function(e, t) { t({ rawEvents: e.eventSource.meta }) } }] }), Jo({
2309        eventSourceDefs: [{
2310            parseMeta: function(e) { return "function" == typeof e.events ? e.events : null },
2311            fetch: function(e, t, n) {
2312                var r = e.context.dateEnv;
2313                xo(e.eventSource.meta.bind(null, br(e.range, r)), (function(e) { t({ rawEvents: e }) }), n)
2314            }
2315        }]
2316    }), Jo({
2317        eventSourceRefiners: { method: String, extraParams: wn, startParam: String, endParam: String, timeZoneParam: String },
2318        eventSourceDefs: [{
2319            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 } },
2320            fetch: function(e, t, n) {
2321                var o = e.eventSource.meta,
2322                    i = function(e, t, n) {
2323                        var o, i, a, s, l = n.dateEnv,
2324                            u = n.options,
2325                            c = {};
2326                        null == (o = e.startParam) && (o = u.startParam);
2327                        null == (i = e.endParam) && (i = u.endParam);
2328                        null == (a = e.timeZoneParam) && (a = u.timeZoneParam);
2329                        s = "function" == typeof e.extraParams ? e.extraParams() : e.extraParams || {};
2330                        r(c, s), c[o] = l.formatIso(t.start), c[i] = l.formatIso(t.end), "local" !== l.timeZone && (c[a] = l.timeZone);
2331                        return c
2332                    }(o, e.range, e.context);
2333                Oi(o.method, o.url, i, (function(e, n) { t({ rawEvents: e, xhr: n }) }), (function(e, t) { n({ message: e, xhr: t }) }))
2334            }
2335        }]
2336    }), Jo({
2337        recurringTypes: [{
2338            parse: function(e, t) {
2339                if (e.daysOfWeek || e.startTime || e.endTime || e.startRecur || e.endRecur) {
2340                    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 },
2341                        r = void 0;
2342                    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 }
2343                }
2344                var o, i;
2345                return null
2346            },
2347            expand: function(e, t, n) {
2348                var r = $n(t, { start: e.startRecur, end: e.endRecur });
2349                return r ? function(e, t, n, r) {
2350                    var o = e ? Dt(e) : null,
2351                        i = ut(n.start),
2352                        a = n.end,
2353                        s = [];
2354                    for (; i < a;) {
2355                        var l = void 0;
2356                        o && !o[i.getUTCDay()] || (l = t ? r.add(i, t) : i, s.push(l)), i = nt(i, 1)
2357                    }
2358                    return s
2359                }(e.daysOfWeek, e.startTime, r, n) : []
2360            }
2361        }],
2362        eventRefiners: { daysOfWeek: wn, startTime: Ht, endTime: Ht, duration: Ht, startRecur: wn, endRecur: wn }
2363    }), Jo({ optionChangeHandlers: { events: function(e, t) { Wi([e], t) }, eventSources: Wi } }), Jo({
2364        isLoadingFuncs: [function(e) { return yi(e.eventSources) }],
2365        contentTypeHandlers: {
2366            html: function() {
2367                var e = null,
2368                    t = "";
2369                return { render: function(n, r) { n === e && r === t || (n.innerHTML = r), e = n, t = r }, destroy: function() { e.innerHTML = "", e = null, t = "" } }
2370            },
2371            domNodes: function() {
2372                var e = null,
2373                    t = [];
2374
2375                function n() { t.forEach(Se), t = [], e = null }
2376                return {
2377                    render: function(r, o) {
2378                        var i = Array.prototype.slice.call(o);
2379                        if (r !== e || !Kt(t, i)) {
2380                            for (var a = 0, s = i; a < s.length; a++) {
2381                                var l = s[a];
2382                                r.appendChild(l)
2383                            }
2384                            n()
2385                        }
2386                        e = r, t = i
2387                    },
2388                    destroy: n
2389                }
2390            }
2391        },
2392        propSetHandlers: {
2393            dateProfile: function(e, t) { t.emitter.trigger("datesSet", r(r({}, br(e.activeRange, t.dateEnv)), { view: t.viewApi })) },
2394            eventStore: function(e, t) {
2395                var n = t.emitter;
2396                n.hasHandlers("eventsSet") && n.trigger("eventsSet", Lr(e, t))
2397            }
2398        }
2399    })];
2400    var Ui = function() {
2401            function e(e) { this.drainedOption = e, this.isRunning = !1, this.isDirty = !1, this.pauseDepths = {}, this.timeoutId = 0 }
2402            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) {
2403                void 0 === e && (e = "");
2404                var t = this.pauseDepths;
2405                t[e] = (t[e] || 0) + 1, this.clearTimeout()
2406            }, e.prototype.resume = function(e, t) {
2407                void 0 === e && (e = "");
2408                var n = this.pauseDepths;
2409                if (e in n) {
2410                    if (t) delete n[e];
2411                    else n[e] -= 1, n[e] <= 0 && delete n[e];
2412                    this.tryDrain()
2413                }
2414            }, e.prototype.isPaused = function() { return Object.keys(this.pauseDepths).length }, e.prototype.tryDrain = function() {
2415                if (!this.isRunning && !this.isPaused()) {
2416                    for (this.isRunning = !0; this.isDirty;) this.isDirty = !1, this.drained();
2417                    this.isRunning = !1
2418                }
2419            }, 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
2420        }(),
2421        Bi = function() {
2422            function e(e, t) { this.runTaskOption = e, this.drainedOption = t, this.queue = [], this.delayedRunner = new Ui(this.drain.bind(this)) }
2423            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) }
2423, e.prototype.drain = function() {
2424                for (var e = this.queue; e.length;) {
2425                    for (var t = [], n = void 0; n = e.shift();) this.runTask(n), t.push(n);
2426                    this.drained(t)
2427                }
2428            }, e.prototype.runTask = function(e) { this.runTaskOption && this.runTaskOption(e) }, e.prototype.drained = function(e) { this.drainedOption && this.drainedOption(e) }, e
2429        }();
2430
2431    function zi(e, t, n) { var r; return r = /^(year|month)$/.test(e.currentRangeUnit) ? e.currentRange : e.activeRange, n.formatRange(r.start, r.end, vn(t.titleFormat || function(e) { var t = e.currentRangeUnit; if ("year" === t) return { year: "numeric" }; if ("month" === t) return { year: "numeric", month: "long" }; var n = lt(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 }) }
2432    var Vi = function() {
2433        function e(e) {
2434            var t = this;
2435            this.computeOptionsData = $t(this._computeOptionsData), this.computeCurrentViewData = $t(this._computeCurrentViewData), this.organizeRawLocales = $t(Zr), this.buildLocale = $t(Xr), this.buildPluginHooks = Qo(), this.buildDateEnv = $t(Fi), this.buildTheme = $t(Gi), this.parseToolbars = $t(Pi), this.buildViewSpecs = $t(fi), this.buildDateProfileGenerator = Jt(ji), this.buildViewApi = $t(qi), this.buildViewUiProps = Jt(Xi), this.buildEventUiBySource = $t(Yi, wt), this.buildEventUiBases = $t(Zi), this.parseContextBusinessHours = Jt($i), this.buildTitle = $t(zi), this.emitter = new _o, this.actionRunner = new Bi(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();
2436            var n = {},
2437                o = this.computeOptionsData(e.optionOverrides, n, e.calendarApi),
2438                i = o.calendarOptions.initialView || o.pluginHooks.initialView,
2439                a = this.computeCurrentViewData(i, o, e.optionOverrides, n);
2440            e.calendarApi.currentDataManager = this, this.emitter.setThisContext(e.calendarApi), this.emitter.setOptions(a.options);
2441            var s, l, u, c = (s = o.calendarOptions, l = o.dateEnv, null != (u = s.initialDate) ? l.createMarker(u) : Hr(s.now, l)),
2442                d = a.dateProfileGenerator.build(c);
2443            tr(d.activeRange, c) || (c = d.currentRange.start);
2444            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++) {
2445                (0, h[f])(p)
2446            }
2447            for (var v = gi(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, S = o.pluginHooks.reducers; y < S.length; y++) {
2448                var E = S[y];
2449                r(g, E(null, null, m))
2450            }
2451            Ki(g, p) && this.emitter.trigger("loading", !0), this.state = g, this.updateData(), this.actionRunner.resume()
2452        }
2453        return e.prototype.resetOptions = function(e, t) {
2454            var n = this.props;
2455            n.optionOverrides = t ? r(r({}, n.optionOverrides), e) : e, this.actionRunner.request({ type: "NOTHING" })
2456        }, e.prototype._handleAction = function(e) {
2457            var t = this,
2458                n = t.props,
2459                o = t.state,
2460                i = t.emitter,
2461                a = function(e, t) {
2462                    var n;
2463                    switch (t.type) {
2464                        case "SET_OPTION":
2465                            return r(r({}, e), ((n = {})[t.optionName] = t.rawOptionValue, n));
2466                        default:
2467                            return e
2468                    }
2469                }(o.dynamicOptionOverrides, e),
2470                s = this.computeOptionsData(n.optionOverrides, a, n.calendarApi),
2471                l = function(e, t) {
2472                    switch (t.type) {
2473                        case "CHANGE_VIEW_TYPE":
2474                            e = t.viewType
2475                    }
2476                    return e
2477                }(o.currentViewType, e),
2478                u = this.computeCurrentViewData(l, s, n.optionOverrides, a);
2479            n.calendarApi.currentDataManager = this, i.setThisContext(n.calendarApi), i.setOptions(u.options);
2480            var c = { dateEnv: s.dateEnv, options: s.calendarOptions, pluginHooks: s.pluginHooks, calendarApi: n.calendarApi, dispatch: this.dispatch, emitter: i, getCurrentData: this.getCurrentData },
2481                d = o.currentDate,
2482                p = o.dateProfile;
2483            this.data && this.data.dateProfileGenerator !== u.dateProfileGenerator && (p = u.dateProfileGenerator.build(d)), p = function(e, t, n, r) {
2484                var o;
2485                switch (t.type) {
2486                    case "CHANGE_VIEW_TYPE":
2487                        return r.build(t.dateMarker || n);
2488                    case "CHANGE_DATE":
2489                        return r.build(t.dateMarker);
2490                    case "PREV":
2491                        if ((o = r.buildPrev(e, n)).isValid) return o;
2492                        break;
2493                    case "NEXT":
2494                        if ((o = r.buildNext(e, n)).isValid) return o
2495                }
2496                return e
2497            }(p, e, d = function(e, t) {
2498                switch (t.type) {
2499                    case "CHANGE_DATE":
2500                        return t.dateMarker;
2501                    default:
2502                        return e
2503                }
2504            }(d, e), u.dateProfileGenerator), "PREV" !== e.type && "NEXT" !== e.type && tr(p.currentRange, d) || (d = p.currentRange.start);
2505            for (var f = mi(o.eventSources, e, p, c), h = wi(o.eventStore, e, f, p, c), v = yi(f) && !u.options.progressiveEventRendering && o.renderableEventStore || h, g = this.buildViewUiProps(c), m = g.eventUiSingleBase, y = g.selectionConfig, S = this.buildEventUiBySource(f), E = { dynamicOptionOverrides: a, currentViewType: l, currentDate: d, dateProfile: p, eventSources: f, eventStore: h, renderableEventStore: v, selectionConfig: y, eventUiBases: this.buildEventUiBases(v.defs, m, S), businessHours: this.parseContextBusinessHours(c), dateSelection: _i(o.dateSelection, e), eventSelection: ki(o.eventSelection, e), eventDrag: Mi(o.eventDrag, e), eventResize: Ii(o.eventResize, e) }, b = r(r({}, c), E), C = 0, D = s.pluginHooks.reducers; C < D.length; C++) {
2506                var R = D[C];
2507                r(E, R(o, e, b))
2508            }
2509            var w = Ki(o, c),
2510                T = Ki(E, c);
2511            !w && T ? i.trigger("loading", !0) : w && !T && i.trigger("loading", !1), this.state = E, n.onAction && n.onAction(e)
2512        }, e.prototype.updateData = function() {
2513            var e, t, n, o, i = this.props,
2514                a = this.state,
2515                s = this.data,
2516                l = this.computeOptionsData(i.optionOverrides, a.dynamicOptionOverrides, i.calendarApi),
2517                u = this.computeCurrentViewData(a.currentViewType, l, i.optionOverrides, a.dynamicOptionOverrides),
2518                c = this.data = r(r(r({ viewTitle: this.buildTitle(a.dateProfile, u.options, l.dateEnv), calendarApi: i.calendarApi, dispatch: this.dispatch, emitter: this.emitter, getCurrentData: this.getCurrentData }, l), u), a),
2519                d = l.pluginHooks.optionChangeHandlers,
2520                p = s && s.calendarOptions,
2521                f = l.calendarOptions;
2522            if (p && p !== f)
2523                for (var h in p.timeZone !== f.timeZone && (a.eventSources = c.eventSources = (e = c.eventSources, t = a.dateProfile, n = c, o = t ? t.activeRange : null, bi(e, Di(e, n), o, !0, n)), a.eventStore = c.eventStore = function(e, t, n) {
2524                        var o = e.defs,
2525                            i = Ct(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 }) }));
2526                        return { defs: o, instances: i }
2527                    }(c.eventStore, s.dateEnv, c.dateEnv)), d) p[h] !== f[h] && d[h](f[h], c);
2528            i.onData && i.onData(c)
2529        }, e.prototype._computeOptionsData = function(e, t, n) {
2530            var r = this.processRawCalendarOptions(e, t),
2531                o = r.refinedOptions,
2532                i = r.pluginHooks,
2533                a = r.localeDefaults,
2534                s = r.availableLocaleData;
2535            Ji(r.extra);
2536            var l = this.buildDateEnv(o.timeZone, o.locale, o.weekNumberCalculation, o.firstDay, o.weekText, i, s, o.defaultRangeSeparator),
2537                u = this.buildViewSpecs(i.views, e, t, a),
2538                c = this.buildTheme(o, i);
2539            return { calendarOptions: o, pluginHooks: i, dateEnv: l, viewSpecs: u, theme: c, toolbarConfig: this.parseToolbars(o, e, c, u, n), localeDefaults: a, availableRawLocales: s.map }
2540        }, e.prototype.processRawCalendarOptions = function(e, t) {
2541            var n = Dn([mn, e, t]),
2542                o = n.locales,
2543                i = n.locale,
2544                a = this.organizeRawLocales(o),
2545                s = a.map,
2546                l = this.buildLocale(i || a.defaultCode, s).options,
2547                u = this.buildPluginHooks(e.plugins || [], Li),
2548                c = this.currentCalendarOptionsRefiners = r(r(r(r(r({}, gn), yn), Sn), u.listenerRefiners), u.optionRefiners),
2549                d = {},
2550                p = Dn([mn, l, e, t]),
2551                f = {},
2552                h = this.currentCalendarOptionsInput,
2553                v = this.currentCalendarOptionsRefined,
2554                g = !1;
2555            for (var m in p) "plugins" !== m && (p[m] === h[m] || En[m] && m in h && En[m](h[m], p[m]) ? f[m] = v[m] : c[m] ? (f[m] = c[m](p[m]), g = !0) : d[m] = h[m]);
2556            return g && (this.currentCalendarOptionsInput = p, this.currentCalendarOptionsRefined = f), { rawOptions: this.currentCalendarOptionsInput, refinedOptions: this.currentCalendarOptionsRefined, pluginHooks: u, availableLocaleData: a, localeDefaults: l, extra: d }
2557        }, e.prototype._computeCurrentViewData = function(e, t, n, r) {
2558            var o = t.viewSpecs[e];
2559            if (!o) throw new Error('viewType "' + e + "\" is not available. Please make sure you've loaded all neccessary plugins");
2560            var i = this.processRawViewOptions(o, t.pluginHooks, t.localeDefaults, n, r),
2561                a = i.refinedOptions;
2562            return Ji(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) }
2563        }, e.prototype.processRawViewOptions = function(e, t, n, o, i) {
2564            var a = Dn([mn, e.optionDefaults, n, o, e.optionOverrides, i]),
2565                s = r(r(r(r(r(r({}, gn), yn), Sn), Cn), t.listenerRefiners), t.optionRefiners),
2566                l = {},
2567                u = this.currentViewOptionsInput,
2568                c = this.currentViewOptionsRefined,
2569                d = !1,
2570                p = {};
2571            for (var f in a) a[f] === u[f] || En[f] && En[f](a[f], u[f]) ? l[f] = c[f] : (a[f] === this.currentCalendarOptionsInput[f] || En[f] && En[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);
2572            return d && (this.currentViewOptionsInput = a, this.currentViewOptionsRefined = l), { rawOptions: this.currentViewOptionsInput, refinedOptions: this.currentViewOptionsRefined, extra: p }
2573        }, e
2574    }();
2575
2576    function Fi(e, t, n, r, o, i, a, s) { var l = Xr(t || a.defaultCode, a.map); return new Gr({ calendarSystem: "gregory", timeZone: e, namedTimeZoneImpl: i.namedTimeZonedImpl, locale: l, weekNumberCalculation: n, firstDay: r, weekText: o, cmdFormatter: i.cmdFormatter, defaultSeparator: s }) }
2577
2578    function Gi(e, t) { return new(t.themeClasses[e.themeSystem] || ei)(e) }
2579
2580    function ji(e) { return new(e.dateProfileGeneratorClass || vi)(e) }
2581
2582    function qi(e, t, n) { return new Mr(e, t, n) }
2583
2584    function Yi(e) { return Ct(e, (function(e) { return e.ui })) }
2585
2586    function Zi(e, t, n) {
2587        var r = { "": t };
2588        for (var o in e) {
2589            var i = e[o];
2590            i.sourceId && n[i.sourceId] && (r[o] = n[i.sourceId])
2591        }
2592        return r
2593    }
2594
2595    function Xi(e) { var t = e.options; return { eventUiSingleBase: On({ 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: On({ constraint: t.selectConstraint, overlap: "boolean" == typeof t.selectOverlap ? t.selectOverlap : void 0, allow: t.selectAllow }, e) } }
2596
2597    function Ki(e, t) { for (var n = 0, r = t.pluginHooks.isLoadingFuncs; n < r.length; n++) { if ((0, r[n])(e)) return !0 } return !1 }
2598
2599    function $i(e) { return eo(e.options.businessHours, e) }
2600
2601    function Ji(e, t) { for (var n in e) console.warn("Unknown option '" + n + "'" + (t ? " for view '" + t + "'" : "")) }
2602    var Qi = function(e) {
2603        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 Vi({ optionOverrides: t.optionOverrides, calendarApi: t.calendarApi, onData: n.handleData }), n }
2604        return n(t, e), t.prototype.render = function() { return this.props.children(this.state) }, t.prototype.componentDidUpdate = function(e) {
2605            var t = this.props.optionOverrides;
2606            t !== e.optionOverrides && this.dataManager.resetOptions(t)
2607        }, t
2608    }(Ho);
2609    var ea = function(e) { this.timeZoneName = e },
2610        ta = function() {
2611            function e() { this.strictOrder = !1, this.allowReslicing = !1, this.maxCoord = -1, this.maxStackCnt = -1, this.levelCoords = [], this.entriesByLevel = [], this.stackCnts = {} }
2612            return e.prototype.addSegs = function(e) {
2613                for (var t = [], n = 0, r = e; n < r.length; n++) {
2614                    var o = r[n];
2615                    this.insertEntry(o, t)
2616                }
2617                return t
2618            }, 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) {
2619                var r = 0,
2620                    i = [],
2621                    a = e.span,
2622                    s = t.span;
2623                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: aa(s, a) }
2623], i)), r) : (n.push(e), 0)
2624            }, e.prototype.insertEntryAt = function(e, t) {
2625                var n = this.entriesByLevel,
2626                    r = this.levelCoords; - 1 === t.lateral ? (sa(r, t.level, t.levelCoord), sa(n, t.level, [e])) : sa(n[t.level], t.lateral, e), this.stackCnts[ra(e)] = t.stackCnt
2627            }, e.prototype.findInsertion = function(e) {
2628                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) {
2629                    var f = n[p];
2630                    if (!o && f >= s + e.thickness) break;
2631                    for (var h = r[p], v = void 0, g = la(h, e.span.start, na), m = g[0] + g[1];
2632                        (v = h[m]) && v.span.start < e.span.end;) {
2633                        var y = f + v.thickness;
2634                        y > s && (s = y, c = v, l = p, u = m), y === s && (d = Math.max(d, i[ra(v)] + 1)), m += 1
2635                    }
2636                }
2637                var S = 0;
2638                if (c)
2639                    for (S = l + 1; S < a && n[S] < s;) S += 1;
2640                var E = -1;
2641                return S < a && n[S] === s && (E = la(r[S], e.span.end, na
2641)[0]), { touchingLevel: l, touchingLateral: u, touchingEntry: c, stackCnt: d, levelCoord: s, level: S, lateral: E }
2642            }, e.prototype.toRects = function() {
2643                for (var e = this.entriesByLevel, t = this.levelCoords, n = e.length, o = [], i = 0; i < n; i += 1)
2644                    for (var a = e[i], s = t[i], l = 0, u = a; l < u.length; l++) {
2645                        var c = u[l];
2646                        o.push(r(r({}, c), { levelCoord: s }))
2647                    }
2648                return o
2649            }, e
2650        }();
2651
2652    function na(e) { return e.span.end }
2653
2654    function ra(e) { return e.index + ":" + e.span.start }
2655
2656    function oa(e) {
2657        for (var t = [], n = 0, r = e; n < r.length; n++) {
2658            for (var o = r[n], i = [], a = { span: o.span, entries: [o] }, s = 0, l = t; s < l.length; s++) {
2659                var u = l[s];
2660                aa(u.span, a.span) ? a = { entries: u.entries.concat(a.entries), span: ia(u.span, a.span) } : i.push(u)
2661            }
2662            i.push(a), t = i
2663        }
2664        return t
2665    }
2666
2667    function ia(e, t) { return { start: Math.min(e.start, t.start), end: Math.max(e.end, t.end) } }
2668
2669    function aa(e, t) {
2670        var n = Math.max(e.start, t.start),
2671            r = Math.min(e.end, t.end);
2672        return n < r ? { start: n, end: r } : null
2673    }
2674
2675    function sa(e, t, n) { e.splice(t, 0, n) }
2676
2677    function la(e, t, n) {
2678        var r = 0,
2679            o = e.length;
2680        if (!o || t < n(e[r])) return [0, 0];
2681        if (t > n(e[o - 1])) return [o, 0];
2682        for (; r < o;) {
2683            var i = Math.floor(r + (o - r) / 2),
2684                a = n(e[i]);
2685            if (t < a) o = i;
2686            else {
2687                if (!(t > a)) return [i, 1];
2688                r = i + 1
2689            }
2690        }
2691        return [r, 0]
2692    }
2693    var ua = function() {
2694        function e(e) { this.component = e.component, this.isHitComboAllowed = e.isHitComboAllowed || null }
2695        return e.prototype.destroy = function() {}, e
2696    }();
2697
2698    function ca(e, t) { return { component: e, el: t.el, useEventCenter: null == t.useEventCenter || t.useEventCenter, isHitComboAllowed: t.isHitComboAllowed || null } }
2699
2700    function da(e) { var t; return (t = {})[e.component.uid] = e, t }
2701    var pa = {},
2702        fa = function() {
2703            function e(e, t) { this.emitter = new _o }
2704            return e.prototype.destroy = function() {}, e.prototype.setMirrorIsVisible = function(e) {}, e.prototype.setMirrorNeedsRevert = function(e) {}, e.prototype.setAutoScrollEnabled = function(e) {}, e
2705        }(),
2706        ha = {},
2707        va = { startTime: Ht, duration: Ht, create: Boolean, sourceId: String };
2708
2709    function ga(e) {
2710        var t = Rn(e, va),
2711            n = t.refined,
2712            r = t.extra;
2713        return { startTime: n.startTime || null, duration: n.duration || null, create: null == n.create || n.create, sourceId: n.sourceId, leftoverProps: r }
2714    }
2715    var ma = function(e) {
2716            function t() { return null !== e && e.apply(this, arguments) || this }
2717            return n(t, e), t.prototype.render = function() {
2718                var e = this,
2719                    t = this.props.widgetGroups.map((function(t) { return e.renderWidgetGroup(t) }));
2720                return Oo.apply(void 0, o(["div", { className: "fc-toolbar-chunk" }], t))
2721            }, t.prototype.renderWidgetGroup = function(e) {
2722                for (var t = this.props, n = this.context.theme, r = [], i = !0, a = 0, s = e; a < s.length; a++) {
2723                    var l = s[a],
2724                        u = l.buttonName,
2725                        c = l.buttonClick,
2726                        d = l.buttonText,
2727                        p = l.buttonIcon,
2728                        f = l.buttonHint;
2729                    if ("title" === u) i = !1, r.push(Oo("h2", { className: "fc-toolbar-title", id: t.titleId }, t.title));
2730                    else {
2731                        var h = u === t.activeButton,
2732                            v = !t.isTodayEnabled && "today" === u || !t.isPrevEnabled && "prev" === u || !t.isNextEnabled && "next" === u,
2733                            g = ["fc-" + u + "-button", n.getClass("button")];
2734                        h && g.push(n.getClass("buttonActive")), r.push(Oo("button", { type: "button", title: "function" == typeof f ? f(t.navUnit) : f, disabled: v, "aria-pressed": h, className: g.join(" "), onClick: c }, d || (p ? Oo("span", { className: p }) : "")))
2735                    }
2736                }
2737                if (r.length > 1) { var m = i && n.getClass("buttonGroup") || ""; return Oo.apply(void 0, o(["div", { className: m }], r)) }
2738                return r[0]
2739            }, t
2740        }(Yo),
2741        ya = function(e) {
2742            function t() { return null !== e && e.apply(this, arguments) || this }
2743            return n(t, e), t.prototype.render = function() {
2744                var e, t, n = this.props,
2745                    r = n.model,
2746                    o = n.extraClassName,
2747                    i = !1,
2748                    a = r.sectionWidgets,
2749                    s = a.center;
2750                return a.left ? (i = !0, e = a.left) : e = a.start, a.right ? (i = !0, t = a.right) : t = a.end, Oo("div", { className: [o || "", "fc-toolbar", i ? "fc-toolbar-ltr" : ""].join(" ") }, this.renderSection("start", e || []), this.renderSection("center", s || []), this.renderSection("end", t || []))
2751            }, t.prototype.renderSection = function(e, t) { var n = this.props; return Oo(ma, { 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
2752        }(Yo),
2753        Sa = function(e) {
2754            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.state = { availableWidth: null }, t.handleEl = function(e) { t.el = e, Ko(t.props.elRef, e), t.updateAvailableWidth() }, t.handleResize = function() { t.updateAvailableWidth() }, t }
2755            return n(t, e), t.prototype.render = function() {
2756                var e = this.props,
2757                    t = this.state,
2758                    n = e.aspectRatio,
2759                    r = ["fc-view-harness", n || e.liquid || e.height ? "fc-view-harness-active" : "fc-view-harness-
2759passive"],
2760                    o = "",
2761                    i = "";
2762                return n ? null !== t.availableWidth ? o = t.availableWidth / n : i = 1 / n * 100 + "%" : o = e.height || "", Oo("div", { "aria-labelledby": e.labeledById, ref: this.handleEl, className: r.join(" "), style: { height: o, paddingBottom: i } }, e.children)
2763            }, 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
2764        }(Yo),
2765        Ea = function(e) {
2766            function t(t) {
2767                var n = e.call(this, t) || this;
2768                return n.handleSegClick = function(e, t) {
2769                    var r = n.component,
2770                        o = r.context,
2771                        i = ir(t);
2772                    if (i && r.isValidSegDownEl(e.target)) {
2773                        var a = Ee(e.target, ".fc-event-forced-url"),
2774                            s = a ? a.querySelector("a[href]").href : "";
2775                        o.emitter.trigger("eventClick", { el: t, event: new Ar(r.context, i.eventRange.def, i.eventRange.instance), jsEvent: e, view: o.viewApi }), s && !e.defaultPrevented && (window.location.href = s)
2776                    }
2777                }, n.destroy = Pe(t.el, "click", ".fc-event", n.handleSegClick), n
2778            }
2779            return n(t, e), t
2780        }(ua),
2781        ba = function(e) {
2782            function t(t) {
2783                var n, r, o, i, a, s = e.call(this, t) || this;
2784                return s.handleEventElRemove = function(e) { e === s.currentSegEl && s.handleSegLeave(null, s.currentSegEl) }, s.handleSegEnter = function(e, t) { ir(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, Pe(n, "mouseover", r, (function(e, t) {
2785                    if (t !== a) {
2786                        a = t, o(e, t);
2787                        var n = function(e) { a = null, i(e, t), t.removeEventListener("mouseleave", n) };
2788                        t.addEventListener("mouseleave", n)
2789                    }
2790                }))), s
2791            }
2792            return n(t, e), t.prototype.destroy = function() { this.removeHoverListeners() }, t.prototype.triggerEvent = function(e, t, n) {
2793                var r = this.component,
2794                    o = r.context,
2795                    i = ir(n);
2796                t && !r.isValidSegDownEl(t.target) || o.emitter.trigger(e, { el: n, event: new Ar(o, i.eventRange.def, i.eventRange.instance), jsEvent: t, view: o.viewApi })
2797            }, t
2798        }(ua),
2799        Ca = function(e) {
2800            function t() {
2801                var t = null !== e && e.apply(this, arguments) || this;
2802                return t.buildViewContext = $t(jo), t.buildViewPropTransformers = $t(Ra), t.buildToolbarProps = $t(Da), t.headerRef = Wo(), t.footerRef = Wo(), t.interactionsStore = {}, t.state = { viewLabelId: Me() }, t.registerInteractiveComponent = function(e, n) {
2803                    var r = ca(e, n),
2804                        o = [Ea, ba].concat(t.props.pluginHooks.componentInteractions).map((function(e) { return new e(r) }));
2805                    t.interactionsStore[e.uid] = o, pa[e.uid] = r
2806                }, t.unregisterInteractiveComponent = function(e) {
2807                    var n = t.interactionsStore[e.uid];
2808                    if (n) {
2809                        for (var r = 0, o = n; r < o.length; r++) { o[r].destroy() }
2810                        delete t.interactionsStore[e.uid]
2811                    }
2812                    delete pa[e.uid]
2813                }, t.resizeRunner = new Ui((function() { t.props.emitter.trigger("_resize", !0), t.props.emitter.trigger("windowResize", { view: t.props.viewApi }) })), t.handleWindowResize = function(e) {
2814                    var n = t.props.options;
2815                    n.handleWindowResize && e.target === window && t.resizeRunner.request(n.windowResizeDelay)
2816                }, t
2817            }
2818            return n(t, e), t.prototype.render = function() {
2819                var e, t = this.props,
2820                    n = t.toolbarConfig,
2821                    o = t.options,
2822                    i = this.buildToolbarProps(t.viewSpec, t.dateProfile, t.dateProfileGenerator, t.currentDate, Hr(t.options.now, t.dateEnv), t.viewTitle),
2823                    a = !1,
2824                    s = "";
2825                t.isHeightAuto || t.forPrint ? s = "" : null != o.height ? a = !0 : null != o.contentHeight ? s = o.contentHeight : e = Math.max(o.aspectRatio, .5);
2826                var l = this.buildViewContext(t.viewSpec, t.viewApi, t.options, t.dateProfileGenerator, t.dateEnv, t.theme, t.pluginHooks, t.dis
2826patch, t.getCurrentData, t.emitter, t.calendarApi, this.registerInteractiveComponent, this.unregisterInteractiveComponent),
2827                    u = n.header && n.header.hasTitle ? this.state.viewLabelId : "";
2828                return Oo(Go.Provider, { value: l }, n.header && Oo(ya, r({ ref: this.headerRef, extraClassName: "fc-header-toolbar", model: n.header, titleId: u }, i)), Oo(Sa, { liquid: a, height: s, aspectRatio: e, labeledById: u }, this.renderView(t), this.buildAppendContent()), n.footer && Oo(ya, r({ ref: this.footerRef, extraClassName: "fc-footer-toolbar", model: n.footer, titleId: "" }, i)))
2829            }, t.prototype.componentDidMount = function() {
2830                var e = this.props;
2831                this.calendarInteractions = e.pluginHooks.calendarInteractions.map((function(t) { return new t(e) })), window.addEventListener("resize", this.handleWindowResize);
2832                var t = e.pluginHooks.propSetHandlers;
2833                for (var n in t) t[n](e[n], e)
2834            }, t.prototype.componentDidUpdate = function(e) {
2835                var t = this.props,
2836                    n = t.pluginHooks.propSetHandlers;
2837                for (var r in n) t[r] !== e[r] && n[r](t[r], t)
2838            }, t.prototype.componentWillUnmount = function() {
2839                window.removeEventListener("resize", this.handleWindowResize), this.resizeRunner.clear();
2840                for (var e = 0, t = this.calendarInteractions; e < t.length; e++) { t[e].destroy() }
2841                this.props.emitter.trigger("_unmount")
2842            }, t.prototype.buildAppendContent = function() {
2843                var e = this.props,
2844                    t = e.pluginHooks.viewContainerAppends.map((function(t) { return t(e) }));
2845                return Oo.apply(void 0, o([Lo, {}], t))
2846            }, t.prototype.renderView = function(e) {
2847                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++) {
2848                    var s = a[i];
2849                    r(o, s.transform(o, e))
2850                }
2851                var l = n.component;
2852                return Oo(l, r({}, o))
2853            }, t
2854        }(qo);
2855
2856    function Da(e, t, n, r, o, i) {
2857        var a = n.build(o, void 0, !1),
2858            s = n.buildPrev(t, r, !1),
2859            l = n.buildNext(t, r, !1);
2860        return { title: i, activeButton: e.type, navUnit: e.singleUnit, isTodayEnabled: a.isValid && !tr(t.currentRange, o), isPrevEnabled: s.isValid, isNextEnabled: l.isValid }
2861    }
2862
2863    function Ra(e) { return e.map((function(e) { return new e })) }
2864    var wa = function(e) {
2865        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 }
2866        return n(t, e), t.prototype.render = function() {
2867            var e = this.props,
2868                t = e.options,
2869                n = this.state.forPrint,
2870                r = n || "auto" === t.height || "auto" === t.contentHeight,
2871                o = r || null == t.height ? "" : t.height,
2872                i = ["fc", n ? "fc-media-print" : "fc-media-screen", "fc-direction-" + t.direction, e.theme.getClass("root")];
2873            return so() || i.push("fc-liquid-hack"), e.children(i, o, r, n)
2874        }, t.prototype.componentDidMount = function() {
2875            var e = this.props.emitter;
2876            e.on("_beforeprint", this.handleBeforePrint), e.on("_afterprint", this.handleAfterPrint)
2877        }, t.prototype.componentWillUnmount = function() {
2878            var e = this.props.emitter;
2879            e.off("_beforeprint", this.handleBeforePrint), e.off("_afterprint", this.handleAfterPrint)
2880        }, t
2881    }(Yo);
2882
2883    function Ta(e, t) { return vn(!e || t > 10 ? { weekday: "short" } : t >
2883 1 ? { weekday: "short", month: "numeric", day: "numeric", omitCommas: !0 } : { weekday: "long" }) }
2884    var xa = "fc-col-header-cell";
2885
2886    function _a(e) { return e.text }
2887    var ka = function(e) {
2888            function t() { return null !== e && e.apply(this, arguments) || this }
2889            return n(t, e), t.prototype.render = function() {
2890                var e = this.context,
2891                    t = e.dateEnv,
2892                    n = e.options,
2893                    o = e.theme,
2894                    i = e.viewApi,
2895                    a = this.props,
2896                    s = a.date,
2897                    l = a.dateProfile,
2898                    u = po(s, a.todayRange, null, l),
2899                    c = [xa].concat(fo(u, o)),
2900                    d = t.format(s, a.dayHeaderFormat),
2901                    p = !u.isDisabled && a.colCnt > 1 ? mo(this.context, s) : {},
2902                    f = r(r(r({ date: t.toDate(s), view: i }, a.extraHookProps), { text: d }), u);
2903                return Oo(ni, { hookProps: f, classNames: n.dayHeaderClassNames, content: n.dayHeaderContent, defaultContent: _a, didMount: n.dayHeaderDidMount, willUnmount: n.dayHeaderWillUnmount }, (function(e, t, n, o) { return Oo("th", r({ ref: e, role: "columnheader", className: c.concat(t).join(" "), "data-date": u.isDisabled ? void 0 : qt(s), colSpan: a.colSpan }, a.extraDataAttrs), Oo("div", { className: "fc-scrollgrid-sync-inner" }, !u.isDisabled && Oo("a", r({ ref: n, className: ["fc-col-header-cell-cushion", a.isSticky ? "fc-sticky" : ""].join(" ") }, p), o))) }))
2904            }, t
2905        }(Yo),
2906        Ma = vn({ weekday: "long" }),
2907        Ia = function(e) {
2908            function t() { return null !== e && e.apply(this, arguments) || this }
2909            return n(t, e), t.prototype.render = function() {
2910                var e = this.props,
2911                    t = this.context,
2912                    n = t.dateEnv,
2913                    o = t.theme,
2914                    i = t.viewApi,
2915                    a = t.options,
2916                    s = nt(new Date(2592e5), e.dow),
2917                    l = { dow: e.dow, isDisabled: !1, isFuture: !1, isPast: !1, isToday: !1, isOther: !1 },
2918                    u = [xa].concat(fo(l, o), e.extraClassNames || []),
2919                    c = n.format(s, e.dayHeaderFormat),
2920                    d = r(r(r(r({ date: s }, l), { view: i }), e.extraHookProps), { text: c });
2921                return Oo(ni, { hookProps: d, classNames: a.dayHeaderClassNames, content: a.dayHeaderContent, defaultContent: _a, didMount: a.dayHeaderDidMount, willUnmount: a.dayHeaderWillUnmount }, (function(t, o, i, a) { return Oo("th", r({ ref: t, role: "columnheader", className: u.concat(o).join(" "), colSpan: e.colSpan }, e.extraDataAttrs), Oo("div", { className: "fc-scrollgrid-sync-inner" }, Oo("a", { "aria-label": n.format(s, Ma), className: ["fc-col-header-cell-cushion", e.isSticky ? "fc-sticky" : ""].join(" "), ref: i }, a))) }))
2922            }, t
2923        }(Yo),
2924        Pa = function(e) {
2925            function t(t, n) { var r = e.call(this, t, n) || this; return r.initialNowDate = Hr(n.options.now, n.dateEnv), r.initialNowQueriedMs = (new Date).valueOf(), r.state = r.computeTiming().currentState, r }
2926            return n(t, e), t.prototype.render = function() {
2927                var e = this.props,
2928                    t = this.state;
2929                return e.children(t.nowDate, t.todayRange)
2930            }, 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() {
2931                var e = this.props,
2932                    t = this.context,
2933                    n = rt(this.initialNowDate, (new Date).valueOf() - this.initialNowQueriedMs),
2934                    r = t.dateEnv.startOf(n, e.unit),
2935                    o = t.dateEnv.add(r, Ht(1, e.unit)),
2936                    i = o.valueOf() - n.valueOf();
2937                return i = Math.min(864e5, i), { currentState: { nowDate: r, todayRange: Na(r) }, nextState: { nowDate: o, todayRange: Na(o) }, waitMs: i }
2938            }, t.prototype.setTimeout = function() {
2939                var e = this,
2940                    t = this.computeTiming(),
2941                    n = t.nextState,
2942                    r = t.waitMs;
2943                this.timeoutId = setTimeout((function() { e.setState(n, (function() { e.setTimeout() })) }), r)
2944            }, t.prototype.clearTimeout = function() { this.timeoutId && clearTimeout(this.timeoutId) }, t.contextType = Go, t
2945        }(Ho);
2946
2947    function Na(e) { var t = ut(e); return { start: t, end: nt(t, 1) } }
2948    var Ha = function(e) {
2949        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.createDayHeaderFormatter = $t(Oa), t }
2950        return n(t, e), t.prototype.render = function() {
2951            var e = this.context,
2952                t = this.props,
2953                n = t.dates,
2954                r = t.dateProfile,
2955                o = t.datesRepDistinctDays,
2956                i = t.renderIntro,
2957                a = this.createDayHeaderFormatter(e.options.dayHeaderFormat, o, n.length);
2958            return Oo(Pa, { unit: "day" }, (function(e, t) { return Oo("tr", { role: "row" }, i && i("day"), n.map((function(e) { return o ? Oo(ka, { key: e.toISOString(), date: e, dateProfile: r, todayRange: t, colCnt: n.length, dayHeaderFormat: a }) : Oo(Ia, { key: e.getUTCDay(), dow: e.getUTCDay(), dayHeaderFormat: a }) }))) }))
2959        }, t
2960    }(Yo);
2961
2962    function Oa(e, t, n) { return e || Ta(t, n) }
2963    var Aa = function() {
2964            function e(e, t) {
2965                for (var n = e.start, r = e.end, o = [], i = [], a = -1; n < r;
2965) t.isHiddenDay(n) ? o.push(a + .5) : (a += 1, o.push(a), i.push(n)), n = nt(n, 1);
2966                this.dates = i, this.indices = o, this.cnt = i.length
2967            }
2968            return e.prototype.sliceRange = function(e) {
2969                var t = this.getDateDayIndex(e.start),
2970                    n = this.getDateDayIndex(nt(e.end, -1)),
2971                    r = Math.max(0, t),
2972                    o = Math.min(this.cnt - 1, n);
2973                return (r = Math.ceil(r)) <= (o = Math.floor(o)) ? { firstIndex: r, lastIndex: o, isStart: t === r, isEnd: n === o } : null
2974            }, e.prototype.getDateDayIndex = function(e) {
2975                var t = this.indices,
2976                    n = Math.floor(it(this.dates[0], e));
2977                return n < 0 ? t[0] - 1 : n >= t.length ? t[t.length - 1] + 1 : t[n]
2978            }, e
2979        }(),
2980        Wa = function() {
2981            function e(e, t) {
2982                var n, r, o, i = e.dates;
2983                if (t) {
2984                    for (r = i[0].getUTCDay(), n = 1; n < i.length && i[n].getUTCDay() !== r; n += 1);
2985                    o = Math.ceil(i.length / n)
2986                } else o = 1, n = i.length;
2987                this.rowCnt = o, this.colCnt = n, this.daySeries = e, this.cells = this.buildCells(), this.headerDates = this.buildHeaderDates()
2988            }
2989            return e.prototype.buildCells = function() {
2990                for (var e = [], t = 0; t < this.rowCnt; t += 1) {
2991                    for (var n = [], r = 0; r < this.colCnt; r += 1) n.push(this.buildCell(t, r));
2992                    e.push(n)
2993                }
2994                return e
2995            }, 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) {
2996                var t = this.colCnt,
2997                    n = this.daySeries.sliceRange(e),
2998                    r = [];
2999                if (n)
3000                    for (var o = n.firstIndex, i = n.lastIndex, a = o; a <= i;) {
3001                        var s = Math.floor(a / t),
3002                            l = Math.min((s + 1) * t, i + 1);
3003                        r.push({ row: s, firstCol: a % t, lastCol: (l - 1) % t, isStart: n.isStart && a === o, isEnd: n.isEnd && l - 1 === i }), a = l
3004                    }
3005                return r
3006            }, e
3007        }(),
3008        La = function() {
3009            function e() { this.sliceBusinessHours = $t(this._sliceBusinessHours), this.sliceDateSelection = $t(this._sliceDateSpan), this.sliceEventStore = $t(this._sliceEventStore), this.sliceEventDrag = $t(this._sliceInteraction), this.sliceEventResize = $t(this._sliceInteraction), this.forceDayIfListItem = !1 }
3010            return e.prototype.sliceProps = function(e, t, n, r) {
3011                for (var i = [], a = 4; a < arguments.length; a++) i[a - 4] = arguments[a];
3012                var s = e.eventUiBases,
3013                    l = this.sliceEventStore.apply(this, o([e.eventStore, s, t, n], i));
3014                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 }
3015            }, 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: rt(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([Mt(e, Ua(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 = nr(e, t, Ua(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 = nr(e.mutatedEvents, t, Ua(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) {
3016                for (var r = [], i = 3; i < arguments.length; i++) r[i - 3] = arguments[i];
3017                if (!e) return [];
3018                for (var a = Dr(e, t, n), s = this.sliceRange.apply(this, o([e.range], r)), l = 0, u = s; l < u.length; l++) {
3019                    var c = u[l];
3020                    c.eventRange = a
3021                }
3022                return s
3023            }, e.prototype.sliceEventRanges = function(e, t) {
3024                for (var n = [], r = 0, o = e; r < o.length; r++) {
3025                    var i = o[r];
3026                    n.push.apply(n, this.sliceEventRange(i, t))
3027                }
3028                return n
3029            }, e.prototype.sliceEventRange = function(e, t) {
3030                var n = e.range;
3031                this.forceDayIfListItem && "list-item" === e.ui.display && (n = { start: n.start, end: nt(n.start, 1) });
3032                for (var r = this.sliceRange.apply(this, o([n], t)), i = 0, a = r; i < a.length; i++) {
3033                    var s = a[i];
3034                    s.eventRange = e, s.isStart = e.isStart && s.isStart, s.isEnd = e.isEnd && s.isEnd
3035                }
3036                return r
3037            }, e
3038        }();
3039
3040    function Ua(e, t) { var n = e.activeRange; return t ? n : { start: rt(n.start, e.slotMinTime.milliseconds), end: rt(n.end, e.slotMaxTime.milliseconds - 864e5) } }
3041
3042    function Ba(e, t, n) {
3043        var r = e.mutatedEvents.instances;
3044        for (var o in r)
3045            if (!er(t.validRange, r[o].range)) return !1;
3046        return Va({ eventDrag: e }, n)
3047    }
3048
3049    function za(e, t, n) { return !!er(t.validRange, e.range) && Va({ dateSelection: e }, n) }
3050
3051    function Va(e, t) {
3052        var n = t.getCurrentData(),
3053            o = r({ businessHours: n.businessHours, dateSelection: "", eventStore: n.eventStore, eventUiBases: n.eventUiBases, eventSelection: "", eventDrag: null, eventResize: null }, e);
3054        return (t.pluginHooks.isPropsValid || Fa)(o, t)
3055    }
3056
3057    function Fa(e, t, n, o) {
3058        return void 0 === n && (n = {}), !(e.eventDrag && ! function(e, t, n, o) {
3059            var i = t.getCurrentData(),
3060                a = e.eventDrag,
3061                s = a.mutatedEvents,
3062                l = s.defs,
3063                u = s.instances,
3064                c = ar(l, a.isEvent ? e.eventUiBases : { "": i.selectionConfig });
3065            o && (c = Ct(c, o));
3066            var d = (v = e.eventStore, g = a.affectedEvents.instances, { defs: v.defs, instances: bt(v.instances, (function(e) { return !g[e.instanceId] })) }),
3067                p = d.defs,
3068                f = d.instances,
3069                h = ar(p, e.eventUiBases);
3070            var v, g;
3071            for (var m in u) {
3072                var y = u[m],
3073                    S = y.range,
3074                    E = c[y.defId],
3075                    b = l[y.defId];
3076                if (!Ga(E.constraints, S, d, e.businessHours, t)) return !1;
3077                var C = t.options.eventOverlap,
3078                    D = "function" == typeof C ? C : null;
3079                for (var R in f) { var w = f[R]; if (Qn(S, w.range)) { if (!1 === h[w.defId].overlap && a.isEvent) return !1; if (!1 === E.overlap) return !1; if (D && !D(new Ar(t, p[w.defId], w), new Ar(t, b, y))) return !1 } }
3080                for (var T = i.eventStore, x = 0, _ = E.allows; x < _.length; x++) {
3081                    var k = _[x],
3082                        M = r(r({}, n), { range: y.range, allDay: b.allDay }),
3083                        I = T.defs[b.defId],
3084                        P = T.instances[m],
3085                        N = void 0;
3086                    if (N = I ? new Ar(t, I, P) : new Ar(t, b), !k(wr(M, t), N)) return !1
3087                }
3088            }
3089            return !0
3090        }(e, t, n, o)) && !(e.dateSelection && ! function(e, t, n, o) {
3091            var i = e.eventStore,
3092                a = i.defs,
3093                s = i.instances,
3094                l = e.dateSelection,
3095                u = l.range,
3096                c = t.getCurrentData().selectionConfig;
3097            o && (c = o(c));
3098            if (!Ga(c.constraints, u, i, e.businessHours, t)) return !1;
3099            var d = t.options.selectOverlap,
3100                p = "function" == typeof d ? d : null;
3101            for (var f in s) { var h = s[f]; if (Qn(u, h.range)) { if (!1 === c.overlap) return !1; if (p && !p(new Ar(t, a[h.defId], h), null)) return !1 } }
3102            for (var v = 0, g = c.allows; v < g.length; v++) { if (!(0, g[v])(wr(r(r({}, n), l), t), null)) return !1 }
3103            return !0
3104        }(e, t, n, o))
3105    }
3106
3107    function Ga(e, t, n, r, o) { for (var i = 0, a = e; i < a.length; i++) { if (!Ya(ja(a[i], t, n, r, o), t)) return !1 } return !0 }
3108
3109    function ja(e, t, n, r, o) { return "businessHours" === e ? qa(Mt(r, t, o)) : "string" == typeof e ? qa(In(n, (function(t) { return t.groupId === e }))) : "object" == typeof e && e ? qa(Mt(e, t, o)) : [] }
3110
3111    function qa(e) {
3112        var t = e.instances,
3113            n = [];
3114        for (var r in t) n.push(t[r].range);
3115        return n
3116    }
3117
3118    function Ya(e, t) { for (var n = 0, r = e; n < r.length; n++) { if (er(r[n], t)) return !0 } return !1 }
3119    var Za = /^(visible|hidden)$/,
3120        Xa = function(e) {
3121            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.handleEl = function(e) { t.el = e, Ko(t.props.elRef, e) }, t }
3122            return n(t, e), t.prototype.render = function() {
3123                var e = this.props,
3124                    t = e.liquid,
3125                    n = e.liquidIsAbsolute,
3126                    r = t && n,
3127                    o = ["fc-scroller"];
3128                return t && (n ? o.push("fc-scroller-liquid-absolute") : o.push("fc-scroller-liquid")), Oo("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)
3129            }, t.prototype.needsXScrolling = function() { if (Za.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 (Za.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 Za.test(this.props.overflowX) ? 0 : this.el.offsetHeight - this.el.clientHeight }, t.prototype.getYScrollbarWidth = function() { return Za.test(this.props.overflowY) ? 0 : this.el.offsetWidth - this.el.clientWidth }, t
3130        }(Yo),
3131        Ka = function() {
3132            function e(e) {
3133                var t = this;
3134                this.masterCallback = e, this.currentMap = {}, this.depths = {}, this.callbackMap = {}, this.handleValue = function(e, n) {
3135                    var r = t,
3136                        o = r.depths,
3137                        i = r.currentMap,
3138                        a = !1,
3139                        s = !1;
3140                    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)))
3141                }
3142            }
3143            return e.prototype.createRef = function(e) {
3144                var t = this,
3145                    n = this.callbackMap[e];
3146                return n || (n = this.callbackMap[e] = function(n) { t.handleValue(n, String(e)) }), n
3147            }, e.prototype.collect = function(e, t, n) { return kt(this.currentMap, e, t, n) }, e.prototype.getAll = function() { return Rt(this.currentMap) }, e
3148        }();
3149
3150    function $a(e) {
3151        for (var t = 0, n = 0, r = Ce(e, ".fc-scrollgrid-shrink"); n < r.length; n++) {
3152            var o = r[n];
3153            t = Math.max(t, Qe(o))
3154        }
3155        return Math.ceil(t)
3156    }
3157
3158    function Ja(e, t) { return e.liquid && t.liquid }
3159
3160    function Qa(e, t) { return null != t.maxHeight || Ja(e, t) }
3161
3162    function es(e, t, n, r) { var o = n.expandRows; return "function" == typeof t.content ? t.content(n) : Oo("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, Oo(r ? "thead" : "tbody", { role: "presentation" }, "function" == typeof t.rowContent ? t.rowContent(n) : t.rowContent)) }
3163
3164    function ts(e, t) { return Kt(e, t, wt) }
3165
3166    function ns(e, t) {
3167        for (var n = [], r = 0, i = e; r < i.length; r++)
3168            for (var a = i[r], s = a.span || 1, l = 0; l < s; l += 1) n.push(Oo("col", { style: { width: "shrink" === a.width ? rs(t) : a.width || "", minWidth: a.minWidth || "" } }));
3169        return Oo.apply(void 0, o(["colgroup", {}
3169], n))
3170    }
3171
3172    function rs(e) { return null == e ? 4 : e }
3173
3174    function os(e) { for (var t = 0, n = e; t < n.length; t++) { if ("shrink" === n[t].width) return !0 } return !1 }
3175
3176    function is(e, t) { var n = ["fc-scrollgrid", t.theme.getClass("table")]; return e && n.push("fc-scrollgrid-liquid"), n }
3177
3178    function as(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 }
3179
3180    function ss(e) { return Oo("div", { className: "fc-scrollgrid-sticky-shim", style: { width: e.clientWidth, minWidth: e.tableMinWidth } }) }
3181
3182    function ls(e) { var t = e.stickyHeaderDates; return null != t && "auto" !== t || (t = "auto" === e.height || "auto" === e.viewHeight), t }
3183
3184    function us(e) { var t = e.stickyFooterScrollbar; return null != t && "auto" !== t || (t = "auto" === e.height || "auto" === e.viewHeight), t }
3185    var cs = function(e) {
3186        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.processCols = $t((function(e) { return e }), ts), t.renderMicroColGroup = $t(ns), t.scrollerRefs = new Ka, t.scrollerElRefs = new Ka(t._handleScrollerEl.bind(t)), t.state = { shrinkWidth: null, forceYScrollbars: !1, scrollerClientWidths: {}, scrollerClientHeights: {} }, t.handleSizing = function() { t.safeSetState(r({ shrinkWidth: t.computeShrinkWidth() }, t.computeScrollerDims())) }, t }
3187        return n(t, e), t.prototype.render = function() {
3188            var e = this,
3189                t = e.props,
3190                n = e.state,
3191                r = e.context,
3192                i = t.sections || [],
3193                a = this.processCols(t.cols),
3194                s = this.renderMicroColGroup(a, n.shrinkWidth),
3195                l = is(t.liquid, r);
3196            t.collapsibleWidth && l.push("fc-scrollgrid-collapsible");
3197            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;
3198            for (; d < c && "body" === (u = i[d]).type;) f.push(this.renderSection(u, s, !1)), d += 1;
3199            for (; d < c && "footer" === (u = i[d]).type;) h.push(this.renderSection(u, s, !0)), d += 1;
3200            var v = !so(),
3201                g = { role: "rowgroup" };
3202            return Oo("table", { role: "grid", className: l.join(" "), style: { height: t.height } }, Boolean(!v && p.length) && Oo.apply(void 0, o(["thead", g], p)), Boolean(!v && f.length) && Oo.apply(void 0, o(["tbody", g], f)), Boolean(!v && h.length) && Oo.apply(void 0, o(["tfoot", g], h)), v && Oo.apply(void 0, o(o(o(["tbody", g], p), f), h)))
3203        }, t.prototype.renderSection = function(e, t, n) { return "outerContent" in e ? Oo(Lo, { key: e.key }, e.outerContent) : Oo("tr", { key: e.key, role: "presentation", className: as(e, this.props.liquid).join(" ") }, this.renderChunkTd(e, t, e.chunk, n)) }, t.prototype.renderChunkTd = function(e, t, n, r) {
3204            if ("outerContent" in n) return n.outerContent;
3205            var o = this.props,
3206                i = this.state,
3207                a = i.forceYScrollbars,
3208                s = i.scrollerClientWidths,
3209                l = i.scrollerClientHeights,
3210                u = Qa(o, e),
3211                c = Ja(o, e),
3212                d = o.liquid ? a ? "scroll" : u ? "auto" : "hidden" : "visible",
3213                p = e.key,
3214                f = es(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);
3215            return Oo(r ? "th" : "td", { ref: n.elRef, role: "presentation" }, Oo("div", { className: "fc-scroller-harness" + (c ? " fc-scroller-harness-liquid" : "") }, Oo(Xa, { 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)))
3216        }, t.prototype._handleScrollerEl = function(e, t) {
3217            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);
3218            n && Ko(n.chunk.scrollerElRef, e)
3219        }, t.prototype.componentDidMount = function() { this.handleSizing(
3219), 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 os(this.props.cols) ? $a(this.scrollerElRefs.getAll()) : 0 }, t.prototype.computeScrollerDims = function() {
3220            var e = bo(),
3221                t = this.scrollerRefs,
3222                n = this.scrollerElRefs,
3223                r = !1,
3224                o = {},
3225                i = {};
3226            for (var a in t.currentMap) { var s = t.currentMap[a]; if (s && s.needsYScrolling()) { r = !0; break } }
3227            for (var l = 0, u = this.props.sections; l < u.length; l++) {
3228                a = u[l].key;
3229                var c = n.currentMap[a];
3230                if (c) {
3231                    var d = c.parentNode;
3232                    o[a] = Math.floor(d.getBoundingClientRect().width - (r ? e.y : 0)), i[a] = Math.floor(d.getBoundingClientRect().height)
3233                }
3234            }
3235            return { forceYScrollbars: r, scrollerClientWidths: o, scrollerClientHeights: i }
3236        }, t
3237    }(Yo);
3238    cs.addStateEquality({ scrollerClientWidths: wt, scrollerClientHeights: wt });
3239    var ds = function(e) {
3240            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.elRef = Wo(), t }
3241            return n(t, e), t.prototype.render = function() {
3242                var e = this.props,
3243                    t = this.context,
3244                    n = t.options,
3245                    r = e.seg,
3246                    o = r.eventRange,
3247                    i = o.ui,
3248                    a = { event: new Ar(t, o.def, o.instance), view: t.viewApi, timeText: e.timeText, textColor: i.textColor, backgroundColor: i.backgroundColor, borderColor: i.borderColor, isDraggable: !e.disableDragging && cr(r, t), isStartResizable: !e.disableResizing && dr(r, t), isEndResizable: !e.disableResizing && pr(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) },
3249                    s = vr(a).concat(i.classNames);
3250                return Oo(ni, { 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) }))
3251            }, t.prototype.componentDidMount = function() { or(this.elRef.current, this.props.seg) }, t.prototype.componentDidUpdate = function(e) {
3252                var t = this.props.seg;
3253                t !== e.seg && or(this.elRef.current, t)
3254            }, t
3255        }(Yo),
3256        ps = function(e) {
3257            function t() { return null !== e && e.apply(this, arguments) || this }
3258            return n(t, e), t.prototype.render = function() {
3259                var e = this.props,
3260                    t = this.context,
3261                    n = e.seg,
3262                    o = t.options.eventTimeFormat || e.defaultTimeFormat,
3263                    i = fr(n, o, t, e.defaultDisplayEventTime, e.defaultDisplayEventEnd);
3264                return Oo(ds, { seg: n, timeText: i, disableDragging: e.disableDragging, disableResizing: e.disableResizing, defaultContent: e.defaultContent || fs, 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 Oo("a", r({ className: e.extraClassNames.concat(i).join(" "), style: { borderColor: l.borderColor, backgroundColor: l.backgroundColor }, ref: o }, mr(n, t)), Oo("div", { className: "fc-event-main", ref: a, style: { color: l.textColor } }, s), l.isStartResizable && Oo("div", { className: "fc-event-resizer fc-event-resizer-start" }), l.isEndResizable && Oo("div", { className: "fc-event-resizer fc-event-resizer-end" })) }))
3265            }, t
3266        }(Yo);
3267
3268    function fs(e) { return Oo("div", { className: "fc-event-main-frame" }, e.timeText && Oo("div", { className: "fc-event-time" }, e.timeText), Oo("div", { className: "fc-event-title-container" }, Oo("div", { className: "fc-event-title fc-sticky" }, e.event.title || Oo(Lo, null, " ")))) }
3269    var hs = function(e) {
3270            return Oo(Go.Consumer, null, (function(t) {
3271                var n = t.options,
3272                    r = { isAxis: e.isAxis, date: t.dateEnv.toDate(e.date), view: t.viewApi };
3273                return Oo(ni, { hookProps: r, classNames: n.nowIndicatorClassNames, content: n.nowIndicatorContent, didMount: n.nowIndicatorDidMount, willUnmount: n.nowIndicatorWillUnmount }, e.children)
3274            }))
3275        },
3276        vs = vn({ day: "numeric" }),
3277        gs = function(e) {
3278            function t() { return null !== e && e.apply(this, arguments) || this }
3279            return n(t, e), t.prototype.render = function() {
3280                var e = this.props,
3281                    t = this.context,
3282                    n = t.options,
3283                    r = ms({ date: e.date, dateProfile: e.dateProfile, todayRange: e.todayRange, showDayNumber: e.showDayNumber, extraProps: e.extraHookProps, viewApi: t.viewApi, dateEnv: t.dateEnv });
3284                return Oo(oi, { hookProps: r, content: n.dayCellContent, defaultContent: e.defaultContent }, e.children)
3285            }, t
3286        }(Yo);
3287
3288    function ms(e) {
3289        var t = e.date,
3290            n = e.dateEnv,
3291            o = po(t, e.todayRange, null, e.dateProfile);
3292        return r(r(r({ date: n.toDate(t), view: e.viewApi }, o), { dayNumberText: e.showDayNumber ? n.format(t, vs) : "" }), e.extraProps)
3293    }
3294    var ys = function(e) {
3295        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.refineHookProps = Jt(ms), t.normalizeClassNames = si(), t }
3296        return n(t, e), t.prototype.render = function() {
3297            var e = this.props,
3298                t = this.context,
3299                n = t.options,
3300                r = this.refineHookProps({ date: e.date, dateProfile: e.dateProfile, todayRange: e.todayRange, showDayNumber: e.showDayNumber, extraProps: e.extraHookProps, viewApi: t.viewApi, dateEnv: t.dateEnv }),
3301                o = fo(r, t.theme).concat(r.isDisabled ? [] : this.normalizeClassNames(n.dayCellClassNames, r)),
3302                i = r.isDisabled ? {} : { "data-date": qt(e.date) };
3303            return Oo(ai, { hookProps: r, didMount: n.dayCellDidMount, willUnmount: n.dayCellWillUnmount, elRef: e.elRef }, (function(t) { return e.children(t, o, i, r.isDisabled) }))
3304        }, t
3305    }(Yo);
3306
3307    function Ss(e) { return Oo("div", { className: "fc-" + e }) }
3308    var Es = function(e) { return Oo(ds, { defaultContent: bs, 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 Oo("div", { ref: e, className: ["fc-bg-event"].concat(t).join(" "), style: { backgroundColor: o.backgroundColor } }, r) })) };
3309
3310    function bs(e) { return e.event.title && Oo("div", { className: "fc-event-title" }, e.event.title) }
3311    var Cs = function(e) {
3312        return Oo(Go.Consumer, null, (function(t) {
3313            var n = t.dateEnv,
3314                r = t.options,
3315                o = e.date,
3316                i = r.weekNumberFormat || e.defaultFormat,
3317                a = n.computeWeekNumber(o),
3318                s = n.format(o, i);
3319            return Oo(ni, { hookProps: { num: a, text: s, date: o }, classNames: r.weekNumberClassNames, content: r.weekNumberContent, defaultContent: Ds, didMount: r.weekNumberDidMount, willUnmount: r.weekNumberWillUnmount }, e.children)
3320        }))
3321    };
3322
3323    function Ds(e) { return e.text }
3324    var Rs = function(e) {
3325            function t() {
3326                var t = null !== e && e.apply(this, arguments) || this;
3327                return t.state = { titleId: Me() }, t.handleRootEl = function(e) { t.rootEl = e, t.props.elRef && Ko(t.props.elRef, e) }, t.handleDocumentMouseDown = function(e) {
3328                    var n = xe(e);
3329                    t.rootEl.contains(n) || t.handleCloseClick()
3330                }, t.handleDocumentKeyDown = function(e) { "Escape" === e.key && t.handleCloseClick() }, t.handleCloseClick = function() {
3331                    var e = t.props.onClose;
3332                    e && e()
3333                }, t
3334            }
3335            return n(t, e), t.prototype.render = function() {
3336                var e = this.context,
3337                    t = e.theme,
3338                    n = e.options,
3339                    o = this.props,
3340                    i = this.state,
3341                    a = ["fc-popover", t.getClass("popover")].concat(o.extraClassNames || []);
3342                return Bo(Oo("div", r({ id: o.id, className: a.join(" "), "aria-labelledby": i.titleId }, o.extraAttrs, { ref: this.handleRootEl }), Oo("div", { className: "fc-popover-header " + t.getClass("popoverHeader") }, Oo("span", { className: "fc-popover-title", id: i.titleId }, o.title), Oo("span", { className: "fc-popover-close " + t.getIconClass("close"), title: n.closeHint, onClick: this.handleCloseClick })), Oo("div", { className: "fc-popover-body " + t.getClass("popoverContent") }, o.children)), o.parentEl)
3343            }, 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() {
3344                var e = this.context.isRtl,
3345                    t = this.props,
3346                    n = t.alignmentEl,
3347                    r = t.alignGridTop,
3348                    o = this.rootEl,
3349                    i = function(e) {
3350                        for (var t = To(e), n = e.getBoundingClientRect(), r = 0, o = t; r < o.length; r++) {
3351                            var i = no(n, o[r].getBoundingClientRect());
3352                            if (!i) return null;
3353                            n = i
3354                        }
3355                        return n
3356                    }(n);
3357                if (i) {
3358                    var a = o.getBoundingClientRect(),
3359                        s = r ? Ee(n, ".fc-scrollgrid").getBoundingClientRect().top : i.top,
3360                        l = e ? i.right - a.width : i.left;
3361                    s = Math.max(s, 10), l = Math.min(l, document.documentElement.clientWidth - 10 - a.width), l = Math.max(l, 10);
3362                    var u = o.offsetParent.getBoundingClientRect();
3363                    we(o, { top: s - u.top, left: l - u.left })
3364                }
3365            }, t
3366        }(Yo),
3367        ws = function(e) {
3368            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 }
3369            return n(t, e), t.prototype.render = function() {
3370                var e = this.context,
3371                    t = e.options,
3372                    n = e.dateEnv,
3373                    r = this.props,
3374                    o = r.startDate,
3375                    i = r.todayRange,
3376                    a = r.dateProfile,
3377                    s = n.format(o, t.dayPopoverFormat);
3378                return Oo(ys, { date: o, dateProfile: a, todayRange: i, elRef: this.handleRootEl }, (function(e, t, n) { return Oo(Rs, { 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 }, Oo(gs, { date: o, dateProfile: a, todayRange: i }, (function(e, t) { return t && Oo("div", { className: "fc-more-popover-misc", ref: e }, t) })), r.children) }))
3379            }, t.prototype.queryHit = function(e, t, n, o) {
3380                var i = this.rootEl,
3381                    a = this.props;
3382                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
3383            }, t
3384        }($o),
3385        Ts = function(e) {
3386            function t() {
3387                var t = null !== e && e.apply(this, arguments) || this;
3388                return t.linkElRef = Wo(), t.state = { isPopoverOpen: !1, popoverId: Me() }, t.handleClick = function(e) {
3389                    var n = t,
3390                        r = n.props,
3391                        o = n.context,
3392                        i = o.options.moreLinkClick,
3393                        a = _s(r).start;
3394
3395                    function s(e) {
3396                        var t = e.eventRange,
3397                            n = t.def,
3398                            r = t.instance,
3399                            i = t.range;
3400                        return { event: new Ar(o, n, r), start: o.dateEnv.toDate(i.start), end: o.dateEnv.toDate(i.end), isStart: e.isStart, isEnd: e.isEnd }
3401                    }
3402                    "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 })
3403                }, t.handlePopoverClose = function() { t.setState({ isPopoverOpen: !1 }) }, t
3404            }
3405            return n(t, e), t.prototype.render = function() {
3406                var e = this,
3407                    t = this.props,
3408                    n = this.state;
3409                return Oo(Go.Consumer, null, (function(r) {
3410                    var o = r.viewApi,
3411                        i = r.options,
3412                        a = r.calendarApi,
3413                        s = i.moreLinkText,
3414                        l = t.moreCnt,
3415                        u = _s(t),
3416                        c = "function" == typeof s ? s.call(a, l) : "+" + l + " " + s,
3417                        d = Ke(i.moreLinkHint, [l], c),
3418                        p = { num: l, shortText: "+" + l, text: c, view: o };
3419                    return Oo(Lo, null, Boolean(t.moreCnt) && Oo(ni, { elRef: e.linkElRef, hookProps: p, classNames: i.moreLinkClassNames, content: i.moreLinkContent, defaultContent: t.defaultContent || xs, 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 && Oo(ws, { 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()))
3420                }))
3421            }, t.prototype.componentDidMount = function() { this.updateParentEl() }, t.prototype.componentDidUpdate = function() { this.updateParentEl() }, t.prototype.updateParentEl = function() { this.linkElRef.current && (this.parentEl = Ee(this.linkElRef.current, ".fc-view-harness")) }, t
3422        }(Yo);
3423
3424    function xs(e) { return e.text }
3425
3426    function _s(e) { if (e.allDayDate) return { start: e.allDayDate, end: nt(e.allDayDate, 1) }; var t, n = e.hiddenSegs; return { start: ks(n), end: (t = n, t.reduce(Is).eventRange.range.end) } }
3427
3428    function ks(e) { return e.reduce(Ms).eventRange.range.start }
3429
3430    function Ms(e, t) { return e.eventRange.range.start < t.eventRange.range.start ? e : t }
3431
3432    function Is(e, t) { return e.eventRange.range.end > t.eventRange.range.end ? e : t }
3433    var Ps = function(e) {
3434        function t(t, n) {
3435            void 0 === n && (n = {});
3436            var o = e.call(this) || this;
3437            return o.isRendering = !1, o.isRendered = !1, o.currentClassNames = [], o.customContentRenderId = 0, o.handleAction = function(e) {
3438                switch (e.type) {
3439                    case "SET_EVENT_DRAG":
3440                    case "SET_EVENT_RESIZE":
3441                        o.renderRunner.tryDrain()
3442                }
3443            }, o.handleData = function(e) { o.currentData = e, o.renderRunner.request(e.calendarOptions.rerenderDelay) }, o.handleRenderRequest = function() {
3444                if (o.isRendering) {
3445                    o.isRendered = !0;
3446                    var e = o.currentData;
3447                    zo((function() { Ao(Oo(wa, { options: e.calendarOptions, theme: e.theme, emitter: e.emitter }, (function(t, n, i, a) { return o.setClassNames(t), o.setHeight(n), Oo(ri.Provider, { value: o.customContentRenderId }, Oo(Ca, r({ isHeightAuto: i, forPrint: a }, e))) })), o.el) }))
3448                } else o.isRendered && (o.isRendered = !1, Vo(o.el), o.setClassNames([]), o.setHeight(""))
3449            }, o.el = t, o.renderRunner = new Ui(o.handleRenderRequest), new Vi({ optionOverrides: n, calendarApi: o, onAction: o.handleAction, onData: o.handleData }), o
3450        }
3451        return n(t, e), Object.defineProperty(t.prototype, "view", { get: function() { return this.currentData.viewApi }, enumerable: !1, configurable: !0 }), t.prototype.render = function() {
3452            var e = this.isRendering;
3453            e ? this.customContentRenderId += 1 : this.isRendering = !0, this.renderRunner.request(), e && this.updateSize()
3454        }, t.prototype.destroy = function() { this.isRendering && (this.isRendering = !1, this.renderRunner.request()) }, t.prototype.updateSize = function() {
3455            var t = this;
3456            zo((function() { e.prototype.updateSize.call(t) }))
3457        }, 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) {
3458            if (!Kt(e, this.currentClassNames)) {
3459                for (var t = this.el.classList, n = 0, r = this.currentClassNames; n < r.length; n++) {
3460                    var o = r[n];
3461                    t.remove(o)
3462                }
3463                for (var i = 0, a = e; i < a.length; i++) {
3464                    o = a[i];
3465                    t.add(o)
3466                }
3467                this.currentClassNames = e
3468            }
3469        }, t.prototype.setHeight = function(e) { Te(this.el, "height", e) }, t
3470    }(Or);
3471    ha.touchMouseIgnoreWait = 500;
3472    var Ns = 0,
3473        Hs = 0,
3474        Os = !1,
3475        As = function() {
3476            function e(e) {
3477                var t = this;
3478                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) {
3479                    if (!t.shouldIgnoreMouse() && function(e) { return 0 === e.button && !e.ctrlKey }(e) && t.tryStart(e)) {
3480                        var n = t.createEventFromMouse(e, !0);
3481                        t.emitter.trigger("pointerdown", n), t.initScrollWatch(n), t.shouldIgnoreMove || document.addEventListener("mousemove", t.handleMouseMove), document.addEventListener("mouseup", t.handleMouseUp)
3482                    }
3483                }, this.handleMouseMove = function(e) {
3484                    var n = t.createEventFromMouse(e);
3485                    t.recordCoords(n), t.emitter.trigger("pointermove", n)
3486                }, 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) {
3487                    if (t.tryStart(e)) {
3488                        t.isTouchDragging = !0;
3489                        var n = t.createEventFromTouch(e, !0);
3490                        t.emitter.trigger("pointerdown", n), t.initScrollWatch(n);
3491                        var r = e.target;
3492                        t.shouldIgnoreMove || r.addEventListener("touchmove", t.handleTouchMove), r.addEventListener("touchend", t.handleTouchEnd), r.addEventListener("touchcancel", t.handleTouchEnd), window.addEventListener("scroll", t.handleTouchScroll, !0)
3493                    }
3494                }, this.handleTouchMove = function(e) {
3495                    var n = t.createEventFromTouch(e);
3496                    t.recordCoords(n), t.emitter.trigger("pointermove", n)
3497                }, this.handleTouchEnd = function(e) {
3498                    if (t.isDragging) {
3499                        var n = e.target;
3500                        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, Ns += 1, setTimeout((function() { Ns -= 1 }), ha.touchMouseIgnoreWait)
3501                    }
3502                }, this.handleTouchScroll = function() { t.wasTouchScroll = !0 }, this.handleScroll = function(e) {
3503                    if (!t.shouldIgnoreMove) {
3504                        var n = window.pageXOffset - t.prevScrollX + t.prevPageX,
3505                            r = window.pageYOffset - t.prevScrollY + t.prevPageY;
3506                        t.emitter.trigger("pointermove", { origEvent: e, isTouch: t.isTouchDragging, subjectEl: t.subjectEl, pageX: n, pageY: r, deltaX: n - t.origPageX, deltaY: r - t.origPageY })
3507                    }
3508                }, this.containerEl = e, this.emitter = new _o, e.addEventListener("mousedown", this.handleMouseDown), e.addEventListener("touchstart", this.handleTouchStart, { passive: !0 }), 1 === (Hs += 1) && window.addEventListener("touchmove", Ws, { passive: !1 })
3509            }
3510            return e.prototype.destroy = function() { this.containerEl.removeEventListener("mousedown", this.handleMouseDown), this.containerEl.removeEventListener("touchstart", this.handleTouchStart, { passive: !0 }), (Hs -= 1) || window.removeEventListener("touchmove", Ws, { passive: !1 }) }, e.prototype.tryStart = function(e) {
3511                var t = this.querySubjectEl(e),
3512                    n = e.target;
3513                return !(!t || this.handleSelector && !Ee(n, this.handleSelector)) && (this.subjectEl = t, this.isDragging = !0, this.wasTouchScroll = !1, !0)
3514            }, e.prototype.cleanup = function() { Os = !1, this.isDragging = !1, this.subjectEl = null, this.destroyScrollWatch() }, e.prototype.querySubjectEl = function(e) { return this.selector ? Ee(e.target, this.selector) : this.containerEl }, e.prototype.shouldIgnoreMouse = function() { return Ns || this.isTouchDragging }, e.prototype.cancelTouchScroll = function() { this.isDragging && (Os = !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) {
3515                var n = 0,
3516                    r = 0;
3517                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 }
3518            }, e.prototype.createEventFromTouch = function(e, t) {
3519                var n, r, o = e.touches,
3520                    i = 0,
3521                    a = 0;
3522                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 }
3523            }, e
3524        }();
3525
3526    function Ws(e) { Os && e.preventDefault() }
3527    var Ls = function() {
3528            function e() { this.isVisible = !1, this.sourceEl = null, this.mirrorEl = null, this.sourceElRect = null, this.parentNode = document.body, this.zIndex = 9999, this.revertDuration = 0 }
3529            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) {
3530                var n = this,
3531                    r = function() { n.cleanup(), t() };
3532                e && this.mirrorEl && this.isVisible && this.revertDuration && (this.deltaX || this.deltaY) ? this.doRevertAnimation(r, this.revertDuration) : setTimeout(r, 0)
3533            }, e.prototype.doRevertAnimation = function(e, t) {
3534                var n = this.mirrorEl,
3535                    r = this.sourceEl.getBoundingClientRect();
3536                n.style.transition = "top " + t + "ms,left " + t + "ms", we(n, { left: r.left, top: r.top }), He(n, (function() { n.style.transition = "", e() }))
3537            }, e.prototype.cleanup = function() { this.mirrorEl && (Se(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() {
3538                var e = this.sourceElRect,
3539                    t = this.mirrorEl;
3540                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
3541            }, e
3542        }(),
3543        Us = function(e) {
3544            function t(t, n) { var r = e.call(this) || this;
3544 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 }
3545            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
3546        }(Mo),
3547        Bs = function(e) {
3548            function t(t, n) { return e.call(this, new Io(t), n) || this }
3549            return n(t, e), t.prototype.getEventTarget = function() { return this.scrollController.el }, t.prototype.computeClientRect = function() { return Ro(this.scrollController.el) }, t
3550        }(Us),
3551        zs = function(e) {
3552            function t(t) { return e.call(this, new Po, t) || this }
3553            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
3554        }(Us),
3555        Vs = "function" == typeof performance ? performance.now : Date.now,
3556        Fs = function() {
3557            function e() {
3558                var e = this;
3559                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() {
3560                    if (e.isAnimating) {
3561                        var t = e.computeBestEdge(e.pointerScreenX + window.pageXOffset, e.pointerScreenY + window.pageYOffset);
3562                        if (t) {
3563                            var n = Vs();
3564                            e.handleSide(t, (n - e.msSinceRequest) / 1e3), e.requestAnimation(n)
3565                        } else e.isAnimating = !1
3566                    }
3567                }
3568            }
3569            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) {
3570                if (this.isEnabled) {
3571                    var n = e - window.pageXOffset,
3572                        r = t - window.pageYOffset,
3573                        o = null === this.pointerScreenY ? 0 : r - this.pointerScreenY,
3574                        i = null === this.pointerScreenX ? 0 : n - this.pointerScreenX;
3575                    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(Vs()))
3576                }
3577            }, e.prototype.stop = function() {
3578                if (this.isEnabled) {
3579                    this.isAnimating = !1;
3580                    for (var e = 0, t = this.scrollCaches; e < t.length; e++) { t[e].destroy() }
3581                    this.scrollCaches = null
3582                }
3583            }, e.prototype.requestAnimation = function(e) { this.msSinceRequest = e, requestAnimationFrame(this.animate) }, e.prototype.handleSide = function(e, t) {
3584                var n = e.scrollCache,
3585                    r = this.edgeThreshold,
3586                    o = r - e.distance,
3587                    i = o * o / (r * r) * this.maxVelocity * t,
3588                    a = 1;
3589                switch (e.name) {
3590                    case "left":
3591                        a = -1;
3592                    case "right":
3593                        n.setScrollLeft(n.getScrollLeft() + i * a);
3594                        break;
3595                    case "top":
3596                        a = -1;
3597                    case "bottom":
3598                        n.setScrollTop(n.getScrollTop() + i * a)
3599                }
3600            }, e.prototype.computeBestEdge = function(e, t) {
3601                for (var n = this.edgeThreshold, r = null, o = 0, i = this.scrollCaches || []; o < i.length; o++) {
3602                    var a = i[o],
3603                        s = a.clientRect,
3604                        l = e - s.left,
3605                        u = s.right - e,
3606                        c = t - s.top,
3607                        d = s.bottom - t;
3608                    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 }))
3609                }
3610                return r
3611            }, e.prototype.buildCaches = function(e) { return this.queryScrollEls(e).map((function(e) { return e === window ? new zs(!1) : new Bs(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(_e(e).querySelectorAll(o))) } return t }, e
3612        }(),
3613        Gs = function(e) {
3614            function t(t, n) {
3615                var r = e.call(this, t) || this;
3616                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, ze(document.body), Fe(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) {
3617                    if (r.isInteracting) {
3618                        if (r.emitter.trigger("pointermove", e), !r.isDistanceSurpassed) {
3619                            var t = r.minDistance,
3620                                n = e.deltaX,
3621                                o = e.deltaY;
3622                            n * n + o * o >= t * t && r.handleDistanceSurpassed(e)
3623                        }
3624                        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))
3625                    }
3626                }, r.onPointerUp = function(e) { r.isInteracting && (r.isInteracting = !1, Ve(document.body), Ge(document.body), r.emitter.trigger("pointerup", e), r.isDragging && (r.autoScroller.stop(), r.tryStopDrag(e)), r.delayTimeoutId && (clearTimeout(r.delayTimeoutId), r.delayTimeoutId = null)) };
3627                var o = r.pointer = new As(t);
3628                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 Ls, r.autoScroller = new Fs, r
3629            }
3630            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
3631        }(fa),
3632        js = function() {
3633            function e(e) { this.origRect = wo(e), this.scrollCaches = To(e).map((function(e) { return new Bs(e, !0) })) }
3634            return e.prototype.destroy = function() { for (var e = 0, t = this.scrollCaches; e < t.length; e++) { t[e].destroy() } }, e.prototype.computeLeft = function() {
3635                for (var e = this.origRect.left, t = 0, n = this.scrollCaches; t < n.length; t++) {
3636                    var r = n[t];
3637                    e += r.origScrollLeft - r.getScrollLeft()
3638                }
3639                return e
3640            }, e.prototype.computeTop = function() {
3641                for (var e = this.origRect.top, t = 0, n = this.scrollCaches; t < n.length; t++) {
3642                    var r = n[t];
3643                    e += r.origScrollTop - r.getScrollTop()
3644                }
3645                return e
3646            }, 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" 
3646!== r && !to(o, s.clientRect)) return !1 } return !0 }, e
3647        }();
3648    var qs = function() {
3649        function e(e, t) {
3650            var n = this;
3651            this.useSubjectCenter = !1, this.requireInitial = !0, this.initialHit = null, this.movingHit = null, this.finalHit = null, this.handlePointerDown = function(e) {
3652                var t = n.dragging;
3653                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)
3654            }, 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 _o
3655        }
3656        return e.prototype.processFirstCoord = function(e) {
3657            var t, n = { left: e.pageX, top: e.pageY },
3658                r = n,
3659                o = e.subjectEl;
3660            o instanceof HTMLElement && (r = oo(r, t = wo(o)));
3661            var i = this.initialHit = this.queryHitForOffset(r.left, r.top);
3662            if (i) {
3663                if (this.useSubjectCenter && t) {
3664                    var a = no(t, i.rect);
3665                    a && (r = io(a))
3666                }
3667                this.coordAdjust = ao(r, n)
3668            } else this.coordAdjust = { left: 0, top: 0 }
3669        }, e.prototype.handleMove = function(e, t) { var n = this.queryHitForOffset(e.pageX + this.coordAdjust.left, e.pageY + this.coordAdjust.top);!t && Ys(this.movingHit, n) || (this.movingHit = n, this.emitter.trigger("hitupdate", n, !1, e)) }, e.prototype.prepareHits = function() { this.offsetTrackers = Ct(this.droppableStore, (function(e) { return e.component.prepareHits(), new js(e.el) })) }, e.prototype.releaseHits = function() {
3670            var e = this.offsetTrackers;
3671            for (var t in e) e[t].destroy();
3672            this.offsetTrackers = {}
3673        }, e.prototype.queryHitForOffset = function(e, t) {
3674            var n = this.droppableStore,
3675                r = this.offsetTrackers,
3676                o = null;
3677            for (var i in n) {
3678                var a = n[i].component,
3679                    s = r[i];
3680                if (s && s.isWithinClipping(e, t)) {
3681                    var l = s.computeLeft(),
3682                        u = s.computeTop(),
3683                        c = e - l,
3684                        d = t - u,
3685                        p = s.origRect,
3686                        f = p.right - p.left,
3687                        h = p.bottom - p.top;
3688                    if (c >= 0 && c < f && d >= 0 && d < h) {
3689                        var v = a.queryHit(c, d, f, h);
3690                        v && er(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)
3691                    }
3692                }
3693            }
3694            return o
3695        }, e
3696    }();
3697
3698    function Ys(e, t) { return !e && !t || Boolean(e) === Boolean(t) && Er(e.dateSpan, t.dateSpan) }
3699
3700    function Zs(e, t) {
3701        for (var n, o, i = {}, a = 0, s = t.pluginHooks.datePointTransforms; a < s.length; a++) {
3702            var l = s[a];
3703            r(i, l(e, t))
3704        }
3705        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
3706    }
3707    var Xs = function(e) {
3708            function t(t) {
3709                var n = e.call(this, t) || this;
3710                n.handlePointerDown = function(e) {
3711                    var t = n.dragging,
3712                        r = e.origEvent.target;
3713                    t.setIgnoreMove(!n.component.isValidDateDownEl(r))
3714                }, n.handleDragEnd = function(e) {
3715                    var t = n.component;
3716                    if (!n.dragging.pointer.wasTouchScroll) {
3717                        var o = n.hitDragging,
3718                            i = o.initialHit,
3719                            a = o.finalHit;
3720                        if (i && a && Ys(i, a)) {
3721                            var s = t.context,
3722                                l = r(r({}, Zs(i.dateSpan, s)), { dayEl: i.dayEl, jsEvent: e.origEvent, view: s.viewApi || s.calendarApi.view });
3723                            s.emitter.trigger("dateClick", l)
3724                        }
3725                    }
3726                }, n.dragging = new Gs(t.el), n.dragging.autoScroller.isEnabled = !1;
3727                var o = n.hitDragging = new qs(n.dragging, da(t));
3728                return o.emitter.on("pointerdown", n.handlePointerDown), o.emitter.on("dragend", n.handleDragEnd), n
3729            }
3730            return n(t, e), t.prototype.destroy = function() { this.dragging.destroy() }, t
3731        }(ua),
3732        Ks = function(e) {
3733            function t(t) {
3734                var n = e.call(this, t) || this;
3735                n.dragSelection = null, n.handlePointerDown = function(e) {
3736                    var t = n,
3737                        r = t.component,
3738                        o = t.dragging,
3739                        i = r.context.options.selectable && r.isValidDateDownEl(e.origEvent.target);
3740                    o.setIgnoreMove(!i), o.delay = e.isTouch ? function(e) {
3741                        var t = e.context.options,
3742                            n = t.selectLongPressDelay;
3743                        null == n && (n = t.longPressDelay);
3744                        return n
3745                    }(r) : null
3746                }, n.handleDragStart = function(e) { n.component.context.calendarApi.unselect(e) }, n.handleHitUpdate = function(e, t) {
3747                    var o = n.component.context,
3748                        i = null,
3749                        a = !1;
3750                    if (e) {
3751                        var s = n.hitDragging.initialHit;
3752                        e.componentId === s.componentId && n.isHitComboAllowed && !n.isHitComboAllowed(s, e) || (i = function(e, t, n) {
3753                            var o = e.dateSpan,
3754                                i = t.dateSpan,
3755                                a = [o.range.start, o.range.end, i.range.start, i.range.end];
3756                            a.sort($e);
3757                            for (var s = {}, l = 0, u = n; l < u.length; l++) {
3758                                var c = (0, u[l])(e, t);
3759                                if (!1 === c) return null;
3760                                c && r(s, c)
3761                            }
3762                            return s.range = { start: a[0], end: a[3] }, s.allDay = o.allDay, s
3763                        }(s, e, o.pluginHooks.dateSelectionTransformers)), i && za(i, e.dateProfile, o) || (a = !0, i = null)
3764                    }
3765                    i ? o.dispatch({ type: "SELECT_DATES", selection: i }) : t || o.dispatch({ type: "UNSELECT_DATES" }), a ? Ue() : Be(), t || (n.dragSelection = i)
3766                }, n.handlePointerUp = function(e) { n.dragSelection && (Rr(n.dragSelection, e, n.component.context), n.dragSelection = null) };
3767                var o = t.component.context.options,
3768                    i = n.dragging = new Gs(t.el);
3769                i.touchScrollAllowed = !1, i.minDistance = o.selectMinDistance || 0, i.autoScroller.isEnabled = o.dragScroll;
3770                var a = n.hitDragging = new qs(n.dragging, da(t));
3771                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
3772            }
3773            return n(t, e), t.prototype.destroy = function() { this.dragging.destroy() }, t
3774        }(ua);
3775    var $s = function(e) {
3776        function t(n) {
3777            var o = e.call(this, n) || this;
3778            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) {
3779                var t = e.origEvent.target,
3780                    n = o,
3781                    r = n.component,
3782                    i = n.dragging,
3783                    a = i.mirror,
3784                    s = r.context.options,
3785                    l = r.context;
3786                o.subjectEl = e.subjectEl;
3787                var u = o.subjectSeg = ir(e.subjectEl),
3788                    c = (o.eventRange = u.eventRange).instance.instanceId;
3789                o.relevantEvents = _n(l.getCurrentData().eventStore, c), i.minDistance = e.isTouch ? 0 : s.eventDragMinDistance, i.delay 
3789= e.isTouch && c !== r.props.eventSelection ? function(e) {
3790                    var t = e.context.options,
3791                        n = t.eventLongPressDelay;
3792                    null == n && (n = t.longPressDelay);
3793                    return n
3794                }(r) : null, s.fixedMirrorParent ? a.parentNode = s.fixedMirrorParent : a.parentNode = Ee(t, ".fc"), a.revertDuration = s.dragRevertDuration;
3795                var d = r.isValidSegDownEl(t) && !Ee(t, ".fc-event-resizer");
3796                i.setIgnoreMove(!d), o.isDragging = d && e.subjectEl.classList.contains("fc-event-draggable")
3797            }, o.handleDragStart = function(e) {
3798                var t = o.component.context,
3799                    n = o.eventRange,
3800                    r = n.instance.instanceId;
3801                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 Ar(t, n.def, n.instance), jsEvent: e.origEvent, view: t.viewApi }))
3802            }, o.handleHitUpdate = function(e, t) {
3803                if (o.isDragging) {
3804                    var n = o.relevantEvents,
3805                        r = o.hitDragging.initialHit,
3806                        i = o.component.context,
3807                        a = null,
3808                        s = null,
3809                        l = null,
3810                        u = !1,
3811                        c = { affectedEvents: n, mutatedEvents: { defs: {}, instances: {} }, isEvent: !0 };
3812                    if (e) {
3813                        var d = (a = e.context).options;
3814                        i === a || d.editable && d.droppable ? (s = function(e, t, n) {
3815                            var r = e.dateSpan,
3816                                o = t.dateSpan,
3817                                i = r.range.start,
3818                                a = o.range.start,
3819                                s = {};
3820                            r.allDay !== o.allDay && (s.allDay = o.allDay, s.hasEnd = t.context.options.allDayMaintainDuration, o.allDay && (i = ut(i)));
3821                            var l = Zn(i, a, e.context.dateEnv, e.componentId === t.componentId ? e.largeUnit : null);
3822                            l.milliseconds && (s.allDay = !1);
3823                            for (var u = { datesDelta: l, standardProps: s }, c = 0, d = n; c < d.length; c++) {
3824                                (0, d[c])(u, e, t)
3825                            }
3826                            return u
3827                        }(r, e, a.getCurrentData().pluginHooks.eventDragMutationMassagers)) && (l = xr(n, a.getCurrentData().eventUiBases, s, a), c.mutatedEvents = l, Ba(c, e.dateProfile, a) || (u = !0, s = null, l = null, c.mutatedEvents = { defs: {}, instances: {} })) : a = null
3828                    }
3829                    o.displayDrag(a, c), u ? Ue() : Be(), t || (i === a && Ys(r, e) && (s = null), o.dragging.setMirrorNeedsRevert(!s), o.dragging.setMirrorIsVisible(!e || !_e(o.subjectEl).querySelector(".fc-event-mirror")), o.receivingContext = a, o.validMutation = s, o.mutatedRelevantEvents = l)
3830                }
3831            }, o.handlePointerUp = function() { o.isDragging || o.cleanup() }, o.handleDragEnd = function(e) {
3832                if (o.isDragging) {
3833                    var t = o.component.context,
3834                        n = t.viewApi,
3835                        i = o,
3836                        a = i.receivingContext,
3837                        s = i.validMutation,
3838                        l = o.eventRange.def,
3839                        u = o.eventRange.instance,
3840                        c = new Ar(t, l, u),
3841                        d = o.relevantEvents,
3842                        p = o.mutatedRelevantEvents,
3843                        f = o.hitDragging.finalHit;
3844                    if (o.clearDrag(), t.emitter.trigger("eventDragStop", { el: o.subjectEl, event: c, jsEvent: e.origEvent, view: n }), s) {
3845                        if (a === t) {
3846                            var h = new Ar(t, p.defs[l.defId], u ? p.instances[u.instanceId] : null);
3847                            t.dispatch({ type: "MERGE_EVENTS", eventStore: p });
3848                            for (var v = { oldEvent: c, event: h, relatedEvents: Lr(p, t, u), revert: function() { t.dispatch({ type: "MERGE_EVENTS", eventStore: d }) } }, g = {}, m = 0, y = t.getCurrentData().pluginHooks.eventDropTransformers; m < y.length; m++) {
3849                                var S = y[m];
3850                                r(g, S(s, t))
3851                            }
3852                            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)
3853                        } else if (a) {
3854                            var E = { event: c, relatedEvents: Lr(d, t, u), revert: function() { t.dispatch({ type: "MERGE_EVENTS", eventStore: d }) } };
3855                            t.emitter.trigger("eventLeave", r(r({}, E), { draggedEl: e.subjectEl, view: n }
3855)), t.dispatch({ type: "REMOVE_EVENTS", eventStore: d }), t.emitter.trigger("eventRemove", E);
3856                            var b = p.defs[l.defId],
3857                                C = p.instances[u.instanceId],
3858                                D = new Ar(a, b, C);
3859                            a.dispatch({ type: "MERGE_EVENTS", eventStore: p });
3860                            var R = { event: D, relatedEvents: Lr(p, a, C), revert: function() { a.dispatch({ type: "REMOVE_EVENTS", eventStore: p }) } };
3861                            a.emitter.trigger("eventAdd", R), e.isTouch && a.dispatch({ type: "SELECT_EVENT", eventInstanceId: u.instanceId }), a.emitter.trigger("drop", r(r({}, Zs(f.dateSpan, a)), { draggedEl: e.subjectEl, jsEvent: e.origEvent, view: f.context.viewApi })), a.emitter.trigger("eventReceive", r(r({}, R), { draggedEl: e.subjectEl, view: f.context.viewApi }))
3862                        }
3863                    } else t.emitter.trigger("_noEventDrop")
3864                }
3865                o.cleanup()
3866            };
3867            var i = o.component.context.options,
3868                a = o.dragging = new Gs(n.el);
3869            a.pointer.selector = t.SELECTOR, a.touchScrollAllowed = !1, a.autoScroller.isEnabled = i.dragScroll;
3870            var s = o.hitDragging = new qs(o.dragging, pa);
3871            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
3872        }
3873        return n(t, e), t.prototype.destroy = function() { this.dragging.destroy() }, t.prototype.displayDrag = function(e, t) {
3874            var n = this.component.context,
3875                r = this.receivingContext;
3876            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 })
3877        }, t.prototype.clearDrag = function() {
3878            var e = this.component.context,
3879                t = this.receivingContext;
3880            t && t.dispatch({ type: "UNSET_EVENT_DRAG" }), e !== t && e.dispatch({ type: "UNSET_EVENT_DRAG" })
3881        }, 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
3882    }(ua);
3883    var Js = function(e) {
3884        function t(t) {
3885            var n = e.call(this, t) || this;
3886            n.draggingSegEl = null, n.draggingSeg = null, n.eventRange = null, n.relevantEvents = null, n.validMutation = null, n.mutatedRelevantEvents = null, n.handlePointerDown = function(e) {
3887                var t = n.component,
3888                    r = ir(n.querySegEl(e)),
3889                    o = n.eventRange = r.eventRange;
3890                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)
3891            }, n.handleDragStart = function(e) {
3892                var t = n.component.context,
3893                    r = n.eventRange;
3894                n.relevantEvents = _n(t.getCurrentData().eventStore, n.eventRange.instance.instanceId);
3895                var o = n.querySegEl(e);
3896                n.draggingSegEl = o, n.draggingSeg = ir(o), t.calendarApi.unselect(), t.emitter.trigger("eventResizeStart", { el: o, event: new Ar(t, r.def, r.instance), jsEvent: e.origEvent, view: t.viewApi })
3897            }, n.handleHitUpdate = function(e, t, r) {
3898                var o = n.component.context,
3899                    i = n.relevantEvents,
3900                    a = n.hitDragging.initialHit,
3901                    s = n.eventRange.instance,
3902                    l = null,
3903                    u = null,
3904                    c = !1,
3905                    d = { affectedEvents: i, mutatedEvents: { defs: {}, instances: {} }, isEvent: !0 };
3906                e && (e.componentId === a.componentId && n.isHitComboAllowed && !n.isHitComboAllowed(a, e) || (l = function(e, t, n, r) {
3907                    var o = e.context.dateEnv,
3908                        i = e.dateSpan.range.start,
3909                        a = t.dateSpan.range.start,
3910                        s = Zn(i, a, o, e.largeUnit);
3911                    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 };
3912                    return null
3913                }(a, e, r.subjectEl.classList.contains("fc-event-resizer-start"), s.range)));
3914                l && (u = xr(i, o.getCurrentData().eventUiBases, l, o), d.mutatedEvents = u, Ba(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" }
3914), c ? Ue() : Be(), t || (l && Ys(a, e) && (l = null), n.validMutation = l, n.mutatedRelevantEvents = u)
3915            }, n.handleDragEnd = function(e) {
3916                var t = n.component.context,
3917                    o = n.eventRange.def,
3918                    i = n.eventRange.instance,
3919                    a = new Ar(t, o, i),
3920                    s = n.relevantEvents,
3921                    l = n.mutatedRelevantEvents;
3922                if (t.emitter.trigger("eventResizeStop", { el: n.draggingSegEl, event: a, jsEvent: e.origEvent, view: t.viewApi }), n.validMutation) {
3923                    var u = new Ar(t, l.defs[o.defId], i ? l.instances[i.instanceId] : null);
3924                    t.dispatch({ type: "MERGE_EVENTS", eventStore: l });
3925                    var c = { oldEvent: a, event: u, relatedEvents: Lr(l, t, i), revert: function() { t.dispatch({ type: "MERGE_EVENTS", eventStore: s }) } };
3926                    t.emitter.trigger("eventResize", r(r({}, c), { el: n.draggingSegEl, startDelta: n.validMutation.startDelta || Ht(0), endDelta: n.validMutation.endDelta || Ht(0), jsEvent: e.origEvent, view: t.viewApi })), t.emitter.trigger("eventChange", c)
3927                } else t.emitter.trigger("_noEventResize");
3928                n.draggingSeg = null, n.relevantEvents = null, n.validMutation = null
3929            };
3930            var o = t.component,
3931                i = n.dragging = new Gs(t.el);
3932            i.pointer.selector = ".fc-event-resizer", i.touchScrollAllowed = !1, i.autoScroller.isEnabled = o.context.options.dragScroll;
3933            var a = n.hitDragging = new qs(n.dragging, da(t));
3934            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
3935        }
3936        return n(t, e), t.prototype.destroy = function() { this.dragging.destroy() }, t.prototype.querySegEl = function(e) { return Ee(e.subjectEl, ".fc-event") }, t
3937    }(ua);
3938    var Qs = function() {
3939            function e(e) {
3940                var t = this;
3941                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) {
3942                    var n = t.context.options.unselectCancel,
3943                        r = xe(e.origEvent);
3944                    t.matchesCancel = !!Ee(r, n), t.matchesEvent = !!Ee(r, $s.SELECTOR)
3945                }, this.onDocumentPointerUp = function(e) {
3946                    var n = t.context,
3947                        r = t.documentPointer,
3948                        o = n.getCurrentData();
3949                    if (!r.wasTouchScroll) {
3950                        if (o.dateSelection && !t.isRecentPointerDateSelect) { var i = n.options.unselectAuto;!i || i && t.matchesCancel || n.calendarApi.unselect(e) }
3951                        o.eventSelection && !t.matchesEvent && n.dispatch({ type: "UNSELECT_EVENT" })
3952                    }
3953                    t.isRecentPointerDateSelect = !1
3954                };
3955                var n = this.documentPointer = new As(document);
3956                n.shouldIgnoreMove = !0, n.shouldWatchScroll = !1, n.emitter.on("pointerdown", this.onDocumentPointerDown), n.emitter.on("pointerup", this.onDocumentPointerUp), e.emitter.on("select", this.onSelect)
3957            }
3958            return e.prototype.destroy = function() { this.context.emitter.off("select", this.onSelect), this.documentPointer.destroy() }, e
3959        }(),
3960        el = { fixedMirrorParent: wn },
3961        tl = { dateClick: wn, eventDragStart: wn, eventDragStop: wn, eventDrop: wn, eventResizeStart: wn, eventResizeStop: wn, eventResize: wn, drop: wn, eventReceive: wn, eventLeave: wn },
3962        nl = function() {
3963            function e(e, t) {
3964                var n = this;
3965                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) {
3966                    var i = n.hitDragging.dragging,
3967                        a = null,
3968                        s = null,
3969                        l = !1,
3970                        u = { affectedEvents: { defs: {}, instances: {} }, mutatedEvents: { defs: {}, instances: {} }, isEvent: n.dragMeta.create };
3971                    e && (a = e.context, n.canDropElOnCalendar(o.subjectEl, a) && (s = function(e, t, n) {
3972                        for (var o = r({}, t.leftoverProps), i = 0, a = n.pluginHooks.externalDefTransforms; i < a.length; i++) {
3973                            var s = a[i];
3974                            r(o, s(e, t))
3975                        }
3976                        var l = Vn(o, n),
3977                            u = l.refined,
3978                            c = l.extra,
3979                            d = Gn(u, c, t.sourceId, e.allDay, n.options.forceEventDuration || Boolean(t.duration), n),
3980                            p = e.range.start;
3981                        e.allDay && t.startTime && (p = n.dateEnv.add(p, t.startTime));
3982                        var f = t.duration ? n.dateEnv.add(p, t.duration) : Tr(e.allDay, p, n),
3983                            h = yt(d.defId, { start: p, end: f });
3984                        return { def: d, instance: h }
3985                    }(e.dateSpan, n.dragMeta, a), u.mutatedEvents = xn(s), (l = !Ba(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() : Be(), t || (i.setMirrorNeedsRevert(!s), n.receivingContext = a, n.droppableEvent = s)
3986                }, this.handleDragEnd = function(e) {
3987                    var t = n,
3988                        o = t.receivingContext,
3989                        i = t.droppableEvent;
3990                    if (n.clearDrag(), o && i) {
3991                        var a = n.hitDragging.finalHit,
3992                            s = a.context.viewApi,
3993                            l = n.dragMeta;
3994                        if (o.emitter.trigger("drop", r(r({}, Zs(a.dateSpan, o)), { draggedEl: e.subjectEl, jsEvent: e.origEvent, view: s })), l.create) {
3995                            var u = xn(i);
3996                            o.dispatch({ type: "MERGE_EVENTS", eventStore: u }), e.isTouch && o.dispatch({ type: "SELECT_EVENT", eventInstanceId: i.instance.instanceId }), o.emitter.trigger("eventReceive", { event: new Ar(o, i.def, i.instance), relatedEvents: [], revert: function() { o.dispatch({ type: "REMOVE_EVENTS", eventStore: u }) }, draggedEl: e.subjectEl, view: s })
3997                        }
3998                    }
3999                    n.receivingContext = null, n.droppableEvent = null
4000                };
4001                var o = this.hitDragging = new qs(e, pa);
4002                o.requireInitial = !1, o.emitter.on("dragstart", this.handleDragStart), o.emitter.on("hitupdate", this.handleHitUpdate), o.emitter.on("dragend", this.handleDragEnd), this.suppliedDragMeta = t
4003            }
4004            return e.prototype.buildDragMeta = function(e) {
4005                return "object" == typeof this.suppliedDragMeta ? ga(this.suppliedDragMeta) : "function" == typeof this.suppliedDragMeta ? ga(this.suppliedDragMeta(e)) : ga((t = function(e, t) {
4006                    var n = ha.dataAttrPrefix,
4007                        r = (n ? n + "-" : "") + t;
4008                    return e.getAttribute("data-" + r) || ""
4009                }(e, "event")) ? JSON.parse(t) : { create: !1 });
4010                var t
4011            }, e.prototype.displayDrag = function(e, t) {
4012                var n = this.receivingContext;
4013                n && n !== e && n.dispatch({ type: "UNSET_EVENT_DRAG" }), e && e.dispatch({ type: "SET_EVENT_DRAG", state: t })
4014            }, 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
4015        }();
4016    ha.dataAttrPrefix = "";
4017    var rl = function() {
4018            function e(e, t) {
4019                var n = this;
4020                void 0 === t && (t = {}), this.handlePointerDown = function(e) {
4021                    var t = n.dragging,
4022                        r = n.settings,
4023                        o = r.minDistance,
4024                        i = r.longPressDelay;
4025                    t.minDistance = null != o ? o : e.isTouch ? 0 : mn.eventDragMinDistance, t.delay = e.isTouch ? null != i ? i : mn.longPressDelay : 0
4026                }, 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;
4027                var r = this.dragging = new Gs(e);
4028                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 nl(r, t.eventData)
4029            }
4030            return e.prototype.destroy = function() { this.dragging.destroy() }, e
4031        }(),
4032        ol = function(e) {
4033            function t(t) {
4034                var n = e.call(this, t) || this;
4035                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) };
4036                var r = n.pointer = new As(t);
4037                return r.emitter.on("pointerdown", n.handlePointerDown), r.emitter.on("pointermove", n.handlePointerMove), r.emitter.on("pointerup", n.handlePointerUp), n
4038            }
4039            return n(t, e), t.prototype.destroy = function() { this.pointer.destroy() }, t.prototype.setIgnoreMove = function(e) { this.shouldIgnoreMove = e }, t.prototype.setMirrorIsVisible = function(e) {
4040                if (e) this.currentMirrorEl && (this.currentMirrorEl.style.visibility = "", this.currentMirrorEl = null);
4041                else {
4042                    var t = this.mirrorSelector ? document.querySelector(this.mirrorSelector) : null;
4043                    t && (this.currentMirrorEl = t, t.style.visibility = "hidden")
4044                }
4045            }, t
4046        }(fa),
4047        il = function() {
4048            function e(e, t) {
4049                var n = document;
4050                e === document || e instanceof Element ? (n = e, t = t || {}) : t = e || {};
4051                var r = this.dragging = new ol(n);
4052                "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 nl(r, t.eventData)
4053            }
4054            return e.prototype.destroy = function() { this.dragging.destroy() }, e
4055        }(),
4056        al = Jo({ componentInteractions: [Xs, Ks, $s, Js], calendarInteractions: [Qs], elementDraggingImpl: Gs, optionRefiners: el, listenerRefiners: tl }),
4057        sl = function(e) {
4058            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.headerElRef = Wo(), t }
4059            return n(t, e), t.prototype.renderSimpleLayout = function(e, t) {
4060                var n = this.props,
4061                    r = this.context,
4062                    o = [],
4063                    i = ls(r.options);
4064                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 } }), Oo(ci, { viewSpec: r.viewSpec }, (function(e, t) { return Oo("div", { ref: e, className: ["fc-daygri
4064d"].concat(t).join(" ") }, Oo(cs, { liquid: !n.isHeightAuto && !n.forPrint, collapsibleWidth: 111, cols: [], sections: o })) }))
4065            }, t.prototype.renderHScrollLayout = function(e, t, n, r) {
4066                var o = this.context.pluginHooks.scrollGridImpl;
4067                if (!o) throw new Error("No ScrollGrid implementation");
4068                var i = this.props,
4069                    a = this.context,
4070                    s = !i.forPrint && ls(a.options),
4071                    l = !i.forPrint && us(a.options),
4072                    u = [];
4073                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: ss }] }), Oo(ci, { viewSpec: a.viewSpec }, (function(e, t) { return Oo("div", { ref: e, className: ["fc-daygrid"].concat(t).join(" ") }, Oo(o, { liquid: !i.isHeightAuto && !i.forPrint, collapsibleWidth: i.forPrint, colGroups: [{ cols: [{ span: n, minWidth: r }] }], sections: u })) }))
4074            }, t
4075        }($o);
4076
4077    function ll(e, t) {
4078        for (var n = [], r = 0; r < t; r += 1) n[r] = [];
4079        for (var o = 0, i = e; o < i.length; o++) {
4080            var a = i[o];
4081            n[a.row].push(a)
4082        }
4083        return n
4084    }
4085
4086    function ul(e, t) {
4087        for (var n = [], r = 0; r < t; r += 1) n[r] = [];
4088        for (var o = 0, i = e; o < i.length; o++) {
4089            var a = i[o];
4090            n[a.firstCol].push(a)
4091        }
4092        return n
4093    }
4094
4095    function cl(e, t) {
4096        var n = [];
4097        if (e) {
4098            for (a = 0; a < t; a += 1) n[a] = { affectedInstances: e.affectedInstances, isEvent: e.isEvent, segs: [] };
4099            for (var r = 0, o = e.segs; r < o.length; r++) {
4100                var i = o[r];
4101                n[i.row].segs.push(i)
4102            }
4103        } else
4104            for (var a = 0; a < t; a += 1) n[a] = null;
4105        return n
4106    }
4107    var dl = function(e) {
4108        function t() { return null !== e && e.apply(this, arguments) || this }
4109        return n(t, e), t.prototype.render = function() {
4110            var e = this.props,
4111                t = mo(this.context, e.date);
4112            return Oo(gs, { date: e.date, dateProfile: e.dateProfile, todayRange: e.todayRange, showDayNumber: e.showDayNumber, extraHookProps: e.extraHookProps, defaultContent: pl }, (function(n, o) { return (o || e.forceDayTop) && Oo("div", { className: "fc-daygrid-day-top", ref: n }, Oo("a", r({ id: e.dayNumberId, className: "fc-daygrid-day-number" }, t), o || Oo(Lo, null, " "))) }))
4113        }, t
4114    }(Yo);
4115
4116    function pl(e) { return e.dayNumberText }
4117    var fl = vn({ hour: "numeric", minute: "2-digit", omitZeroMinute: !0, meridiem: "narrow" });
4118
4119    function hl(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 }
4120    var vl = function(e) {
4121            function t() { return null !== e && e.apply(this, arguments) || this }
4122            return n(t, e), t.prototype.render = function() { var e = this.props; return Oo(ps, r({}, e, { extraClassNames: ["fc-daygrid-event", "fc-daygrid-block-event", "fc-h-event"], defaultTimeFormat: fl, defaultDisplayEventEnd: e.defaultDisplayEventEnd, disableResizing: !e.seg.eventRange.def.allDay })) }, t
4123        }(Yo),
4124        gl = function(e) {
4125            function t() { return null !== e && e.apply(this, arguments) || this }
4126            return n(t, e), t.prototype.render = function() {
4127                var e = this.props,
4128                    t = this.context,
4129                    n = t.options.eventTimeFormat || fl,
4130                    o = fr(e.seg, n, t, !0, e.defaultDisplayEventEnd);
4131                return Oo(ds, { seg: e.seg, timeText: o, defaultContent: ml, 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 Oo("a", r({ className: ["fc-daygri
4131d-event", "fc-daygrid-dot-event"].concat(o).join(" "), ref: n }, mr(e.seg, t)), a) }))
4132            }, t
4133        }(Yo);
4134
4135    function ml(e) { return Oo(Lo, null, Oo("div", { className: "fc-daygrid-event-dot", style: { borderColor: e.borderColor || e.backgroundColor } }), e.timeText && Oo("div", { className: "fc-event-time" }, e.timeText), Oo("div", { className: "fc-event-title" }, e.event.title || Oo(Lo, null, " "))) }
4136    var yl = function(e) {
4137        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.compileSegs = $t(Sl), t }
4138        return n(t, e), t.prototype.render = function() {
4139            var e = this.props,
4140                t = this.compileSegs(e.singlePlacements),
4141                n = t.allSegs,
4142                o = t.invisibleSegs;
4143            return Oo(Ts, { 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 Oo(Lo, null, n.map((function(n) { var o = n.eventRange.instance.instanceId; return Oo("div", { className: "fc-daygrid-event-harness", key: o, style: { visibility: t[o] ? "hidden" : "" } }, hl(n) ? Oo(gl, r({ seg: n, isDragging: !1, isSelected: o === e.eventSelection, defaultDisplayEventEnd: !1 }, hr(n, e.todayRange))) : Oo(vl, r({ seg: n, isDragging: !1, isResizing: !1, isDateSelecting: !1, isSelected: o === e.eventSelection, defaultDisplayEventEnd: !1 }, hr(n, e.todayRange)))) }))) } }, (function(e, t, n, o, i, a, s, l) { return Oo("a", r({ ref: e, className: ["fc-daygrid-more-link"].concat(t).join(" "), title: a, "aria-expanded": s, "aria-controls": l }, Oe(i)), o) }))
4144        }, t
4145    }(Yo);
4146
4147    function Sl(e) {
4148        for (var t = [], n = [], r = 0, o = e; r < o.length; r++) {
4149            var i = o[r];
4150            t.push(i.seg), i.isVisible || n.push(i.seg)
4151        }
4152        return { allSegs: t, invisibleSegs: n }
4153    }
4154    var El = vn({ week: "narrow" }),
4155        bl = function(e) {
4156            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.rootElRef = Wo(), t.state = { dayNumberId: Me() }, t.handleRootEl = function(e) { Ko(t.rootElRef, e), Ko(t.props.elRef, e) }, t }
4157            return n(t, e), t.prototype.render = function() {
4158                var e = this,
4159                    t = e.context,
4160                    n = e.props,
4161                    o = e.state,
4162                    i = e.rootElRef,
4163                    a = n.date,
4164                    s = n.dateProfile,
4165                    l = mo(t, a, "week");
4166                return Oo(ys, { date: a, dateProfile: s, todayRange: n.todayRange, showDayNumber: n.showDayNumber, extraHookProps: n.extraHookProps, elRef: this.handleRootEl }, (function(e, t, u, c) { return Oo("td", r({ ref: e, role: "gridcell", className: ["fc-daygrid-day"].concat(t, n.extraClassNames || []).join(" ") }, u, n.extraDataAttrs, n.showDayNumber ? { "aria-labelledby": o.dayNumberId } : {}), Oo("div", { className: "fc-daygrid-day-frame fc-scrollgrid-sync-inner", ref: n.innerElRef }, n.showWeekNumber && Oo(Cs, { date: a, defaultFormat: El }, (function(e, t, n, o) { return Oo("a", r({ ref: e, className: ["fc-daygrid-week-number"].concat(t).join(" ") }, l), o) })), !c && Oo(dl, { date: a, dateProfile: s, showDayNumber: n.showDayNumber, dayNumberId: o.dayNumberId, forceDayTop: n.forceDayTop, todayRange: n.todayRange, extraHookProps: n.extraHookProps }), Oo("div", { className: "fc-daygrid-day-events", ref: n.fgContentElRef }, n.fgContent, Oo("div", { className: "fc-daygrid-day-bottom", style: { marginTop: n.moreMarginTop } }, Oo(yl, { 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 }
4166))), Oo("div", { className: "fc-daygrid-day-bg" }, n.bgContent))) }))
4167            }, t
4168        }($o);
4169
4170    function Cl(e, t, n, r, o, i, a) {
4171        var s = new Rl;
4172        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);
4173        for (var l = [], u = [], c = 0; c < e.length; c += 1) {
4174            var d = o[(w = e[c]).eventRange.instance.instanceId];
4175            null != d ? l.push({ index: c, thickness: d, span: { start: w.firstCol, end: w.lastCol + 1 } }) : u.push(w)
4176        }
4177        for (var p = s.addSegs(l), f = function(e, t, n) {
4178                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) {
4179                    for (var l = r[s], u = [], c = 0, d = 0, p = 0, f = l; p < f.length; p++) {
4180                        var h = t[(y = f[p]).index];
4181                        u.push({ seg: Dl(h, s, s + 1, n), isVisible: !0, isAbsolute: !1, absoluteTop: y.levelCoord, marginTop: y.levelCoord - c }), c = y.levelCoord + y.thickness
4182                    }
4183                    var v = [];
4184                    c = 0, d = 0;
4185                    for (var g = 0, m = l; g < m.length; g++) {
4186                        h = t[(y = m[g]).index];
4187                        var y, S = y.span.end - y.span.start > 1,
4188                            E = y.span.start === s;
4189                        d += y.levelCoord - c, c = y.levelCoord + y.thickness, S ? (d += y.thickness, E && v.push({ seg: Dl(h, y.span.start, y.span.end, n), isVisible: !0, isAbsolute: !0, absoluteTop: y.levelCoord, marginTop: 0 })) : E && (v.push({ seg: Dl(h, y.span.start, y.span.end, n), isVisible: !0, isAbsolute: !1, absoluteTop: y.levelCoord, marginTop: d }), d = 0)
4190                    }
4191                    o.push(u), i.push(v), a.push(d)
4192                }
4193                return { singleColPlacements: o, multiColPlacements: i, leftoverMargins: a }
4194            }(s.toRects(), e, a), h = f.singleColPlacements, v = f.multiColPlacements, g = f.leftoverMargins, m = [], y = [], S = 0, E = u; S < E.length; S++) { v[(w = E[S]).firstCol].push({ seg: w, isVisible: !1, isAbsolute: !0, absoluteTop: 0, marginTop: 0 }); for (var b = w.firstCol; b <= w.lastCol; b += 1) h[b].push({ seg: Dl(w, b, b + 1, a), isVisible: !1, isAbsolute: !1, absoluteTop: 0, marginTop: 0 }) }
4195        for (b = 0; b < a.length; b += 1) m.push(0);
4196        for (var C = 0, D = p; C < D.length; C++) {
4197            var R = D[C],
4198                w = e[R.index],
4199                T = R.span;
4200            v[T.start].push({ seg: Dl(w, T.start, T.end, a), isVisible: !1, isAbsolute: !0, absoluteTop: 0, marginTop: 0 });
4201            for (b = T.start; b < T.end; b += 1) m[b] += 1, h[b].push({ seg: Dl(w, b, b + 1, a), isVisible: !1, isAbsolute: !1, absoluteTop: 0, marginTop: 0 })
4202        }
4203        for (b = 0; b < a.length; b += 1) y.push(g[b]);
4204        return { singleColPlacements: h, multiColPlacements: v, moreCnts: m, moreMarginTops: y }
4205    }
4206
4207    function Dl(e, t, n, o) {
4208        if (e.firstCol === t && e.lastCol === n - 1) return e;
4209        var i = e.eventRange,
4210            a = i.range,
4211            s = $n(a, { start: o[t].date, end: nt(o[n - 1].date, 1) });
4212        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() })
4213    }
4214    var Rl = function(e) {
4215            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.hiddenConsumes = !1, t.forceHidden = {}, t }
4216            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[ra(e)] }, a = 0; a < o.length; a += 1) o[a] = o[a].filter(i); return r }, t.prototype.handleInvalidInsertion = function(t, n, o) {
4217                var i = this.entriesByLevel,
4218                    a = this.forceHidden,
4219                    s = t.touchingEntry,
4220                    l = t.touchingLevel,
4221                    u = t.touchingLateral;
4222                if (this.hiddenConsumes && s) {
4223                    var c = ra(s);
4224                    if (!a[c])
4225                        if (this.allowReslicing) {
4226                            var d = r(r({}, s), { span: aa(s.span, n.span) });
4227                            a[ra(d)] = !0, i[l][u] = d, this.splitEntry(s, n, o)
4228                        } else a[c] = !0, o.push(s)
4229                }
4230                return e.prototype.handleInvalidInsertion.call(this, t, n, o)
4231            }, t
4232        }(ta),
4233        wl = function(e) {
4234            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.cellElRefs = new Ka, t.frameElRefs = new Ka, t.fgElRefs = new Ka, t.segHarnessRefs = new Ka, t.rootElRef = Wo(), t.state = { framePositions: null, maxContentHeight: null, eventInstanceHeights: {} }, t }
4235            return n(t, e), t.prototype.render = function() {
4236                var e = this,
4237                    t = this,
4238                    n = t.props,
4239                    r = t.state,
4240                    o = t.context.options,
4241                    i = n.cells.length,
4242                    a = ul(n.businessHourSegs, i),
4243                    s = ul(n.bgEventSegs, i),
4244                    l = ul(this.getHighlightSegs(), i),
4245                    u = ul(this.getMirrorSegs(), i),
4246                    c = Cl(lr(n.fgEventSegs, o.eventOrder), n.dayMaxEvents, n.dayMaxEventRows, o.eventOrderStrict, r.eventInstanceHeights, r.maxContentHeight, n.cells),
4247                    d = c.singleColPlacements,
4248                    p = c.multiColPlacements,
4249                    f = c.moreCnts,
4250                    h = c.moreMarginTops,
4251                    v = n.eventDrag && n.eventDrag.affectedInstances || n.eventResize && n.eventResize.affectedInstances || {};
4252                return Oo("tr", { ref: this.rootElRef, role: "row" }, n.renderIntro && n.renderIntro(), n.cells.map((function(t, r) {
4253                    var o = e.renderFgSegs(r, n.forPrint ? d[r] : p[r], n.todayRange, v),
4254                        i = e.renderFgSegs(r, function(e, t) {
4255                            if (!e.length) return [];
4256                            var n = function(e) {
4257                                for (var t = {}, n = 0, r = e; n < r.length; n++)
4258                                    for (var o = 0, i = r[n]; o < i.length; o++) {
4259                                        var a = i[o];
4260                                        t[a.seg.eventRange.instance.instanceId] = a.absoluteTop
4261                                    }
4262                                return t
4263                            }(t);
4264                            return e.map((function(e) { return { seg: e, isVisible: !0, isAbsolute: !0, absoluteTop: n[e.eventRange.instance.instanceId], marginTop: 0 } }))
4265                        }(u[r], p), n.todayRange, {}, Boolean(n.eventDrag), Boolean(n.eventResize), !1);
4266                    return Oo(bl, { 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: Oo(Lo, null, Oo(Lo, null, o), Oo(Lo, null, i)), bgContent: Oo(Lo, null, e.renderFillSegs(l[r], "highlight"), e.renderFillSegs(a[r], "non-business"), e.renderFillSegs(s[r], "bg-event")) })
4267                })))
4268            }, t.prototype.componentDidMount = function() { this.updateSizing(!0) }, t.prototype.componentDidUpdate = function(e, t) {
4269                var n = this.props;
4270                this.updateSizing(!wt(e, n))
4271            }, 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) {
4272                var l = this.context,
4273                    u = this.props.eventSelection,
4274                    c = this.state.framePositions,
4275                    d = 1 === this.props.cells.length,
4276                    p = i || a || s,
4277                    f = [];
4278                if (c)
4279                    for (var h = 0, v = t; h < v.length; h++) {
4280                        var g = v[h],
4281                            m = g.seg,
4282                            y = m.eventRange.instance.instanceId,
4283                            S = y + ":" + e,
4284                            E = g.isVisible && !o[y],
4285                            b = g.isAbsolute,
4286                            C = "",
4287                            D = "";
4288                        b && (l.isRtl ? (D = 0, C = c.lefts[m.lastCol] - c.lefts[m.firstCol]) : (C = 0, D = c.rights[m.firstCol] - c.rights[m.lastCol])), f.push(Oo("div", { className: "fc-daygri
4288d-event-harness" + (b ? " fc-daygrid-event-harness-abs" : ""), key: S, ref: p ? null : this.segHarnessRefs.createRef(S), style: { visibility: E ? "" : "hidden", marginTop: b ? "" : g.marginTop, top: b ? g.absoluteTop : "", left: C, right: D } }, hl(m) ? Oo(gl, r({ seg: m, isDragging: i, isSelected: y === u, defaultDisplayEventEnd: d }, hr(m, n))) : Oo(vl, r({ seg: m, isDragging: i, isResizing: a, isDateSelecting: s, isSelected: y === u, defaultDisplayEventEnd: d }, hr(m, n)))))
4289                    }
4290                return f
4291            }, t.prototype.renderFillSegs = function(e, t) {
4292                var n = this.context.isRtl,
4293                    i = this.props.todayRange,
4294                    a = this.state.framePositions,
4295                    s = [];
4296                if (a)
4297                    for (var l = 0, u = e; l < u.length; l++) {
4298                        var c = u[l],
4299                            d = n ? { right: 0, left: a.lefts[c.lastCol] - a.lefts[c.firstCol] } : { left: 0, right: a.rights[c.firstCol] - a.rights[c.lastCol] };
4300                        s.push(Oo("div", { key: gr(c.eventRange), className: "fc-daygrid-bg-harness", style: d }, "bg-event" === t ? Oo(Es, r({ seg: c }, hr(c, i))) : Ss(t)))
4301                    }
4302                return Oo.apply(void 0, o([Lo, {}], s))
4303            }, t.prototype.updateSizing = function(e) {
4304                var t = this.props,
4305                    n = this.frameElRefs;
4306                if (!t.forPrint && null !== t.clientWidth) {
4307                    if (e) {
4308                        var o = t.cells.map((function(e) { return n.currentMap[e.key] }));
4309                        if (o.length) {
4310                            var i = this.rootElRef.current;
4311                            this.setState({ framePositions: new ko(i, o, !0, !1) })
4312                        }
4313                    }
4314                    var a = this.state.eventInstanceHeights,
4315                        s = this.queryEventInstanceHeights(),
4316                        l = !0 === t.dayMaxEvents || !0 === t.dayMaxEventRows;
4317                    this.safeSetState({ eventInstanceHeights: r(r({}, a), s), maxContentHeight: l ? this.computeMaxContentHeight() : null })
4318                }
4319            }, t.prototype.queryEventInstanceHeights = function() {
4320                var e = this.segHarnessRefs.currentMap,
4321                    t = {};
4322                for (var n in e) {
4323                    var r = Math.round(e[n].getBoundingClientRect().height),
4324                        o = n.split(":")[0];
4325                    t[o] = Math.max(t[o] || 0, r)
4326                }
4327                return t
4328            }, t.prototype.computeMaxContentHeight = function() {
4329                var e = this.props.cells[0].key,
4330                    t = this.cellElRefs.currentMap[e],
4331                    n = this.fgElRefs.currentMap[e];
4332                return t.getBoundingClientRect().bottom - n.getBoundingClientRect().top
4333            }, t.prototype.getCellEls = function() { var e = this.cellElRefs.currentMap; return this.props.cells.map((function(t) { return e[t.key] })) }, t
4334        }($o);
4335    wl.addStateEquality({ eventInstanceHeights: wt });
4336    var Tl = function(e) {
4337        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.splitBusinessHourSegs = $t(ll), t.splitBgEventSegs = $t(ll), t.splitFgEventSegs = $t(ll), t.splitDateSelectionSegs = $t(ll), t.splitEventDrag = $t(cl), t.splitEventResize = $t(cl), t.rowRefs = new Ka, t.handleRootEl = function(e) { t.rootEl = e, e ? t.context.registerInteractiveComponent(t, { el: e, isHitComboAllowed: t.props.isHitComboAllowed }) : t.context.unregisterInteractiveComponent(t) }, t }
4338        return n(t, e), t.prototype.render = function() {
4339            var e = this,
4340                t = this.props,
4341                n = t.dateProfile,
4342                r = t.dayMaxEventRows,
4343                o = t.dayMaxEvents,
4344                i = t.expandRows,
4345                a = t.cells.length,
4346                s = this.splitBusinessHourSegs(t.businessHourSegs, a),
4347                l = this.splitBgEventSegs(t.bgEventSegs, a),
4348                u = this.splitFgEventSegs(t.fgEventSegs, a),
4349                c = this.splitDateSelectionSegs(t.dateSelectionSegs, a),
4350                d = this.splitEventDrag(t.eventDrag, a),
4351                p = this.splitEventResize(t.eventResize, a),
4352                f = !0 === o || !0 === r;
4353            return f && !i && (f = !1, r = null, o = null), Oo("div", { className: ["fc-daygri
4353d-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 } }, Oo(Pa, { unit: "day" }, (function(f, h) { return Oo(Lo, null, Oo("table", { role: "presentation", className: "fc-scrollgrid-sync-table", style: { width: t.clientWidth, minWidth: t.tableMinWidth, height: i ? t.clientHeight : "" } }, t.colGroupNode, Oo("tbody", { role: "presentation" }, t.cells.map((function(i, f) { return Oo(wl, { 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(xl), 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 }) }))))) })))
4354        }, t.prototype.prepareHits = function() { this.rowPositions = new ko(this.rootEl, this.rowRefs.collect().map((function(e) { return e.getCellEls()[0] })), !1, !0), this.colPositions = new ko(this.rootEl, this.rowRefs.currentMap[0].getCellEls(), !0, !1) }, t.prototype.queryHit = function(e, t) {
4355            var n = this.colPositions,
4356                o = this.rowPositions,
4357                i = n.leftToIndex(e),
4358                a = o.topToIndex(t);
4359            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 } }
4360            return null
4361        }, 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: nt(n, 1) } }, t
4362    }($o);
4363
4364    function xl(e) { return e.eventRange.def.allDay }
4365    var _l = function(e) {
4366            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.forceDayIfListItem = !0, t }
4367            return n(t, e), t.prototype.sliceRange = function(e, t) { return t.sliceRange(e) }, t
4368        }(La),
4369        kl = function(e) {
4370            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.slicer = new _l, t.tableRef = Wo(), t }
4371            return n(t, e), t.prototype.render = function() {
4372                var e = this.props,
4373                    t = this.context;
4374                return Oo(Tl, 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 }))
4375            }, t
4376        }($o),
4377        Ml = function(e) {
4378            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.buildDayTableModel = $t(Il), t.headerRef = Wo(), t.tableRef = Wo(), t }
4379            return n(t, e), t.prototype.render = function() {
4380                var e = this,
4381                    t = this.context,
4382                    n = t.options,
4383                    r = t.dateProfileGenerator,
4384                    o = this.props,
4385                    i = this.buildDayTableModel(o.dateProfile, r),
4386                    a = n.dayHeaders && Oo(Ha, { ref: this.headerRef, dateProfile: o.dateProfile, dates: i.headerDates, datesRepDistinctDays: 1 === i.rowCnt }),
4387                    s = function(t) { return Oo(kl, { 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 }) };
4388                return n.dayMinWidth ? this.renderHScrollLayout(a, s, i.colCnt, n.dayMinWidth) : this.renderSimpleLayout(a, s)
4389            }, t
4390        }(sl);
4391
4392    function Il(e, t) { var n = new Aa(e.renderRange, t); return new Wa(n, /year|month|week/.test(e.currentRangeUnit)) }
4393    var Pl = Jo({
4394            initialView: "dayGridMonth",
4395            views: {
4396                dayGrid: {
4397                    component: Ml,
4398                    dateProfileGeneratorClass: function(e) {
4399                        function t() { return null !== e && e.apply(this, arguments) || this }
4400                        return n(t, e), t.prototype.buildRenderRange = function(t, n, r) {
4401                            var o, i = this.props.dateEnv,
4402                                a = e.prototype.buildRenderRange.call(this, t, n, r),
4403                                s = a.start,
4404                                l = a.end;
4405                            (/^(year|month)$/.test(n) && (s = i.startOfWeek(s), (o = i.startOfWeek(l)).valueOf() !== l.valueOf() && (l = tt(o, 1))), this.props.monthMode && this.props.fixedWeekCount) && (l = tt(l, 6 - Math.ceil(ot(s, l))));
4406                            return { start: s, end: l }
4407                        }, t
4408                    }(vi)
4409                },
4410                dayGridDay: { type: "dayGrid", duration: { days: 1 } },
4411                dayGridWeek: { type: "dayGrid", duration: { weeks: 1 } },
4412                dayGridMonth: { type: "dayGrid", duration: { months: 1 }, monthMode: !0, fixedWeekCount: !0 }
4413            }
4414        }),
4415        Nl = function(e) {
4416            function t() { return null !== e && e.apply(this, arguments) || this }
4417            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 ? rr(e) ? ["timed", "allDay"] : ["allDay"] : ["timed"] }, t
4418        }(uo),
4419        Hl = vn({ hour: "numeric", minute: "2-digit", omitZeroMinute: !0, meridiem: "short" });
4420
4421    function Ol(e) {
4422        var t = ["fc-timegrid-slot", "fc-timegrid-slot-label", e.isLabeled ? "fc-scrollgrid-shrink" : "fc-timegrid-slot-minor"];
4423        return Oo(Go.Consumer, null, (function(n) {
4424            if (!e.isLabeled) return Oo("td", { className: t.join(" "), "data-time": e.isoTimeStr });
4425            var r = n.dateEnv,
4426                o = n.options,
4427                i = n.viewApi,
4428                a = null == o.slotLabelFormat ? Hl : Array.isArray(o.slotLabelFormat) ? vn(o.slotLabelFormat[0]) : vn(o.slotLabelFormat),
4429                s = { level: 0, time: e.time, date: r.toDate(e.date), view: i, text: r.format(e.date, a) };
4430            return Oo(ni, { hookProps: s, classNames: o.slotLabelClassNames, content: o.slotLabelContent, defaultContent: Al, didMount: o.slotLabelDidMount, willUnmount: o.slotLabelWillUnmount }, (function(n, r, o, i) { return Oo("td", { ref: n, className: t.concat(r).join(" "), "data-time": e.isoTimeStr }, Oo("div", { className: "fc-timegrid-slot-label-frame fc-scrollgrid-shrink-frame" }, Oo("div", { className: "fc-timegrid-slot-label-cushion fc-scrollgrid-shrink-cushion", ref: o }, i))) }))
4431        }))
4432    }
4433
4434    function Al(e) { return e.text }
4435    var Wl = function(e) {
4436            function t() { return null !== e && e.apply(this, arguments) || this }
4437            return n(t, e), t.prototype.render = function() { return this.props.slatMetas.map((function(e) { return Oo("tr", { key: e.key }, Oo(Ol, r({}, e))) })) }, t
4438        }(Yo),
4439        Ll = vn({ week: "short" }),
4440        Ul = function(e) {
4441            function t() {
4442                var t = null !== e && e.apply(this, arguments) || this;
4443                return t.allDaySplitter = new Nl, t.headerElRef = Wo(), t.rootElRef = Wo(), t.scrollerElRef = Wo(), t.state = { slatCoords: null }, t.handleScrollTopRequest = function(e) {
4444                    var n = t.scrollerElRef.current;
4445                    n && (n.scrollTop = e)
4446                }, t.renderHeadAxis = function(e, n) {
4447                    void 0 === n && (n = "");
4448                    var o = t.context.options,
4449                        i = t.props.dateProfile.renderRange,
4450                        a = 1 === it(i.start, i.end) ? mo(t.context, i.start, "week") : {};
4451                    return o.weekNumbers && "day" === e ? Oo(Cs, { date: i.start, defaultFormat: Ll }, (function(e, t, o, i) { return Oo("th", { ref: e, "aria-hidden": !0, className: ["fc-timegrid-axis", "fc-scrollgrid-shrink"].concat(t).join(" ") }, Oo("div", { className: "fc-timegrid-axis-frame fc-scrollgrid-shrink-frame fc-timegrid-axis-frame-liquid", style: { height: n } }, Oo("a", r({ ref: o, className: "fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner" }, a), i))) })) : Oo("th", { "aria-hidden": !0, className: "fc-timegrid-axis" }, Oo("div", { className: "fc-timegrid-axis-frame", style: { height: n } }))
4452                }, t.renderTableRowAxis = function(e) {
4453                    var n = t.context,
4454                        r = n.options,
4455                        o = n.viewApi,
4456                        i = { text: r.allDayText, view: o };
4457                    return Oo(ni, { hookProps: i, classNames: r.allDayClassNames, content: r.allDayContent, defaultContent: Bl, didMount: r.allDayDidMount, willUnmount: r.allDayWillUnmount }, (function(t, n, r, o) { return Oo("td", { ref: t, "aria-hidden": !0, className: ["fc-timegrid-axis", "fc-scrollgrid-shrink"].concat(n).join(" ") }, Oo("div", { className: "fc-timegrid-axis-frame fc-scrollgrid-shrink-frame" + (null == e ? " fc-timegrid-axis-frame-liquid" : ""), style: { height: e } }, Oo("span", { className: "fc-timegrid-axis-cushion fc-scrollgrid-shrink-cushion fc-scrollgrid-sync-inner", ref: r }, o))) }))
4458                }, t.handleSlatCoords = function(e) { t.setState({ slatCoords: e }) }, t
4459            }
4460            return n(t, e), t.prototype.renderSimpleLayout = function(e, t, n) {
4461                var r = this.context,
4462                    o = this.props,
4463                    i = [],
4464                    a = ls(r.options);
4465                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: Oo("tr", { role: "presentation", className: "fc-scrollgrid-section" }, Oo("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 } }), Oo(ci, { viewSpec: r.viewSpec, elRef: this.rootElRef }, (function(e, t) { return Oo("div", { className: ["fc-timegrid"].concat(t).join(" "), ref: e }, Oo(cs, { liquid: !o.isHeightAuto && !o.forPrint, collapsibleWidth: o.forPrint, cols: [{ width: "shrink" }], sections: i })) }))
4466            }, t.prototype.renderHScrollLayout = function(e, t, n, r, o, i, a) {
4467                var s = this,
4468                    l = this.context.pluginHooks.scrollGridImpl;
4469                if (!l) throw new Error("No ScrollGrid implementation");
4470                var u = this.context,
4471                    c = this.props,
4472                    d = !c.forPrint && ls(u.options),
4473                    p = !c.forPrint && us(u.options),
4474                    f = [];
4475                e && f.push({ type: "header", key: "header", isSticky: d, syncRowHeights: !0, chunks: [{ key: "axis", rowContent: function(e) { return Oo("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 Oo("tr", { role: "presentation" }, s.renderTableRowAxis(e.rowSyncHeights[0])) } }, { key: "cols", content: t }] }), f.push({ key: "all-day-divider", type: "body", outerContent: Oo("tr", { role: "presentation", className: "fc-scrollgrid-section" }, Oo("td", { colSpan: 2, className: "fc-timegrid-divider " + u.theme.getClass("tableCellShaded") })) }));
4476                var h = u.options.nowIndicator;
4477                return f.push({ type: "body", key: "body", liquid: !0, expandRows: Boolean(u.options.expandRows), chunks: [{ key: "axis", content: function(e) { return Oo("div", { className: "fc-timegrid-axis-chunk" }, Oo("table", { "aria-hidden": !0, style: { height: e.expandRows ? e.clientHeight : "" } }, e.tableColGroupNode, Oo("tbody", null, Oo(Wl, { slatMetas: i }))), Oo("div", { className: "fc-timegrid-now-indicator-container" }, Oo(Pa, { unit: h ? "minute" : "day" }, (function(e) { var t = h && a && a.safeComputeTop(e); return "number" == typeof t ? Oo(hs, { isAxis: !0, date: e }, (function(e, n, r, o) { return Oo("div", { ref: e, className: ["fc-timegrid-now-indicator-arrow"].concat(n).join(" "), style: { top: t } }, o) })) : null }
4477)))) } }, { key: "cols", scrollerElRef: this.scrollerElRef, content: n }] }), p && f.push({ key: "footer", type: "footer", isSticky: !0, chunks: [{ key: "axis", content: ss }, { key: "cols", content: ss }] }), Oo(ci, { viewSpec: u.viewSpec, elRef: this.rootElRef }, (function(e, t) { return Oo("div", { className: ["fc-timegrid"].concat(t).join(" "), ref: e }, Oo(l, { liquid: !c.isHeightAuto && !c.forPrint, collapsibleWidth: !1, colGroups: [{ width: "shrink", cols: [{ width: "shrink" }] }, { cols: [{ span: r, minWidth: o }] }], sections: f })) }))
4478            }, t.prototype.getAllDayMaxEventProps = function() {
4479                var e = this.context.options,
4480                    t = e.dayMaxEvents,
4481                    n = e.dayMaxEventRows;
4482                return !0 !== t && !0 !== n || (t = void 0, n = 5), { dayMaxEvents: t, dayMaxEventRows: n }
4483            }, t
4484        }($o);
4485
4486    function Bl(e) { return e.text }
4487    var zl = function() {
4488            function e(e, t, n) { this.positions = e, this.dateProfile = t, this.slotDuration = n }
4489            return e.prototype.safeComputeTop = function(e) {
4490                var t = this.dateProfile;
4491                if (tr(t.currentRange, e)) {
4492                    var n = ut(e),
4493                        r = e.valueOf() - n.valueOf();
4494                    if (r >= Vt(t.slotMinTime) && r < Vt(t.slotMaxTime)) return this.computeTimeTop(Ht(r))
4495                }
4496                return null
4497            }, e.prototype.computeDateTop = function(e, t) { return t || (t = ut(e)), this.computeTimeTop(Ht(e.valueOf() - t.valueOf())) }, e.prototype.computeTimeTop = function(e) {
4498                var t, n, r = this.positions,
4499                    o = this.dateProfile,
4500                    i = r.els.length,
4501                    a = (e.milliseconds - Vt(o.slotMinTime)) / Vt(this.slotDuration);
4502                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
4503            }, e
4504        }(),
4505        Vl = function(e) {
4506            function t() { return null !== e && e.apply(this, arguments) || this }
4507            return n(t, e), t.prototype.render = function() {
4508                var e = this.props,
4509                    t = this.context,
4510                    n = t.options,
4511                    o = e.slatElRefs;
4512                return Oo("tbody", null, e.slatMetas.map((function(i, a) {
4513                    var s = { time: i.time, date: t.dateEnv.toDate(i.date), view: t.viewApi },
4514                        l = ["fc-timegrid-slot", "fc-timegrid-slot-lane", i.isLabeled ? "" : "fc-timegrid-slot-minor"];
4515                    return Oo("tr", { key: i.key, ref: o.createRef(i.key) }, e.axis && Oo(Ol, r({}, i)), Oo(ni, { hookProps: s, classNames: n.slotLaneClassNames, content: n.slotLaneContent, didMount: n.slotLaneDidMount, willUnmount: n.slotLaneWillUnmount }, (function(e, t, n, r) { return Oo("td", { ref: e, className: l.concat(t).join(" "), "data-time": i.isoTimeStr }, r) })))
4516                })))
4517            }, t
4518        }(Yo),
4519        Fl = function(e) {
4520            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.rootElRef = Wo(), t.slatElRefs = new Ka, t }
4521            return n(t, e), t.prototype.render = function() {
4522                var e = this.props,
4523                    t = this.context;
4524                return Oo("div", { ref: this.rootElRef, className: "fc-timegrid-slots" }, Oo("table", { "aria-hidden": !0, className: t.theme.getClass("table"), style: { minWidth: e.tableMinWidth, width: e.clientWidth, height: e.minHeight } }, e.tableColGroupNode, Oo(Vl, { slatElRefs: this.slatElRefs, axis: e.axis, slatMetas: e.slatMetas })))
4525            }, 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() {
4526                var e, t = this.context,
4527                    n = this.props;
4528                n.onCoords && null !== n.clientWidth && (this.rootElRef.current.offsetHeight && n.onCoords(new zl(new ko(this.rootElRef.current, (e = this.slatElRefs.currentMap, n.slatMetas.map((function(t) { return e[t.key] }))), !1, !0), this.props.dateProfile, t.options.slotDuration)))
4529            }, t
4530        }(Yo);
4531
4532    function Gl(e, t) {
4533        var n, r = [];
4534        for (n = 0; n < t; n += 1) r.push([]);
4535        if (e)
4536            for (n = 0; n < e.length; n += 1) r[e[n].col].push(e[n]);
4537        return r
4538    }
4539
4540    function jl(e, t) {
4541        var n = [];
4542        if (e) {
4543            for (a = 0; a < t; a += 1) n[a] = { affectedInstances: e.affectedInstances, isEvent: e.isEvent, segs: [] };
4544            for (var r = 0, o = e.segs; r < o.length; r++) {
4545                var i = o[r];
4546                n[i.col].segs.push(i)
4547            }
4548        } else
4549            for (var a = 0; a < t; a += 1) n[a] = null;
4550        return n
4551    }
4552    var ql = function(e) {
4553        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.rootElRef = Wo(), t }
4554        return n(t, e), t.prototype.render = function() {
4555            var e = this,
4556                t = this.props;
4557            return Oo(Ts, { allDayDate: null, moreCnt: t.hiddenSegs.length, allSegs: t.hiddenSegs, hiddenSegs: t.hiddenSegs, al
4557ignmentElRef: this.rootElRef, defaultContent: Yl, extraDateSpan: t.extraDateSpan, dateProfile: t.dateProfile, todayRange: t.todayRange, popoverContent: function() { return ou(t.hiddenSegs, t) } }, (function(n, r, o, i, a, s, l, u) { return Oo("a", { ref: function(t) { Ko(n, t), Ko(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 }, Oo("div", { ref: o, className: "fc-timegrid-more-link-inner fc-sticky" }, i)) }))
4558        }, t
4559    }(Yo);
4560
4561    function Yl(e) { return e.shortText }
4562
4563    function Zl(e, t, n) {
4564        var o = new ta;
4565        null != t && (o.strictOrder = t), null != n && (o.maxStackCnt = n);
4566        var i, a, s, l = oa(o.addSegs(e)),
4567            u = function(e) {
4568                var t = e.entriesByLevel,
4569                    n = Jl((function(e, t) { return e + ":" + t }), (function(o, i) {
4570                        var a = Xl(function(e, t, n) {
4571                                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);
4572                                for (; l < s; l += 1) {
4573                                    for (var u = o[l], c = void 0, d = la(u, i.span.start, na), p = d[0] + d[1], f = p;
4574                                        (c = u[f]) && c.span.start < i.span.end;) f += 1;
4575                                    if (p < f) return { level: l, lateralStart: p, lateralEnd: f }
4576                                }
4577                                return null
4578                            }(e, o, i), n),
4579                            s = t[o][i];
4580                        return [r(r({}, s), { nextLevelNodes: a[0] }), s.thickness + a[1]]
4581                    }));
4582                return Xl(t.length ? { level: 0, lateralStart: 0, lateralEnd: t[0].length } : null, n)[0]
4583            }(o);
4584        return i = u, a = 1, s = Jl((function(e, t, n) { return ra(e) }), (function(e, t, n) {
4585            var o, i = e.nextLevelNodes,
4586                l = e.thickness,
4587                u = l + n,
4588                c = l / u,
4589                d = [];
4590            if (i.length)
4591                for (var p = 0, f = i; p < f.length; p++) {
4592                    var h = f[p];
4593                    if (void 0 === o) o = (v = s(h, t, u))[0], d.push(v[1]);
4594                    else {
4595                        var v = s(h, o, 0);
4596                        d.push(v[1])
4597                    }
4598                } else o = a;
4599            var g = (o - t) * c;
4600            return [o - g, r(r({}, e), { thickness: g, nextLevelNodes: d })]
4601        })), {
4602            segRects: function(e) {
4603                var t = [],
4604                    n = Jl((function(e, t, n) { return ra(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 }));
4605
4606                function o(e, t, r) {
4607                    for (var o = 0, i = 0, a = e; i < a.length; i++) {
4608                        var s = a[i];
4609                        o = Math.max(n(s, t, r), o)
4610                    }
4611                    return o
4612                }
4613                return o(e, 0, 0), t
4614            }(u = i.map((function(e) { return s(e, 0, 0)[1] }))),
4615            hiddenGroups: l
4616        }
4617    }
4618
4619    function Xl(e, t) {
4620        if (!e) return [
4621            [], 0
4622        ];
4623        for (var n = e.level, r = e.lateralStart, o = e.lateralEnd, i = r, a = []; i < o;) a.push(t(n, i)), i += 1;
4624        return a.sort(Kl), [a.map($l), a[0][1]]
4625    }
4626
4627    function Kl(e, t) { return t[1] - e[1] }
4628
4629    function $l(e) { return e[0] }
4630
4631    function Jl(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) } }
4632
4633    function Ql(e, t, n, r) {
4634        void 0 === n && (n = null), void 0 === r && (r = 0);
4635        var o = [];
4636        if (n)
4637            for (var i = 0; i < e.length; i += 1) {
4638                var a = e[i],
4639                    s = n.computeDateTop(a.start, t),
4640                    l = Math.max(s + (r || 0), n.computeDateTop(a.end, t));
4641                o.push({ start: Math.round(s), end: Math.round(l) })
4642            }
4643        return o
4644    }
4645    var eu = vn({ hour: "numeric", minute: "2-digit", meridiem: !1 }),
4646        tu = function(e) {
4647            function t() { return null !== e && e.apply(this, arguments) || this }
4648            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"), Oo(ps, r({}, this.props, { defaultTimeFormat: eu, extraClassNames: e })) }, t
4649        }(Yo),
4650        nu = function(e) {
4651            function t() { return null !== e && e.apply(this, arguments) || this }
4652            return n(t, e), t.prototype.render = function() { var e = this.props; return Oo(gs, { date: e.date, dateProfile: e.dateProfile, todayRange: e.todayRange, extraHookProps: e.extraHookProps }, (function(e, t) { return t && Oo("div", { className: "fc-timegrid-col-misc", ref: e }, t) })) }, t
4653        }(Yo),
4654        ru = function(e) {
4655            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.sortEventSegs = $t(lr), t }
4656            return n(t, e), t.prototype.render = function() {
4657                var e = this,
4658                    t = this.props,
4659                    n = this.context,
4660                    o = n.options.selectMirror,
4661                    i = t.eventDrag && t.eventDrag.segs || t.eventResize && t.eventResize.segs || o && t.dateSelectionSegs || [],
4662                    a = t.eventDrag && t.eventDrag.affectedInstances || t.eventResize && t.eventResize.affectedInstances || {},
4663                    s = this.sortEventSegs(t.fgEventSegs, n.options.eventOrder);
4664                return Oo(ys, { elRef: t.elRef, date: t.date, dateProfile: t.dateProfile, todayRange: t.todayRange, extraHookProps: t.extraHookProps }, (function(n, l, u) { return Oo("td", r({ ref: n, role: "gridcell", className: ["fc-timegrid-col"].concat(l, t.extraClassNames || []).join(" ") }, u, t.extraDataAttrs), Oo("div", { className: "fc-timegrid-col-frame" }, Oo("div", { className: "fc-timegrid-col-bg" }, e.renderFillSegs(t.businessHourSegs, "non-business"), e.renderFillSegs(t.bgEventSegs, "bg-event"), e.renderFillSegs(t.dateSelectionSegs, "highlight")), Oo("div", { className: "fc-timegrid-col-events" }, e.renderFgSegs(s, a, !1, !1, !1)), Oo("div", { className: "fc-timegrid-col-events" }, e.renderFgSegs(i, {}, Boolean(t.eventDrag), Boolean(t.eventResize), Boolean(o))), Oo("div", { className: "fc-timegrid-now-indicator-container" }, e.renderNowIndicator(t.nowIndicatorSegs)), Oo(nu, { date: t.date, dateProfile: t.dateProfile, todayRange: t.todayRange, extraHookProps: t.extraHookProps }))) }))
4665            }, t.prototype.renderFgSegs = function(e, t, n, r, o) { var i = this.props; return i.forPrint ? ou(e, i) : this.renderPositionedFgSegs(e, t, n, r, o) }, t.prototype.renderPositionedFgSegs = function(e, t, n, o, i) {
4666                var a = this,
4667                    s = this.context.options,
4668                    l = s.eventMaxStack,
4669                    u = s.eventShortHeight,
4670                    c = s.eventOrderStrict,
4671                    d = s.eventMinHeight,
4672                    p = this.props,
4673                    f = p.date,
4674                    h = p.slatCoords,
4675                    v = p.eventSelection,
4676                    g = p.todayRange,
4677                    m = p.nowDate,
4678                    y = n || o || i,
4679                    S = function(e, t, n, r) {
4680                        for (var o = [], i = [], a = 0; a < e.length; a += 1) {
4681                            var s = t[a];
4682                            s ? o.push({ index: a, thickness: 1, span: s }) : i.push(e[a])
4683                        }
4684                        for (var l = Zl(o, n, r), u = l.segRects, c = l.hiddenGroups, d = [], p 
4684= 0, f = u; p < f.length; p++) {
4685                            var h = f[p];
4686                            d.push({ seg: e[h.index], rect: h })
4687                        }
4688                        for (var v = 0, g = i; v < g.length; v++) {
4689                            var m = g[v];
4690                            d.push({ seg: m, rect: null })
4691                        }
4692                        return { segPlacements: d, hiddenGroups: c }
4693                    }(e, Ql(e, f, h, d), c, l),
4694                    E = S.segPlacements,
4695                    b = S.hiddenGroups;
4696                return Oo(Lo, null, this.renderHiddenGroups(b, e), E.map((function(e) {
4697                    var s = e.seg,
4698                        l = e.rect,
4699                        c = s.eventRange.instance.instanceId,
4700                        d = y || Boolean(!t[c] && l),
4701                        p = iu(l && l.span),
4702                        f = !y && l ? a.computeSegHStyle(l) : { left: 0, right: 0 },
4703                        h = Boolean(l) && l.stackForward > 0,
4704                        S = Boolean(l) && l.span.end - l.span.start < u;
4705                    return Oo("div", { className: "fc-timegrid-event-harness" + (h ? " fc-timegrid-event-harness-inset" : ""), key: c, style: r(r({ visibility: d ? "" : "hidden" }, p), f) }, Oo(tu, r({ seg: s, isDragging: n, isResizing: o, isDateSelecting: i, isSelected: c === v, isShort: S }, hr(s, g, m))))
4706                })))
4707            }, t.prototype.renderHiddenGroups = function(e, t) {
4708                var n = this.props,
4709                    r = n.extraDateSpan,
4710                    o = n.dateProfile,
4711                    i = n.todayRange,
4712                    a = n.nowDate,
4713                    s = n.eventSelection,
4714                    l = n.eventDrag,
4715                    u = n.eventResize;
4716                return Oo(Lo, null, e.map((function(e) {
4717                    var n, c, d = iu(e.span),
4718                        p = (n = e.entries, c = t, n.map((function(e) { return c[e.index] })));
4719                    return Oo(ql, { key: jt(ks(p)), hiddenSegs: p, top: d.top, bottom: d.bottom, extraDateSpan: r, dateProfile: o, todayRange: i, nowDate: a, eventSelection: s, eventDrag: l, eventResize: u })
4720                })))
4721            }, t.prototype.renderFillSegs = function(e, t) {
4722                var n = this.props,
4723                    o = this.context,
4724                    i = Ql(e, n.date, n.slatCoords, o.options.eventMinHeight).map((function(o, i) { var a = e[i]; return Oo("div", { key: gr(a.eventRange), className: "fc-timegrid-bg-harness", style: iu(o) }, "bg-event" === t ? Oo(Es, r({ seg: a }, hr(a, n.todayRange, n.nowDate))) : Ss(t)) }));
4725                return Oo(Lo, null, i)
4726            }, t.prototype.renderNowIndicator = function(e) {
4727                var t = this.props,
4728                    n = t.slatCoords,
4729                    r = t.date;
4730                return n ? e.map((function(e, t) { return Oo(hs, { isAxis: !1, date: r, key: t }, (function(t, o, i, a) { return Oo("div", { ref: t, className: ["fc-timegrid-now-indicator-line"].concat(o).join(" "), style: { top: n.computeDateTop(e.start, r) } }, a) })) })) : null
4731            }, t.prototype.computeSegHStyle = function(e) {
4732                var t, n, r = this.context,
4733                    o = r.isRtl,
4734                    i = r.options.slotEventOverlap,
4735                    a = e.levelCoord,
4736                    s = e.levelCoord + e.thickness;
4737                i && (s = Math.min(1, a + 2 * (s - a))), o ? (t = 1 - s, n = a) : (t = a, n = 1 - s);
4738                var l = { zIndex: e.stackDepth + 1, left: 100 * t + "%", right: 100 * n + "%" };
4739                return i && !e.stackForward && (l[o ? "marginLeft" : "marginRight"] = 20), l
4740            }, t
4741        }(Yo);
4742
4743    function ou(e, t) {
4744        var n = t.todayRange,
4745            o = t.nowDate,
4746            i = t.eventSelection,
4747            a = t.eventDrag,
4748            s = t.eventResize,
4749            l = (a ? a.affectedInstances : null) || (s ? s.affectedInstances : null) || {};
4750        return Oo(Lo, null, e.map((function(e) { var t = e.eventRange.instance.instanceId; return Oo("div", { key: t, style: { visibility: l[t] ? "hidden" : "" } }, Oo(tu, r({ seg: e, isDragging: !1, isResizing: !1, isDateSelecting: !1, isSelected: t === i, isShort: !1 }, hr(e, n, o)))) })))
4751    }
4752
4753    function iu(e) { return e ? { top: e.start, bottom: -e.end } : { top: "", bottom: "" } }
4754    var au = function(e) {
4755        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.splitFgEventSegs = $t(Gl), t.splitBgEventSegs = $t(Gl), t.splitBusinessHourSegs = $t(Gl), t.splitNowIndicatorSegs = $t(Gl), t.splitDateSelectionSegs = $t(Gl), t.splitEventDrag = $t(jl), t.splitEventResize = $t(jl), t.rootElRef = Wo(), t.cellElRefs = new Ka, t }
4756        return n(t, e), t.prototype.render = function() {
4757            var e = this,
4758                t = this.props,
4759                n = this.context.options.nowIndicator && t.slatCoords && t.slatCoords.safeComputeTop(t.nowDate),
4760                r = t.cells.length,
4761                o = this.splitFgEventSegs(t.fgEventSegs, r),
4762                i = this.splitBgEventSegs(t.bgEventSegs, r),
4763                a = this.splitBusinessHourSegs(t.businessHourSegs, r),
4764                s = this.splitNowIndicatorSegs(t.nowIndicatorSegs, r),
4765                l = this.splitDateSelectionSegs(t.dateSelectionSegs, r),
4766                u = this.splitEventDrag(t.eventDrag, r),
4767                c = this.splitEventResize(t.eventResize, r);
4768            return Oo("div", { className: "fc-timegrid-cols", ref: this.rootElRef }, Oo("table", { role: "presentation", style: { minWidth: t.tableMinWidth, width: t.clientWidth } }, t.tableColGroupNode, Oo("tbody", { role: "presentation" }, Oo("tr", { role: "row" }, t.axis && Oo("td", { "aria-hidden": !0, className: "fc-timegrid-col fc-timegrid-axis" }, Oo("div", { className: "fc-timegrid-col-frame" }, Oo("div", { className: "fc-timegrid-now-indicator-container" }, "number" == typeof n && Oo(hs, { isAxis: !0, date: t.nowDate }, (function(e, t, r, o) { return Oo("div", { ref: e, className: ["fc-timegrid-now-indicator-arrow"].concat(t).join(" "), style: { top: n } }, o) }))))), t.cells.map((function(n, r) { return Oo(ru, { 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 }) }))))))
4769        }, t.prototype.componentDidMount = function() { this.updateCoords() }, t.prototype.componentDidUpdate = function() { this.updateCoords() }, t.prototype.updateCoords = function() {
4770            var e, t = this.props;
4771            t.onColCoords && null !== t.clientWidth && t.onColCoords(new ko(this.rootElRef.current, (e = this.cellElRefs.currentMap, t.cells.map((function(t) { return e[t.key] }))), !0, !1))
4772        }, t
4773    }(Yo);
4774    var su = function(e) {
4775        function t() {
4776            var t = null !== e && e.apply(this, arguments) || this;
4777            return t.processSlotOptions = $t(lu), 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) {
4778                var n = t.props.onScrollTopRequest,
4779                    r = t.state.slatCoords;
4780                if (n && r) {
4781                    if (e.time) {
4782                        var o = r.computeTimeTop(e.time);
4783                        (o = Math.ceil(o)) && (o += 1), n(o)
4784                    }
4785                    return !0
4786                }
4787                return !1
4788            }, t.handleColCoords = function(e) { t.colCoords = e }, t.handleSlatCoords = function(e) { t.setState({ slatCoords: e }), t.props.onSlatCoords && t.props.onSlatCoords(e) }, t
4789        }
4790        return n(t, e), t.prototype.render = function() {
4791            var e = this.props,
4792                t = this.state;
4793            return Oo("div", { className: "fc-timegrid-body", ref: this.handleRootEl, style: { width: e.clientWidth, minWidth: e.tableMinWidth } }, Oo(Fl, { 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 }), Oo(au, { 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, slat
4793Coords: t.slatCoords, onColCoords: this.handleColCoords, forPrint: e.forPrint }))
4794        }, 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) {
4795            var n = this.context,
4796                o = n.dateEnv,
4797                i = n.options,
4798                a = this.colCoords,
4799                s = this.props.dateProfile,
4800                l = this.state.slatCoords,
4801                u = this.processSlotOptions(this.props.slotDuration, i.snapDuration),
4802                c = u.snapDuration,
4803                d = u.snapsPerSlot,
4804                p = a.leftToIndex(e),
4805                f = l.positions.topToIndex(t);
4806            if (null != p && null != f) {
4807                var h = this.props.cells[p],
4808                    v = l.positions.tops[f],
4809                    g = l.positions.getHeight(f),
4810                    m = (t - v) / g,
4811                    y = f * d + Math.floor(m * d),
4812                    S = this.props.cells[p].date,
4813                    E = Wt(s.slotMinTime, Lt(c, y)),
4814                    b = o.add(S, E),
4815                    C = o.add(b, c);
4816                return { dateProfile: s, dateSpan: r({ range: { start: b, end: C }, allDay: !1 }, h.extraDateSpan), dayEl: a.els[p], rect: { left: a.lefts[p], right: a.rights[p], top: v, bottom: v + g }, layer: 0 }
4817            }
4818            return null
4819        }, t
4820    }($o);
4821
4822    function lu(e, t) {
4823        var n = t || e,
4824            r = Ft(e, n);
4825        return null === r && (n = e, r = 1), { snapDuration: n, snapsPerSlot: r }
4826    }
4827    var uu = function(e) {
4828            function t() { return null !== e && e.apply(this, arguments) || this }
4829            return n(t, e), t.prototype.sliceRange = function(e, t) {
4830                for (var n = [], r = 0; r < t.length; r += 1) {
4831                    var o = $n(e, t[r]);
4832                    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 })
4833                }
4834                return n
4835            }, t
4836        }(La),
4837        cu = function(e) {
4838            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.buildDayRanges = $t(du), t.slicer = new uu, t.timeColsRef = Wo(), t }
4839            return n(t, e), t.prototype.render = function() {
4840                var e = this,
4841                    t = this.props,
4842                    n = this.context,
4843                    o = t.dateProfile,
4844                    i = t.dayTableModel,
4845                    a = n.options.nowIndicator,
4846                    s = this.buildDayRanges(i, o, n.dateEnv);
4847                return Oo(Pa, { unit: a ? "minute" : "day" }, (function(l, u) { return Oo(su, 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 })) }))
4848            }, t
4849        }($o);
4850
4851    function du(e, t, n) {
4852        for (var r = [], o = 0, i = e.headerDates; o < i.length; o++) {
4853            var a = i[o];
4854            r.push({ start: n.add(a, t.slotMinTime), end: n.add(a, t.slotMaxTime) })
4855        }
4856        return r
4857    }
4858    var pu = [{ hours: 1 }, { minutes: 30 }, { minutes: 15 }, { seconds: 30 }, { seconds: 15 }];
4859
4860    function fu(e, t, n, r, o) {
4861        for (var i = new Date(0), a = e, s = Ht(0), l = n || function(e) {
4862                var t, n, r;
4863                for (t = pu.length - 1; t >= 0; t -= 1)
4864                    if (null !== (r = Ft(n = Ht(pu[t]), e)) && r > 1) return n;
4865                return e
4866            }(r), u = []; Vt(a) < Vt(t);) {
4867            var c = o.add(i, a),
4868                d = null !== Ft(s, l);
4869            u.push({ date: c, time: a, key: c.toISOString(), isoTimeStr: Yt(c), isLabeled: d }), a = Wt(a, r), s = Wt(s, r)
4870        }
4871        return u
4872    }
4873    var hu = function(e) {
4874        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.buildTimeColsModel = $t(vu), t.buildSlatMetas = $t(fu), t }
4875        return n(t, e), t.prototype.render = function() {
4876            var e = this,
4877                t = this.context,
4878                n = t.options,
4879                o = t.dateEnv,
4880                i = t.dateProfileGenerator,
4881                a = this.props,
4882                s = a.dateProfile,
4883                l = this.buildTimeColsModel(s, i),
4884                u = this.allDaySplitter.splitProps(a),
4885                c = this.buildSlatMetas(s.slotMinTime, s.slotMaxTime, n.slotLabelInterval, n.slotDuration, o),
4886                d = n.dayMinWidth,
4887                p = !d,
4888                f = d,
4889                h = n.dayHeaders && Oo(Ha, { dates: l.headerDates, dateProfile: s, datesRepDistinctDays: !0, renderIntro: p ? this.renderHeadAxis : null }),
4890                v = !1 !== n.allDaySlot && function(t) { return Oo(kl, 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())) },
4891                g = function(t) { return Oo(cu, 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 })) };
4892            return f ? this.renderHScrollLayout(h, v, g, l.colCnt, d, c, this.state.slatCoords) : this.renderSimpleLayout(h, v, g)
4893        }, t
4894    }(Ul);
4895
4896    function vu(e, t) { var n = new Aa(e.renderRange, t); return new Wa(n, !1) }
4897    var gu = Jo({ initialView: "timeGridWeek", optionRefiners: { allDaySlot: Boolean }, views: { timeGrid: { component: hu, usesMinMaxTime: !0, allDaySlot: !0, slotDuration: "00:30:00", slotEventOverlap: !0 }, timeGridDay: { type: "timeGrid", duration: { days: 1 } }, timeGridWeek: { type: "timeGrid", duration: { weeks: 1 } } } }),
4898        mu = function(e) {
4899            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.state = { textId: Me() }, t }
4900            return n(t, e), t.prototype.render = function() {
4901                var e = this.context,
4902                    t = e.theme,
4903                    n = e.dateEnv,
4904                    o = e.options,
4905                    i = e.viewApi,
4906                    a = this.props,
4907                    s = a.cellId,
4908                    l = a.dayDate,
4909                    u = a.todayRange,
4910                    c = this.state.textId,
4911                    d = po(l, u),
4912                    p = o.listDayFormat ? n.format(l, o.listDayFormat) : "",
4913                    f = o.listDaySideFormat ? n.format(l, o.listDaySideFormat) : "",
4914                    h = r({ date: n.toDate(l), view: i, textId: c, text: p, sideText: f, navLinkAttrs: mo(this.context, l), sideNavLinkAttrs: mo(this.context, l, "day", !1) }, d),
4915                    v = ["fc-list-day"].concat(fo(d, t));
4916                return Oo(ni, { hookProps: h, classNames: o.dayHeaderClassNames, content: o.dayHeaderContent, defaultContent: yu, didMount: o.dayHeaderDidMount, willUnmount: o.dayHeaderWillUnmount }, (function(e, n, r, o) { return Oo("tr", { ref: e, className: v.concat(n).join(" "), "data-date": qt(l) }, Oo("th", { scope: "colgroup", colSpan: 3, id: s, "aria-labelledby": c }, Oo("div", { className: "fc-list-day-cushion " + t.getClass("tableCellShaded"), ref: r }, o))) }))
4917            }, t
4918        }(Yo);
4919
4920    function yu(e) { return Oo(Lo, null, e.text && Oo("a", r({ id: e.textId, className: "fc-list-day-text" }, e.navLinkAttrs), e.text), e.sideText && Oo("a", r({ "aria-hidden": !0, className: "fc-list-day-side-text" }, e.sideNavLinkAttrs), e.sideText)) }
4921    var Su = vn({ hour: "numeric", minute: "2-digit", meridiem: "short" }),
4922        Eu = function(e) {
4923            function t() { return null !== e && e.apply(this, arguments) || this }
4924            return n(t, e), t.prototype.render = function() {
4925                var e = this.props,
4926                    t = this.context,
4927                    n = e.seg,
4928                    o = e.timeHeaderId,
4929                    i = e.eventHeaderId,
4930                    a = e.dateHeaderId,
4931                    s = t.options.eventTimeFormat || Su;
4932                return Oo(ds, { seg: n, timeText: "", disableDragging: !0, disableResizing: !0, defaultContent: function() { return function(e, t) { var n = mr(e, t); return Oo("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) {
4933                    return Oo("tr", { className: ["fc-list-event", c.event.url ? "fc-event-forced-url" : ""].concat(r).join(" "), ref: e }, function(e, t, n, r, o) {
4934                        var i = n.options;
4935                        if (!1 !== i.displayEventTime) {
4936                            var a = e.eventRange.def,
4937                                s = e.eventRange.instance,
4938                                l = !1,
4939                                u = void 0;
4940                            if (a.allDay ? l = !0 : Yn(e.eventRange.range) ? e.isStart ? u = fr(e, t, n, null, null, s.range.start, e.end) : e.isEnd ? u = fr(e, t, n, null, null, e.start, s.range.end) : l = !0 : u = fr(e, t, n), l) { var c = { text: n.options.allDayText, view: n.viewApi }; return Oo(ni, { hookProps: c, classNames: i.allDayClassNames, content: i.allDayContent, defaultContent: bu, didMount: i.allDayDidMount, willUnmount: i.allDayWillUnmount }, (function(e, t, n, i) { return Oo("td", { ref: e, headers: r + " " + o, className: ["fc-list-event-time"].concat(t).join(" ") }, i) })) }
4941                            return Oo("td", { className: "fc-list-event-time" }, u)
4942                        }
4943                        return null
4944                    }(n, s, t, o, a), Oo("td", { "aria-hidden": !0, className: "fc-list-event-graphic" }, Oo("span", { className: "fc-list-event-dot", style: { borderColor: c.borderColor || c.backgroundColor } })), Oo("td", { ref: l, headers: i + " " + a, className: "fc-list-event-title" }, u))
4945                }))
4946            }, t
4947        }(Yo);
4948
4949    function bu(e) { return e.text }
4950    var Cu = function(e) {
4951        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.computeDateVars = $t(Ru), t.eventStoreToSegs = $t(t._eventStoreToSegs), t.state = { timeHeaderId: Me(), eventHeaderId: Me(), dateHeaderIdRoot: Me() }, t.setRootEl = function(e) { e ? t.context.registerInteractiveComponent(t, { el: e }) : t.context.unregisterInteractiveComponent(t) }, t }
4952        return n(t, e), t.prototype.render = function() {
4953            var e = this,
4954                t = this.props,
4955                n = this.context,
4956                r = ["fc-list", n.theme.getClass("table"), !1 !== n.options.stickyHeaderDates ? "fc-list-sticky" : ""],
4957                o = this.computeDateVars(t.dateProfile),
4958                i = o.dayDates,
4959                a = o.dayRanges,
4960                s = this.eventStoreToSegs(t.eventStore, t.eventUiBases, a);
4961            return Oo(ci, { viewSpec: n.viewSpec, elRef: this.setRootEl }, (function(n, o) { return Oo("div", { ref: n, className: r.concat(o).join(" ") }, Oo(Xa, { liquid: !t.isHeightAuto, overflowX: t.isHeightAuto ? "visible" : "hidden", overflowY: t.isHeightAuto ? "visible" : "auto" }, s.length >
4961 0 ? e.renderSegList(s, i) : e.renderEmptyMessage())) }))
4962        }, t.prototype.renderEmptyMessage = function() {
4963            var e = this.context,
4964                t = e.options,
4965                n = e.viewApi,
4966                r = { text: t.noEventsText, view: n };
4967            return Oo(ni, { hookProps: r, classNames: t.noEventsClassNames, content: t.noEventsContent, defaultContent: Du, didMount: t.noEventsDidMount, willUnmount: t.noEventsWillUnmount }, (function(e, t, n, r) { return Oo("div", { className: ["fc-list-empty"].concat(t).join(" "), ref: e }, Oo("div", { className: "fc-list-empty-cushion", ref: n }, r)) }))
4968        }, t.prototype.renderSegList = function(e, t) {
4969            var n = this.context,
4970                o = n.theme,
4971                i = n.options,
4972                a = this.state,
4973                s = a.timeHeaderId,
4974                l = a.eventHeaderId,
4975                u = a.dateHeaderIdRoot,
4976                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);
4977            return Oo(Pa, { unit: "day" }, (function(e, n) {
4978                for (var a = [], d = 0; d < c.length; d += 1) {
4979                    var p = c[d];
4980                    if (p) {
4981                        var f = qt(t[d]),
4982                            h = u + "-" + f;
4983                        a.push(Oo(mu, { key: f, cellId: h, dayDate: t[d], todayRange: n }));
4984                        for (var v = 0, g = p = lr(p, i.eventOrder); v < g.length; v++) {
4985                            var m = g[v];
4986                            a.push(Oo(Eu, r({ key: f + ":" + m.eventRange.instance.instanceId, seg: m, isDragging: !1, isResizing: !1, isDateSelecting: !1, isSelected: !1, timeHeaderId: s, eventHeaderId: l, dateHeaderId: h }, hr(m, n, e))))
4987                        }
4988                    }
4989                }
4990                return Oo("table", { className: "fc-list-table " + o.getClass("table") }, Oo("thead", null, Oo("tr", null, Oo("th", { scope: "col", id: s }, i.timeHint), Oo("th", { scope: "col", "aria-hidden": !0 }), Oo("th", { scope: "col", id: l }, i.eventHint))), Oo("tbody", null, a))
4991            }))
4992        }, t.prototype._eventStoreToSegs = function(e, t, n) { return this.eventRangesToSegs(nr(e, t, this.props.dateProfile.activeRange, this.context.options.nextDayThreshold).fg, n) }, t.prototype.eventRangesToSegs = function(e, t) {
4993            for (var n = [], r = 0, o = e; r < o.length; r++) {
4994                var i = o[r];
4995                n.push.apply(n, this.eventRangeToSegs(i, t))
4996            }
4997            return n
4998        }, t.prototype.eventRangeToSegs = function(e, t) {
4999            var n, r, o, i = this.context.dateEnv,
5000                a = this.context.options.nextDayThreshold,
5001                s = e.range,
5002                l = e.def.allDay,
5003                u = [];
5004            for (n = 0; n < t.length; n += 1)
5005                if ((r = $n(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 }
5006            return u
5007        }, t
5008    }($o);
5009
5010    function Du(e) { return e.text }
5011
5012    function Ru(e) { for (var t = ut(e.renderRange.start), n = e.renderRange.end, r = [], o = []; t < n;) r.push(t), o.push({ start: t, end: nt(t, 1) }), t = nt(t, 1); return { dayDates: r, dayRanges: o } }
5013
5014    function wu(e) { return !1 === e ? null : vn(e) }
5015    var Tu = Jo({ optionRefiners: { listDayFormat: wu, listDaySideFormat: wu, noEventsClassNames: wn, noEventsContent: wn, noEventsDidMount: wn, noEventsWillUnmount: wn }, views: { list: { component: Cu, 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" }
5015, 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" } } } }),
5016        xu = function(e) {
5017            function t() { return null !== e && e.apply(this, arguments) || this }
5018            return n(t, e), t
5019        }(No);
5020    xu.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" }, xu.prototype.baseIconClass = "fa", xu.prototype.iconClasses = { close: "fa-times", prev: "fa-chevron-left", next: "fa-chevron-right", prevYear: "fa-angle-double-left", nextYear: "fa-angle-double-right" }, xu.prototype.rtlIconClasses = { prev: "fa-chevron-right", next: "fa-chevron-left", prevYear: "fa-angle-double-right", nextYear: "fa-angle-double-left" }, xu.prototype.iconOverrideOption = "bootstrapFontAwesome", xu.prototype.iconOverrideCustomButtonOption = "bootstrapFontAwesome", xu.prototype.iconOverridePrefix = "fa-";
5021    var _u = Jo({ themeClasses: { bootstrap: xu } }),
5022        ku = function(e) {
5023            function t() { return null !== e && e.apply(this, arguments) || this }
5024            return n(t, e), t
5025        }(No);
5026    ku.prototype.classes = { root: "fc-theme-bootstrap5", tableCellShaded: "fc-theme-bootstrap5-shaded", buttonGroup: "btn-group", button: "btn btn-primary", buttonActive: "active", popover: "popover", popoverHeader: "popover-header", popoverContent: "popover-body" }, ku.prototype.baseIconClass = "bi", ku.prototype.iconClasses = { close: "bi-x-lg", prev: "fc-icon fc-icon-chevron-left", next: "fc-icon fc-icon-chevron-right", prevYear: "bi-chevron-double-left", nextYear: "bi-chevron-double-right" }, ku.prototype.rtlIconClasses = { prev: "fc-icon fc-icon-chevron-right", next: "fc-icon fc-icon-chevron-left", prevYear: "bi-chevron-double-right", nextYear: "bi-chevron-double-left" }, ku.prototype.iconOverrideOption = "buttonIcons", ku.prototype.iconOverrideCustomButtonOption = "icon", ku.prototype.iconOverridePrefix = "bi-";
5027    var Mu = Jo({ themeClasses: { bootstrap5: ku } }),
5028        Iu = "https://www.googleapis.com/calendar/v3/calendars";
5029    var Pu = Jo({
5030            eventSourceDefs: [{
5031                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 },
5032                fetch: function(e, t, n) {
5033                    var o = e.context,
5034                        i = o.dateEnv,
5035                        a = o.options,
5036                        s = e.eventSource.meta,
5037                        l = s.googleCalendarApiKey || a.googleCalendarApiKey;
5038                    if (l) {
5039                        var u = function(e) {
5040                                var t = e.googleCalendarApiBase;
5041                                t || (t = Iu);
5042                                return t + "/" + encodeURIComponent(e.googleCalendarId) + "/events"
5043                            }(s),
5044                            c = s.extraParams,
5045                            d = "function" == typeof c ? c() : c,
5046                            p = function(e, t, n, o) {
5047                                var i, a, s;
5048                                o.canComputeOffset ? (a = o.formatIso(e.start), s = o.formatIso(e.end)) : (a = nt(e.start, -1).toISOString(), s = nt(e.end, 1).toISOString());
5049                                i = r(r({}, n || {}), { key: t, timeMin: a, timeMax: s, singleEvents: !0, maxResults: 9999 }), "local" !== o.timeZone && (i.timeZone = o.timeZone);
5050                                return i
5051                            }(e.range, l, d, i);
5052                        Oi("GET", u, p, (function(e, r) {
5053                            var o, i;
5054                            e.error ? n({ message: "Google Calendar API: " + e.error.message, errors: e.error.errors, xhr: r }) : t({
5055                                rawEvents: (o = e.items, i = p.timeZone, o.map((function(e) {
5056                                    return function(e, t) {
5057                                        var n = e.htmlLink || null;
5058                                        n && t && (n = function(e, t) { return e.replace(/(\?.*?)?(#|$)/, (function(e, n, r) { return (n ? n + "&" : "?") + t + r })) }(n, "ctz=" + t));
5059                                        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 || {} }
5060                                    }(e, i)
5061                                }))),
5062                                xhr: r
5063                            })
5064                        }), (function(e, t) { n({ message: e, xhr: t }) }))
5065                    } else n({ message: "Specify a googleCalendarApiKey. See http://fullcalendar.io/docs/google_calendar/" })
5066                }
5067            }],
5068            optionRefiners: { googleCalendarApiKey: String },
5069            eventSourceRefiners: { googleCalendarApiKey: String, googleCalendarId: String, googleCalendarApiBase: String, extraParams: wn }
5070        }),
5071        Nu = "2022-08-23",
5072        Hu = ["GPL-My-Project-Is-Open-Source", "CC-Attribution-NonCommercial-NoDerivatives"],
5073        Ou = { position: "absolute", zIndex: 99999, bottom: "1px", left: "1px", background: "#eee", borderColor: "#ddd", borderStyle: "solid", borderWidth: "1px 1px 0 0", padding: "2px 4px", fontSize: "12px", borderTopRightRadius: "3px" };
5074    var Au, Wu = Jo({
5075            optionRefiners: { schedulerLicenseKey: String },
5076            viewContainerAppends: [function(e) {
5077                var t = e.options.schedulerLicenseKey,
5078                    n = "undefined" != typeof window ? window.location.href : "";
5079                if (!/\w+:\/\/fullcalendar\.io\/|\/examples\/[\w-]+\.html$/.test(n)) {
5080                    var r = function(e) {
5081                        if (-1 !== Hu.indexOf(e)) return "valid";
5082                        var t = (e || "").match(/^(\d+)-fcs-(\d+)$/);
5083                        if (t && 10 === t[1].length) {
5084                            var n = new Date(1e3 * parseInt(t[2], 10)),
5085                                r = new Date(ha.mockSchedulerReleaseDate || Nu);
5086                            if (gt(r)) return nt(r, -372) < n ? "valid" : "outdated"
5087                        }
5088                        return "invalid"
5089                    }(t);
5090                    if ("valid" !== r) return Oo("div", { className: "fc-license-message", style: Ou }, "outdated" === r ? Oo(Lo, null, "Your license key is too old to work with this version. ", Oo("a", { href: "http://fullcalendar.io/docs/schedulerLicenseKey#outdated" }, "More Info")) : Oo(Lo, null, "Your license key is invalid. ", Oo("a", { href: "http://fullcalendar.io/docs/schedulerLicenseKey#invalid" }, "More Info")))
5091                }
5092                return null
5093            }]
5094        }),
5095        Lu = "wheel mousewheel DomMouseScroll MozMousePixelScroll".split(" "),
5096        Uu = function() {
5097            function e(e) {
5098                var t = this;
5099                this.el = e, this.emitter = new _o, this.isScrolling = !1, this.isTouching = !1, this.isRecentlyWheeled = !1, this.isRecentlyScrolled = !1, this.wheelWaiter = new Ui(this._handleWheelWaited.bind(this)), this.scrollWaiter = new Ui(this._handleScrollWaited.bind(this)), this.handleScroll = function() { t.startScroll(), t.emitter.trigger("scroll", t.isRecentlyWheeled, t.isTouching), t.isRecentlyScrolled = !0, t.scrollWaiter.request(500) }, this.handleWheel = function() { t.isRecentlyWheeled = !0, t.wheelWaiter.request(500) }, this.handleTouchStart = function() { t.isTouching = !0 }, this.handleTouchEnd = function() { t.isTouching = !1, t.isRecentlyScrolled || t.endScroll() }, e.addEventListener("scroll", this.handleScroll), e.addEventListener("touchstart", this.handleTouchStart, { passive: !0 }), e.addEventListener("touchend", this.handleTouchEnd);
5100                for (var n = 0, r = Lu; n < r.length; n++) {
5101                    var o = r[n];
5102                    e.addEventListener(o, this.handleWheel)
5103                }
5104            }
5105            return e.prototype.destroy = function() {
5106                var e = this.el;
5107                e.removeEventListener("scroll", this.handleScroll), e.removeEventListener("touchstart", this.handleTouchStart, { passive: !0 }), e.removeEventListener("touchend", this.handleTouchEnd);
5108                for (var t = 0, n = Lu; t < n.length; t++) {
5109                    var r = n[t];
5110                    e.removeEventListener(r, this.handleWheel)
5111                }
5112            }, e.prototype.startScroll = function() { this.isScrolling || (this.isScrolling = !0, this.emitter.trigger("scrollStart", this.isRecentlyWheeled, this.isTouching)) }, e.prototype.endScroll = function() { this.isScrolling && (this.emitter.trigger("scrollEnd"), this.isScrolling = !1, this.isRecentlyScrolled = !0, this.isRecentlyWheeled = !1, this.scrollWaiter.clear(), this.wheelWaiter.clear()) }, e.prototype._handleScrollWaited = function() { this.isRecentlyScrolled = !1, this.isTouching || this.endScroll() }, e.prototype._handleWheelWaited = function() { this.isRecentlyWheeled = !1 }, e
5113        }();
5114
5115    function Bu(e) {
5116        var t = e.scrollLeft;
5117        if ("rtl" === window.getComputedStyle(e).direction) switch (Vu()) {
5118            case "negative":
5119                t *= -1;
5120            case "reverse":
5121                t = e.scrollWidth - t - e.clientWidth
5122        }
5123        return t
5124    }
5125
5126    function zu(e, t) {
5127        if ("rtl" === window.getComputedStyle(e).direction) switch (Vu()) {
5128            case "reverse":
5129                t = e.scrollWidth - t;
5130                break;
5131            case "negative":
5132                t = -(e.scrollWidth - t)
5133        }
5134        e.scrollLeft = t
5135    }
5136
5137    function Vu() {
5138        return Au || (Au = function() {
5139            var e, t = document.createElement("div");
5140            t.style.position = "absolute", t.style.top = "-1000px", t.style.width = "1px", t.style.height = "1px", t.style.overflow = "scroll", t.style.direction = "rtl", t.style.fontSize = "100px", t.innerHTML = "A", document.body.appendChild(t), t.scrollLeft > 0 ? e = "positive" : (t.scrollLeft = 1, e = t.scrollLeft > 0 ? "reverse" : "negative");
5141            return Se(t), e
5142        }())
5143    }
5144    var Fu, Gu = "undefined" != typeof navigator && /Edge/.test(navigator.userAgent),
5145        ju = function() {
5146            function e(e, t) {
5147                var n = this;
5148                this.scrollEl = e, this.isRtl = t, this.usingRelative = null, this.updateSize = function() {
5149                    var e = n.scrollEl,
5150                        t = Ce(e, ".fc-sticky"),
5151                        r = n.queryElGeoms(t),
5152                        o = e.clientWidth,
5153                        i = e.clientHeight;
5154                    n.usingRelative ? function(e, t, n, r, o) {
5155                        e.forEach((function(e, i) {
5156                            var a, s, l = t[i],
5157                                u = l.naturalBound,
5158                                c = l.parentBound,
5159                                d = c.right - c.left,
5160                                p = c.bottom - c.bottom;
5161                            d > r || p > o ? (a = n[i].left - u.left, s = n[i].top - u.top) : (a = "", s = ""), we(e, { position: "relative", left: a, right: -a, top: s })
5162                        }))
5163                    }(t, r, n.computeElDestinations(r, o), o, i) : function(e, t, n) {
5164                        e.forEach((function(e, r) {
5165                            var o, i = t[r],
5166                                a = i.textAlign,
5167                                s = i.elWidth,
5168                                l = i.parentBound,
5169                                u = l.right - l.left;
5170                            we(e, { left: o = "center" === a && u > n ? (n - s) / 2 : "", right: o, top: 0 })
5171                        }))
5172                    }(t, r, o)
5173                }, this.usingRelative = ! function() {
5174                    null == Fu && (Fu = function() {
5175                        var e = document.createElement("div");
5176                        e.style.position = "sticky", document.body.appendChild(e);
5177                        var t = window.getComputedStyle(e).position;
5178                        return Se(e), "sticky" === t
5179                    }());
5180                    return Fu
5181                }() || Gu && t, this.usingRelative && (this.listener = new Uu(e), this.listener.emitter.on("scrollEnd", this.updateSize))
5182            }
5183            return e.prototype.destroy = function() { this.listener && this.listener.destroy() }, e.prototype.queryElGeoms = function(e) {
5184                for (var t = this.scrollEl, n = this.isRtl, r = function(e) {
5185                        var t = e.getBoundingClientRect(),
5186                            n = Do(e);
5187                        return { left: t.left + n.borderLeft + n.scrollbarLeft - Bu(e), top: t.top + n.borderTop - e.scrollTop }
5188                    }(t), o = [], i = 0, a = e; i < a.length; i++) {
5189                    var s = a[i],
5190                        l = ro(Ro(s.parentNode, !0, !0), -r.left, -r.top),
5191                        u = s.getBoundingClientRect(),
5192                        c = window.getComputedStyle(s),
5193                        d = window.getComputedStyle(s.parentNode).textAlign,
5194                        p = null;
5195                    "start" === d ? d = n ? "right" : "left" : "end" === d && (d = n ? "left" : "right"), "sticky" !== c.position && (p = ro(u, -r.left - (parseFloat(c.left) || 0), -r.top - (parseFloat(c.top) || 0))), o.push({ parentBound: l, naturalBound: p, elWidth: u.width, elHeight: u.height, textAlign: d })
5196                }
5197                return o
5198            }, e.prototype.computeElDestinations = function(e, t) {
5199                var n = this.scrollEl,
5200                    r = n.scrollTop,
5201                    o = Bu(n),
5202                    i = o + t;
5203                return e.map((function(e) {
5204                    var t, n, a = e.elWidth,
5205                        s = e.elHeight,
5206                        l = e.parentBound,
5207                        u = e.naturalBound;
5208                    switch (e.textAlign) {
5209                        case "left":
5210                            t = o;
5211                            break;
5212                        case "right":
5213                            t = i - a;
5214                            break;
5215                        case "center":
5216                            t = (o + i) / 2 - a / 2
5217                    }
5218                    return t = Math.min(t, l.right - a), t = Math.max(t, l.left), n = r, n = Math.min(n, l.bottom - s), { left: t, top: n = Math.max(n, u.top) }
5219                }))
5220            }, e
5221        }();
5222    var qu = function(e) {
5223            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.elRef = Wo(), t.state = { xScrollbarWidth: 0, yScrollbarWidth: 0 }, t.handleScroller = function(e) { t.scroller = e, Ko(t.props.scrollerRef, e) }, t.handleSizing = function() { var e = t.props; "scroll-hidden" === e.overflowY && t.setState({ yScrollbarWidth: t.scroller.getYScrollbarWidth() }), "scroll-hidden" === e.overflowX && t.setState({ xScrollbarWidth: t.scroller.getXScrollbarWidth() }) }, t }
5224            return n(t, e), t.prototype.render = function() {
5225                var e = this,
5226                    t = e.props,
5227                    n = e.state,
5228                    r = e.context.isRtl && Eo(),
5229                    o = 0,
5230                    i = 0,
5231                    a = 0;
5232                return "scroll-hidden" === t.overflowX && (a = n.xScrollbarWidth), "scroll-hidden" === t.overflowY && null != n.yScrollbarWidth && (r ? o = n.yScrollbarWidth : i = n.yScrollbarWidth), Oo("div", { ref: this.elRef, className: "fc-scroller-harness" + (t.liquid ? " fc-scroller-harness-liquid" : "") }, Oo(Xa, { ref: this.handleScroller, elRef: this.props.scrollerElRef, overflowX: "scroll-hidden" === t.overflowX ? "scroll" : t.overflowX, overflowY: "scroll-hidden" === t.overflowY ? "scroll" : t.overflowY, overcomeLeft: o, overcomeRight: i, overcomeBottom: a, maxHeight: "number" == typeof t.maxHeight ? t.maxHeight + ("scroll-hidden" === t.overflowX ? n.xScrollbarWidth : 0) : "", liquid: t.liquid, liquidIsAbsolute: !0 }, t.children))
5233            }, t.prototype.componentDidMount = function() { this.handleSizing(), this.context.addResizeHandler(this.handleSizing) }, t.prototype.componentDidUpdate = function(e) { wt(e, this.props) || this.handleSizing() }, t.prototype.componentWillUnmount = function() { this.context.removeResizeHandler(this.handleSizing) }, t.prototype.needsXScrolling = function() { return this.scroller.needsXScrolling() }, t.prototype.needsYScrolling = function() { return this.scroller.needsYScrolling() }, t
5234        }(Yo),
5235        Yu = function() {
5236            function e(e, t) {
5237                var n = this;
5238                this.isVertical = e, this.scrollEls = t, this.isPaused = !1, this.scrollListeners = t.map((function(e) { return n.bindScroller(e) }))
5239            }
5240            return e.prototype.destroy = function() { for (var e = 0, t = this.scrollListeners; e < t.length; e++) { t[e].destroy() } }, e.prototype.bindScroller = function(e) {
5241                var t = this,
5242                    n = this.scrollEls,
5243                    r = this.isVertical,
5244                    o = new Uu(e);
5245                return o.emitter.on("scroll", (function(o, i) {
5246                    if (!t.isPaused && ((!t.masterEl || t.masterEl !== e && (o || i)) && t.assignMaster(e), t.masterEl === e))
5247                        for (var a = 0, s = n; a < s.length; a++) {
5248                            var l = s[a];
5249                            l !== e && (r ? l.scrollTop = e.scrollTop : l.scrollLeft = e.scrollLeft)
5250                        }
5251                })), o.emitter.on("scrollEnd", (function() { t.masterEl === e && (t.masterEl = null) })), o
5252            }, e.prototype.assignMaster = function(e) {
5253                this.masterEl = e;
5254                for (var t = 0, n = this.scrollListeners; t < n.length; t++) {
5255                    var r = n[t];
5256                    r.el !== e && r.endScroll()
5257                }
5258            }, e.prototype.forceScrollLeft = function(e) {
5259                this.isPaused = !0;
5260                for (var t = 0, n = this.scrollListeners; t < n.length; t++) { zu(n[t].el, e) }
5261                this.isPaused = !1
5262            }, e.prototype.forceScrollTop = function(e) {
5263                this.isPaused = !0;
5264                for (var t = 0, n = this.scrollListeners; t < n.length; t++) { n[t].el.scrollTop = e }
5265                this.isPaused = !1
5266            }, e
5267        }(),
5268        Zu = function(e) {
5269            function t() {
5270                var t = null !== e && e.apply(this, arguments) || this;
5271                return t.compileColGroupStats = Qt(Ju, tc), t.renderMicroColGroups = Qt(ns), t.clippedScrollerRefs = new Ka, t.scrollerElRefs = new Ka(t._handleScrollerEl.bind(t)), t.chunkElRefs = new Ka(t._handleChunkEl.bind(t)), t.stickyScrollings = [], t.scrollSyncersBySection = {}, t.scrollSyncersByColumn = {}, t.rowUnstableMap = new Map, t.rowInnerMaxHeightMap = new Map, t.anyRowHeightsChanged = !1, t.recentSizingCnt = 0, t.state = { shrinkWidths: [], forceYScrollbars: !1, forceXScrollbars: !1, scrollerClientWidths: {}, scrollerClientHeights: {}, sectionRowMaxHeights: [] }, t.handleSizing = function(e, n) {
5272                    if (t.allowSizing()) {
5273                        n || (t.anyRowHeightsChanged = !0);
5274                        var o = {};
5275                        (e || !n && !t.rowUnstableMap.size) && (o.sectionRowMaxHeights = t.computeSectionRowMaxHeights()), t.setState(r(r({ shrinkWidths: t.computeShrinkWidths() }, t.computeScrollerDims()), o), (function() { t.rowUnstableMap.size || t.updateStickyScrolling() }))
5276                    }
5277                }, t.handleRowHeightChange = function(e, n) {
5278                    var r = t,
5279                        o = r.rowUnstableMap,
5280                        i = r.rowInnerMaxHeightMap;
5281                    if (n) {
5282                        o.delete(e);
5283                        var a = Ku(e);
5284                        i.has(e) && i.get(e) === a || (i.set(e, a), t.anyRowHeightsChanged = !0), !o.size && t.anyRowHeightsChanged && (t.anyRowHeightsChanged = !1, t.setState({ sectionRowMaxHeights: t.computeSectionRowMaxHeights() }))
5285                    } else o.set(e, !0)
5286                }, t
5287            }
5288            return n(t, e), t.prototype.render = function() {
5289                var e = this,
5290                    t = e.props,
5291                    n = e.state,
5292                    r = e.context,
5293                    i = n.shrinkWidths,
5294                    a = this.compileColGroupStats(t.colGroups.map((function(e) { return [e] }))),
5295                    s = this.renderMicroColGroups(a.map((function(e, t) { return [e.cols, i[t]] }))),
5296                    l = is(t.liquid, r),
5297                    u = this.getDims();
5298                u[0], u[1];
5299                for (var c, d = t.sections, p = d.length, f = 0, h = [], v = [], g = []; f < p && "header" === (c = d[f]).type;) h.push(this.renderSection(c, f, a, s, n.sectionRowMaxHeights, !0)), f += 1;
5300                for (; f < p && "body" === (c = d[f]).type;) v.push(this.renderSection(c, f, a, s, n.sectionRowMaxHeights, !1)), f += 1;
5301                for (; f < p && "footer" === (c = d[f]).type;) g.push(this.renderSection(c, f, a, s, n.sectionRowMaxHeights, !0)), f += 1;
5302                var m = !so(),
5303                    y = { role: "rowgroup" };
5304                return Oo("table", { ref: t.elRef, role: "grid", className: l.join(" ") }, function(e, t) { var n = e.map((function(e, n) { var r = e.width; return "shrink" === r && (r = e.totalColWidth + rs(t[n]) + 1), Oo("col", { style: { width: r } }) })); return Oo.apply(void 0, o(["colgroup", {}], n)) }(a, i), Boolean(!m && h.length) && Oo.apply(void 0, o(["thead", y], h)), Boolean(!m && v.length) && Oo.apply(void 0, o(["tbody", y], v)), Boolean(!m && g.length) && Oo.apply(void 0, o(["tfoot", y], g)), m && Oo.apply(void 0, o(o(o(["tbody", y], h), v), g)))
5305            }, t.prototype.renderSection = function(e, t, n, r, o, i) { var a = this; return "outerContent" in e ? Oo(Lo, { key: e.key }, e.outerContent) : Oo("tr", { key: e.key, role: "presentation", className: as(e, this.props.liquid).join(" ") }, e.chunks.map((function(s, l) { return a.renderChunk(e, t, n[l], r[l], s, l, (o[t] || [])[l] || [], i) }))) }, t.prototype.renderChunk = function(e, t, n, r, o, i, a, s) {
5306                if ("outerContent" in o) return Oo(Lo, { key: o.key }, o.outerContent);
5307                var l = this.state,
5308                    u = l.scrollerClientWidths,
5309                    c = l.scrollerClientHeights,
5310                    d = this.getDims(),
5311                    p = d[0],
5312                    f = d[1],
5313                    h = t * f + i,
5314                    v = i === (!this.context.isRtl || Eo() ? f - 1 : 0),
5315                    g = t === p - 1,
5316                    m = g && l.forceXScrollbars,
5317                    y = v && l.forceYScrollbars,
5318                    S = n && n.allowXScrolling,
5319                    E = Qa(this.props, e),
5320                    b = Ja(this.props, e),
5321                    C = e.expandRows && b,
5322                    D = es(e, o, { tableColGroupNode: r, tableMinWidth: n && n.totalColMinWidth || "", clientWidth: void 0 !== u[h] ? u[h] : null, clientHeight: void 0 !== c[h] ? c[h] : null, expandRows: C, syncRowHeights: Boolean(e.syncRowHeights), rowSyncHeights: a, reportRowHeightChange: this.handleRowHeightChange }, s),
5323                    R = m ? g ? "scroll" : "scroll-hidden" : S ? g ? "auto" : "scroll-hidden" : "hidden",
5324                    w = y ? v ? "scroll" : "scroll-hidden" : E ? v ? "auto" : "scroll-hidden" : "hidden";
5325                return D = Oo(qu, { ref: this.clippedScrollerRefs.createRef(h), scrollerElRef: this.scrollerElRefs.createRef(h), overflowX: R, overflowY: w, liquid: b, maxHeight: e.maxHeight }, D), Oo(s ? "th" : "td", { key: o.key, ref: this.chunkElRefs.createRef(h), role: "presentation" }, D)
5326            }
5326, t.prototype.componentDidMount = function() { this.getStickyScrolling = Qt(oc, null, ic), this.getScrollSyncersBySection = en(nc.bind(this, !0), null, rc), this.getScrollSyncersByColumn = en(nc.bind(this, !1), null, rc), this.updateScrollSyncers(), this.handleSizing(!1), this.context.addResizeHandler(this.handleSizing) }, t.prototype.componentDidUpdate = function(e, t) { this.updateScrollSyncers(), this.handleSizing(!1, t.sectionRowMaxHeights !== this.state.sectionRowMaxHeights) }, t.prototype.componentWillUnmount = function() { this.context.removeResizeHandler(this.handleSizing), this.destroyStickyScrolling(), this.destroyScrollSyncers() }, t.prototype.allowSizing = function() { var e = new Date; return !this.lastSizingDate || e.valueOf() > this.lastSizingDate.valueOf() + ha.SCROLLGRID_RESIZE_INTERVAL ? (this.lastSizingDate = e, this.recentSizingCnt = 0, !0) : (this.recentSizingCnt += 1) <= 10 }, t.prototype.computeShrinkWidths = function() {
5327                var e = this,
5328                    t = this.compileColGroupStats(this.props.colGroups.map((function(e) { return [e] }))),
5329                    n = this.getDims(),
5330                    r = n[0],
5331                    o = n[1],
5332                    i = r * o,
5333                    a = [];
5334                return t.forEach((function(t, n) {
5335                    if (t.hasShrinkCol) {
5336                        var r = e.chunkElRefs.collect(n, i, o);
5337                        a[n] = $a(r)
5338                    }
5339                })), a
5340            }, t.prototype.computeSectionRowMaxHeights = function() {
5341                for (var e = new Map, t = this.getDims(), n = t[0], r = t[1], o = [], i = 0; i < n; i += 1) {
5342                    var a = this.props.sections[i],
5343                        s = [];
5344                    if (a && a.syncRowHeights) {
5345                        for (var l = [], u = 0; u < r; u += 1) {
5346                            var c = i * r + u,
5347                                d = [],
5348                                p = this.chunkElRefs.currentMap[c];
5349                            d = p ? Ce(p, ".fc-scrollgrid-sync-table tr").map((function(t) { var n = Ku(t); return e.set(t, n), n })) : [], l.push(d)
5350                        }
5351                        var f = l[0].length,
5352                            h = !0;
5353                        for (u = 1; u < r; u += 1) { if (!(a.chunks[u] && void 0 !== a.chunks[u].outerContent) && l[u].length !== f) { h = !1; break } }
5354                        if (h) {
5355                            for (u = 0; u < r; u += 1) s.push([]);
5356                            for (E = 0; E < f; E += 1) {
5357                                var v = [];
5358                                for (u = 0; u < r; u += 1) {
5359                                    var g = l[u][E];
5360                                    null != g && v.push(g)
5361                                }
5362                                var m = Math.max.apply(Math, v);
5363                                for (u = 0; u < r; u += 1) s[u].push(m)
5364                            }
5365                        } else {
5366                            for (var y = [], u = 0; u < r; u += 1) y.push(Xu(l[u]) + l[u].length);
5367                            for (var S = Math.max.apply(Math, y), u = 0; u < r; u += 1) {
5368                                var E, b = l[u].length,
5369                                    C = S - b,
5370                                    D = Math.floor(C / b),
5371                                    R = C - D * (b - 1),
5372                                    w = [];
5373                                for ((E = 0) < b && (w.push(R), E += 1); E < b;) w.push(D), E += 1;
5374                                s.push(w)
5375                            }
5376                        }
5377                    }
5378                    o.push(s)
5379                }
5380                return this.rowInnerMaxHeightMap = e, o
5381            }, t.prototype.computeScrollerDims = function() {
5382                for (var e = bo(), t = this.getDims(), n = t[0], r = t[1], o = !this.context.isRtl || Eo() ? r - 1 : 0, i = n - 1, a = this.clippedScrollerRefs.currentMap, s = this.scrollerElRefs.currentMap, l = !1, u = !1, c = {}, d = {}, p = 0; p < n; p += 1) { if ((h = a[v = p * r + o]) && h.needsYScrolling()) { l = !0; break } }
5383                for (var f = 0; f < r; f += 1) { var h; if ((h = a[v = i * r + f]) && h.needsXScrolling()) { u = !0; break } }
5384                for (p = 0; p < n; p += 1)
5385                    for (f = 0; f < r; f += 1) {
5386                        var v, g = s[v = p * r + f];
5387                        if (g) {
5388                            var m = g.parentNode;
5389                            c[v] = Math.floor(m.getBoundingClientRect().width - (f === o && l ? e.y : 0)), d[v] = Math.floor(m.getBoundingClientRect().height - (p === i && u ? e.x : 0))
5390                        }
5391                    }
5392                return { forceYScrollbars: l, forceXScrollbars: u, scrollerClientWidths: c, scrollerClientHeights: d }
5393            }, t.prototype.updateStickyScrolling = function() {
5394                var e = this.context.isRtl,
5395                    t = this.scrollerElRefs.getAll().map((function(t) { return [t, e] })),
5396                    n = this.getStickyScrolling(t);
5397                n.forEach((function(e) { return e.updateSize() })), this.stickyScrollings = n
5398            }, t.prototype.destroyStickyScrolling = function() { this.stickyScrollings.forEach(ic) }, t.prototype.updateScrollSyncers = function() {
5399                for (var e = this.getDims(), t = e[0], n = e[1], r = t * n, o = {}, i = {}, a = this.scrollerElRefs.currentMap, s = 0; s < t; s += 1) {
5400                    var l = s * n,
5401                        u = l + n;
5402                    o[s] = kt(a, l, u, 1)
5403                }
5404                for (var c = 0; c < n; c += 1) i[c] = this.scrollerElRefs.collect(c, r, n);
5405                this.scrollSyncersBySection = this.getScrollSyncersBySection(o), this.scrollSyncersByColumn = this.getScrollSyncersByColumn(i)
5406            }, t.prototype.destroyScrollSyncers = function() { Ct(this.scrollSyncersBySection, rc), Ct(this.scrollSyncersByColumn, rc) }, t.prototype.getChunkConfigByIndex = function(e) {
5407                var t = this.getDims()[1],
5408                    n = Math.floor(e / t),
5409                    r = e % t,
5410                    o = this.props.sections[n];
5411                return o && o.chunks[r]
5412            }, t.prototype.forceScrollLeft = function(e, t) {
5413                var n = this.scrollSyncersByColumn[e];
5414                n && n.forceScrollLeft(t)
5415            }, t.prototype.forceScrollTop = function(e, t) {
5416                var n = this.scrollSyncersBySection[e];
5417                n && n.forceScrollTop(t)
5418            }, t.prototype._handleChunkEl = function(e, t) {
5419                var n = this.getChunkConfigByIndex(parseInt(t, 10));
5420                n && Ko(n.elRef, e)
5421            }, t.prototype._handleScrollerEl = function(e, t) {
5422                var n = this.getChunkConfigByIndex(parseInt(t, 10));
5423                n && Ko(n.scrollerElRef, e)
5424            }, t.prototype.getDims = function() { var e = this.props.sections.length; return [e, e ? this.props.sections[0].chunks.length : 0] }, t
5425        }(Yo);
5426
5427    function Xu(e) { for (var t = 0, n = 0, r = e; n < r.length; n++) { t += r[n] } return t }
5428
5429    function Ku(e) { var t = Ce(e, ".fc-scrollgrid-sync-inner").map($u); return t.length ? Math.max.apply(Math, t) : 0 }
5430
5431    function $u(e) { return e.offsetHeight }
5432
5433    function Ju(e) {
5434        var t = Qu(e.cols, "width"),
5435            n = Qu(e.cols, "minWidth"),
5436            r = os(e.cols);
5437        return { hasShrinkCol: r, totalColWidth: t, totalColMinWidth: n, allowXScrolling: "shrink" !== e.width && Boolean(t || n || r), cols: e.cols, width: e.width }
5438    }
5439
5440    function Qu(e, t) {
5441        for (var n = 0, r = 0, o = e; r < o.length; r++) {
5442            var i = o[r],
5443                a = i[t];
5444            "number" == typeof a && (n += a * (i.span || 1))
5445        }
5446        return n
5447    }
5448    Zu.addStateEquality({ shrinkWidths: Kt, scrollerClientWidths: wt, scrollerClientHeights: wt });
5449    var ec = { cols: ts };
5450
5451    function tc(e, t) { return xt(e, t, ec) }
5452
5453    function nc(e) { for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; return new Yu(e, t) }
5454
5455    function rc(e) { e.destroy() }
5456
5457    function oc(e, t) { return new ju(e, t) }
5458
5459    function ic(e) { e.destroy() }
5460    var ac = Jo({ deps: [Wu], scrollGridImpl: Zu });
5461    ha.SCROLLGRID_RESIZE_INTERVAL = 500, ha.COLLAPSIBLE_WIDTH_THRESHOLD = 1200;
5462    var sc = [],
5463        lc = [],
5464        uc = Jo({ deps: [Wu], contextInit: function(e) { sc.length || (window.addEventListener("beforeprint", cc), window.addEventListener("afterprint", dc)), sc.push(e), e.calendarApi.on("_unmount", (function() { Xt(sc, e), sc.length || (window.removeEventListener("beforeprint", cc), window.removeEventListener("afterprint", dc)) })) } });
5465
5466    function cc() {
5467        for (var e = Ce(document.body, ".fc-scroller-harness > .fc-scroller"), t = e.map((function(e) { var t = window.getComputedStyle(e); return { scrollLeft: e.scrollLeft, scrollTop: e.scrollTop, overflowX: t.overflowX, overflowY: t.overflowY, marginBottom: t.marginBottom } })), n = 0, r = sc; n < r.length; n++) { r[n].emitter.trigger("_beforeprint") }
5468        zo((function() {
5469            ! function(e, t) { e.forEach((function(e, n) { e.style.overflowX = "visible", e.style.overflowY = "visible", e.style.marginBottom = "", e.style.left = -t[n].scrollLeft + "px" })) }(e, t), lc.push((function() {
5470                return function(e, t) {
5471                    e.forEach((function(e, n) {
5472                        var r = t[n];
5473                        e.style.overflowX = r.overflowX, e.style.overflowY = r.overflowY, e.style.marginBottom = r.marginBottom, e.style.left = "", e.scrollLeft = r.scrollLeft, e.scrollTop = r.scrollTop
5474                    }))
5475                }(e, t)
5476            })), lc.push(function() {
5477                var e = Ce(document.body, ".fc-scrollgrid");
5478                return e.forEach(pc),
5479                    function() { return e.forEach(fc) }
5480            }())
5481        }))
5482    }
5483
5484    function dc() {
5485        for (var e = 0, t = sc; e < t.length; e++) { t[e].emitter.trigger("_afterprint") }
5486        zo((function() { for (; lc.length;) lc.shift()() }))
5487    }
5488
5489    function pc(e) {
5490        var t = e.getBoundingClientRect().width;
5491        (!e.classList.contains("fc-scrollgrid-collapsible") || t < ha.COLLAPSIBLE_WIDTH_THRESHOLD) && (e.style.width = t + "px")
5492    }
5493
5494    function fc(e) { e.style.width = "" }
5495    ha.MAX_TIMELINE_SLOTS = 1e3;
5496    var hc = [{ years: 1 }, { months: 1 }, { days: 1 }, { hours: 1 }, { minutes: 30 }, { minutes: 15 }, { minutes: 10 }, { minutes: 5 }, { minutes: 1 }, { seconds: 30 }, { seconds: 15 }, { seconds: 10 }, { seconds: 5 }, { seconds: 1 }, { milliseconds: 500 }, { milliseconds: 100 }, { milliseconds: 10 }, { milliseconds: 1 }];
5497
5498    function vc(e, t, n, r) {
5499        var o = { labelInterval: n.slotLabelInterval, slotDuration: n.slotDuration };
5500        ! function(e, t, n) {
5501            var r = t.currentRange;
5502            if (e.labelInterval) { n.countDurationsBetween(r.start, r.end, e.labelInterval) > ha.MAX_TIMELINE_SLOTS && (console.warn("slotLabelInterval results in too many cells"), e.labelInterval = null) }
5503            if (e.slotDuration) { n.countDurationsBetween(r.start, r.end, e.slotDuration) > ha.MAX_TIMELINE_SLOTS && (console.warn("slotDuration results in too many cells"), e.slotDuration = null) }
5504            if (e.labelInterval && e.slotDuration) {
5505                var o = Ft(e.labelInterval, e.slotDuration);
5506                (null === o || o < 1) && (console.warn("slotLabelInterval must be a multiple of slotDuration"), e.slotDuration = null)
5507            }
5508        }(o, e, t), yc(o, e, t),
5509            function(e, t, n) {
5510                var r = t.currentRange,
5511                    o = e.slotDuration;
5512                if (!o) {
5513                    for (var i = yc(e, t, n), a = 0, s = hc; a < s.length; a++) {
5514                        var l = Ht(s[a]),
5515                            u = Ft(i, l);
5516                        if (null !== u && u > 1 && u <= 6) { o = l; break }
5517                    }
5518                    if (o) n.countDurationsBetween(r.start, r.end, o) > 200 && (o = null);
5519                    o || (o = i), e.slotDuration = o
5520                }
5521            }(o, e, t);
5522        var i = n.slotLabelFormat,
5523            a = Array.isArray(i) ? i : null != i ? [i] : function(e, t, n, r) {
5524                var o, i, a = e.labelInterval,
5525                    s = Gt(a).unit,
5526                    l = r.weekNumbers,
5527                    u = o = i = null;
5528                "week" !== s || l || (s = "day");
5529                switch (s) {
5530                    case "year":
5531                        u = { year: "numeric" };
5532                        break;
5533                    case "month":
5534                        Sc("years", t, n) > 1 && (u = { year: "numeric" }), o = { month: "short" };
5535                        break;
5536                    case "week":
5537                        Sc("years", t, n) > 1 && (u = { year: "numeric" }), o = { week: "narrow" };
5538                        break;
5539                    case "day":
5540                        Sc("years", t, n) > 1 ? u = { year: "numeric", month: "long" } : Sc("months", t, n) > 1 && (u = { month: "long" }), l && (o = { week: "short" }
5540), i = { weekday: "narrow", day: "numeric" };
5541                        break;
5542                    case "hour":
5543                        l && (u = { week: "short" }), Sc("days", t, n) > 1 && (o = { weekday: "short", day: "numeric", month: "numeric", omitCommas: !0 }), i = { hour: "numeric", minute: "2-digit", omitZeroMinute: !0, meridiem: "short" };
5544                        break;
5545                    case "minute":
5546                        Bt(a) / 60 >= 6 ? (u = { hour: "numeric", meridiem: "short" }, o = function(e) { return ":" + Xe(e.date.minute, 2) }) : u = { hour: "numeric", minute: "numeric", meridiem: "short" };
5547                        break;
5548                    case "second":
5549                        zt(a) / 60 >= 6 ? (u = { hour: "numeric", minute: "2-digit", meridiem: "lowercase" }, o = function(e) { return ":" + Xe(e.date.second, 2) }) : u = { hour: "numeric", minute: "2-digit", second: "2-digit", meridiem: "lowercase" };
5550                        break;
5551                    case "millisecond":
5552                        u = { hour: "numeric", minute: "2-digit", second: "2-digit", meridiem: "lowercase" }, o = function(e) { return "." + Xe(e.millisecond, 3) }
5553                }
5554                return [].concat(u || [], o || [], i || [])
5555            }(o, e, t, n);
5556        o.headerFormats = a.map((function(e) { return vn(e) })), o.isTimeScale = Boolean(o.slotDuration.milliseconds);
5557        var s = null;
5558        if (!o.isTimeScale) { var l = Gt(o.slotDuration).unit; /year|month|week/.test(l) && (s = l) }
5559        o.largeUnit = s, o.emphasizeWeeks = 1 === At(o.slotDuration) && Sc("weeks", e, t) >= 2 && !n.businessHours;
5560        var u, c, d = n.snapDuration;
5561        d && (u = Ht(d), c = Ft(o.slotDuration, u)), null == c && (u = o.slotDuration, c = 1), o.snapDuration = u, o.snapsPerSlot = c;
5562        var p = Vt(e.slotMaxTime) - Vt(e.slotMinTime),
5563            f = gc(e.renderRange.start, o, t),
5564            h = gc(e.renderRange.end, o, t);
5565        o.isTimeScale && (f = t.add(f, e.slotMinTime), h = t.add(nt(h, -1), e.slotMaxTime)), o.timeWindowMs = p, o.normalizedRange = { start: f, end: h };
5566        for (var v = [], g = f; g < h;) mc(g, o, e, r) && v.push(g), g = t.add(g, o.slotDuration);
5567        o.slotDates = v;
5568        var m = -1,
5569            y = 0,
5570            S = [],
5571            E = [];
5572        for (g = f; g < h;) mc(g, o, e, r) ? (m += 1, S.push(m), E.push(y)) : S.push(m + .5), g = t.add(g, o.snapDuration), y += 1;
5573        return o.snapDiffToIndex = S, o.snapIndexToDiff = E, o.snapCnt = m + 1, o.slotCnt = o.snapCnt / o.snapsPerSlot, o.isWeekStarts = function(e, t) {
5574            for (var n = e.slotDates, r = e.emphasizeWeeks, o = null, i = [], a = 0, s = n; a < s.length; a++) {
5575                var l = s[a],
5576                    u = t.computeWeekNumber(l),
5577                    c = r && null !== o && o !== u;
5578                o = u, i.push(c)
5579            }
5580            return i
5581        }(o, t), o.cellRows = function(e, t) {
5582            for (var n = e.slotDates, r = e.headerFormats, o = r.map((function() { return [] })), i = At(e.slotDuration), a = 7 === i ? "week" : 1 === i ? "day" : null, s = r.map((function(e) { return e.getLargestUnit ? e.getLargestUnit() : null })), l = 0; l < n.length; l += 1)
5583                for (var u = n[l], c = e.isWeekStarts[l], d = 0; d < r.length; d += 1) {
5584                    var p = r[d],
5585                        f = o[d],
5586                        h = f[f.length - 1],
5587                        v = d === r.length - 1,
5588                        g = r.length > 1 && !v,
5589                        m = null,
5590                        y = s[d] || (v ? a : null);
5591                    if (g) {
5592                        var S = t.format(u, p);
5593                        h && h.text === S ? h.colspan += 1 : m = Ec(u, S, y)
5594                    } else if (!h || Je(t.countDurationsBetween(e.normalizedRange.start, u, e.labelInterval))) { m = Ec(u, S = t.format(u, p), y) } else h.colspan += 1;
5595                    m && (m.weekStart = c, f.push(m))
5596                }
5597            return o
5598        }
5598(o, t), o.slotsPerLabel = Ft(o.labelInterval, o.slotDuration), o
5599    }
5600
5601    function gc(e, t, n) { var r = e; return t.isTimeScale || (r = ut(r), t.largeUnit && (r = n.startOf(r, t.largeUnit))), r }
5602
5603    function mc(e, t, n, r) {
5604        if (r.isHiddenDay(e)) return !1;
5605        if (t.isTimeScale) {
5606            var o = ut(e),
5607                i = e.valueOf() - o.valueOf() - Vt(n.slotMinTime);
5608            return (i = (i % 864e5 + 864e5) % 864e5) < t.timeWindowMs
5609        }
5610        return !0
5611    }
5612
5613    function yc(e, t, n) {
5614        var r = t.currentRange,
5615            o = e.labelInterval;
5616        if (!o) {
5617            if (e.slotDuration) {
5618                for (var i = 0, a = hc; i < a.length; i++) {
5619                    var s = Ht(a[i]),
5620                        l = Ft(s, e.slotDuration);
5621                    if (null !== l && l <= 6) { o = s; break }
5622                }
5623                o || (o = e.slotDuration)
5624            } else
5625                for (var u = 0, c = hc; u < c.length; u++) { if (o = Ht(c[u]), n.countDurationsBetween(r.start, r.end, o) >= 18) break }
5626            e.labelInterval = o
5627        }
5628        return o
5629    }
5630
5631    function Sc(e, t, n) {
5632        var r = t.currentRange,
5633            o = null;
5634        return "years" === e ? o = n.diffWholeYears(r.start, r.end) : "months" === e || "weeks" === e ? o = n.diffWholeMonths(r.start, r.end) : "days" === e && (o = lt(r.start, r.end)), o || 0
5635    }
5636
5637    function Ec(e, t, n) { return { date: e, text: t, rowUnit: n, colspan: 1, isWeekStart: !1 } }
5638    var bc = function(e) {
5639        function t() { return null !== e && e.apply(this, arguments) || this }
5640        return n(t, e), t.prototype.render = function() {
5641            var e = this.props,
5642                t = this.context;
5643            return Oo(oi, { hookProps: e.hookProps, content: t.options.slotLabelContent, defaultContent: Cc }, (function(t, n) { return Oo("a", r({ ref: t, className: "fc-timeline-slot-cushion fc-scrollgrid-sync-inner" + (e.isSticky ? " fc-sticky" : "") }, e.navLinkAttrs), n) }))
5644        }, t
5645    }(Yo);
5646
5647    function Cc(e) { return e.text }
5648
5649    function Dc(e) { return { level: e.level, date: e.dateEnv.toDate(e.dateMarker), view: e.viewApi, text: e.text } }
5650    var Rc = function(e) {
5651        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.refineHookProps = Jt(Dc), t.normalizeClassNames = si(), t.buildCellNavLinkAttrs = $t(wc), t }
5652        return n(t, e), t.prototype.render = function() {
5653            var e = this,
5654                t = this.props,
5655                n = this.context,
5656                r = n.dateEnv,
5657                o = n.options,
5658                i = t.cell,
5659                a = t.dateProfile,
5660                s = t.tDateProfile,
5661                l = po(i.date, t.todayRange, t.nowDate, a),
5662                u = ["fc-timeline-slot", "fc-timeline-slot-label"].concat("time" === i.rowUnit ? ho(l, n.theme) : fo(l, n.theme));
5663            i.isWeekStart && u.push("fc-timeline-slot-em");
5664            var c = this.refineHookProps({ level: t.rowLevel, dateMarker: i.date, text: i.text, dateEnv: n.dateEnv, viewApi: n.viewApi }),
5665                d = this.normalizeClassNames(o.slotLabelClassNames, c);
5666            return Oo(ai, { hookProps: c, didMount: o.slotLabelDidMount, willUnmount: o.slotLabelWillUnmount }, (function(o) { return Oo("th", { ref: o, className: u.concat(d).join(" "), "data-date": r.formatIso(i.date, { omitTime: !s.isTimeScale, omitTimeZoneOffset: !0 }), colSpan: i.colspan }, Oo("div", { className: "fc-timeline-slot-frame", style: { height: t.rowInnerHeight } }, Oo(bc, { hookProps: c, isSticky: t.isSticky, navLinkAttrs: e.buildCellNavLinkAttrs(n, i.date, i.rowUnit) }))) }))
5667        }, t
5668    }(Yo);
5669
5670    function wc(e, t, n) { return n && "time" !== n ? mo(e, t, n) : {} }
5671    var Tc = function(e) {
5672            function t() { return null !== e && e.apply(this, arguments) || this }
5673            return n(t, e), t.prototype.render = function() {
5674                var e = this.props,
5675                    t = e.dateProfile,
5676                    n = e.tDateProfile,
5677                    r = e.rowInnerHeights,
5678                    o = e.todayRange,
5679                    i = e.nowDate,
5680                    a = n.cellRows;
5681                return Oo(Lo, null, a.map((function(e, s) {
5682                    var l = s === a.length - 1,
5683                        u = n.isTimeScale && l;
5684                    return Oo("tr", { key: s, className: ["fc-timeline-header-row", u ? "fc-timeline-header-row-chrono" : ""].join(" ") }, e.map((function(e) { return Oo(Rc, { key: e.date.toISOString(), cell: e, rowLevel: s, dateProfile: t, tDateProfile: n, todayRange: o, nowDate: i, rowInnerHeight: r && r[s], isSticky: !l }) })))
5685                })))
5686            }, t
5687        }(Yo),
5688        xc = function() {
5689            function e(e, t, n, r, o, i) { this.slatRootEl = e, this.dateProfile = n, this.tDateProfile = r, this.dateEnv = o, this.isRtl = i, this.outerCoordCache = new ko(e, t, !0, !1), this.innerCoordCache = new ko(e, De(t, "div"), !0, !1) }
5690            return e.prototype.isDateInRange = function(e) { return tr(this.dateProfile.currentRange, e) }, e.prototype.dateToCoord = function(e) {
5691                var t = this.tDateProfile,
5692                    n = this.computeDateSnapCoverage(e) / t.snapsPerSlot,
5693                    r = Math.floor(n),
5694                    o = n - (r = Math.min(r, t.slotCnt - 1)),
5695                    i = this.innerCoordCache,
5696                    a = this.outerCoordCache;
5697                return this.isRtl ? a.originClientRect.width - (a.rights[r] - i.getWidth(r) * o) : a.lefts[r] + i.getWidth(r) * o
5698            }, e.prototype.rangeToCoords = function(e) { return { start: this.dateToCoord(e.start), end: this.dateToCoord(e.end) } }, e.prototype.durationToCoord = function(e) {
5699                var t = this,
5700                    n = t.dateProfile,
5701                    r = t.tDateProfile,
5702                    o = t.dateEnv,
5703                    i = t.isRtl,
5704                    a = 0;
5705                if (n) {
5706                    var s = o.add(n.activeRange.start, e);
5707                    r.isTimeScale || (s = ut(s)), a = this.dateToCoord(s), !i && a && (a += 1)
5708                }
5709                return a
5710            }, e.prototype.coordFromLeft = function(e) { return this.isRtl ? this.outerCoordCache.originClientRect.width - e : e }, e.prototype.computeDateSnapCoverage = function(e) { return _c(e, this.tDateProfile, this.dateEnv) }, e
5711        }();
5712
5713    function _c(e, t, n) {
5714        var r = n.countDurationsBetween(t.normalizedRange.start, e, t.snapDuration);
5715        if (r < 0) return 0;
5716        if (r >= t.snapDiffToIndex.length) return t.snapCnt;
5717        var o = Math.floor(r),
5718            i = t.snapDiffToIndex[o];
5719        return Je(i) ? i += r - o : i = Math.ceil(i), i
5720    }
5721
5722    function kc(e, t) { return null === e ? { left: "", right: "" } : t ? { right: e, left: "" } : { left: e, right: "" } }
5723
5724    function Mc(e, t) { return e ? t ? { right: e.start, left: -e.end } : { left: e.start, right: -e.end } : { left: "", right: "" } }
5725    var Ic = function(e) {
5726            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.rootElRef = Wo(), t }
5727            return n(t, e), t.prototype.render = function() {
5728                var e = this,
5729                    t = this.props,
5730                    n = this.context,
5731                    r = Gt(t.tDateProfile.slotDuration).unit,
5732                    o = t.slatCoords && t.slatCoords.dateProfile === t.dateProfile ? t.slatCoords : null;
5733                return Oo(Pa, { unit: r }, (function(r, i) { return Oo("div", { className: "fc-timeline-header", ref: e.rootElRef }, Oo("table", { "aria-hidden": !0, className: "fc-scrollgrid-sync-table", style: { minWidth: t.tableMinWidth, width: t.clientWidth } }, t.tableColGroupNode, Oo("tbody", null, Oo(Tc, { dateProfile: t.dateProfile, tDateProfile: t.tDateProfile, nowDate: r, todayRange: i, rowInnerHeights: t.rowInnerHeights }))), n.options.nowIndicator && Oo("div", { className: "fc-timeline-now-indicator-container" }, o && o.isDateInRange(r) && Oo(hs, { isAxis: !0, date: r }, (function(e, t, i, a) { return Oo("div", { ref: e, className: ["fc-timeline-now-indicator-arrow"].concat(t).join(" "), style: kc(o.dateToCoord(r), n.isRtl) }, a) })))) }))
5734            }, t.prototype.componentDidMount = function() { this.updateSize() }, t.prototype.componentDidUpdate = function() { this.updateSize() }, t.prototype.updateSize = function() { this.props.onMaxCushionWidth && this.props.onMaxCushionWidth(this.computeMaxCushionWidth()) }, t.prototype.computeMaxCushionWidth = function() { return Math.max.apply(Math, Ce(this.rootElRef.current, ".fc-timeline-header-row:last-child .fc-timeline-slot-cushion").map((function(e) { return e.getBoundingClientRect().width }))) }, t
5735        }(Yo),
5736        Pc = function(e) {
5737            function t() { return null !== e && e.apply(this, arguments) || this }
5738            return n(t, e), t.prototype.render = function() {
5739                var e = this.props,
5740                    t = this.context,
5741                    n = t.dateEnv,
5742                    o = t.options,
5743                    i = t.theme,
5744                    a = e.date,
5745                    s = e.tDateProfile,
5746                    l = e.isEm,
5747                    u = po(e.date, e.todayRange, e.nowDate, e.dateProfile),
5748                    c = ["fc-timeline-slot", "fc-timeline-slot-lane"],
5749                    d = { "data-date": n.formatIso(a, { omitTimeZoneOffset: !0, omitTime: !s.isTimeScale }) },
5750                    p = r(r({ date: n.toDate(e.date) }, u), { view: t.viewApi });
5751                return l && c.push("fc-timeline-slot-em"), s.isTimeScale && c.push(Je(n.countDurationsBetween(s.normalizedRange.start, e.date, s.labelInterval)) ? "fc-timeline-slot-major" : "fc-timeline-slot-minor"), c.push.apply(c, e.isDay ? fo(u, i) : ho(u, i)), Oo(ni, { hookProps: p, classNames: o.slotLaneClassNames, content: o.slotLaneContent, didMount: o.slotLaneDidMount, willUnmount: o.slotLaneWillUnmount, elRef: e.elRef }, (function(e, t, n, o) { return Oo("td", r({ ref: e, className: c.concat(t).join(" ") }, d), Oo("div", { ref: n }, o)) }))
5752            }, t
5753        }(Yo),
5754        Nc = function(e) {
5755            function t() { return null !== e && e.apply(this, arguments) || this }
5756            return n(t, e), t.prototype.render = function() {
5757                var e = this.props,
5758                    t = e.tDateProfile,
5759                    n = e.cellElRefs,
5760                    r = t.slotDates,
5761                    o = t.isWeekStarts,
5762                    i = !t.isTimeScale && !t.largeUnit;
5763                return Oo("tbody", null, Oo("tr", null, r.map((function(r, a) { var s = r.toISOString(); return Oo(Pc, { key: s, elRef: n.createRef(s), date: r, dateProfile: e.dateProfile, tDateProfile: t, nowDate: e.nowDate, todayRange: e.todayRange, isEm: o[a], isDay: i }) }))))
5764            }, t
5765        }(Yo),
5766        Hc = function(e) {
5767            function t() {
5768                var t = null !== e && e.apply(this, arguments) || this;
5769                return t.rootElRef = Wo(), t.cellElRefs = new Ka, t.handleScrollRequest = function(e) {
5770                    var n = t.props.onScrollLeftRequest,
5771                        r = t.coords;
5772                    if (n && r) { if (e.time) n(r.coordFromLeft(r.durationToCoord(e.time))); return !0 }
5773                    return null
5774                }, t
5775            }
5776            return n(t, e), t.prototype.render = function() {
5777                var e = this.props,
5778                    t = this.context;
5779                return Oo("div", { className: "fc-timeline-slots", ref: this.rootElRef }, Oo("table", { "aria-hidden": !0, className: t.theme.getClass("table"), style: { minWidth: e.tableMinWidth, width: e.clientWidth } }, e.tableColGroupNode, Oo(Nc, { cellElRefs: this.cellElRefs, dateProfile: e.dateProfile, tDateProfile: e.tDateProfile, nowDate: e.nowDate, todayRange: e.todayRange })))
5780            }, t.prototype.componentDidMount = function() { this.updateSizing(
5780), this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest) }, t.prototype.componentDidUpdate = function(e) { this.updateSizing(), this.scrollResponder.update(e.dateProfile !== this.props.dateProfile) }, t.prototype.componentWillUnmount = function() { this.scrollResponder.detach(), this.props.onCoords && this.props.onCoords(null) }, t.prototype.updateSizing = function() {
5781                var e, t = this.props,
5782                    n = this.context;
5783                null !== t.clientWidth && this.scrollResponder && (this.rootElRef.current.offsetWidth && (this.coords = new xc(this.rootElRef.current, (e = this.cellElRefs.currentMap, t.tDateProfile.slotDates.map((function(t) { var n = t.toISOString(); return e[n] }))), t.dateProfile, t.tDateProfile, n.dateEnv, n.isRtl), t.onCoords && t.onCoords(this.coords), this.scrollResponder.update(!1)))
5784            }, t.prototype.positionToHit = function(e) {
5785                var t = this.coords.outerCoordCache,
5786                    n = this.context,
5787                    r = n.dateEnv,
5788                    o = n.isRtl,
5789                    i = this.props.tDateProfile,
5790                    a = t.leftToIndex(e);
5791                if (null != a) {
5792                    var s = t.getWidth(a),
5793                        l = o ? (t.rights[a] - e) / s : (e - t.lefts[a]) / s,
5794                        u = Math.floor(l * i.snapsPerSlot),
5795                        c = r.add(i.slotDates[a], Lt(i.snapDuration, u));
5796                    return { dateSpan: { range: { start: c, end: r.add(c, i.snapDuration) }, allDay: !this.props.tDateProfile.isTimeScale }, dayEl: this.cellElRefs.currentMap[a], left: t.lefts[a], right: t.rights[a] }
5797                }
5798                return null
5799            }, t
5800        }(Yo);
5801
5802    function Oc(e, t, n) {
5803        var r = [];
5804        if (n)
5805            for (var o = 0, i = e; o < i.length; o++) {
5806                var a = i[o],
5807                    s = n.rangeToCoords(a),
5808                    l = Math.round(s.start),
5809                    u = Math.round(s.end);
5810                u - l < t && (u = l + t), r.push({ start: l, end: u })
5811            }
5812        return r
5813    }
5814    var Ac = function(e) {
5815            function t() { return null !== e && e.apply(this, arguments) || this }
5816            return n(t, e), t.prototype.render = function() {
5817                var e = this.props,
5818                    t = [].concat(e.eventResizeSegs, e.dateSelectionSegs);
5819                return e.timelineCoords && Oo("div", { className: "fc-timeline-bg" }, this.renderSegs(e.businessHourSegs || [], e.timelineCoords, "non-business"), this.renderSegs(e.bgEventSegs || [], e.timelineCoords, "bg-event"), this.renderSegs(t, e.timelineCoords, "highlight"))
5820            }, t.prototype.renderSegs = function(e, t, n) {
5821                var o = this.props,
5822                    i = o.todayRange,
5823                    a = o.nowDate,
5824                    s = this.context.isRtl,
5825                    l = Oc(e, 0, t),
5826                    u = e.map((function(e, t) { var o = Mc(l[t], s); return Oo("div", { key: gr(e.eventRange), className: "fc-timeline-bg-harness", style: o }, "bg-event" === n ? Oo(Es, r({ seg: e }, hr(e, i, a))) : Ss(n)) }));
5827                return Oo(Lo, null, u)
5828            }, t
5829        }(Yo),
5830        Wc = function(e) {
5831            function t() { return null !== e && e.apply(this, arguments) || this }
5832            return n(t, e), t.prototype.sliceRange = function(e, t, n, r, o) {
5833                var i = function(e, t, n) {
5834                        if (!t.isTimeScale && (e = qn(e), t.largeUnit)) {
5835                            var r = e;
5836                            ((e = { start: n.startOf(e.start, t.largeUnit), end: n.startOf(e.end, t.largeUnit) }).end.valueOf() !== r.end.valueOf() || e.end <= e.start) && (e = { start: e.start, end: n.add(e.end, t.slotDuration) })
5837                        }
5838                        return e
5839                    }(e, r, o),
5840                    a = [];
5841                if (_c(i.start, r, o) < _c(i.end, r, o)) {
5842                    var s = $n(i, r.normalizedRange);
5843                    s && a.push({ start: s.start, end: s.end, isStart: s.start.valueOf() === i.start.valueOf() && mc(s.start, r, t, n), isEnd: s.end.valueOf() === i.end.valueOf() && mc(rt(s.end, -1), r, t, n) })
5844                }
5845                return a
5846            }, t
5847        }(La),
5848        Lc = vn({ hour: "numeric", minute: "2-digit", omitZeroMinute: !0, meridiem: "narrow" }),
5849        Uc = function(e) {
5850            function t() { return null !== e && e.apply(this, arguments) || this }
5851            return n(t, e), t.prototype.render = function() { var e = this.props; return Oo(ps, r({}, e, { extraClassNames: ["fc-timeline-event", "fc-h-event"], defaultTimeFormat: Lc, defaultDisplayEventTime: !e.isTimeScale })) }, t
5852        }(Yo),
5853        Bc = function(e) {
5854            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.rootElRef = Wo(), t }
5855            return n(t, e), t.prototype.render = function() {
5856                var e = this,
5857                    t = this.props,
5858                    n = this.context,
5859                    o = t.hiddenSegs,
5860                    i = t.elRef,
5861                    a = t.placement,
5862                    s = t.resourceId,
5863                    l = a.top,
5864                    u = a.hcoords,
5865                    c = u && null !== l,
5866                    d = Mc(u, n.isRtl),
5867                    p = s ? { resourceId: s } : {};
5868                return Oo(Ts, { allDayDate: null, moreCnt: o.length, allSegs: o, hiddenSegs: o, alignmentElRef: this.rootElRef, dateProfile: t.dateProfile, todayRange: t.todayRange, extraDateSpan: p, popoverContent: function() { return Oo(Lo, null, o.map((function(e) { var n = e.eventRange.instance.instanceId; return Oo("div", { key: n, style: { visibility: t.isForcedInvisible[n] ? "hidden" : "" } }, Oo(Uc, r({ isTimeScale: t.isTimeScale, seg: e, isDragging: !1, isResizing: !1, isDateSelecting: !1, isSelected: n === t.eventSelection }, hr(e, t.todayRange, t.nowDate)))) }))) } }, (function(t, n, o, a, s, u, p, f) { return Oo("a", { ref: function(n) { Ko(t, n), Ko(i, n), Ko(e.rootElRef, n) }, className: ["fc-timeline-more-link"].concat(n).join(" "), style: r({ visibility: c ? "" : "hidden", top: l || 0 }, d), onClick: s, title: u, "aria-expanded": p, "aria-controls": f }, Oo("div", { ref: o, className: "fc-timeline-more-link-inner fc-sticky" }, a)) }))
5869            }, t
5870        }(Yo),
5871        zc = function(e) {
5872            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.slicer = new Wc, t.sortEventSegs = $t(lr), t.harnessElRefs = new Ka, t.moreElRefs = new Ka, t.innerElRef = Wo(), t.state = { eventInstanceHeights: {}, moreLinkHeights: {} }, t }
5873            return n(t, e), t.prototype.render = function() {
5874                var e = this,
5875                    t = e.props,
5876                    n = e.state,
5877                    r = e.context,
5878                    o = r.options,
5879                    i = t.dateProfile,
5880                    a = t.tDateProfile,
5881                    s = this.slicer.sliceProps(t, i, a.isTimeScale ? null : t.nextDayThreshold, r, i, r.dateProfileGenerator, a, r.dateEnv),
5882                    l = (s.eventDrag ? s.eventDrag.segs : null) || (s.eventResize ? s.eventResize.segs : null) || [],
5883                    u = this.sortEventSegs(s.fgEventSegs, o.eventOrder),
5884                    c = function(e, t, n, r, o, i) {
5885                        for (var a = [], s = [], l = 0; l < e.length; l += 1) {
5886                            var u = e[l],
5887                                c = n[u.eventRange.instance.instanceId],
5888                                d = t[l];
5889                            c && d ? a.push({ index: l, span: d, thickness: c }) : s.push({ seg: u, hcoords: d, top: null })
5890                        }
5891                        var p = new ta;
5892                        null != o && (p.strictOrder = o), null != i && (p.maxStackCnt = i);
5893                        var f = p.addSegs(a),
5894                            h = f.map((function(t) { return { seg: e[t.index], hcoords: t.span, top: null } })),
5895                            v = oa(f),
5896                            g = [],
5897                            m = [],
5898                            y = function(t) { return e[t.index] };
5899                        for (l = 0; l < v.length; l += 1) {
5900                            var S = v[l],
5901                                E = S.entries.map(y);
5902                            null != (c = r[jt(ks(E))]) ? g.push({ index: e.length + l, thickness: c, span: S.span }) : m.push({ seg: E, hcoords: S.span, top: null })
5903                        }
5904                        p.maxStackCnt = -1, p.addSegs(g);
5905                        for (var b = [], C = 0, D = 0, R = p.toRects(); D < R.length; D++) {
5906                            var w = R[D],
5907                                T = w.index;
5908                            b.push({ seg: T < e.length ? e[T] : v[T - e.length].entries.map(y), hcoords: w.span, top: w.levelCoord }), C = Math.max(C, w.levelCoord + w.thickness)
5909                        }
5910                        return [b.concat(s, h, m), C]
5911                    }(u, Oc(u, o.eventMinWidth, t.timelineCoords), n.eventInstanceHeights, n.moreLinkHeights, o.eventOrderStrict, o.eventMaxStack),
5912                    d = c[0],
5913                    p = c[1],
5914                    f = (s.eventDrag ? s.eventDrag.affectedInstances : null) || (s.eventResize ? s.eventResize.affectedInstances : null) || {};
5915                return Oo(Lo, null, Oo(Ac, { businessHourSegs: s.businessHourSegs, bgEventSegs: s.bgEventSegs, timelineCoords: t.timelineCoords, eventResizeSegs: s.eventResize ? s.eventResize.segs : [], dateSelectionSegs: s.dateSelectionSegs, nowDate: t.nowDate, todayRange: t.todayRange }), Oo("div", { className: "fc-timeline-events fc-scrollgrid-sync-inner", ref: this.innerElRef, style: { height: p } }, this.renderFgSegs(d, f, !1, !1, !1), this.renderFgSegs(function(e, t, n) {
5916                    if (!e.length || !t) return [];
5917                    var r = function(e) {
5918                        for (var t = {}, n = 0, r = e; n < r.length; n++) {
5919                            var o = r[n],
5920                                i = o.seg;
5921                            Array.isArray(i) || (t[i.eventRange.instance.instanceId] = o.top)
5922                        }
5923                        return t
5924                    }(n);
5925                    return e.map((function(e) { return { seg: e, hcoords: t.rangeToCoords(e), top: r[e.eventRange.instance.instanceId] } }))
5926                }(l, t.timelineCoords, d), {}, Boolean(s.eventDrag), Boolean(s.eventResize), !1)))
5927            }, t.prototype.componentDidMount = function() { this.updateSize() }, t.prototype.componentDidUpdate = function(e, t) { e.eventStore === this.props.eventStore && e.timelineCoords === this.props.timelineCoords && t.moreLinkHeights === this.state.moreLinkHeights || this.updateSize() }, t.prototype.updateSize = function() {
5928                var e = this.props,
5929                    t = e.timelineCoords,
5930                    n = this.innerElRef.current;
5931                e.onHeightChange && e.onHeightChange(n, !1), t && this.setState({ eventInstanceHeights: Ct(this.harnessElRefs.currentMap, (function(e) { return Math.round(e.getBoundingClientRect().height) })), moreLinkHeights: Ct(this.moreElRefs.currentMap, (function(e) { return Math.round(e.getBoundingClientRect().height) })) }, (function() { e.onHeightChange && e.onHeightChange(n, !0) })), e.syncParentMinHeight && (n.parentElement.style.minHeight = n.style.height)
5932            }, t.prototype.renderFgSegs = function(e, t, n, o, i) {
5933                var a = this,
5934                    s = a.harnessElRefs,
5935                    l = a.moreElRefs,
5936                    u = a.props,
5937                    c = a.context,
5938                    d = n || o || i;
5939                return Oo(Lo, null, e.map((function(e) {
5940                    var a = e.seg,
5941                        p = e.hcoords,
5942                        f = e.top;
5943                    if (Array.isArray(a)) { var h = jt(ks(a)); return Oo(Bc, { key: "m:" + h, elRef: l.createRef(h), hiddenSegs: a, placement: e, dateProfile: u.dateProfile, nowDate: u.nowDate, todayRange: u.todayRange, isTimeScale: u.tDateProfile.isTimeScale, eventSelection: u.eventSelection, resourceId: u.resourceId, isForcedInvisible: t }) }
5944                    var v = a.eventRange.instance.instanceId,
5945                        g = d || Boolean(!t[v] && p && null !== f),
5946                        m = Mc(p, c.isRtl);
5947                    return Oo("div", { key: "e:" + v, ref: d ? null : s.createRef(v), className: "fc-timeline-event-harness", style: r({ visibility: g ? "" : "hidden", top: f || 0 }, m) }, Oo(Uc, r({ isTimeScale: u.tDateProfile.isTimeScale, seg: a, isDragging: n, isResizing: o, isDateSelecting: i, isSelected: v === u.eventSelection }, hr(a, u.todayRange, u.nowDate))))
5948                })))
5949            }, t
5950        }(Yo);
5951    zc.addStateEquality({ eventInstanceHeights: wt, moreLinkHeights: wt });
5952    var Vc = function(e) {
5953            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.slatsRef = Wo(), t.state = { coords: null }, t.handeEl = function(e) { e ? t.context.registerInteractiveComponent(t, { el: e }) : t.context.unregisterInteractiveComponent(t) }, t.handleCoords = function(e) { t.setState({ coords: e }), t.props.onSlatCoords && t.props.onSlatCoords(e) }, t }
5954            return n(t, e), t.prototype.render = function() {
5955                var e = this,
5956                    t = this,
5957                    n = t.props,
5958                    r = t.state,
5959                    o = t.context,
5960                    i = o.options,
5961                    a = n.dateProfile,
5962                    s = n.tDateProfile,
5963                    l = Gt(s.slotDuration).unit;
5964                return Oo("div", { className: "fc-timeline-body", ref: this.handeEl, style: { minWidth: n.tableMinWidth, height: n.clientHeight, width: n.clientWidth } }, Oo(Pa, { unit: l }, (function(t, l) { return Oo(Lo, null, Oo(Hc, { ref: e.slatsRef, dateProfile: a, tDateProfile: s, nowDate: t, todayRange: l, clientWidth: n.clientWidth, tableColGroupNode: n.tableColGroupNode, tableMinWidth: n.tableMinWidth, onCoords: e.handleCoords, onScrollLeftRequest: n.onScrollLeftRequest }), Oo(zc, { dateProfile: a, tDateProfile: n.tDateProfile, nowDate: t, todayRange: l, nextDayThreshold: i.nextDayThreshold, businessHours: n.businessHours, eventStore: n.eventStore, eventUiBases: n.eventUiBases, dateSelection: n.dateSelection, eventSelection: n.eventSelection, eventDrag: n.eventDrag, eventResize: n.eventResize, timelineCoords: r.coords, syncParentMinHeight: !0 }), i.nowIndicator && r.coords && r.coords.isDateInRange(t) && Oo("div", { className: "fc-timeline-now-indicator-container" }, Oo(hs, { isAxis: !1, date: t }, (function(e, n, i, a) { return Oo("div", { ref: e, className: ["fc-timeline-now-indicator-line"].concat(n).join(" "), style: kc(r.coords.dateToCoord(t), o.isRtl) }, a) })))) })))
5965            }, t.prototype.queryHit = function(e, t, n, r) { var o = this.slatsRef.current.positionToHit(e); return o ? { dateProfile: this.props.dateProfile, dateSpan: o.dateSpan, rect: { left: o.left, right: o.right, top: 0, bottom: r }, dayEl: o.dayEl, layer: 0 } : null }, t
5966        }($o),
5967        Fc = function(e) {
5968            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.buildTimelineDateProfile = $t(vc), t.scrollGridRef = Wo(), t.state = { slatCoords: null, slotCushionMaxWidth: null }, t.handleSlatCoords = function(e) { t.setState({ slatCoords: e }) }, t.handleScrollLeftRequest = function(e) { t.scrollGridRef.current.forceScrollLeft(0, e) }, t.handleMaxCushionWidth = function(e) { t.setState({ slotCushionMaxWidth: Math.ceil(e) }) }, t }
5969            return n(t, e), t.prototype.render = function() {
5970                var e = this,
5971                    t = this,
5972                    n = t.props,
5973                    o = t.state,
5974                    i = t.context,
5975                    a = i.options,
5976                    s = !n.forPrint && ls(a),
5977                    l = !n.forPrint && us(a),
5978                    u = this.buildTimelineDateProfile(n.dateProfile, i.dateEnv, a, i.dateProfileGenerator),
5979                    c = ["fc-timeline", !1 === a.eventOverlap ? "fc-timeline-overlap-disabled" : ""],
5980                    d = a.slotMinWidth,
5981                    p = Gc(u, d || this.computeFallbackSlotMinWidth(u)),
5982                    f = [{ type: "header", key: "header", isSticky: s, chunks: [{ key: "timeline", content: function(t) { return Oo(Ic, { dateProfile: n.dateProfile, clientWidth: t.clientWidth, clientHeight: t.clientHeight, tableMinWidth: t.tableMinWidth, tableColGroupNode: t.tableColGroupNode, tDateProfile: u, slatCoords: o.slat
5982Coords, onMaxCushionWidth: d ? null : e.handleMaxCushionWidth }) } }] }, { type: "body", key: "body", liquid: !0, chunks: [{ key: "timeline", content: function(t) { return Oo(Vc, r({}, n, { clientWidth: t.clientWidth, clientHeight: t.clientHeight, tableMinWidth: t.tableMinWidth, tableColGroupNode: t.tableColGroupNode, tDateProfile: u, onSlatCoords: e.handleSlatCoords, onScrollLeftRequest: e.handleScrollLeftRequest })) } }] }];
5983                return l && f.push({ type: "footer", key: "footer", isSticky: !0, chunks: [{ key: "timeline", content: ss }] }), Oo(ci, { viewSpec: i.viewSpec }, (function(t, r) { return Oo("div", { ref: t, className: c.concat(r).join(" ") }, Oo(Zu, { ref: e.scrollGridRef, liquid: !n.isHeightAuto && !n.forPrint, collapsibleWidth: !1, colGroups: [{ cols: p }], sections: f })) }))
5984            }, t.prototype.computeFallbackSlotMinWidth = function(e) { return Math.max(30, (this.state.slotCushionMaxWidth || 0) / e.slotsPerLabel) }, t
5985        }($o);
5986
5987    function Gc(e, t) { return [{ span: e.slotCnt, minWidth: t || 1 }] }
5988    var jc = Jo({ deps: [Wu], initialView: "timelineDay", views: { timeline: { component: Fc, usesMinMaxTime: !0, eventResizableFromStart: !0 }, timelineDay: { type: "timeline", duration: { days: 1 } }, timelineWeek: { type: "timeline", duration: { weeks: 1 } }, timelineMonth: { type: "timeline", duration: { months: 1 } }, timelineYear: { type: "timeline", duration: { years: 1 } } } });
5989
5990    function qc(e, t) {
5991        var n = e.resourceEditable;
5992        if (null == n) {
5993            var r = e.sourceId && t.getCurrentData().eventSources[e.sourceId];
5994            r && (n = r.extendedProps.resourceEditable), null == n && null == (n = t.options.eventResourceEditable) && (n = t.options.editable)
5995        }
5996        return n
5997    }
5998    var Yc = function() {
5999        function e() { this.filterResources = $t(Zc) }
6000        return e.prototype.transform = function(e, t) { return t.viewSpec.optionDefaults.needsResourceData ? { resourceStore: this.filterResources(t.resourceStore, t.options.filterResourcesWithEvents, t.eventStore, t.dateProfile.activeRange), resourceEntityExpansions: t.resourceEntityExpansions } : null }, e
6001    }();
6002
6003    function Zc(e, t, n, o) {
6004        if (t) {
6005            var i = function(e, t) {
6006                var n = {};
6007                for (var r in e)
6008                    for (var o = 0, i = t[e[r].defId].resourceIds; o < i.length; o++) { n[i[o]] = !0 }
6009                return n
6010            }(function(e, t) { return bt(e, (function(e) { return Qn(e.range, t) })) }(n.instances, o), n.defs);
6011            return r(i, function(e, t) {
6012                var n = {};
6013                for (var r in e)
6014                    for (var o = void 0;
6015                        (o = t[r]) && (r = o.parentId);) n[r] = !0;
6016                return n
6017            }(i, e)), bt(e, (function(e, t) { return i[t] }))
6018        }
6019        return e
6020    }
6021    var Xc = function() {
6022        function e() { this.buildResourceEventUis = $t(Kc, wt), this.injectResourceEventUis = $t($c) }
6023        return e.prototype.transform = function(e, t) { return t.viewSpec.optionDefaults.needsResourceData ? null : { eventUiBases: this.injectResourceEventUis(e.eventUiBases, e.eventStore.defs, this.buildResourceEventUis(t.resourceStore)) } }, e
6024    }();
6025
6026    function Kc(e) { return Ct(e, (function(e) { return e.ui })) }
6027
6028    function $c(e, t, n) {
6029        return Ct(e, (function(e, r) {
6030            return r ? function(e, t, n) {
6031                for (var r = [], o = 0, i = t.resourceIds; o < i.length; o++) {
6032                    var a = i[o];
6033                    n[a] && r.unshift(n[a])
6034                }
6035                return r.unshift(e), An(r)
6036            }(e, t[r], n) : e
6037        }))
6038    }
6039    var Jc = [];
6040
6041    function Qc(e) { Jc.push(e) }
6042
6043    function ed(e) { return Jc[e] }
6044
6045    function td() { return Jc }
6046    var nd = { id: String, resources: wn, url: String, method: String, startParam: String, endParam: String, timeZoneParam: String, extraParams: wn };
6047
6048    function rd(e) {
6049        var t;
6050        if ("string" == typeof e ? t = { url: e } : "function" == typeof e || Array.isArray(e) ? t = { resources: e } : "object" == typeof e && e && (t = e), t) {
6051            var n = Rn(t, nd),
6052                r = n.refined;
6053            ! function(e) { for (var t in e) console.warn("Unknown resource prop '" + t + "'") }(n.extra);
6054            var o = function(e) { for (var t = td(), n = t.length - 1; n >= 0; n -= 1) { var r = t[n].parseMeta(e); if (r) return { meta: r, sourceDefId: n } } return null }(r);
6055            if (o) return { _raw: e, sourceId: Le(), sourceDefId: o.sourceDefId, meta: o.meta, publicId: r.id || "", isFetching: !1, latestFetchId: "", fetchRange: null }
6056        }
6057        return null
6058    }
6059
6060    function od(e, t, n) {
6061        var o = n.options,
6062            i = n.dateProfile;
6063        if (!e || !t) return id(o.initialResources || o.resources, i.activeRange, o.refetchResourcesOnNavigate, n);
6064        switch (t.type) {
6065            case "RESET_RESOURCE_SOURCE":
6066                return id(t.resourceSourceInput, i.activeRange, o.refetchResourcesOnNavigate, n);
6067            case "PREV":
6068            case "NEXT":
6069            case "CHANGE_DATE":
6070            case "CHANGE_VIEW_TYPE":
6071                return function(e, t, n, r) { if (n && ! function(e) { return Boolean(ed(e.sourceDefId).ignoreRange) }(e) && (!e.fetchRange || !Jn(e.fetchRange, t))) return ad(e, t, r); return e }(e, i.activeRange, o.refetchResourcesOnNavigate, n);
6072            case "RECEIVE_RESOURCES":
6073            case "RECEIVE_RESOURCE_ERROR":
6074                return function(e, t, n) { if (t === e.latestFetchId) return r(r({}, e), { isFetching: !1, fetchRange: n }); return e }(e, t.fetchId, t.fetchRange);
6075            case "REFETCH_RESOURCES":
6076                return ad(e, i.activeRange, n);
6077            default:
6078                return e
6079        }
6080    }
6081
6082    function id(e, t, n, r) { if (e) { var o = rd(e); return o = ad(o, n ? t : null, r) } return null }
6083
6084    function ad(e, t, n) {
6085        var o = ed(e.sourceDefId),
6086            i = Le();
6087        return o.fetch({ resourceSource: e, range: t, context: n }, (function(e) { n.dispatch({ type: "RECEIVE_RESOURCES", fetchId: i, fetchRange: t, rawResources: e.rawResources }) }), (function(e) { n.dispatch({ type: "RECEIVE_RESOURCE_ERROR", fetchId: i, fetchRange: t, error: e }) })), r(r({}, e), { isFetching: !0, latestFetchId: i })
6088    }
6089    var sd = "_fc:",
6090        ld = { id: String, parentId: String, children: wn, title: String, businessHours: wn, extendedProps: wn, eventEditable: Boolean, eventStartEditable: Boolean, eventDurationEditable: Boolean, eventConstraint: wn, eventOverlap: Boolean, eventAllow: wn, eventClassNames: Pn, eventBackgroundColor: String, eventBorderColor: String, eventTextColor: String, eventColor: String };
6091
6092    function ud(e, t, n, o) {
6093        void 0 === t && (t = "");
6094        var i = Rn(e, ld),
6095            a = i.refined,
6096            s = i.extra,
6097            l = { id: a.id || sd + Le(), parentId: a.parentId || t, title: a.title || "", businessHours: a.businessHours ? eo(a.businessHours, o) : null, ui: On({ editable: a.eventEditable, startEditable: a.eventStartEditable, durationEditable: a.eventDurationEditable, constraint: a.eventConstraint, overlap: a.eventOverlap, allow: a.eventAllow, classNames: a.eventClassNames, backgroundColor: a.eventBackgroundColor, borderColor: a.eventBorderColor, textColor: a.eventTextColor, color: a.eventColor }, o), extendedProps: r(r({}, s), a.extendedProps) };
6098        if (Object.freeze(l.ui.classNames), Object.freeze(l.extendedProps), n[l.id]);
6099        else if (n[l.id] = l, a.children)
6100            for (var u = 0, c = a.children; u < c.length; u++) { ud(c[u], l.id, n, o) }
6101        return l
6102    }
6103
6104    function cd(e) { return 0 === e.indexOf(sd) ? "" : e }
6105
6106    function dd(e, t, n, o) {
6107        if (!e || !t) return {};
6108        switch (t.type) {
6109            case "RECEIVE_RESOURCES":
6110                return function(e, t, n, r, o) { if (r.latestFetchId === n) { for (var i = {}, a = 0, s = t; a < s.length; a++) { ud(s[a], "", i, o) } return i } return e }(e, t.rawResources, t.fetchId, n, o);
6111            case "ADD_RESOURCE":
6112                return i = e, a = t.resourceHash, r(r({}, i), a);
6113            case "REMOVE_RESOURCE":
6114                return function(e, t) { var n = r({}, e); for (var o in delete n[t], n) n[o].parentId === t && (n[o] = r(r({}, n[o]), { parentId: "" })); return n }(e, t.resourceId);
6115            case "SET_RESOURCE_PROP":
6116                return function(e, t, n, o) { var i, a, s = e[t]; if (s) return r(r({}, e), ((i = {})[t] = r(r({}, s), ((a = {})[n] = o, a)), i)); return e }(e, t.resourceId, t.propName, t.propValue);
6117            case "SET_RESOURCE_EXTENDED_PROP":
6118                return function(e, t, n, o) { var i, a, s = e[t]; if (s) return r(r({}, e), ((i = {})[t] = r(r({}, s), { extendedProps: r(r({}, s.extendedProps), (a = {}, a[n] = o, a)) }), i)); return e }(e, t.resourceId, t.propName, t.propValue);
6119            default:
6120                return e
6121        }
6122        var i, a
6123    }
6124    var pd = { resourceId: String, resourceIds: wn, resourceEditable: Boolean };
6125    var fd = function() {
6126        function e(e, t) { this._context = e, this._resource = t }
6127        return e.prototype.setProp = function(e, t) {
6128            var n = this._resource;
6129            this._context.dispatch({ type: "SET_RESOURCE_PROP", resourceId: n.id, propName: e, propValue: t }), this.sync(n)
6130        }, e.prototype.setExtendedProp = function(e, t) {
6131            var n = this._resource;
6132            this._context.dispatch({ type: "SET_RESOURCE_EXTENDED_PROP", resourceId: n.id, propName: e, propValue: t }), this.sync(n)
6133        }, e.prototype.sync = function(t) {
6134            var n = this._context,
6135                r = t.id;
6136            this._resource = n.getCurrentData().resourceStore[r], n.emitter.trigger("resourceChange", {
6137                oldResource: new e(n, t),
6138                resource: this,
6139                revert: function() {
6140                    var e;
6141                    n.dispatch({ type: "ADD_RESOURCE", resourceHash: (e = {}, e[r] = t, e) })
6142                }
6143            })
6144        }, e.prototype.remove = function() {
6145            var e = this._context,
6146                t = this._resource,
6147                n = t.id;
6148            e.dispatch({ type: "REMOVE_RESOURCE", resourceId: n }), e.emitter.trigger("resourceRemove", {
6149                resource: this,
6150                revert: function() {
6151                    var r;
6152                    e.dispatch({ type: "ADD_RESOURCE", resourceHash: (r = {}, r[n] = t, r) })
6153                }
6154            })
6155        }, e.prototype.getParent = function() {
6156            var t = this._context,
6157                n = this._resource.parentId;
6158            return n ? new e(t, t.getCurrentData().resourceSource[n]) : null
6159        }, e.prototype.getChildren = function() {
6160            var t = this._resource.id,
6161                n = this._context,
6162                r = n.getCurrentData().resourceStore,
6163                o = [];
6164            for (var i in r) r[i].parentId === t && o.push(new e(n, r[i]));
6165            return o
6166        }, e.prototype.getEvents = function() {
6167            var e = this._resource.id,
6168                t = this._context,
6169                n = t.getCurrentData().eventStore,
6170                r = n.defs,
6171                o = n.instances,
6172                i = [];
6173            for (var a in o) {
6174                var s = o[a],
6175                    l = r[s.defId]; - 1 !== l.resourceIds.indexOf(e) && i.push(new Ar(t, l, s))
6176            }
6177            return i
6178        }, Object.defineProperty(e.prototype, "id", { get: function() { return cd(this._resource.id) }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "title", { get: function() { return this._resource.title }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "eventConstraint", { get: function() { return this._resource.ui.constraints[0] || null }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "eventOverlap", { get: function() { return this._resource.ui.overlap }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "eventAllow", { get: function() { return this._resource.ui.allows[0] || null }, enumerable: !1, configurable: !0 }
6178), Object.defineProperty(e.prototype, "eventBackgroundColor", { get: function() { return this._resource.ui.backgroundColor }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "eventBorderColor", { get: function() { return this._resource.ui.borderColor }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "eventTextColor", { get: function() { return this._resource.ui.textColor }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "eventClassNames", { get: function() { return this._resource.ui.classNames }, enumerable: !1, configurable: !0 }), Object.defineProperty(e.prototype, "extendedProps", { get: function() { return this._resource.extendedProps }, enumerable: !1, configurable: !0 }), e.prototype.toPlainObject = function(e) {
6179            void 0 === e && (e = {});
6180            var t = this._resource,
6181                n = t.ui,
6182                o = this.id,
6183                i = {};
6184            return o && (i.id = o), t.title && (i.title = t.title), e.collapseEventColor && n.backgroundColor && n.backgroundColor === n.borderColor ? i.eventColor = n.backgroundColor : (n.backgroundColor && (i.eventBackgroundColor = n.backgroundColor), n.borderColor && (i.eventBorderColor = n.borderColor)), n.textColor && (i.eventTextColor = n.textColor), n.classNames.length && (i.eventClassNames = n.classNames), Object.keys(t.extendedProps).length && (e.collapseExtendedProps ? r(i, t.extendedProps) : i.extendedProps = t.extendedProps), i
6185        }, e.prototype.toJSON = function() { return this.toPlainObject() }, e
6186    }();
6187    Or.prototype.addResource = function(e, t) {
6188        var n, r = this;
6189        void 0 === t && (t = !0);
6190        var o, i, a = this.getCurrentData();
6191        e instanceof fd ? ((n = {})[(i = e._resource).id] = i, o = n) : i = ud(e, "", o = {}, a), this.dispatch({ type: "ADD_RESOURCE", resourceHash: o }), t && this.trigger("_scrollRequest", { resourceId: i.id });
6192        var s = new fd(a, i);
6193        return a.emitter.trigger("resourceAdd", { resource: s, revert: function() { r.dispatch({ type: "REMOVE_RESOURCE", resourceId: i.id }) } }), s
6194    }, Or.prototype.getResourceById = function(e) { e = String(e); var t = this.getCurrentData(); if (t.resourceStore) { var n = t.resourceStore[e]; if (n) return new fd(t, n) } return null }, Or.prototype.getResources = function() {
6195        var e = this.getCurrentData(),
6196            t = e.resourceStore,
6197            n = [];
6198        if (t)
6199            for (var r in t) n.push(new fd(e, t[r]));
6200        return n
6201    }, Or.prototype.getTopLevelResources = function() {
6202        var e = this.getCurrentData(),
6203            t = e.resourceStore,
6204            n = [];
6205        if (t)
6206            for (var r in t) t[r].parentId || n.push(new fd(e, t[r]));
6207        return n
6208    }, Or.prototype.refetchResources = function() { this.dispatch({ type: "REFETCH_RESOURCES" }) };
6209    var hd = function(e) {
6210        function t() { return null !== e && e.apply(this, arguments) || this }
6211        return n(t, e), t.prototype.getKeyInfo = function(e) { return r({ "": {} }, e.resourceStore) }, t.prototype.getKeysForDateSpan = function(e) { return [e.resourceId || ""] }, t.prototype.getKeysForEventDef = function(e) { var t = e.resourceIds; return t.length ? t : [""] }, t
6212    }(uo);
6213
6214    function vd(e, t) { return r(r({}, t), { constraints: gd(e, t.constraints) }) }
6215
6216    function gd(e, t) {
6217        return t.map((function(t) {
6218            var n = t.defs;
6219            if (n)
6220                for (var r in n) { var o = n[r].resourceIds; if (o.length && -1 === o.indexOf(e)) return !1 }
6221            return t
6222        }))
6223    }
6224    Ar.prototype.getResources = function() { var e = this._context.calendarApi; return this._def.resourceIds.map((function(t) { return e.getResourceById(t) })) }, Ar.prototype.setResources = function(e) {
6225        for (var t = [], n = 0, r = e; n < r.length; n++) {
6226            var o = r[n],
6227                i = null;
6228            "string" == typeof o ? i = o : "number" == typeof o ? i = String(o) : o instanceof fd ? i = o.id : console.warn("unknown resource type: " + o), i && t.push(i)
6229        }
6230        this.mutate({ standardProps: { resourceIds: t } })
6231    };
6232    var md = { resources: function(e, t) { t.getCurrentData().resourceSource._raw !== e && t.dispatch({ type: "RESET_RESOURCE_SOURCE", resourceSourceIn
6232put: e }) } };
6233    var yd = je("id,title");
6234    var Sd = { initialResources: wn, resources: wn, eventResourceEditable: Boolean, refetchResourcesOnNavigate: Boolean, resourceOrder: je, filterResourcesWithEvents: Boolean, resourceGroupField: String, resourceAreaWidth: wn, resourceAreaColumns: wn, resourcesInitiallyExpanded: Boolean, datesAboveResources: Boolean, needsResourceData: Boolean, resourceAreaHeaderClassNames: wn, resourceAreaHeaderContent: wn, resourceAreaHeaderDidMount: wn, resourceAreaHeaderWillUnmount: wn, resourceGroupLabelClassNames: wn, resourceGroupLabelContent: wn, resourceGroupLabelDidMount: wn, resourceGroupLabelWillUnmount: wn, resourceLabelClassNames: wn, resourceLabelContent: wn, resourceLabelDidMount: wn, resourceLabelWillUnmount: wn, resourceLaneClassNames: wn, resourceLaneContent: wn, resourceLaneDidMount: wn, resourceLaneWillUnmount: wn, resourceGroupLaneClassNames: wn, resourceGroupLaneContent: wn, resourceGroupLaneDidMount: wn, resourceGroupLaneWillUnmount: wn },
6235        Ed = { resourcesSet: wn, resourceAdd: wn, resourceChange: wn, resourceRemove: wn };
6236
6237    function bd(e) {
6238        return Oo(Go.Consumer, null, (function(t) {
6239            var n = t.options,
6240                r = { resource: new fd(t, e.resource), date: e.date ? t.dateEnv.toDate(e.date) : null, view: t.viewApi },
6241                o = { "data-resource-id": e.resource.id, "data-date": e.date ? qt(e.date) : void 0 };
6242            return Oo(ni, { hookProps: r, classNames: n.resourceLabelClassNames, content: n.resourceLabelContent, defaultContent: Cd, didMount: n.resourceLabelDidMount, willUnmount: n.resourceLabelWillUnmount }, (function(t, n, r, i) { return e.children(t, n, o, r, i) }))
6243        }))
6244    }
6245
6246    function Cd(e) { return e.resource.title || e.resource.id }
6247    Qc({ ignoreRange: !0, parseMeta: function(e) { return Array.isArray(e.resources) ? e.resources : null }, fetch: function(e, t) { t({ rawResources: e.resourceSource.meta }) } }), Qc({
6248        parseMeta: function(e) { return "function" == typeof e.resources ? e.resources : null },
6249        fetch: function(e, t, n) {
6250            var r = e.context.dateEnv,
6251                o = e.resourceSource.meta,
6252                i = e.range ? { start: r.toDate(e.range.start), end: r.toDate(e.range.end), startStr: r.formatIso(e.range.start), endStr: r.formatIso(e.range.end), timeZone: r.timeZone } : {};
6253            xo(o.bind(null, i), (function(e) { t({ rawResources: e }) }), n)
6254        }
6255    }), Qc({
6256        parseMeta: function(e) { return e.url ? { url: e.url, method: (e.method || "GET").toUpperCase(), extraParams: e.extraParams } : null },
6257        fetch: function(e, t, n) {
6258            var o = e.resourceSource.meta,
6259                i = function(e, t, n) {
6260                    var o, i, a, s, l = n.dateEnv,
6261                        u = n.options,
6262                        c = {};
6263                    t && (null == (o = e.startParam) && (o = u.startParam), null == (i = e.endParam) && (i = u.endParam), null == (a = e.timeZoneParam) && (a = u.timeZoneParam), c[o] = l.formatIso(t.start), c[i] = l.formatIso(t.end), "local" !== l.timeZone && (c[a] = l.timeZone));
6264                    s = "function" == typeof e.extraParams ? e.extraParams() : e.extraParams || {};
6265                    return r(c, s), c
6266                }(o, e.range, e.context);
6267            Oi(o.method, o.url, i, (function(e, n) { t({ rawResources: e, xhr: n }) }), (function(e, t) { n({ message: e, xhr: t }) }))
6268        }
6269    });
6270    var Dd = function(e) {
6271            function t() { return null !== e && e.apply(this, arguments) || this }
6272            return n(t, e), t.prototype.render = function() { var e = this.props; return Oo(bd, { resource: e.resource, date: e.date }, (function(t, n, o, i, a) { return Oo("th", r({ ref: t, role: "columnheader", className: ["fc-col-header-cell", "fc-resource"].concat(n).join(" "), colSpan: e.colSpan }, o), Oo("div", { className: "fc-scrollgrid-sync-inner" }, Oo("span", { className: ["fc-col-header-cell-cushion", e.isSticky ? "fc-sticky" : ""].join(" "), ref: i }, a))) })) }, t
6273        }(Yo),
6274        Rd = function(e) {
6275            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.buildDateFormat = $t(wd), t }
6276            return n(t, e), t.prototype.render = function() {
6277                var e = this,
6278                    t = this.props,
6279                    n = this.context,
6280                    r = this.buildDateFormat(n.options.dayHeaderFormat, t.datesRepDistinctDays, t.dates.length);
6281                return Oo(Pa, { unit: "day" }, (function(o, i) { return 1 === t.dates.length ? e.renderResourceRow(t.resources, t.dates[0]) : n.options.datesAboveResources ? e.renderDayAndResourceRows(t.dates, r, i, t.resources) : e.renderResourceAndD
6281ayRows(t.resources, t.dates, r, i) }))
6282            }, t.prototype.renderResourceRow = function(e, t) { var n = e.map((function(e) { return Oo(Dd, { key: e.id, resource: e, colSpan: 1, date: t }) })); return this.buildTr(n, "resources") }, t.prototype.renderDayAndResourceRows = function(e, t, n, r) {
6283                for (var o = [], i = [], a = 0, s = e; a < s.length; a++) {
6284                    var l = s[a];
6285                    o.push(this.renderDateCell(l, t, n, r.length, null, !0));
6286                    for (var u = 0, c = r; u < c.length; u++) {
6287                        var d = c[u];
6288                        i.push(Oo(Dd, { key: d.id + ":" + l.toISOString(), resource: d, colSpan: 1, date: l }))
6289                    }
6290                }
6291                return Oo(Lo, null, this.buildTr(o, "day"), this.buildTr(i, "resources"))
6292            }, t.prototype.renderResourceAndDayRows = function(e, t, n, r) {
6293                for (var o = [], i = [], a = 0, s = e; a < s.length; a++) {
6294                    var l = s[a];
6295                    o.push(Oo(Dd, { key: l.id, resource: l, colSpan: t.length, isSticky: !0 }));
6296                    for (var u = 0, c = t; u < c.length; u++) {
6297                        var d = c[u];
6298                        i.push(this.renderDateCell(d, n, r, 1, l))
6299                    }
6300                }
6301                return Oo(Lo, null, this.buildTr(o, "resources"), this.buildTr(i, "day"))
6302            }, t.prototype.renderDateCell = function(e, t, n, r, o, i) {
6303                var a = this.props,
6304                    s = o ? ":" + o.id : "",
6305                    l = o ? { resource: new fd(this.context, o) } : {},
6306                    u = o ? { "data-resource-id": o.id } : {};
6307                return a.datesRepDistinctDays ? Oo(ka, { key: e.toISOString() + s, date: e, dateProfile: a.dateProfile, todayRange: n, colCnt: a.dates.length * a.resources.length, dayHeaderFormat: t, colSpan: r, isSticky: i, extraHookProps: l, extraDataAttrs: u }) : Oo(Ia, { key: e.getUTCDay() + s, dow: e.getUTCDay(), dayHeaderFormat: t, colSpan: r, isSticky: i, extraHookProps: l, extraDataAttrs: u })
6308            }, t.prototype.buildTr = function(e, t) { var n = this.props.renderIntro; return e.length || (e = [Oo("td", { key: 0 }, " ")]), Oo("tr", { key: t, role: "row" }, n && n(t), e) }, t
6309        }(Yo);
6310
6311    function wd(e, t, n) { return e || Ta(t, n) }
6312    var Td = function(e) {
6313            for (var t = {}, n = [], r = 0; r < e.length; r += 1) {
6314                var o = e[r].id;
6315                n.push(o), t[o] = r
6316            }
6317            this.ids = n, this.indicesById = t, this.length = e.length
6318        },
6319        xd = function() {
6320            function e(e, t, n) { this.dayTableModel = e, this.resources = t, this.context = n, this.resourceIndex = new Td(t), this.rowCnt = e.rowCnt, this.colCnt = e.colCnt * t.length, this.cells = this.buildCells() }
6321            return e.prototype.buildCells = function() {
6322                for (var e = this, t = e.rowCnt, n = e.dayTableModel, r = e.resources, o = [], i = 0; i < t; i += 1) {
6323                    for (var a = [], s = 0; s < n.colCnt; s += 1)
6324                        for (var l = 0; l < r.length; l += 1) {
6325                            var u = r[l],
6326                                c = { resource: new fd(this.context, u) },
6327                                d = { "data-resource-id": u.id },
6328                                p = { resourceId: u.id },
6329                                f = n.cells[i][s].date;
6330                            a[this.computeCol(s, l)] = { key: u.id + ":" + f.toISOString(), date: f, extraHookProps: c, extraDataAttrs: d, extraClassNames: ["fc-resource"], extraDateSpan: p }
6331                        }
6332                    o.push(a)
6333                }
6334                return o
6335            }, e
6336        }(),
6337        _d = function(e) {
6338            function t() { return null !== e && e.apply(this, arguments) || this }
6339            return n(t, e), t.prototype.computeCol = function(e, t) { return t * this.dayTableModel.colCnt + e }, t.prototype.computeColRanges = function(e, t, n) { return [{ firstCol: this.computeCol(e, n), lastCol: this.computeCol(t, n), isStart: !0, isEnd: !0 }] }, t
6340        }(xd),
6341        kd = function(e) {
6342            function t() { return null !== e && e.apply(this, arguments) || this }
6343            return n(t, e), t.prototype.computeCol = function(e, t) { return e * this.resources.length + t }, t.prototype.computeColRanges = function(e, t, n) {
6344                for (var r = [], o = e; o <= t; o += 1) {
6345                    var i = this.computeCol(o, n);
6346                    r.push({ firstCol: i, lastCol: i, isStart: o === e, isEnd: o === t })
6347                }
6348                return r
6349            }, t
6350        }(xd),
6351        Md = [],
6352        Id = function() {
6353            function e() { this.joinDateSelection = $t(this.joinSegs), this.joinBusinessHours = $t(this.joinSegs), this.joinFgEvents = $t(this.joinSegs), this.joinBgEvents = $t(this.joinSegs), this.joinEventDrags = $t(this.joinInteractions), this.joinEventResizes = $t(this.joinInteractions) }
6354            return e.prototype.joinProps = function(e, t) {
6355                for (var n = [], r = [], i = [], a = [], s = [], l = [], u = "", c = 0, d = t.resourceIndex.ids.concat([""]); c < d.length; c++) {
6356                    var p = d[c],
6357                        f = e[p];
6358                    n.push(f.dateSelectionSegs), r.push(p ? f.businessHourSegs : Md), i.push(p ? f.fgEventSegs : Md), a.push(f.bgEventSegs), s.push(f.eventDrag), l.push(f.eventResize), u = u || f.eventSelection
6359                }
6360                return { dateSelectionSegs: this.joinDateSelection.apply(this, o([t], n)), businessHourSegs: this.joinBusinessHours.apply(this, o([t], r)), fgEventSegs: this.joinFgEvents.apply(this, o([t], i)), bgEventSegs: this.joinBgEvents.apply(this, o([t], a)), eventDrag: this.joinEventDrags.apply(this, o([t], s)), eventResize: this.joinEventResizes.apply(this, o([t], l)), eventSelection: u }
6361            }, e.prototype.joinSegs = function(e) {
6362                for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
6363                for (var r = e.resources.length, o = [], i = 0; i < r; i += 1) {
6364                    for (var a = 0, s = t[i]; a < s.length; a++) {
6365                        var l = s[a];
6366                        o.push.apply(o, this.transformSeg(l, e, i))
6367                    }
6368                    for (var u = 0, c = t[r]; u < c.length; u++) {
6369                        l = c[u];
6370                        o.push.apply(o, this.transformSeg(l, e, i))
6371                    }
6372                }
6373                return o
6374            }, e.prototype.expandSegs = function(e, t) {
6375                for (var n = e.resources.length, r = [], o = 0; o < n; o += 1)
6376                    for (var i = 0, a = t; i < a.length; i++) {
6377                        var s = a[i];
6378                        r.push.apply(r, this.transformSeg(s, e, o))
6379                    }
6380                return r
6381            }, e.prototype.joinInteractions = function(e) {
6382                for (var t = [], n = 1; n < arguments.length; n++) t[n - 1] = arguments[n];
6383                for (var o = e.resources.length, i = {}, a = [], s = !1, l = !1, u = 0; u < o; u += 1) {
6384                    var c = t[u];
6385                    if (c) {
6386                        s = !0;
6387                        for (var d = 0, p = c.segs; d < p.length; d++) {
6388                            var f = p[d];
6389                            a.push.apply(a, this.transformSeg(f, e, u))
6390                        }
6391                        r(i, c.affectedInstances), l = l || c.isEvent
6392                    }
6393                    if (t[o])
6394                        for (var h = 0, v = t[o].segs; h < v.length; h++) {
6395                            f = v[h];
6396                            a.push.apply(a, this.transformSeg(f, e, u))
6397                        }
6398                }
6399                return s ? { affectedInstances: i, segs: a, isEvent: l } : null
6400            }, e
6401        }(),
6402        Pd = function(e) {
6403            function t() { return null !== e && e.apply(this, arguments) || this }
6404            return n(t, e), t.prototype.getKeyInfo = function(e) {
6405                var t = e.resourceDayTableModel,
6406                    n = Ct(t.resourceIndex.indicesById, (function(e) { return t.resources[e] }));
6407                return n[""] = {}, n
6408            }, t.prototype.getKeysForDateSpan = function(e) { return [e.resourceId || ""] }, t.prototype.getKeysForEventDef = function(e) { var t = e.resourceIds; return t.length ? t : [""] }, t
6409        }(uo);
6410
6411    function Nd(e, t) { return Hd(e, [], t, !1, {}, !0).map((function(e) { return e.resource })) }
6412
6413    function Hd(e, t, n, r, o, i) {
6414        var a = [];
6415        return Od(function(e, t, n, r) {
6416            var o = function(e, t) {
6417                    var n = {};
6418                    for (var r in e) {
6419                        var o = e[r];
6420                        n[r] = { resource: o, resourceFields: Ld(o), children: [] }
6421                    }
6422                    for (var r in e) {
6423                        if ((o = e[r]).parentId) {
6424                            var i = n[o.parentId];
6425                            i && Wd(n[r], i.children, t)
6426                        }
6427                    }
6428                    return n
6429                }(e, r),
6430                i = [];
6431            for (var a in o) {
6432                var s = o[a];
6433                s.resource.parentId || Ad(s, i, n, 0, t, r)
6434            }
6435            return i
6436        }(e, r ? -1 : 1, t, n), a, r, [], 0, o, i), a
6437    }
6438
6439    function Od(e, t, n, r, o, i, a) {
6440        for (var s = 0; s < e.length; s += 1) {
6441            var l = e[s],
6442                u = l.group;
6443            if (u)
6444                if (n) {
6445                    var c = t.length,
6446                        d = r.length;
6447                    if (Od(l.children, t, n, r.concat(0), o, i, a), c < t.length) {
6448                        var p = t[c];
6449                        (p.rowSpans = p.rowSpans.slice())[d] = t.length - c
6450                    }
6451                } else {
6452                    var f = null != i[h = u.spec.field + ":" + u.value] ? i[h] : a;
6453                    t.push({ id: h, group: u, isExpanded: f }), f && Od(l.children, t, n, r, o + 1, i, a)
6454                }
6455            else if (l.resource) {
6456                var h;
6457                f = null != i[h = l.resource.id] ? i[h] : a;
6458                t.push({ id: h, rowSpans: r, depth: o, isExpanded: f, hasChildren: Boolean(l.children.length), resource: l.resource, resourceFields: l.resourceFields }), f && Od(l.children, t, n, r, o + 1, i, a)
6459            }
6460        }
6461    }
6462
6463    function Ad(e, t, n, r, o, i) {
6464        n.length && (-1 === o || r <= o) ? Ad(e, function(e, t, n) {
6465            var r, o, i = e.resourceFields[n.field];
6466            if (n.order)
6467                for (o = 0; o < t.length; o += 1) { if ((s = t[o]).group) { var a = Ze(i, s.group.value) * n.order; if (0 === a) { r = s; break } if (a < 0) break } } else
6468                    for (o = 0; o < t.length; o += 1) { var s; if ((s = t[o]).group && i === s.group.value) { r = s; break } }
6469            r || (r = { group: { value: i, spec: n }, children: [] }, t.splice(o, 0, r));
6470            return r
6471        }(e, t, n[0]).children, n.slice(1), r + 1, o, i) : Wd(e, t, i)
6472    }
6473
6474    function Wd(e, t, n) {
6475        var r;
6476        for (r = 0; r < t.length; r += 1) { if (qe(t[r].resourceFields, e.resourceFields, n) > 0) break }
6477        t.splice(r, 0, e)
6478    }
6479
6480    function Ld(e) { var t = r(r(r({}, e.extendedProps), e.ui), e); return delete t.ui, delete t.extendedProps, t }
6481
6482    function Ud(e, t) { return e.spec === t.spec && e.value === t.value }
6483    var Bd = Jo({
6484            deps: [Wu],
6485            reducers: [function(e, t, n) {
6486                var o = od(e && e.resourceSource, t, n);
6487                return {
6488                    resourceSource: o,
6489                    resourceStore: dd(e && e.resourceStore, t, o, n),
6490                    resourceEntityExpansions: function(e, t) {
6491                        var n;
6492                        if (!e || !t) return {};
6493                        switch (t.type) {
6494                            case "SET_RESOURCE_ENTITY_EXPANDED":
6495                                return r(r({}, e), ((n = {})[t.id] = t.isExpanded, n));
6496                            default:
6497                                return e
6498                        }
6499                    }(e && e.resourceEntityExpansions, t)
6500                }
6501            }],
6502            isLoadingFuncs: [function(e) { return e.resourceSource && e.resourceSource.isFetching }
6502],
6503            eventRefiners: pd,
6504            eventDefMemberAdders: [function(e) { return { resourceIds: (t = e.resourceIds, (t || []).map((function(e) { return String(e) }))).concat(e.resourceId ? [e.resourceId] : []), resourceEditable: e.resourceEditable }; var t }],
6505            isDraggableTransformers: [function(e, t, n, r) { if (!e) { var o = r.getCurrentData(); if (o.viewSpecs[o.currentViewType].optionDefaults.needsResourceData && qc(t, r)) return !0 } return e }],
6506            eventDragMutationMassagers: [function(e, t, n) {
6507                var r = t.dateSpan.resourceId,
6508                    o = n.dateSpan.resourceId;
6509                r && o && r !== o && (e.resourceMutation = { matchResourceId: r, setResourceId: o })
6510            }],
6511            eventDefMutationAppliers: [function(e, t, n) {
6512                var r = t.resourceMutation;
6513                if (r && qc(e, n)) {
6514                    var o = e.resourceIds.indexOf(r.matchResourceId);
6515                    if (-1 !== o) {
6516                        var i = e.resourceIds.slice();
6517                        i.splice(o, 1), -1 === i.indexOf(r.setResourceId) && i.push(r.setResourceId), e.resourceIds = i
6518                    }
6519                }
6520            }],
6521            dateSelectionTransformers: [function(e, t) {
6522                var n = e.dateSpan.resourceId,
6523                    r = t.dateSpan.resourceId;
6524                return n && r ? { resourceId: n } : null
6525            }],
6526            datePointTransforms: [function(e, t) { return e.resourceId ? { resource: t.calendarApi.getResourceById(e.resourceId) } : {} }],
6527            dateSpanTransforms: [function(e, t) { return e.resourceId ? { resource: t.calendarApi.getResourceById(e.resourceId) } : {} }],
6528            viewPropsTransformers: [Yc, Xc],
6529            isPropsValid: function(e, t) { var n = (new hd).splitProps(r(r({}, e), { resourceStore: t.getCurrentData().resourceStore })); for (var o in n) { var i = n[o]; if (o && n[""] && (i = r(r({}, i), { eventStore: Mn(n[""].eventStore, i.eventStore), eventUiBases: r(r({}, n[""].eventUiBases), i.eventUiBases) })), !Fa(i, t, { resourceId: o }, vd.bind(null, o))) return !1 } return !0 },
6530            externalDefTransforms: [function(e) { return e.resourceId ? { resourceId: e.resourceId } : {} }],
6531            eventDropTransformers: [function(e, t) { var n = e.resourceMutation; if (n) { var r = t.calendarApi; return { oldResource: r.getResourceById(n.matchResourceId), newResource: r.getResourceById(n.setResourceId) } } return { oldResource: null, newResource: null } }],
6532            optionChangeHandlers: md,
6533            optionRefiners: Sd,
6534            listenerRefiners: Ed,
6535            propSetHandlers: {
6536                resourceStore: function(e, t) {
6537                    var n = t.emitter;
6538                    n.hasHandlers("resourcesSet") && n.trigger("resourcesSet", function(e, t) { var n = []; for (var r in e) n.push(new fd(t, e[r])); return n }(e, t))
6539                }
6540            }
6541        }),
6542        zd = function(e) {
6543            function t() { return null !== e && e.apply(this, arguments) || this }
6544            return n(t, e), t.prototype.transformSeg = function(e, t, n) { return t.computeColRanges(e.firstCol, e.lastCol, n).map((function(t) { return r(r(r({}, e), t), { isStart: e.isStart && t.isStart, isEnd: e.isEnd && t.isEnd }) })) }, t
6545        }(Id),
6546        Vd = function(e) {
6547            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.splitter = new Pd, t.slicers = {}, t.joiner = new zd, t.tableRef = Wo(), t.isHitComboAllowed = function(e, n) { return 1 === t.props.resourceDayTableModel.dayTableModel.colCnt || e.dateSpan.resourceId === n.dateSpan.resourceId }, t }
6548            return n(t, e), t.prototype.render = function() {
6549                var e = this,
6550                    t = this.props,
6551                    n = this.context,
6552                    o = t.resourceDayTableModel,
6553                    i = t.nextDayThreshold,
6554                    a = t.dateProfile,
6555                    s = this.splitter.splitProps(t);
6556                this.slicers = Ct(s, (function(t, n) { return e.slicers[n] || new _l }));
6557                var l = Ct(this.slicers, (function(e, t) { return e.sliceProps(s[t], a, i, n, o.dayTableModel) }));
6558                return Oo(Tl, r({ forPrint: t.forPrint, ref: this.tableRef }, this.joiner.joinProps(l, o), { cells: o.cells, dateProfile: a, colGroupNode: t.colGroupNode, tableMinWidth: t.tableMinWidth, renderRowIntro: t.renderRowIntro, dayMaxEvents: t.dayMaxEvents, dayMaxEventRows: t.dayMaxEventRows, showWeekNumbers: t.showWeekNumbers, expandRows: t.expandRows, headerAlignElRef: t.headerAlignElRef, clientWidth: t.clientWidth, clientHeight: t.clientHeight, isHitComboAllowed: this.isHitComboAllowed }))
6559            }, t
6560        }($o),
6561        Fd = function(e) {
6562            function t() { var t = null !== e && e.apply(this, arguments) || this;
6562 return t.flattenResources = $t(Nd), t.buildResourceDayTableModel = $t(Gd), t.headerRef = Wo(), t.tableRef = Wo(), t }
6563            return n(t, e), t.prototype.render = function() {
6564                var e = this,
6565                    t = this.props,
6566                    n = this.context,
6567                    r = n.options,
6568                    o = r.resourceOrder || yd,
6569                    i = this.flattenResources(t.resourceStore, o),
6570                    a = this.buildResourceDayTableModel(t.dateProfile, n.dateProfileGenerator, i, r.datesAboveResources, n),
6571                    s = r.dayHeaders && Oo(Rd, { ref: this.headerRef, resources: i, dateProfile: t.dateProfile, dates: a.dayTableModel.headerDates, datesRepDistinctDays: !0 }),
6572                    l = function(n) { return Oo(Vd, { ref: e.tableRef, dateProfile: t.dateProfile, resourceDayTableModel: a, businessHours: t.businessHours, eventStore: t.eventStore, eventUiBases: t.eventUiBases, dateSelection: t.dateSelection, eventSelection: t.eventSelection, eventDrag: t.eventDrag, eventResize: t.eventResize, nextDayThreshold: r.nextDayThreshold, tableMinWidth: n.tableMinWidth, colGroupNode: n.tableColGroupNode, dayMaxEvents: r.dayMaxEvents, dayMaxEventRows: r.dayMaxEventRows, showWeekNumbers: r.weekNumbers, expandRows: !t.isHeightAuto, headerAlignElRef: e.headerElRef, clientWidth: n.clientWidth, clientHeight: n.clientHeight, forPrint: t.forPrint }) };
6573                return r.dayMinWidth ? this.renderHScrollLayout(s, l, a.colCnt, r.dayMinWidth) : this.renderSimpleLayout(s, l)
6574            }, t
6575        }(sl);
6576
6577    function Gd(e, t, n, r, o) { var i = Il(e, t); return r ? new kd(i, n, o) : new _d(i, n, o) }
6578    var jd = Jo({ deps: [Wu, Bd, Pl], initialView: "resourceDayGridDay", views: { resourceDayGrid: { type: "dayGrid", component: Fd, needsResourceData: !0 }, resourceDayGridDay: { type: "resourceDayGrid", duration: { days: 1 } }, resourceDayGridWeek: { type: "resourceDayGrid", duration: { weeks: 1 } }, resourceDayGridMonth: { type: "resourceDayGrid", duration: { months: 1 }, monthMode: !0, fixedWeekCount: !0 } } }),
6579        qd = function(e) {
6580            function t() { return null !== e && e.apply(this, arguments) || this }
6581            return n(t, e), t.prototype.transformSeg = function(e, t, n) { return [r(r({}, e), { col: t.computeCol(e.col, n) })] }, t
6582        }(Id),
6583        Yd = function(e) {
6584            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.buildDayRanges = $t(du), t.splitter = new Pd, t.slicers = {}, t.joiner = new qd, t.timeColsRef = Wo(), t.isHitComboAllowed = function(e, n) { return 1 === t.dayRanges.length || e.dateSpan.resourceId === n.dateSpan.resourceId }, t }
6585            return n(t, e), t.prototype.render = function() {
6586                var e = this,
6587                    t = this.props,
6588                    n = this.context,
6589                    o = n.dateEnv,
6590                    i = n.options,
6591                    a = t.dateProfile,
6592                    s = t.resourceDayTableModel,
6593                    l = this.dayRanges = this.buildDayRanges(s.dayTableModel, a, o),
6594                    u = this.splitter.splitProps(t);
6595                this.slicers = Ct(u, (function(t, n) { return e.slicers[n] || new uu }));
6596                var c = Ct(this.slicers, (function(e, t) { return e.sliceProps(u[t], a, null, n, l) }));
6597                return Oo(Pa, { unit: i.nowIndicator ? "minute" : "day" }, (function(n, o) { return Oo(su, r({ ref: e.timeColsRef }, e.joiner.joinProps(c, s), { dateProfile: a, axis: t.axis, slotDuration: t.slotDuration, slatMetas: t.slatMetas, cells: s.cells[0], tableColGroupNode: t.tableColGroupNode, tableMinWidth: t.tableMinWidth, clientWidth: t.clientWidth, clientHeight: t.clientHeight, expandRows: t.expandRows, nowDate: n, nowIndicatorSegs: i.nowIndicator && e.buildNowIndicatorSegs(n), todayRange: o, onScrollTopRequest: t.onScrollTopRequest, forPrint: t.forPrint, onSlatCoords: t.onSlatCoords, isHitComboAllowed: e.isHitComboAllowed })) }))
6598            }, t.prototype.buildNowIndicatorSegs = function(e) { var t = this.slicers[""].sliceNowDate(e, this.context, this.dayRanges); return this.joiner.expandSegs(this.props.resourceDayTableModel, t) }, t
6599        }($o),
6600        Zd = function(e) {
6601            function t() { var t = null !== e && e.apply(this, arguments) || this;
6601 return t.flattenResources = $t(Nd), t.buildResourceTimeColsModel = $t(Xd), t.buildSlatMetas = $t(fu), t }
6602            return n(t, e), t.prototype.render = function() {
6603                var e = this,
6604                    t = this.props,
6605                    n = this.context,
6606                    o = n.options,
6607                    i = n.dateEnv,
6608                    a = t.dateProfile,
6609                    s = this.allDaySplitter.splitProps(t),
6610                    l = o.resourceOrder || yd,
6611                    u = this.flattenResources(t.resourceStore, l),
6612                    c = this.buildResourceTimeColsModel(a, n.dateProfileGenerator, u, o.datesAboveResources, n),
6613                    d = this.buildSlatMetas(a.slotMinTime, a.slotMaxTime, o.slotLabelInterval, o.slotDuration, i),
6614                    p = o.dayMinWidth,
6615                    f = !p,
6616                    h = p,
6617                    v = o.dayHeaders && Oo(Rd, { resources: u, dates: c.dayTableModel.headerDates, dateProfile: a, datesRepDistinctDays: !0, renderIntro: f ? this.renderHeadAxis : null }),
6618                    g = !1 !== o.allDaySlot && function(n) { return Oo(Vd, r({}, s.allDay, { dateProfile: a, resourceDayTableModel: c, nextDayThreshold: o.nextDayThreshold, tableMinWidth: n.tableMinWidth, colGroupNode: n.tableColGroupNode, renderRowIntro: f ? e.renderTableRowAxis : null, showWeekNumbers: !1, expandRows: !1, headerAlignElRef: e.headerElRef, clientWidth: n.clientWidth, clientHeight: n.clientHeight, forPrint: t.forPrint }, e.getAllDayMaxEventProps())) },
6619                    m = function(n) { return Oo(Yd, r({}, s.timed, { dateProfile: a, axis: f, slotDuration: o.slotDuration, slatMetas: d, resourceDayTableModel: c, tableColGroupNode: n.tableColGroupNode, tableMinWidth: n.tableMinWidth, clientWidth: n.clientWidth, clientHeight: n.clientHeight, onSlatCoords: e.handleSlatCoords, expandRows: n.expandRows, forPrint: t.forPrint, onScrollTopRequest: e.handleScrollTopRequest })) };
6620                return h ? this.renderHScrollLayout(v, g, m, c.colCnt, p, d, this.state.slatCoords) : this.renderSimpleLayout(v, g, m)
6621            }, t
6622        }(Ul);
6623
6624    function Xd(e, t, n, r, o) { var i = vu(e, t); return r ? new kd(i, n, o) : new _d(i, n, o) }
6625    var Kd = Jo({ deps: [Wu, Bd, gu], initialView: "resourceTimeGridDay", views: { resourceTimeGrid: { type: "timeGrid", component: Zd, needsResourceData: !0 }, resourceTimeGridDay: { type: "resourceTimeGrid", duration: { days: 1 } }, resourceTimeGridWeek: { type: "resourceTimeGrid", duration: { weeks: 1 } } } });
6626
6627    function $d(e) { for (var t = e.depth, n = e.hasChildren, r = e.isExpanded, i = e.onExpanderClick, a = [], s = 0; s < t; s += 1) a.push(Oo("span", { className: "fc-icon" })); var l = ["fc-icon"]; return n && (r ? l.push("fc-icon-minus-square") : l.push("fc-icon-plus-square")), a.push(Oo("span", { className: "fc-datagrid-expander" + (n ? "" : " fc-datagrid-expander-placeholder"), onClick: i }, Oo("span", { className: l.join(" ") }))), Oo.apply(void 0, o([Lo, {}], a)) }
6628
6629    function Jd(e) { return { resource: new fd(e.context, e.resource), fieldValue: e.fieldValue, view: e.context.viewApi } }
6630    var Qd = function(e) {
6631        function t() { return null !== e && e.apply(this, arguments) || this }
6632        return n(t, e), t.prototype.render = function() { var e = this.props; return Oo(oi, { hookProps: e.hookProps, content: e.colSpec.cellContent, defaultContent: ep }, (function(e, t) { return Oo("span", { className: "fc-datagrid-cell-main", ref: e }, t) })) }, t
6633    }(Yo);
6634
6635    function ep(e) { return e.fieldValue || Oo(Lo, null, " ") }
6636    var tp = function(e) {
6637            function t() {
6638                var t = null !== e && e.apply(this, arguments) || this;
6639                return t.refineHookProps = Jt(Jd), t.normalizeClassNames = si(), t.onExpanderClick = function(e) {
6640                    var n = t.props;
6641                    n.hasChildren && t.context.dispatch({ type: "SET_RESOURCE_ENTITY_EXPANDED", id: n.resource.id, isExpanded: !n.isExpanded })
6642                }, t
6643            }
6644            return n(t, e), t.prototype.render = function() {
6645                var e = this,
6646                    t = this.props,
6647                    n = this.context,
6648                    r = t.colSpec,
6649                    o = this.refineHookProps({ resource: t.resource, fieldValue: t.fieldValue, context: n }),
6650                    i = this.normalizeClassNames(r.cellClassNames, o);
6651                return Oo(ai, { hookProps: o, didMount: r.cellDidMount, willUnmount: r.cellWillUnmount }, (function(n) { return Oo("td", { ref: n, role: "gridcell", "data-resource-id": t.resource.id, className: ["fc-datagrid-cell", "fc-resource"].concat(i).join(" ") }, Oo("div", { className: "fc-datagrid-cell-frame", style: { height: t.innerHe
6651ight } }, Oo("div", { className: "fc-datagrid-cell-cushion fc-scrollgrid-sync-inner" }, r.isMain && Oo($d, { depth: t.depth, hasChildren: t.hasChildren, isExpanded: t.isExpanded, onExpanderClick: e.onExpanderClick }), Oo(Qd, { hookProps: o, colSpec: r })))) }))
6652            }, t
6653        }(Yo),
6654        np = function(e) {
6655            function t() { return null !== e && e.apply(this, arguments) || this }
6656            return n(t, e), t.prototype.render = function() {
6657                var e = this.props,
6658                    t = this.context,
6659                    n = e.colSpec,
6660                    r = { groupValue: e.fieldValue, view: t.viewApi };
6661                return Oo(ni, { hookProps: r, classNames: n.cellClassNames, content: n.cellContent, defaultContent: rp, didMount: n.cellDidMount, willUnmount: n.cellWillUnmount }, (function(t, n, r, o) { return Oo("td", { ref: t, role: "gridcell", rowSpan: e.rowSpan, className: ["fc-datagrid-cell", "fc-resource-group"].concat(n).join(" ") }, Oo("div", { className: "fc-datagrid-cell-frame fc-datagrid-cell-frame-liquid" }, Oo("div", { className: "fc-datagrid-cell-cushion fc-sticky", ref: r }, o))) }))
6662            }, t
6663        }(Yo);
6664
6665    function rp(e) { return e.groupValue || Oo(Lo, null, " ") }
6666    var op = function(e) {
6667        function t() { return null !== e && e.apply(this, arguments) || this }
6668        return n(t, e), t.prototype.render = function() {
6669            var e = this.props,
6670                t = e.resource,
6671                n = e.rowSpans,
6672                r = e.depth,
6673                o = Ld(t);
6674            return Oo("tr", { role: "row" }, e.colSpecs.map((function(i, a) {
6675                var s = n[a];
6676                if (0 === s) return null;
6677                null == s && (s = 1);
6678                var l = i.field ? o[i.field] : t.title || cd(t.id);
6679                return s > 1 ? Oo(np, { key: a, colSpec: i, fieldValue: l, rowSpan: s }) : Oo(tp, { key: a, colSpec: i, resource: t, fieldValue: l, depth: r, hasChildren: e.hasChildren, isExpanded: e.isExpanded, innerHeight: e.innerHeight })
6680            })))
6681        }, t
6682    }(Yo);
6683    op.addPropsEquality({ rowSpans: Kt });
6684    var ip = function(e) {
6685        function t() {
6686            var t = null !== e && e.apply(this, arguments) || this;
6687            return t.innerInnerRef = Wo(), t.onExpanderClick = function() {
6688                var e = t.props;
6689                t.context.dispatch({ type: "SET_RESOURCE_ENTITY_EXPANDED", id: e.id, isExpanded: !e.isExpanded })
6690            }, t
6691        }
6692        return n(t, e), t.prototype.render = function() {
6693            var e = this,
6694                t = this.props,
6695                n = this.context,
6696                r = { groupValue: t.group.value, view: n.viewApi },
6697                o = t.group.spec;
6698            return Oo("tr", { role: "row" }, Oo(ni, { hookProps: r, classNames: o.labelClassNames, content: o.labelContent, defaultContent: ap, didMount: o.labelDidMount, willUnmount: o.labelWillUnmount }, (function(r, o, i, a) { return Oo("th", { ref: r, role: "columnheader", scope: "colgroup", colSpan: t.spreadsheetColCnt, className: ["fc-datagrid-cell", "fc-resource-group", n.theme.getClass("tableCellShaded")].concat(o).join(" ") }, Oo("div", { className: "fc-datagrid-cell-frame", style: { height: t.innerHeight } }, Oo("div", { className: "fc-datagrid-cell-cushion fc-scrollgrid-sync-inner", ref: e.innerInnerRef }, Oo($d, { depth: 0, hasChildren: !0, isExpanded: t.isExpanded, onExpanderClick: e.onExpanderClick }), Oo("span", { className: "fc-datagrid-cell-main", ref: i }, a)))) })))
6699        }, t
6700    }(Yo);
6701
6702    function ap(e) { return e.groupValue || Oo(Lo, null, " ") }
6703    ip.addPropsEquality({ group: Ud });
6704    var sp = function(e) {
6705            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.resizerElRefs = new Ka(t._handleColResizerEl.bind(t)), t.colDraggings = {}, t }
6706            return n(t, e), t.prototype.render = function() {
6707                var e = this,
6708                    t = this.props,
6709                    n = t.colSpecs,
6710                    r = t.superHeaderRendering,
6711                    o = t.rowInnerHeights,
6712                    i = { view: this.context.viewApi },
6713                    a = [];
6714                if (o = o.slice(), r) {
6715                    var s = o.shift();
6716                    a.push(Oo("tr", { key: "row-super", role: "row" }, Oo(ni, { hookProps: i, classNames: r.headerClassNames, content: r.headerContent, didMount: r.headerDidMount, willUnmount: r.headerWillUnmount }, (function(e, t, r, o) { return Oo("th", { ref: e, role: "columnheader", scope: "colgroup", colSpan: n.length, className: ["fc-datagrid-cell", "fc-datagrid-cell-super"].concat(t).join(" ") }, Oo("div", { className: "fc-datagrid-cell-frame", style: { height: s } }, Oo("div", { className: "fc-datagrid-cell-cushion fc-scrollgrid-sync-inner", ref: r }, o))) }))))
6717                }
6718                var l = o.shift();
6719                return a.push(Oo("tr", { key: "row", role: "row" }, n.map((function(t, r) { var o = r === n.length - 1; return Oo(ni, { key: r, hookProps: i, classNames: t.headerClassNames, content: t.headerContent, didMount: t.headerDidMount, willUnmount: t.headerWillUnmount }, (function(n, i, a, s) { return Oo("th", { ref: n, role: "columnheader", className: ["fc-datagrid-cell"].concat(i).join(" ") }, Oo("div", { className: "fc-datagrid-cell-frame", style: { height: l } }, Oo("div", { className: "fc-datagrid-cell-cushion fc-scrollgrid-sync-inner" }, t.isMain && Oo("span", { className: "fc-datagrid-expander fc-datagrid-expander-placeholder" }, Oo("span", { className: "fc-icon" })), Oo("span", { className: "fc-datagrid-cell-main", ref: a }, s)), !o && Oo("div", { className: "fc-datagrid-cell-resizer", ref: e.resizerElRefs.createRef(r) }))) })) })))), Oo(Lo, null, a)
6720            }, t.prototype._handleColResizerEl = function(e, t) {
6721                var n, r = this.colDraggings;
6722                e ? (n = this.initColResizing(e, parseInt(t, 10))) && (r[t] = n) : (n = r[t]) && (n.destroy(), delete r[t])
6723            }, t.prototype.initColResizing = function(e, t) {
6724                var n = this.context,
6725                    r = n.pluginHooks,
6726                    o = n.isRtl,
6727                    i = this.props.onColWidthChange,
6728                    a = r.elementDraggingImpl;
6729                if (a) {
6730                    var s, l, u = new a(e);
6731                    return u.emitter.on("dragstart", (function() {
6732                        var n = Ce(Ee(e, "tr"), "th");
6733                        l = n.map((function(e) { return e.getBoundingClientRect().width })), s = l[t]
6734                    })), u.emitter.on("dragmove", (function(e) { l[t] = Math.max(s + e.deltaX * (o ? -1 : 1), 20), i && i(l.slice()) })), u.setAutoScrollEnabled(!1), u
6735                }
6736                return null
6737            }, t
6738        }(Yo),
6739        lp = function(e) {
6740            function t() { return null !== e && e.apply(this, arguments) || this }
6741            return n(t, e), t.prototype.render = function() {
6742                var e = this.props,
6743                    t = this.context,
6744                    n = { resource: new fd(t, e.resource) };
6745                return Oo(oi, { hookProps: n, content: t.options.resourceLaneContent }, (function(e, t) { return t && Oo("div", { className: "fc-timeline-lane-misc", ref: e }, t) }))
6746            }, t
6747        }(Yo),
6748        up = function(e) {
6749            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.refineHookProps = Jt(cp), t.normalizeClassNames = si(), t.handleHeightChange = function(e, n) { t.props.onHeightChange && t.props.onHeightChange(Ee(e, "tr"), n) }, t }
6750            return n(t, e), t.prototype.render = function() {
6751                var e = this,
6752                    t = this.props,
6753                    n = this.context,
6754                    r = n.options,
6755                    o = this.refineHookProps({ resource: t.resource, context: n }),
6756                    i = this.normalizeClassNames(r.resourceLaneClassNames, o);
6757                return Oo("tr", { ref: t.elRef }, Oo(ai, { hookProps: o, didMount: r.resourceLaneDidMount, willUnmount: r.resourceLaneWillUnmount }, (function(n) { return Oo("td", { ref: n, className: ["fc-timeline-lane", "fc-resource"].concat(i).join(" "), "data-resource-id": t.resource.id }, Oo("div", { className: "fc-timeline-lane-frame", style: { height: t.innerHe
6757ight } }, Oo(lp, { resource: t.resource }), Oo(zc, { dateProfile: t.dateProfile, tDateProfile: t.tDateProfile, nowDate: t.nowDate, todayRange: t.todayRange, nextDayThreshold: t.nextDayThreshold, businessHours: t.businessHours, eventStore: t.eventStore, eventUiBases: t.eventUiBases, dateSelection: t.dateSelection, eventSelection: t.eventSelection, eventDrag: t.eventDrag, eventResize: t.eventResize, timelineCoords: t.timelineCoords, onHeightChange: e.handleHeightChange, resourceId: t.resource.id }))) })))
6758            }, t
6759        }(Yo);
6760
6761    function cp(e) { return { resource: new fd(e.context, e.resource) } }
6762    var dp = function(e) {
6763            function t() { return null !== e && e.apply(this, arguments) || this }
6764            return n(t, e), t.prototype.render = function() {
6765                var e = this,
6766                    t = this.props,
6767                    n = this.props.renderingHooks,
6768                    r = { groupValue: t.groupValue, view: this.context.viewApi };
6769                return Oo("tr", { ref: t.elRef }, Oo(ni, { hookProps: r, classNames: n.laneClassNames, content: n.laneContent, didMount: n.laneDidMount, willUnmount: n.laneWillUnmount }, (function(n, r, o, i) { return Oo("td", { ref: n, className: ["fc-timeline-lane", "fc-resource-group", e.context.theme.getClass("tableCellShaded")].concat(r).join(" ") }, Oo("div", { style: { height: t.innerHeight }, ref: o }, i)) })))
6770            }, t
6771        }(Yo),
6772        pp = function(e) {
6773            function t() { return null !== e && e.apply(this, arguments) || this }
6774            return n(t, e), t.prototype.render = function() {
6775                var e = this.props,
6776                    t = this.context,
6777                    n = e.rowElRefs,
6778                    o = e.innerHeights;
6779                return Oo("tbody", null, e.rowNodes.map((function(i, a) { if (i.group) return Oo(dp, { key: i.id, elRef: n.createRef(i.id), groupValue: i.group.value, renderingHooks: i.group.spec, innerHeight: o[a] || "" }); if (i.resource) { var s = i.resource; return Oo(up, r({ key: i.id, elRef: n.createRef(i.id) }, e.splitProps[s.id], { resource: s, dateProfile: e.dateProfile, tDateProfile: e.tDateProfile, nowDate: e.nowDate, todayRange: e.todayRange, nextDayThreshold: t.options.nextDayThreshold, businessHours: s.businessHours || e.fallbackBusinessHours, innerHeight: o[a] || "", timelineCoords: e.slatCoords, onHeightChange: e.onRowHeightChange })) } return null })))
6780            }, t
6781        }(Yo),
6782        fp = function(e) {
6783            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.rootElRef = Wo(), t.rowElRefs = new Ka, t }
6784            return n(t, e), t.prototype.render = function() {
6785                var e = this.props,
6786                    t = this.context;
6787                return Oo("table", { ref: this.rootElRef, "aria-hidden": !0, className: "fc-scrollgrid-sync-table " + t.theme.getClass("table"), style: { minWidth: e.tableMinWidth, width: e.clientWidth, height: e.minHeight } }, Oo(pp, { rowElRefs: this.rowElRefs, rowNodes: e.rowNodes, dateProfile: e.dateProfile, tDateProfile: e.tDateProfile, nowDate: e.nowDate, todayRange: e.todayRange, splitProps: e.splitProps, fallbackBusinessHours: e.fallbackBusinessHours, slatCoords: e.slatCoords, innerHeights: e.innerHeights, onRowHeightChange: e.onRowHeightChange }))
6788            }, t.prototype.componentDidMount = function() { this.updateCoords() }, t.prototype.componentDidUpdate = function() { this.updateCoords() }, t.prototype.componentWillUnmount = function() { this.props.onRowCoords && this.props.onRowCoords(null) }, t.prototype.updateCoords = function() {
6789                var e, t = this.props;
6790                t.onRowCoords && null !== t.clientWidth && this.props.onRowCoords(new ko(this.rootElRef.current, (e = this.rowElRefs.currentMap, t.rowNodes.map((function(t) { return e[t.id] }))), !1, !0))
6791            }, t
6792        }(Yo);
6793    var hp = function(e) {
6794        function t() { var t = null !== e && e.apply(this, arguments) || this; return t.computeHasResourceBusinessHours = $t(vp), t.resourceSplitter = new hd, t.bgSlicer = new Wc, t.slatsRef = Wo(), t.state = { slatCoords: null }, t.handleEl = function(e) { e ? t.context.registerInteractiveComponent(t, { el: e }) : t.context.unregisterInteractiveComponent(t) }, t.handleSlatCoords = function(e) { t.setState({ slatCoords: e }), t.props.onSlatCoords && t.props.onSlatCoords(e) }, t.handleRowCoords = function(e) { t.rowCoords = e, t.props.onRowCoords && t.props.onRowCoords(e) }, t }
6795        return n(t, e), t.prototype.render = function() {
6796            var e = this,
6797                t = this,
6798                n = t.props,
6799                r = t.state,
6800                o = t.context,
6801                i = n.dateProfile,
6802                a = n.tDateProfile,
6803                s = Gt(a.slotDuration).unit,
6804                l = this.computeHasResourceBusinessHours(n.rowNodes),
6805                u = this.resourceSplitter.splitProps(n),
6806                c = u[""],
6807                d = this.bgSlicer.sliceProps(c, i, a.isTimeScale ? null : n.nextDayThreshold, o, i, o.dateProfileGenerator, a, o.dateEnv),
6808                p = r.slatCoords && r.slatCoords.dateProfile === n.dateProfile ? r.slatCoords : null;
6809            return Oo("div", { ref: this.handleEl, className: ["fc-timeline-body", n.expandRows ? "fc-timeline-body-expandrows" : ""].join(" "), style: { minWidth: n.tableMinWidth } }, Oo(Pa, { unit: s }, (function(t, r) { return Oo(Lo, null, Oo(Hc, { ref: e.slatsRef, dateProfile: i, tDateProfile: a, nowDate: t, todayRange: r, clientWidth: n.clientWidth, tableColGroupNode: n.tableColGroupNode, tableMinWidth: n.tableMinWidth, onCoords: e.handleSlatCoords, onScrollLeftRequest: n.onScrollLeftRequest }), Oo(Ac, { businessHourSegs: l ? null : d.businessHourSegs, bgEventSegs: d.bgEventSegs, timelineCoords: p, eventResizeSegs: d.eventResize ? d.eventResize.segs : [], dateSelectionSegs: d.dateSelectionSegs, nowDate: t, todayRange: r }), Oo(fp, { rowNodes: n.rowNodes, dateProfile: i, tDateProfile: n.tDateProfile, nowDate: t, todayRange: r, splitProps: u, fallbackBusinessHours: l ? n.businessHours : null, clientWidth: n.clientWidth, minHeight: n.expandRows ? n.clientHeight : "", tableMinWidth: n.tableMinWidth, innerHeights: n.rowInnerHeights, slatCoords: p, onRowCoords: e.handleRowCoords, onRowHeightChange: n.onRowHeightChange }), o.options.nowIndicator && p && p.isDateInRange(t) && Oo("div", { className: "fc-timeline-now-indicator-container" }, Oo(hs, { isAxis: !1, date: t }, (function(e, n, r, i) { return Oo("div", { ref: e, className: ["fc-timeline-now-indicator-line"].concat(n).join(" "), style: kc(p.dateToCoord(t), o.isRtl) }, i) })))) })))
6810        }, t.prototype.queryHit = function(e, t) {
6811            var n = this.rowCoords,
6812                r = n.topToIndex(t);
6813            if (null != r) { var o = this.props.rowNodes[r].resource; if (o) { var i = this.slatsRef.current.positionToHit(e); if (i) return { dateProfile: this.props.dateProfile, dateSpan: { range: i.dateSpan.range, allDay: i.dateSpan.allDay, resourceId: o.id }, rect: { left: i.left, right: i.right, top: n.tops[r], bottom: n.bottoms[r] }, dayEl: i.dayEl, layer: 0 } } }
6814            return null
6815        }, t
6816    }($o);
6817
6818    function vp(e) { for (var t = 0, n = e; t < n.length; t++) { var r = n[t].resource; if (r && r.businessHours) return !0 } return !1 }
6819    var gp = function(e) {
6820            function t() { var t = null !== e && e.apply(this, arguments) || this; return t.scrollGridRef = Wo(), t.timeBodyScrollerElRef = Wo(), t.spreadsheetHeaderChunkElRef = Wo(), t.rootElRef = Wo(), t.ensureScrollGridResizeId = 0, t.state = { resourceAreaWidthOverride: null }, t.ensureScrollGridResize = function() { t.ensureScrollGridResizeId && clearTimeout(t.ensureScrollGridResizeId), t.ensureScrollGridResizeId = setTimeout((function() { t.scrollGridRef.current.handleSizing(!1) }), ha.SCROLLGRID_RESIZE_INTERVAL + 1) }, t }
6821            return n(t, e), t.prototype.render = function() {
6822                var e = this,
6823                    t = e.props,
6824                    n = e.state,
6825                    r = e.context,
6826                    o = r.options,
6827                    i = !t.forPrint && ls(o),
6828                    a = !t.forPrint && us(o),
6829                    s = [{ type: "header", key: "header", syncRowHeights: !0, isSticky: i, chunks: [{ key: "datagrid", elRef: this.spreadsheetHeaderChunkElRef, tableClassName: "fc-datagrid-header", rowContent: t.spreadsheetHeaderRows }, { key: "divider", outerContent: Oo("td", { role: "presentation", className: "fc-resource-timeline-divider " + r.theme.getClass("tableCellShaded") }) }, { key: "timeline", content: t.timeHeaderContent }] }, { type: "body", key: "body", syncRowHeights: !0, liquid: !0, expandRows: Boolean(o.expandRows), chunks: [{ key: "datagrid", tableClassName: "fc-datagrid-body", rowContent: t.spreadsheetBodyRows }, { key: "divider", outerContent: Oo("td", { role: "presentation", className: "fc-resource-timeline-divider " + r.theme.getClass("tableCellShaded") }) }, { key: "timeline", scrollerElRef: this.timeBodyScrollerElRef, content: t.timeBodyContent }] }];
6830                a && s.push({ type: "footer", key: "footer", isSticky: !0, chunks: [{ key: "datagrid", content: ss }, { key: "divider", outerContent: Oo("td", { role: "presentation", className: "fc-resource-timeline-divider " + r.theme.getClass("tableCellShaded") }) }, { key: "timeline", content: ss }] });
6831                var l = null != n.resourceAreaWidthOverride ? n.resourceAreaWidthOverride : o.resourceAreaWidth;
6832                return Oo(Zu, { ref: this.scrollGridRef, elRef: this.rootElRef, liquid: !t.isHeightAuto && !t.forPrint, collapsibleWidth: !1, colGroups: [{ cols: t.spreadsheetCols, width: l }, { cols: [] }, { cols: t.timeCols }], sections: s })
6833            }, t.prototype.forceTimeScroll = function(e) { this.scrollGridRef.current.forceScrollLeft(2, e) }, t.prototype.forceResourceScroll = function(e) { this.scrollGridRef.current.forceScrollTop(1, e) }, t.prototype.getResourceScroll = function() { return this.timeBodyScrollerElRef.current.scrollTop }, t.prototype.componentDidMount = function() { this.initSpreadsheetResizing() }, t.prototype.componentWillUnmount = function() { this.destroySpreadsheetResizing() }, t.prototype.initSpreadsheetResizing = function() {
6834                var e = this,
6835                    t = this.context,
6836                    n = t.isRtl,
6837                    r = t.pluginHooks.elementDraggingImpl,
6838                    o = this.spreadsheetHeaderChunkElRef.current;
6839                if (r) {
6840                    var i, a, s = this.rootElRef.current,
6841                        l = this.spreadsheetResizerDragging = new r(s, ".fc-resource-timeline-divider");
6842                    l.emitter.on("dragstart", (function() { i = o.getBoundingClientRect().width, a = s.getBoundingClientRect().width })), l.emitter.on("dragmove", (function(t) {
6843                        var r = i + t.deltaX * (n ? -1 : 1);
6844                        r = Math.max(r, 30), r = Math.min(r, a - 30), e.setState({ resourceAreaWidthOverride: r }, e.ensureScrollGridResize)
6845                    })), l.setAutoScrollEnabled(!1)
6846                }
6847            }, t.prototype.destroySpreadsheetResizing = function() { this.spreadsheetResizerDragging && this.spreadsheetResizerDragging.destroy() }, t
6848        }(Yo),
6849        mp = function(e) {
6850            function t(t, n) {
6851                var r = e.call(this, t, n) || this;
6852                return r.processColOptions = $t(bp), r.buildTimelineDateProfile = $t(vc), r.hasNesting = $t(Ep), r.buildRowNodes = $t(Hd), r.layoutRef = Wo(), r.rowNodes = [], r.renderedRowNodes = [], r.buildRowIndex = $t(yp), r.handleSlatCoords = function(e) { r.setState({ slatCoords: e }) }, r.handleRowCoords = function(e) { r.rowCoords = e, r.scrollResponder.update(!1) }, r.handleMaxCushionWidth = function(e) { r.setState({ slotCushionMaxWidth: Math.ceil(e) }) }, r.handleScrollLeftRequest = function(e) { r.layoutRef.current.forceTimeScroll(e) }, r.handleScrollRequest = function(e) {
6853                    var t = r.rowCoords,
6854                        n = r.layoutRef.current,
6855                        o = e.rowId || e.resourceId;
6856                    if (t) {
6857                        if (o) {
6858                            var i = r.buildRowIndex(r.renderedRowNodes)[o];
6859                            if (null != i) {
6860                                var a = null != e.fromBottom ? t.bottoms[i] - e.fromBottom : t.tops[i];
6861                                n.forceResourceScroll(a)
6862                            }
6863                        }
6864                        return !0
6865                    }
6866                    return null
6867                }, r.handleColWidthChange = function(e) { r.setState({ spreadsheetColWidths: e }) }, r.state = { resourceAreaWidth: n.options.resourceAreaWidth, spreadsheetColWidths: [] }, r
6868            }
6869            return n(t, e), t.prototype.render = function() {
6870                var e = this,
6871                    t = this,
6872                    n = t.props,
6873                    r = t.state,
6874                    o = t.context,
6875                    i = o.options,
6876                    a = o.viewSpec,
6877                    s = this.processColOptions(o.options),
6878                    l = s.superHeaderRendering,
6879                    u = s.groupSpecs,
6880                    c = s.orderSpecs,
6881                    d = s.isVGrouping,
6882                    p = s.colSpecs,
6883                    f = this.buildTimelineDateProfile(n.dateProfile, o.dateEnv, i, o.dateProfileGenerator),
6884                    h = this.rowNodes = this.buildRowNodes(n.resourceStore, u, c, d, n.resourceEntityExpansions, i.resourcesInitiallyExpanded),
6885                    v = ["fc-resource-timeline", this.hasNesting(h) ? "" : "fc-resource-timeline-flat", "fc-timeline", !1 === i.eventOverlap ? "fc-timeline-overlap-disabled" : "fc-timeline-overlap-enabled"],
6886                    g = i.slotMinWidth,
6887                    m = Gc(f, g || this.computeFallbackSlotMinWidth(f));
6888                return Oo(ci, { viewSpec: a }, (function(t, i) { return Oo("div", { ref: t, className: v.concat(i).join(" ") }, Oo(gp, { ref: e.layoutRef, forPrint: n.forPrint, isHeightAuto: n.isHeightAuto, spreadsheetCols: Sp(p, r.spreadsheetColWidths, ""), spreadsheetHeaderRows: function(t) { return Oo(sp, { superHeaderRendering: l, colSpecs: p, onColWidthChange: e.handleColWidthChange, rowInnerHeights: t.rowSyncHeights }) }, spreadsheetBodyRows: function(t) { return Oo(Lo, null, e.renderSpreadsheetRows(h, p, t.rowSyncHeights)) }, timeCols: m, timeHeaderContent: function(t) { return Oo(Ic, { clientWidth: t.clientWidth, clientHeight: t.clientHeight, tableMinWidth: t.tableMinWidth, tableColGroupNode: t.tableColGroupNode, dateProfile: n.dateProfile, tDateProfile: f, slatCoords: r.slatCoords, rowInnerHeights: t.rowSyncHeights, onMaxCushionWidth: g ? null : e.handleMaxCushionWidth }) }, timeBodyContent: function(t) { return Oo(hp, { dateProfile: n.dateProfile, clientWidth: t.clientWidth, clientHeight: t.clientHeight, tableMinWidth: t.tableMinWidth, tableColGroupNode: t.tableColGroupNode, expandRows: t.expandRows, tDateProfile: f, rowNodes: h, businessHours: n.businessHours, dateSelection: n.dateSelection, eventStore: n.eventStore, eventUiBases: n.eventUiBases, eventSelection: n.eventSelection, eventDrag: n.eventDrag, eventResize: n.eventResize, resourceStore: n.resourceStore, nextDayThreshold: o.options.nextDayThreshold, rowInnerHeights: t.rowSyncHeights, onSlatCoords: e.handleSlatCoords, onRowCoords: e.handleRowCoords, onScrollLeftRequest: e.handleScrollLeftRequest, onRowHeightChange: t.reportRowHeightChange }) } })) }))
6889            }, t.prototype.renderSpreadsheetRows = function(e, t, n) { return e.map((function(e, r) { return e.group ? Oo(ip, { key: e.id, id: e.id, spreadsheetColCnt: t.length, isExpanded: e.isExpanded, group: e.group, innerHeight: n[r] || "" }) : e.resource ? Oo(op, { key: e.id, colSpecs: t, rowSpans: e.rowSpans, depth: e.depth, isExpanded: e.isExpanded, hasChildren: e.hasChildren, resource: e.resource, innerHeight: n[r] || "" }) : null })) }, t.prototype.componentDidMount = function() { this.renderedRowNodes = this.rowNodes, this.scrollResponder = this.context.createScrollResponder(this.handleScrollRequest) }, t.prototype.getSnapshotBeforeUpdate = function() { return this.props.forPrint ? {} : { resourceScroll: this.queryResourceScroll() } }, t.prototype.componentDidUpdate = function(e, t, n) { this.renderedRowNodes = this.rowNodes, this.scrollResponder.update(e.dateProfile !== this.props.dateProfile), n.resourceScroll && this.handleScrollRequest(n.resourceScroll) }, t.prototype.componentWillUnmount = function() { this.scrollResponder.detach() }, t.prototype.computeFallbackSlotMinWidth = function(e) { return Math.max(30, (this.state.slotCushionMaxWidth || 0) / e.slotsPer
6889Label) }, t.prototype.queryResourceScroll = function() {
6890                var e = this.rowCoords,
6891                    t = this.renderedRowNodes;
6892                if (e) {
6893                    for (var n = this.layoutRef.current, r = e.bottoms, o = n.getResourceScroll(), i = {}, a = 0; a < r.length; a += 1) {
6894                        var s = t[a],
6895                            l = r[a] - o;
6896                        if (l > 0) { i.rowId = s.id, i.fromBottom = l; break }
6897                    }
6898                    return i
6899                }
6900                return null
6901            }, t
6902        }(Yo);
6903
6904    function yp(e) { for (var t = {}, n = 0; n < e.length; n += 1) t[e[n].id] = n; return t }
6905
6906    function Sp(e, t, n) { return void 0 === n && (n = ""), e.map((function(e, r) { return { className: e.isMain ? "fc-main-col" : "", width: t[r] || e.width || n } })) }
6907
6908    function Ep(e) { for (var t = 0, n = e; t < n.length; t++) { var r = n[t]; if (r.group) return !0; if (r.resource && r.hasChildren) return !0 } return !1 }
6909
6910    function bp(e) {
6911        var t = e.resourceAreaColumns || [],
6912            n = null;
6913        t.length ? e.resourceAreaHeaderContent && (n = { headerClassNames: e.resourceAreaHeaderClassNames, headerContent: e.resourceAreaHeaderContent, headerDidMount: e.resourceAreaHeaderDidMount, headerWillUnmount: e.resourceAreaHeaderWillUnmount }) : t.push({ headerClassNames: e.resourceAreaHeaderClassNames, headerContent: e.resourceAreaHeaderContent || "Resources", headerDidMount: e.resourceAreaHeaderDidMount, headerWillUnmount: e.resourceAreaHeaderWillUnmount });
6914        for (var o = [], i = [], a = [], s = !1, l = 0, u = t; l < u.length; l++) {
6915            var c = u[l];
6916            c.group ? i.push(r(r({}, c), { cellClassNames: c.cellClassNames || e.resourceGroupLabelClassNames, cellContent: c.cellContent || e.resourceGroupLabelContent, cellDidMount: c.cellDidMount || e.resourceGroupLabelDid
6916Mount, cellWillUnmount: c.cellWillUnmount || e.resourceGroupLaneWillUnmount })) : o.push(c)
6917        }
6918        var d = o[0];
6919        if (d.isMain = !0, d.cellClassNames = d.cellClassNames || e.resourceLabelClassNames, d.cellContent = d.cellContent || e.resourceLabelContent, d.cellDidMount = d.cellDidMount || e.resourceLabelDidMount, d.cellWillUnmount = d.cellWillUnmount || e.resourceLabelWillUnmount, i.length) a = i, s = !0;
6920        else {
6921            var p = e.resourceGroupField;
6922            p && a.push({ field: p, labelClassNames: e.resourceGroupLabelClassNames, labelContent: e.resourceGroupLabelContent, labelDidMount: e.resourceGroupLabelDidMount, labelWillUnmount: e.resourceGroupLabelWillUnmount, laneClassNames: e.resourceGroupLaneClassNames, laneContent: e.resourceGroupLaneContent, laneDidMount: e.resourceGroupLaneDidMount, laneWillUnmount: e.resourceGroupLaneWillUnmount })
6923        }
6924        for (var f = [], h = 0, v = e.resourceOrder || yd; h < v.length; h++) {
6925            for (var g = v[h], m = !1, y = 0, S = a; y < S.length; y++) { var E = S[y]; if (E.field === g.field) { E.order = g.order, m = !0; break } }
6926            m || f.push(g)
6927        }
6928        return { superHeaderRendering: n, isVGrouping: s, groupSpecs: a, colSpecs: i.concat(o), orderSpecs: f }
6929    }
6930    mp.addStateEquality({ spreadsheetColWidths: Kt });
6931    var Cp = Jo({ deps: [Wu, Bd, jc], initialView: "resourceTimelineDay", views: { resourceTimeline: { type: "timeline", component: mp, needsResourceData: !0, resourceAreaWidth: "30%", resourcesInitiallyExpanded: !0, eventResizableFromStart: !0 }, resourceTimelineDay: { type: "resourceTimeline", duration: { days: 1 } }, resourceTimelineWeek: { type: "resourceTimeline", duration: { weeks: 1 } }, resourceTimelineMonth: { type: "resourceTimeline", duration: { months: 1 } }, resourceTimelineYear: { type: "resourceTimeline", duration: { years: 1 } } } });
6932    return Li.push(al, Pl, gu, Tu, _u, Mu, Pu, ac, uc, jc, Bd, jd, Kd, Cp), e.AbstractResourceDayTableModel = xd, e.BASE_OPTION_DEFAULTS = mn, e.BASE_OPTION_REFINERS = gn, e.BaseComponent = Yo, e.BgEvent = Es, e.BootstrapTheme = xu, e.Calendar = Ps, e.CalendarApi = Or, e.CalendarContent = Ca, e.CalendarDataManager = Vi, e.CalendarDataProvider = Qi, e.CalendarRoot = wa, e.Component = Ho, e.ContentHook = oi, e.CustomContentRenderContext = ri, e.DEFAULT_RESOURCE_ORDER = yd, e.DateComponent = $o, e.DateEnv = Gr, e.DateProfileGenerator = vi, e.DayCellContent = gs, e.DayCellRoot = ys, e.DayGridView = Ml, e.DayHeader = Ha, e.DayResourceTableModel = kd, e.DaySeriesModel = Aa, e.DayTable = kl, e.DayTableModel = Wa, e.DayTableSlicer = _l, e.DayTimeCols = cu, e.DayTimeColsSlicer = uu, e.DayTimeColsView = hu, e.DelayedRunner = Ui, e.Draggable = rl, e.ElementDragging = fa, e.ElementScrollController = Io, e.Emitter = _o, e.EventApi = Ar, e.EventRoot = ds, e.EventSourceApi = ye, e.FeaturefulElementDragging = Gs, e.Fragment = Lo, e.Interaction = ua, e.ListView = Cu, e.MoreLinkRoot = Ts, e.MountHook = ai, e.NamedTimeZoneImpl = ea, e.NowIndicatorRoot = hs, e.NowTimer = Pa, e.PointerDragging = As, e.PositionCache = ko, e.RefMap = Ka, e.RenderHook = ni, e.ResourceApi = fd, e.ResourceDayHeader = Rd, e.ResourceDayTable = Vd, e.ResourceDayTableModel = _d, e.ResourceDayTableView = Fd, e.ResourceDayTimeCols = Yd, e.ResourceDayTimeColsView = Zd, e.ResourceLabelRoot = bd, e.ResourceSplitter = hd, e.ResourceTimelineLane = up, e.ResourceTimelineView = mp, e.ScrollController = Mo, e.ScrollGrid = Zu, e.ScrollResponder = Fo, e.Scroller = Xa, e.SegHierarchy = ta, e.SimpleScrollGrid = cs, e.Slicer = La, e.Splitter = uo, e.SpreadsheetRow = op, e.StandardEvent = ps, e.Table = Tl, e.TableDateCell = ka, e.TableDowCell = Ia, e.TableView = sl, e.Theme = No, e.ThirdPartyDraggable = il, e.TimeCols = su, e.TimeColsSlatsCoords = zl, e.TimeColsView = Ul, e.TimelineCoords = xc, e.TimelineHeader = Ic, e.TimelineHeaderRows = Tc, e.TimelineLane = zc, e.TimelineLaneBg = Ac, e.TimelineLaneSlicer = Wc, e.TimelineSlats = Hc, e.TimelineView = Fc, e.VResourceJoiner = Id, e.VResourceSplitter = Pd, e.ViewApi = Mr, e.ViewContextType = Go, e.ViewRoot = ci, e.WeekNumberRoot = Cs, e.WindowScrollController = Po, e.addDays = nt, e.addDurations = Wt, e.addMs = rt, e.addWeeks = tt, e.allowContextMenu = Ge, e.allowSelection = Ve, e.a
6932pplyMutationToEventStore = xr, e.applyStyle = we, e.applyStyleProp = Te, e.asCleanDays = At, e.asRoughMinutes = Bt, e.asRoughMs = Vt, e.asRoughSeconds = zt, e.binarySearch = la, e.buildClassNameNormalizer = si, e.buildDayRanges = du, e.buildDayTableModel = Il, e.buildEntryKey = ra, e.buildEventApis = Lr, e.buildEventRangeKey = gr, e.buildHashFromArray = function(e, t) {
6933        for (var n = {}, r = 0; r < e.length; r += 1) {
6934            var o = t(e[r], r);
6935            n[o[0]] = o[1]
6936        }
6937        return n
6938    }, e.buildIsoString = jt, e.buildNavLinkAttrs = mo, e.buildResourceFields = Ld, e.buildRowNodes = Hd, e.buildSegCompareObj = ur, e.buildSegTimeText = fr, e.buildSlatCols = Gc, e.buildSlatMetas = fu, e.buildTimeColsModel = vu, e.buildTimelineDateProfile = vc, e.collectFromHash = kt, e.combineEventUis = An, e.compareByFieldSpec = Ye, e.compareByFieldSpecs = qe, e.compareNumbers = $e, e.compareObjs = xt, e.computeEarliestSegStart = ks, e.computeEdges = Do, e.computeFallbackHeaderFormat = Ta, 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 = Ro, e.computeRect = wo, e.computeSegDraggable = cr, e.computeSegEndResizable = pr, e.computeSegStartResizable = dr, e.computeShrinkWidth = $a, e.computeSmallestCellWidth = Qe, e.computeVisibleDayRange = qn, e.config = ha, e.constrainPoint = oo, e.coordToCss = kc, e.coordsToCss = Mc, e.createAriaClickAttrs = Oe, e.createContext = Uo, e.createDuration = Ht, e.createElement = Oo, e.createEmptyEventStore = kn, e.createEventInstance = yt, e.createEventUi = On, e.createFormatter = vn, e.createPlugin = Jo, e.createPortal = Bo, e.createRef = Wo, e.diffDates = Zn, e.diffDayAndTime = at, e.diffDays = it, e.diffPoints = ao, e.diffWeeks = ot, e.diffWholeDays = lt, e.diffWholeWeeks = st, e.disableCursor = Ue, e.elementClosest = Ee, e.elementMatches = be, e.enableCursor = Be, e.eventTupleToStore = xn, e.filterEventStoreDefs = In, e.filterHash = bt, e.findDirectChildren = De, e.findElements = Ce, e.flattenResources = Nd, e.flexibleCompare = Ze, e.flushSync = zo, e.formatDate = function(e, t) {
6939        void 0 === t && (t = {});
6940        var n = $r(t),
6941            r = vn(t),
6942            o = n.createMarkerMeta(e);
6943        return o ? n.format(o.marker, r, { forcedTzo: o.forcedTzo }) : ""
6944    }, e.formatDayString = qt, e.formatIsoTimeString = Yt, e.formatRange = function(e, t, n) {
6945        var r = $r("object" == typeof n && n ? n : {}),
6946            o = vn(n),
6947            i = r.createMarkerMeta(e),
6948            a = r.createMarkerMeta(t);
6949        return i && a ? r.formatRange(i.marker, a.marker, o, { forcedStartTzo: i.forcedTzo, forcedEndTzo: a.forcedTzo, isEndExclusive: n.isEndExclusive, defaultSeparator: mn.defaultRangeSeparator }) : ""
6950    }, e.getAllowYScrolling = Qa, e.getCanVGrowWithinCell = so, e.getClippingParents = To, e.getDateMeta = po, e.getDayClassNames = fo, e.getDefaultEventEnd = Tr, e.getElRoot = _e, e.getElSeg = ir, e.getEntrySpanEnd = na, e.getEventClassNames = vr, e.getEventTargetViaRoot = xe, e.getIsRtlScrollbarOnLeft = Eo, e.getPublicId = cd, e.getRectCenter = io, e.getRelevantEvents = _n, e.getScrollGridClassNames = is, e.getScrollbarWidths = bo, e.getSectionClassNames = as, e.getSectionHasLiquidHeight = Ja, e.getSegAnchorAttrs = mr, e.getSegMeta = hr, e.getSlotClassNames = ho, e.getStickyFooterScrollbar = us, e.getStickyHeaderDates = ls, e.getUnequalProps = Tt, e.getUniqueDomId = Me, e.globalLocales = jr, e.globalPlugins = Li, e.greatestDurationDenominator = Gt, e.groupIntersectingEntries = oa, e.guid = Le, e.hasBgRendering = rr, e.hasShrinkWidth = os, e.identity = wn, e.interactionSettingsStore = pa, e.interactionSettingsToStore = da, e.intersectRanges = $n, e.intersectRects = no, e.intersectSpans = aa, e.isArraysEqual = Kt, e.isColPropsEqual = ts, e.isDateSelectionValid = za, e.isDateSpansEqual = Er, e.isGroupsEqual = Ud, e.isInt = Je, e.isInteractionValid = Ba, e.isMultiDayRange = Yn, e.isPropsEqual = wt, e.isPropsValid = Fa, e.isValidDate = gt, e.joinSpans = ia, e.listenBySelector = Pe, e.mapHash = Ct, e.memoize = $t, e.memoizeArraylike = Qt, e.memoizeHashlike = en, e.memoizeObjArg = Jt, e.mergeEventStores = Mn, e.multiplyDuration = Lt, e.padStart = Xe, e.parseBusinessHours = eo, e.parseClassNames = Pn, e.parseDragMeta = ga, e.parseEventDef = Gn, e.parseFieldSpecs = je, e.parseMarker = Fr, e.pointInsideRect = to, e.preventContextMenu = Fe, e.preventDefault = Ie, e.preventSelection = ze, e.rangeContainsMarker = tr, e.rangeContainsRange = er, e.rangesEqual = Jn, e.rangesIntersect = Qn, e.refineEventDef = Vn, e.refineProps = Rn, e.removeElement = Se, e.removeExact = Xt, e.render = Ao, e.renderChunkContent = es, e.renderFill = Ss, e.renderMicroColGroup = ns, e.renderScrollShim = ss, e.requestJson = Oi, e.sanitizeShrinkWidth = rs, e.setElSeg = or, e.setRef = Ko, e.setScrollFromLeftEdge = zu, e.sliceEventStore = nr, e.sliceEvents = function(e, t) { return nr(e.eventStore, e.eventUiBases, e.dateProfile.activeRange, t ? e.nextDayThreshold : null).fg }, e.sortEventSegs = lr, e.startOfDay = ut, e.translateRect = ro, e.triggerDateSelect = Rr, e.unmountComponentAtNode = Vo, e.unpromisify = xo, e.ver
6950sion = "5.11.3", e.whenTransitionDone = He, e.wholeDivideDurations = Ft, Object.defineProperty(e, "__esModule", { value: !0 }), e
6951}({});
6952
6953// calander
6954document.addEventListener('DOMContentLoaded', function() {
6955    var calendarEl = document.getElementById('calendar');
6956
6957    var calendar = new FullCalendar.Calendar(calendarEl, {
6958        timeZone: 'UTC',
6959        themeSystem: 'bootstrap5',
6960        headerToolbar: {
6961            left: 'prev,next today',
6962            center: 'title',
6963            right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth'
6964        },
6965        weekNumbers: true,
6966        dayMaxEvents: true, // allow "more" link when too many events
6967        events: 'https://fullcalendar.io/api/demo-feeds/events.json'
6968    });
6969
6970    calendar.render();
6971});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.