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.